Úloha 1 – Logická hradla
Prvním příkladem pro seznámení s logickými obvody bude realizace několika hradel. V prostředí Logisim Evolution vytvoříte schéma z několika hradel, naprogramujete do vývojového kitu Basys 3 a vyzkoušíte přímo v praxi. Postupujte krok za krokem podle bodů, cílem je fungující aplikace na vývojovém kitu.
Prostředí Logisim Evolution (dále jen Logisim) je k dispozici nejen v učebně A1042, ale i v sousedním respiriu (prosklená místnost přímo u výtahů v 10. patře, do které se lze dostat přes přístupové karty). Doporučujeme, abyste si stáhli a nainstalovali toto prostředí i na svém PC/notebooku. Některé úlohy (zejména závěrečná) mohou být časově náročné. Návod na instalaci prostředí můžete nalézt zde.
Vývojový kit Basys 3 je kromě učebny A1042 k dispozici i u počítačů v respiriu.
I když je návod podrobný, nemusí (a ani nemůže) podchytit všechny situace, které mohou nastat. Pokud při práci narazíte na jakýkoli problém, neváhejte se zeptat cvičících (od toho jsme zpravidla přítomni dva, abychom se vám mohli věnovat).
1. Zadání
Do vývojového kitu naprogramujeme funkce čtyř dvouvstupých hradel: AND, NAND, OR a XOR. Jejich funkci popisuje následující čtveřice tabulek, SW0 až SW7 jsou vstupy hradel, LEDky LD0 až LD3 jsou jejich výstupy. Nula znamená neaktivní stav, jednička aktivitu. Jsou-li tedy např. vstupy SW0 a SW1 aktivní (na vývojovém kitu v horní poloze) u hradla AND, je aktivní i výstup (LEDka LD0 svítí).
| AND | NAND | OR | XOR | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| SW0 | SW1 | LD0 | SW2 | SW3 | LD1 | SW4 | SW5 | LD2 | SW6 | SW7 | LD3 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
1.1. Vizualizace
Na webu https://crypto.fit.cvut.cz/bi-sap/#asgates si můžete prohlédnout vizualizaci úlohy na virtuálním vývojovém kitu.
2. Realizace
2.1. Spuštění vývojového prostředí
Pro práci s logickými obvody budeme používat prostředí Logisim. Prostředí spustíte buď z plochy (ikona
), nebo pomocí vyhledávání vedle tlačítka Start.
Po spuštění vás přivítá obrazovka, s novým projektem.
Projekt si hned uložte do svého domácího adresáře (síťový disk X:). V adresářové cestě raději nepoužívejte mezery, diakritiku ani speciální znaky. Názvy (čehokoliv) nesmí začínat číslicí. Načítání adresářů může chvíli trvat. Cesta nesmí obsahovat síťový odkaz drive.in.fit.cvut.cz.
2.2. Hlavní okno vývojového prostředí
Popis základních částí hlavního okna:
- Levá horní část (Design) – Obsahuje seznam prvků, které lze vložit do schématu. Jedná se de facto o adresářovou strukturu. Na obrázku je rozbalená sekce (adresář) se základními hradly.
- Po přepnutí na kartu Simulate lze provádět simulaci (viz níže).
- Levá dolní část (Properties) – Obsahuje vlastnosti aktuálně vybraného prvku (na obrázku žádný prvek není, proto je pole prázdné).
- Hlavní část
- V tuto chvíli je také prázdná, později bude obsahovat nakreslené schéma.
2.3. Prvotní nastavení prostředí Logisim
Po prvním spuštění Logisimu si zkontrolujte/upravte nastavení v okně Window → Preferences:
- Propojení s Vivadem (na školním PC vždy - na domácím PC pouze v případě, že máte Vivado nainstalované): Karta Software → položka Xilinx Vivado toolpath. Výchozí cesta je C:\Xilinx\Vivado\2018.3\bin.
- Adresář, kde bude Logisim ukládat nastavení a dočasné soubory: Karta FPGA Commander Settings → položka Workspace location. Na školním PC zvolte podadresář na síťovém disku X: (např.: X:/sap). V adresářové cestě nepoužívejte mezery, diakritiku ani speciální znaky. Cesta nesmí obsahovat síťový odkaz drive.in.fit.cvut.cz.
- Zvětšení celého rozhraní: Karta Window, položka Zoom Factor. Pro korektní změnu zvětšení je třeba Logisim restartovat.
Nastavení se ukládají automaticky, okno Preferences tedy můžete zavřít bez dalšího potvrzování.
2.4. Vytvoření schématu
2.4.1. Přidání základních hradel dle zadání
Postupně vložte hradlo AND, NAND OR a XOR. Všechna základní hradla jsou v levé části v sekci Gates, nebo v ikonách nad hlavní plochou.
Již vložené hradlo můžete vybrat a v dolní levé části editovat jeho vlastnosti:
- Facing: Otočení hradla.
- Gate Size: Velikost hradla.
- Number Of Inputs: Počet vstupů.
- Label: Pojmenování.
- Negate x: Negace vstupu x.
- Multiple-Input Behavior (pouze pro XOR): Volba "When an odd number are on" přepne chování XOR-u na chování dle standardní funkce XOR. Důležité zejména v případě, že používáte vícevstupý XOR.
2.4.2. Připojení hradel na vstupy/výstupy
Abyste mohli ovládat hradla pomocí přepínačů na vývojovém kitu a sledovat jejich výstupy na LED diodách, je třeba ve schématu připojit hradla na vstupy/výstupy. K tomu slouží ikony Add Pin (ikony
) v horní liště. Pro rychlejší práci můžete použít klávesové zkratky Ctrl+5 pro vstupní pin a Ctrl+6 pro výstupní.
Pojmenujte porty dle následujícího obrázku. Port pojmenujete pomocí dvojkliku.
2.4.3. Otestování funkce hradel
Logisim obsahuje základní simulátor schémat. Pro jeho aktivaci přepněte do módu pro změnu hodnot (ikona
). V tomto módu můžete klikat na jednotlivé vstupy, čímž dojde ke změně jejich hodnot. Každá změna se v základním nastavení automaticky přenese do připojených hradel a na jejich výstupy.
Pro ukončení simulace se nezapomeňte přepnout zpět do módu pro editování schématu (ikona
) - jinak nemůžete pokračovat v editaci.
2.5. Syntéza schématu
Syntéza schématu probíhá v okně FPGA → Synthesize & Download. Syntéza vyžaduje nainstalované prostředí Vivado. Na domácím PC syntézu dělat nemusíte, postačí simulace a syntézu si pak uděláte až ve škole.
Varování:
Po jakékoli změně schématu je třeba syntézu opakovat, jinak si nahrajete do vývojového kitu neaktuální verzi.
Nastavení syntézy (čísla bodů odpovídají číslům v obrázku níže):
- Nastavte (v sekci Clock settings) děličku frekvence Divider value na 1. (Bude důležité až u sekvenčních obvodů, ale nic tím nezkazíte ani v tomto případě.)
- Vyberte (v sekci Target board) kit Basys 3 (pokud už vybraný není).
- Vyberte (v sekci Action method v položce Toplevel) schéma, které se má překládat. (V tomto případě je schéma v projektu jen jedno.)
- Přidejte popisky k jednotlivým neoznačeným komponentám a vstupům/výstupům (v sekci Annotation method vyberte Label only the components without a label) a potvrďte pomocí Annotate.
Vyberte, že chcete provést celou syntézu a nahrání do vývojového kitu (v sekci Action method vyberte Synthesize & Download).
- Proveďte (v sekci Action method tlačítko Execute).
V dalším kroku vyberte, jak se mají namapovat vstupy a výstupy vašeho schématu na fyzické komponenty vývojového kitu.
Vyberte první vstup (A) a klikněte do obrázku na pozici prvního přepínače zprava. Po úspěšném namapování by se měl vstup přesunout do sloupce Mapped components a přepínač by měl být zeleně podbarven.
Obdobně pak namapujte ostatní vstupy (postupujte přes přepínače zprava doleva) a poté i výstupy (P - S) namapujte na LED diody (opět zprava doleva).
Ve chvíli, kdy jsou všechny komponenty namapované (jsou ve sloupci Mapped components), klikněte na Done a překlad se spustí.
A pak už jen čekejte (překlad může trvat i několik minut)…
Po (úspěšném) dokončení překladu se zobrazí dialog umožňující nahrání do vývojového kitu. Neklikejte v tuto chvíli na žádnou možnost a nejprve připojte vývojový kit k PC.
Potvrďte dialog pro zahájení nahrávání na vývojový kit. Nahrávání může trvat až cca 1 minutu.
3. Otestování vytvořeného návrhu
Nyní by měl být vývojový kit naprogramován vaším návrhem. Vyzkoušejte si váš návrh dle tabulky se zadáním. Jsou-li např. vstupy SW0 a SW1 aktivní (na vývojovém kitu v horní poloze) u hradla AND, je aktivní i výstup (LEDka LD0 svítí).
| AND | NAND | OR | XOR | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| SW0 | SW1 | LED0 | SW2 | SW3 | LED1 | SW4 | SW5 | LED2 | SW6 | SW7 | LED3 |
| 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |









