BI-SAP.21 Struktura a architektura počítačů
Jdi na navigaci předmětu

Šablony ke stažení

Některé bloky je výhodnější realizovat v jazyce VHDL, který však není součástí tohoto předmětu. Následující VHDL soubory obsahují popis komplikovanějších bloků (abyste mohli využívat i pokročilejší možnosti), nebo předpřipravené šablony (abyste si ulehčili práci a nemuseli kreslit úplně všechny bloky u složitějších zapojení pomocí schémat).

1. Šablony pro kombinační funkce (2. laboratoř, použitelné univerzálně)

Zadávání logické funkce pomocí tabulky a výrazu je realizováno v jazyce VHDL, který však není součástí tohoto předmětu. Abyste mohli tyto způsoby realizovat, jsou k dispozici šablony, které obsahují potřebné hlavičky a deklarace.

Šablonu stačí pouze vyplnit (u tabulky vyplnit sloupec funkční hodnota, u algebry upravit funkci, která je téměř na konci souboru). Více informací najdete na stránkách se zadáním jednotlivých cvičení.

  • entity jmeno_entity is
  • end jmeno_entity;
  • architecture jmeno_architektury of jmeno_entity is
    • jmeno_architektury měnit nemusíte

Všechny tři výskyty jsou prakticky na začátku souboru – viz následující příklad.

Ukázka změny jména entity

1.1. Realizace kombinační funkce pomocí logické tabulky

1.2. Realizace kombinační funkce pomocí algebraického výrazu

1.3. Šablony testovacích souborů

K dispozici jsou i odpovídající testovací soubory (testbenche) pro simulaci. Pokud jste u šablon neměnili názvy vstupů a výstupů, pak by testovací soubory měly fungovat rovnou bez dalších úprav. U těchto šablon nejsou chyby kontrolovány automaticky.

2. Testovací soubory pro čtyřbitovou sčítačku (1. laboratoř)

Oba soubory předpokládají, že soubor se sčítačkou má následující vstupy a výstupy:

  • A0, A1, A2, A3, B0, B1, B2, B3 a CIN
  • S0, S1, S2, S3 a COUT

2.1. Základní test pro dvě různé kombinace

V souboru l1_adder4_test.vhd je pouze malý zlomek možných kombinací vstupních hodnot. V čase 200 ns jsou nastaveny vstupy A a B na hodnotu 1 a obvod na to zareagoval změnou výstupu S na hodnotu 2. Což odpovídá tomu, že sčítačka sčítala 1+1 a vrátila binárně 10, tj. dekadicky 2.

V čase 401 ns je navíc nastaven na hodnotu logické 1 i vstup CIN a obvod na to opět zareagoval změnou výstupu S na hodnotu 3. Což odpovídá tomu, že sčítačka sčítala 1+1+1 a vrátila binárně 11, tj. dekadicky 3.

2.2. Pokročilý test pro všechny možné kombinace

Testbench l1_adder4_full_test.vhd postupně vyzkouší všechny možné kombinace bez vstupního přenosu (2^(4+4+1) = 512) a poté všechny možné kombinace se vstupním přenosem. Upravte si přiblížení simulace pomocí Zoom Fit, Zoom Out a Zoom In tak, abyste viděli jednotlivé změny.

3. Šablony pro 7segmentový displej (3. laboratoř)

Šablony a testovací soubory jsou vzájemně kompatibilní.

  • VHDL šablona obsahující prostor pro vyplnění sedmi logických funkcí algebraicky: decoder_algebra.vhd.
  • VHDL šablona obsahující prostor pro vyplnění tří logických funkcí algebraicky a čtyř pomocí logické tabulky: decoder_mix.vhd.
  • Testovací soubor včetně detekce chyb: l3_decoder_7seg_test.vhd.

4. Testovací soubor na násobičku 2x2 bity

Testovací soubor l3_multiplier_test.vhd předpokládá následující vlastnosti násobičky (pokud se vaše násobička liší, je potřeba buď ji nebo testovací soubor upravit):

  • Jméno násobičky: multiplier
  • Jména vstupů: a1, a0, b1, b0
  • Jména výstupů: y3, y2, y1, y0

Testovací soubor neprovádí žádnou automatickou kontrolu – po dokončení simulace si zkontrolujte správnost v okně s logy a/nebo průběhy signálů.

5. Testovací soubor na násobičku 2x3 bity

Testovací soubor l3_multiplier2x3_test.vhd předpokládá následující vlastnosti násobičky (pokud se vaše násobička liší, je potřeba buď ji nebo testovací soubor upravit):

  • Jméno násobičky: multiplier
  • Jména vstupů: a1, a0, b2, b1, b0
  • Jména výstupů: y4, y3, y2, y1, y0

Testovací soubor neprovádí žádnou automatickou kontrolu – po dokončení simulace si zkontrolujte správnost v okně s logy a/nebo průběhy signálů.

