Tartalomjegyzék:

Alapvető stopperóra a VHDL és a Basys3 Board használatával: 9 lépés
Alapvető stopperóra a VHDL és a Basys3 Board használatával: 9 lépés

Videó: Alapvető stopperóra a VHDL és a Basys3 Board használatával: 9 lépés

Videó: Alapvető stopperóra a VHDL és a Basys3 Board használatával: 9 lépés
Videó: Дональд Хоффман и Иоша Бах: Сознание, Гёдель, реальность 2024, Július
Anonim
Image
Image

Üdvözöljük az oktatóanyagban, hogyan lehet stopperórát készíteni az alapvető VHDL és Basys 3 kártyák használatával. Örömmel osztjuk meg Önnel projektünket! Ez volt a CPE 133 (Digitális tervezés) tanfolyam utolsó projektje a Cal Poly, SLO -ban 2016 őszén. Az általunk készített projekt egy egyszerű stopper, amely elindítja, visszaállítja és megállítja az időt. A Basys3 táblán három nyomógombot használ bemenetként, és az idő megjelenik a kártya négy számjegyű, hét szegmenses kijelzőjén. Az eltelt idő másodpercben: centisekundum formátumban jelenik meg. A tábla rendszeróráját használja bemenetként az eltelt idő nyomon követésére, és az időt adja ki a hét szegmenses kijelző négy számjegyére.

1. lépés: Anyagok

Bemenetek és kimenetek beállítása
Bemenetek és kimenetek beállítása

A projekthez szükséges anyagok:

  • 1 számítógép Vivado Design Suite WebPack csomaggal telepítve a Xilinx -ből (előnyben részesíti a 2016.2 verziót)
  • 1 Digilent Basys3 Xilinx Artix-7 FPGA kártya
  • 1 USB port kábel

2. lépés: A bemenetek és kimenetek beállítása

A fenti ábra a fő stopper modul felső szintű blokkdiagramját mutatja. A stopper "CLK" (óra), "S1" (start gomb), "S2" (szünet gomb) és "RST" (reset) bemeneteket vesz fel, és 4 bites "Anódok", 7 bites kimenettel rendelkezik kimenet "szegmens", és egybites kimenet "DP" (tizedespont). Ha az "S1" bemenet magas, a stopper elkezdi számlálni az időt. Ha az "S2" alacsony, a stopper megállítja az időt. Ha az "RST" magas, a stopper leáll, és visszaállítja az időt. Az áramkörön belül négy almodul van: az óraosztó, a számjegyszámláló, a hét szegmenses kijelzőmeghajtó és a hét szegmenses kijelző-kódoló. A stopper fő modul összekapcsolja az összes almodult, valamint a bemeneteket és kimeneteket.

3. lépés: Órák készítése

Órák készítése
Órák készítése

Az óraosztó modul felveszi a rendszerórát, és egy osztó bemenetet használ, hogy bármilyen sebességű órát hozzon létre, amely nem nagyobb, mint a rendszeróra. A stopper két különböző óramodult használ, az egyik 500 Hz -es órát hoz létre, a másik pedig 100 Hz -es órát. Az óraosztó sémája a fenti ábrán látható. Az óraosztó egybites "CLK" bemenetet, 32 bites "Osztó" bemenetet és egybites "CLKOUT" kimenetet vesz fel. A "CLK" a rendszeróra, a "CLKOUT" pedig a kapott óra. A modul tartalmaz egy NOT kaput is, amely átkapcsolja a "CLKTOG" jelet, amikor a számláló eléri az osztó értékét.

4. lépés: Tízig számolás

Tízig számolva
Tízig számolva

