Automatizace návrhu číslicových zařízení
Stránky předmětu 36APC.
VHDL výtvory
Poznámky
- Při používání proměnných uvnitř procesů je dobré nastavit rozsah proměnné, např.: variable citac : natural range 0 to 7;, syntézní nástroj by jinak generoval logiku pro datový typ natural v rozsahu 0 až 232 a ta zabere docela dost místa.
- Na vstupy hodin je vždy přivedený nehradlovaný hodinový signál, ovládání dané komponenty je prováděno pomocí "clock enable" signálu.
Blikač pro železniční přejezd
- clk_divisor.vhd – dělič vstupních hodin
- blikac.vhd – rozsvěcení LEDek s komponentou děliče
- blikac.ucf – nastavení vývodů pro desku Spartan-3 Board
Programovatelný KnightRider blikač
- citac.vhd – n-bitový čítač
- clk_divisor.vhd – dělič hodinového signálu, čítá do předem nastavené hodnoty
- diff.vhd – sledování vstupu, pokud dojde ke změně z 0 na 1, vygeneruje na výstupu impulz
- clock_switch.vhd – propojení předchozích komponent, výsledkem je přepínač hodin
- blikac.vhd – 8 bitový posuvný registr, který přesouvá jeden bit v řádech tam a sem
- propojeni.vhd – výsledné propojení komponent, vstup blikače je řízen přepínačem hodin
- propojeni_s3board.ucf – nastavení vývodů pro desku Spartan-3 Board
- propojeni_s3estarter.ucf – nastavení vývodů pro desku Spartan-3E Starter Kit
Řadič sedmisegmentového displeje a BCD čítač
- clk_divisor.vhd – dělič hodinového signálu
- bcd_counter.vhd – jeden blok BCD čítače, pomocí vývodu CARRY_OUT může řízeň další stupeň
- segment.vhd – dekodér 4 bitového hezadecimálního čísla na pozice sedmisegmentovky
- zobrazovac.vhd – řadič displeje, vstupem je 16 bitový vektor výstupem je přepínání anod jednotlivých displejů a nastavení segmentů
- main.vhd – propojení všech částí do jednoho celku
- main.ucf – – nastavení vývodů pro desku Spartan-3 Board
Vyvolávač epileptického záchvatu
Stáhnout všechny soubory. Předchozí program upravený tak, aby po displeji jezdil nepříjemně blikající text. Přidány jsou následující komponenty:
- rotate_vector.vhd – komponenta provádějící rotaci dlouhého vektoru po 16 bitech
- test_rotate_vector.v – testbench pro rotate_vector.vhd
- epilepsie_sgmnt.vhd – dekodér písmen E, P, S, I, L, " "
CRC a náhodná čísla pomocí LSFR
Linear feedback shift register slouží ke generování CRC a pokud se jeho negovaný výstup propojí se vstupem (pomocí přepínače K13), potom generuje posloupnost pseudonáhodných čísel. Data z LSFR jsou tlačena do posuvného registru a paralelní výstup z něj je zobrazen na sedmisegmentovém displeji.
- crc_generic.vhd – komponenty pro LSFR: klopný obvod D, klopný obvod s XORem na vstupu, a propojení které se generuje na základě zadaného generovacího polynomu (např. x3 + x + 1 = "1011").
- test_crc.vhd – testbench pro crc_generic.vhd.
- shift_reg.vhd – posuvný registr.
- test_shift.vhd – testbench pro posuvný registr.
- main.vhd – propojení všech komponent.