6. Zpomalovač hodinové frekvence – 200 Hz (3. laboratoř)

O možnosti použití této šablony (zejména pro závěrečnou úlohu) se domluvte se svým cvičícím!

Displej na kitu Basys3 je tzv. multiplexovaný, tj. pokud chcete vidět více různých cifer, musíte nechat chvíli svítit jednu cifru se zvolenou kombinací a poté rozsvítit další s jinou kombinací atd. Pokud přepnutí provedete "tak akorát" rychle, pak jej lidské oko nezaznamená a bude přesvědčeno, že svítí obě cifry najednou. Ideální frekvence je od cca 50 Hz do cca 1000 Hz (rychleji už se nestačí LEDky na cifrách zhasínat a výsledkem bude mix všech vstupů na všech cifrách).

Použijte tento VHDL soubor clk_200hz.vhd pro zpomalení hodin ze 100 MHz (hodinový signál kitu Basys3) na cca 200 Hz (frekvence vhodná k přepínání cifer 7segmentového displeje).

Vstup Reset připojte na některé z tlačítek.
Vstup Clk_100MHz připojte na hodinový vstup (FPGA pin W5).

7. Soubory pro návrh a testování čítače (4. laboratoř)

Soubor l4_automat_test.vhd lze použít na otestování funkčnosti čítače.
Dle aktuálního zadání upravte v souboru řádky 11-14 (délka čítače, typ čítače, binární/Grayův a zda je přítomen vstup DIR určující směr).

Soubory l4_next_state_logic.vhd a l4_output_logic.vhd jsou šablony pro kombinační funkce upravené tak, aby byly jednoduše kompatibilní s výše uvedeným testem. Neodstraňujte/nepřidávejte/nepřejmenovávejte v nich žádné porty, jinak nebude test fungovat. Nepoužité vstupy uvnitř šablon ignorujte (ve schématu je pak připojte např. na součástku _gnd), nepoužité výstupy nechte připojené na log. 0.

8. Soubory pro návrh a testování posloupnosti (5. laboratoř)

K dispozici jsou upravené šablony pro vyplnění přechodových a výstupních funkcí a testovací soubor:

  • Šablony přechodových a výstupních funkcí:
    Soubory l5_next_state_logic.vhd a l5_output_logic.vhd jsou upravené tak, aby byly jednoduše kompatibilní s příslušnými testy v této sekci. Neodstraňujte/nepřidávejte/nepřejmenovávejte v nich žádné porty, jinak nebude test fungovat. Nepoužité vstupy uvnitř šablon ignorujte (ve schématu je pak připojte např. na součástku _gnd), nepoužité výstupy nechte připojené na log. 0.
  • Test šablon přechodových a výstupních funkcí:
    Soubor l5_posloupnost_test_v2.vhd je testovací soubor určený pro šablony kombinačních funkcí uvedené výše.
    Test je určen pro libovolné hledané posloupnosti. Dle aktuálního zadání upravte v souboru řádky 11 (typ automatu) a 12 a 13 (hledané posloupnosti). Test je připraven na jakékoli 4bitové posloupnosti, otestuje je automaticky a případné chyby hlásí v konzoli. Pokud simulace nehlásí konec, klikněte na volbu RUN-All.

Sledujte informace od svého cvičícího, je možné, že vám testovací soubor upraví na míru pro vaše konkrétní zadání.

9. Hotové bloky pro závěrečné úlohy (6. laboratoř)

Varování:

O možnosti použití těchto šablon se domluvte se svým cvičícím (pokud není v návodu na závěrečnou úlohu výslovně uvedena)!

Více informací o jednotlivých blocích vám podá cvičící při zadávání úlohy.

9.1. Komponenty FORBESu a Odpočítávacího zařízení

Úlohy: Forbes, Odpočítávací zařízení.

Součástka l6_digit_selector.vhd ovládá hodnoty AN0, AN1, AN2, AN3 pro korektní zobrazení dané pozice na displeji. Součástka přepíná jednotlivé cifry po 2 ms. Součástku stačí zapojit na AN0-AN3 a dále multiplexovat vstup do 7segmentového dekodéru pomocí l6_mux_7seg.vhd.

VHDL soubor l6_counter.vhd slouží pro zpomalení hodin ze 100 MHz (hodinový signál kitu Basys3) na cca 1 Hz. Pokud byste potřebovali výsledný signál upravit (zrychlit/zpomalit), tak na řádce 18 změňte hodnotu konstanty (např. clk_freq/9 zrychlí na cca 9 Hz).

Pro úlohu s kuličkou můžete použít buď stejnou šablonu jako u třetí laboratoře, nebo použít upravenou šablonu se sběrnicemi (l6_decoder_bus.vhd), která vám ušetří práci s propojováním (a navíc je obvod i o něco přehlednější). Šablonu si uložte pod dvěma různými jmény a ve druhém souboru přehoďte komentáře u řádků obsahujících názvy entity (decoder_7seg_left a decoder_7seg_right).