A számjegyszámláló minden számjegyet 0-tól 10-ig számol, és létrehoz egy másik órát, hogy a következő számjegy működjön, ami oszcillál, amikor a szám eléri a 10-et. A modul 3 egybites "S", "RST" és "CLK bemenetet vesz fel "és egybites" N "kimenetet és 4 bites" D "kimenetet eredményez. Az "S" bemenet a bemenet engedélyezése. Az óra bekapcsol, ha az "S" magas, és kikapcsol, ha az "S" alacsony. Az "RST" a reset bemenet, így az óra visszaáll, ha az "RST" magas. A "CLK" a számjegyszámláló óra bemenete. "N" az óra kimenete, amely a következő számjegy bemeneti órájává válik. A "D" kimenet a számjegy bináris értékét mutatja.

5. lépés: Számok megjelenítése

Számok megjelenítése
Számok megjelenítése

A hét szegmenses kijelző kódoló kódolja a hét szegmenses kijelző illesztőprogram modulból kapott bináris számot, és bitfolyammá alakítja, amelyet a kijelző minden szegmensében „1” vagy „0” értékként fognak értelmezni. A bináris számot a modul 4 bites bemeneti "számjegyként" fogadja, és 7 bites kimeneti "szegmenseket" eredményez. A modul egyetlen esetfeldolgozási blokkból áll, amely egy adott 7 bites adatfolyamot rendel hozzá minden lehetséges bemeneti értékhez 0 és 9 között. A hét bites adatfolyamok minden bitje a kijelző számjegyeinek hét szegmensének egyike. A folyamban lévő szegmensek sorrendje „abcdefg”, a „0” pedig az adott számnál világító szegmenseket jelöli.

6. lépés: A stopper megjelenítése

A stopper megjelenítése
A stopper megjelenítése

A hét szegmenses kijelző-illesztőprogram modulban négy 4 bites "D0", "D1", "D2" és "D3" bemenet található, amelyek mindegyike a megjelenítendő négy számjegyet jelenti. A "CLK" bemenet a rendszer óra bemenete. Az egybites "DP" kimenet a tizedespontot jelzi a hét szegmenses kijelzőn. Az "Anódok" 4 bites kimenet határozza meg, hogy a hét szegmenses kijelzőn melyik számjegy jelenik meg, a 4 bites "temp" kimenet pedig a "SEL" 2 bites vezérlőbemenet állapotától függ. A modul 4 multiplexert használ a "SEL" vezérlőbemenethez és a három kimenethez; "Anódok", "temp" és "DP".

7. lépés: Az összes összehozása

Az 500 Hz -es óra lefutó „if” folyamatblokkját használják a start és a szünet gombok létrehozásához. Ezután kapcsolja össze az összes almodult a stopperóra főmoduljában az egyes almodulok összetevőinek deklarálásával és különböző jelek használatával. A számjegyes almodulok az előző számjegyű almodul órajeleit veszik fel, az első pedig a 100 Hz -es órát. A számjegyű almodulok "D" kimenetei a hét szegmenses kijelző -illesztőprogram "D" bemeneteivé válnak. És végül a hét szegmenses kijelző -illesztőprogram "temp" kimenete a hét szegmensű kódoló modul "temp" bemenetévé válik.

8. lépés: Korlátok

Korlátok
Korlátok

Használjon 3 nyomógombot (W19, T17 és U18) az "RST", "S1" és "S2" bemenetekhez. W19 a reset gomb, T17 a start gomb (S1), és U18 a szünet gomb (S2). A W5 port használatával az óra bemenetének korlátozására is szükség van. Ezenkívül ne felejtse el hozzáadni ezt a sort az órakorláthoz:

create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]

Kapcsolja össze az anódokat és a szegmenseket is a táblával, hogy a stopper megjelenjen a hét szegmenses kijelzőn, ahogy a megszorítások fájlban látható.

9. lépés: Tesztelés

Tesztelés
Tesztelés

Győződjön meg arról, hogy eszköze működik a három gombbal való játékkal: nyomja meg és tartsa őket minden lehetséges sorrendben, hogy megtalálja a kóddal kapcsolatos esetleges problémákat.

Ajánlott: