Paměťový obvod v simulátoru

Motivace: v simulátoru žáci vidí, co se děje uvnitř paměťového obvodu, který zapojovali v praktickém cvičení. Vyzkoušejí si, jak se z jednoduchých součástí sestavují složitější systémy – integrované obvody. Seznámí se s principem synchronizačního vodiče v komunikaci.

Budeme pracovat na webu logic.ly. Je docela snadné se v něm zorientovat, ale návod k použití možná pomůže.

Pokud chcete rovnou přeskočit na poslední cvičení, můžete začít od kroku 9.

Prohlédnout si D-Latch

Při otevření stránky se nám nabízí ukázkový obvod D-Latch. Pro jednou na něj klikneme.

Zjevně jde o nějaký druh paměti. V jednom vstupu nalevo se pravidelně střídá low a high, zatímco druhý můžeme přepnout tak, že na něj klikneme. Obvod si zapamatuje hodnotu druhého vstupu pokaždé, když první vstup je zrovna high. Dokud první vstup je low, neděje se nic.

D-Latch

Obvod je sestavený z hradel NOT, AND a NOR, což by nás zbytečně rušilo. Obdélníkovým výběrem označíme všechny zoučástky a klávesou Delete je smažeme.

Zapojit paměťový obvod

Postavíme obvod, jak jej známe z minulého cvičení.

  1. Z panelu vlevo přidáme do obvodu dvě NAND hradla.
  2. Výstup jednoho hradla připojíme na jeden ze dvou vstupů druhého hradla.
  3. Z druhého hradla na první uděláme obdobný spoj.
  4. Jedno z hradel otočíme, aby obvod byl jednodušší na pohled.
    Dvě spojená hradla NAND
  5. Do obvodu přidáme žárovku a připojíme ji na výstup jednoho hradla.
  6. Do obvodu přidáme dva vypínače a každý z nich připojíme na volný vstup jiného hradla.

V Česku a většině světa je zvykem, že vypínač je zapnutý v poloze "nahoře". Pro přehlednost si tedy můžeme všechny vypínače otočit.

Hotový paměťový obvod

Obvod si pamatuje svůj stav, když jsou oba vypínače zapnuté. Pokud jeden z nich na chvíli vypneme, necháme tak obvod, aby si zapamatoval stav "rozsvíceno" nebo "zhasnuto".

Obvod ve stavu "rozsvíceno"

(Mimochodem: zapínání směrem dolů je obvyklé v Británii a v zemích Commonwealth. Simulátor logic.ly je americké výroby, takže není vůbec jasné, proč má vypínače vzhůru nohama.)

Vytvořit integrovaný obvod

Náš paměťový obvod se chová přehledným a užitečným způsobem, tak ho celý zavřeme do jedné součástky. Nejdřív je potřeba pojmenovat součástce vstupy (vypínače) a výstup (žárovku).

  1. Klikneme na žárovku. Vpravo dole se objeví tmavý formulář. Do políčka Export Name vyplníme libovolný název (např. "Stav").
  2. První a druhý vypínač pojmenujeme např. jako Vyp a Zap, podle jejich významu.
  3. Celý obvod označíme obdélníkovým výběrem.
  4. Klikneme pravým tlačítkem a v nabídce zvolíme "Create Integrated Circuit". Do políčka Full Name vyplníme libovolný název, např. "Paměť". Nakonec klikneme na tlačítko Create New Circuit.

Formulář pro integrovaný obvod

Vidíme, že tahle nová součástka přibyla úplně na konci levého panelu, v oddílu Custom. Můžeme ji přidat a vyzkoušet, že se chová stejně jako původní obvod.

Zapojení s integrovaným obvodem

Vstup z push tlačítek

Není úplně pohodlné, že při rozsvěcení i zhasínání musíme na některý z vypínačů kliknout dvakrát – abychom ho vždycky vrátili do zapnuté polohy. Vhodnější bude použít součástku Push Button, která dává signál high jen ve chvíli, když zrovna držíme tlačítko myši.

  1. Přidáme integrovaný obvod podle předchozího návodu a k jeho výstupu připojíme žárovku.
  2. Přidáme dvě tlačítka Push Button a každé připojíme k jednomu vstupu. Vidíme, že teď obvod nefunguje správně, protože tlačítka dávají výstup low. V tomhle zapojení obvod není schopný si nic pamatovat.
    Nefunkční zapojení se dvěma tlačítky
  3. Obě tlačítka zase odpojíme, protože jejich výstup potřebujeme převrátit. Přidáme dvě hradla NAND, jedno ke každému z tlačítek.
  4. Výstup jednoho tlačítka připojíme na oba dva vstupy jednoho hradla NAND a výstup tohoto hradla připojíme na jeden vstup integrovaného obvodu.
  5. Druhé tlačítko připojíme obdobně k druhému hradlu a jeho výstup připojíme na druhý vstup integrovaného obvodu.

Zapojení paměťového obvodu s tlačítky

Když teď klikneme na jedno nebo druhé tlačítko, můžeme žárovku rozsvítit, resp. zhasnout.

Navíc vidíme, že zapojení stejného vstupu do obou nožiček hradla NAND tuto hodnotu převrátí, čili udělá high z low a naopak. To se bude hodit v následujícím cvičení.

cvičení: Víc vypínačů

Pokud by náš obvod ovládal běh nějakého velkého stroje (například elektrické pily), bylo by dobré pro bezpečnost, aby v případě nouze bylo snadné stroj vypnout. Potřebujeme tedy zapojit několik samostatných tlačítek, z nichž každé bude sloužit jako vypínač.

  1. Přidejte do obvodu další tlačítko (Push Button).
  2. Zapojte obvod tak, aby se i stiskem nově přidaného tlačítka dala zhasnout žárovka. Použijte k tomu další hradla NAND.

Výchozí zapojení pro cvičení

cvičení: Dětská pojistka

Bezpečné taky je, aby stroj nešlo zapnout omylem (třeba když někdo zakopne a upadne na tlačítko). Přidáme vypínač, který bude potřeba nechat zapnutý, aby fungovalo zapínací tlačítko.

  1. Přidejte do obvodu vypínač (Toggle Switch).
  2. Zapojte obvod tak, aby zapínacím tlačítkem šlo rozsvítit žárovku jedině, když je nově přidaný vypínač v zapnuté poloze. Pokud je vypínač ve vypnuté poloze, zapínací tlačítko nemá žádný vliv. Můžete k tomu použít další hradla NAND.

Výchozí zapojení pro cvičení

Přehodit tlačítko a vypínač

Obvod z předchozího cvičení můžeme chápat ještě jiným způsobem.

  1. Vyměňte mezi sebou umístění zapínacího tlačítka a vypínače, aniž byste měnili zapojení.

Záměna polohy tlačítka s vypínačem

Vypínač teď opravdu slouží k rozsvěcení žárovky. Obvod na něj ale bere ohled jen v okamžiku, když zrovna zmáčkneme tlačítko. Význam toho tlačítka tedy můžeme popsat slovy "Teď! si zapamatuj" – jinak řečeno, tlačítko udává časovací signál.

cvičení: Pamatuj si i vypnutí

Obvod z předchozího kroku je schopný se rozsvítit podle vypínače, když mu dáme povel tlačítkem. Bylo by elegantní, kdyby podobným způsobem šel i zhasnout.

  1. Odpojte nebo smažte vypínací tlačítka. Mělo by zůstat jedno tlačítko a jeden vypínač.
  2. Zapojte obvod tak, aby při stisku časovacího tlačítka si zapamatoval přesně stav vypínače. Pokud je vypínač vypnutý a stiskneme tlačítko, žárovka má zhasnout. Můžete k tomu použít další hradla NAND.

Vytvořit druhý integrovaný obvod

Obvod z předchozího cvičení se trochu podobá tomu, u kterého jsme začali, ale jeho chování se dá líp popsat. Při stisku tlačítka si zapamatuje, v jakém stavu je vypínač. Bude se nám hodit v následujícím cvičení.

  1. Smažte časovací tlačítko a přidejte místo něj vypínač, zapojený stejně.
  2. Oba vypínače i žárovku vhodným způsobem pojmenujte.
  3. Vytvořte integrovaný obvod z celého zapojení.

Když budeme chtít začít pracovat až od tohoto kroku (například, abychom se hned pustili do posledního cvičení), můžeme vyrobit integrovaný obvod z následujícího zapojení. Funguje stejně jako obvod z předchozího cvičení. Žárovku pojmenujeme "Stav", horní vypínač pojmenujeme "Teď", spodní "Data".

D-Latch

Neuškodí si nový integrovaný obvod rovnou vyzkoušet.

Použití integrovaného obvodu

cvičení: Paměť s jedním tlačítkem

Chceme vytvořit obvod, který se bude jedním stiskem tlačítka zapínat a druhým stiskem vypínat. Stejným způsobem se chová spousta přístrojů – například obrazovku telefonu každým stiskem vypínače rozsvítíme nebo zhasneme.

  1. Vymažte z pracovní plochy všechny součástky.
  2. Přidejte jedno tlačítko (Push Button) a jednu žárovku.
  3. Zapojte obvod tak, aby každým stiskem tlačítka se žárovka rozsvítila, pokud byla předtím zhasnutá, anebo zhasla, pokud byla rozsvícená. Použijte k tomu jeden nebo více kusů integrovaného obvodu z předchozího kroku a hradla NAND.

Výchozí zapojení pro cvičení