BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA01) Laboratórium 4 Fehér Béla Raikovich Tamás, Fejér Attila Digit labor 4., 2014.08.18. (v1.0) BME MIT
Lab4_1 feladat: elemi SR tárolók A feladat az elemi aszinkron SR vizsgálata ISE elindítása, projekt létrehozása Lab4_1.v forrásfájl mintakeret specifikálása bt[1:0], ld[1:0] (nagyon egyszerű projekt ) LOGSYS_SP3E.UCF fájl hozzáadása és adaptálása a kívánt interfészekhez (bt és ld interfészek) A Lab4_1 feladatok specifikálása a funkcionális kódrészletekkel Funkcionális kód ellenőrzése szimulációval Konfigurációs fájl generálása, letöltése és a működés tesztelése a kártyán Digit labor 4., 2014.08.18. (v1.0) 1
Lab4_1 feladat SR Latch tervezése A legegyszerűbb állapot tároló visszacsatolás! Vizsgált verziók: SET prioritás Q = S (~R & Q); Q_n = ~Q; RESET prioritás Q = ~R & (S Q); Q_n = ~Q; Hagyományos, szimmetrikus NOR kapu Q = ~(R Q_n); Q_n = ~(S Q); Hagyományos, szimmetrikus NAND kapu (0 aktív vezérlés) Q = ~(S & Q_n); Q_n = ~(R & Q); Működés ellenőrzése szimulációval Speciális, késleltetett értékadás a hatások elemzéséhez (a generált logikára nincs hatása) Digit labor 4., 2014.08.18. (v1.0) 2
Lab4_1a feladat: SET prioritás Q = S (~R & Q); Q_n = ~Q; Figyeljük meg a működést és az időzítési viszonyokat S=1, R=1 után 10 ns múlva Q=1 (SET prioritás) Q=1 után 10 ns múlva Q_n=0 Stabil állapot 20 ns múlva Digit labor 4., 2014.08.18. (v1.0) 3
Lab4_1b feladat: RESET prioritás Q = ~R& (S Q); Q_n = ~Q; CSAK ÉRDEKLŐDŐKNEK! Figyeljük meg a működést és az időzítési viszonyokat S=1, R=1 után 10 ns múlva Q=0 (RESET prioritás) Q=0 után 10 ns múlva Q_n=1 Stabil állapot 20 ns múlva Digit labor 4., 2014.08.18. (v1.0) 4
Lab4_1c : SR NOR kapuval KIMARAD! Q = ~(R Q_n); CSAK ÉRDEKLŐDŐKNEK! Q_n = ~(S Q); Figyeljük meg a működést és az időzítési viszonyokat S=1, R=1 után 10 ns múlva Q=0 és Q_n=0????????? DE mi látható SR=11 00 után? Digit labor 4., 2014.08.18. (v1.0) 5
Lab4_1d: SR NAND kapuval KIMARAD! Q = ~(S & Q_n); CSAK ÉRDEKLŐDŐKNEK! Q_n = ~(R & Q); Figyeljük meg a működést és az időzítési viszonyokat S=0, R=0 után 10 ns múlva Q=1 és Q_n=1????????? DE mi látható SR=00 11 után? (ugyanazok a tesztvektorok) Digit labor 4., 2014.08.18. (v1.0) 6
Lab4_1e : Müller C elem CSAK ÉRDEKLŐDŐKNEK! Egy érdekes 2 bemenetű aszinkron egység A visszacsatolással beállítható hiszterézisen alapul Bekapcsol, ha mindkét bemenet aktív (A és B) Tart, amíg még legalább egy bemenete aktív (A vagy B) Digit labor 4., 2014.08.18. (v1.0) 7
Lab4_1 feladat A SET prioritásos SR Latch specifikáció alapján készítse el az SR_Latch.v Verilog modult Bemenetei: S,R; kimenete: Q,Q_n; Hozza létre a modul mintakeret fájlt és egészítse ki a választott stílusú leírással! Készítse el a modul tesztkörnyezetét SR_Latch_TF.v és tesztelje a funkcionalitást! Ha hibamentes, akkor építse be a Lab4_1.v top module fájlba, a következő megfeleltetéssel: S BT[1], R BT[0], Q LD[1], Q_n LD[0] Digit labor 4., 2014.08.18. (v1.0) 8
Lab4_1 feladat Az SR_Latch modul beépítése SR néven Digit labor 4., 2014.08.18. (v1.0) 9
Lab4_1 feladat: szimuláció, ellenőrzés Ellenőrizzük szimulációval a választott SR latch típust különböző állapotokra és vezérlésekre Generáljuk a konfigurációs adatfájlt Letöltés után ellenőrizzük a működést A tapasztalatokat jegyezzük fel a Laboratórium 4. hét eredmények kérdőíven Digit labor 4., 2014.08.18. (v1.0) 10
Lab4_2 feladat: D flip-flop D flip-flop használata A legáltalánosabban használt flip-flop A több bites regiszterek alap építőeleme A CLK órajel (vagy lefutó) élére mintavételez és ezt a következő élváltásig tartja A D flip-flop-ot mindig viselkedési leírással specifikáljuk always @(posedge clk) típusú érzékenységi lista A rendszer a technológiai környezet megfelelő elemét példányosítja Minden vezérlőjel (D, R, S, CE) egyedi időzítési előírását (t su, t h ) az órajel aktív éléhez képest kell betartani Digit labor 4., 2014.08.18. (v1.0) 11
Lab4_2 feladat: D flip-flop always @ (posedge clk) blokkal Figyeljük meg a működést és az időzítési viszonyokat A CLK élénél mintát vesz D-ből és ezt tartja a kimeneten a következő eseményig Tehát a legalább 1 órajel hosszú pulzusokból biztosan mintát vesz Digit labor 4., 2014.08.18. (v1.0) 12
Lab4_2 feladat: D flip-flop Generáljuk a konfigurációs adatfájlt Letöltés után ellenőrizzük a működést Órajel: LOGSYS GUI BitBang I/O Órajel 1-100Hz, vagy pulzusonként, ill. élenként ( ) Szinkron RST pulzus vagy konstans High-Low érték MOSI soros kim. MISO soros bem. Részletekért lásd a dokumentációt A tapasztalatokat jegyezzük fel a Laboratórium 4. hét eredmények kérdőíven Digit labor 4., 2014.08.18. (v1.0) 13
Sorrendi hálózatok, FSM vezérlők Az egyszerű sorrendi hálózatok, véges állapotú gépek (FSM) a leggyakrabban használt digitális egységek vezérlők, mintagenerátorok, mintafelismerők tervezésére Az FSM lényegében közvetlen digitális áramköri megvalósítása az állapotdiagramban felrajzolt működésnek, ennek megfelelően kis számú állapot és bemeneti/kimeneti jel esetén szinte tetszőleges működést (több utas egylépéses, közvetlen állapotátmenetek) képes realizálni A következő feladatokban egyszerű FSM-ek példáin (LED villogtatás, a 110 bitminta generálása) mutatjuk be a flexibilitást és tervezési lehetőségeket Az egységek interfészei: CLK, RST, MOSI, MISO (LOGSYS GUI jelek, vezérelhetők) Esetleg LED-ek a működés demonstrálására Digit labor 4., 2014.08.18. (v1.0) 14
Lab4_3 feladat: LED villogtatás A feladat az egyszerű sorrendi hálózat tervezési lépéseinek megismerése ISE elindítása, projekt létrehozása Lab4_3.v forrásfájl mintakeret specifikálása clk, rst LOGSYS GUI vezérlőjelek mosi, miso LOGSYS GUI soros adatinterfészjelek ld[7:0] esetleges kijelzés LOGSYS_SP3E.UCF fájl hozzáadása és adaptálása a kívánt interfészekhez (vezérlő és adat interfészek) A Lab4_3 feladat specifikálása a funkcionális kódrészletekkel: BLINK sorrendi hálózat, mint önálló modul elkészítése Funkcionális kód ellenőrzése szimulációval Konfigurációs fájl generálása, letöltése és a működés tesztelése a kártyán Digit labor 4., 2014.08.18. (v1.0) 15
Lab4_3 feladat: LED villogtatás A BLINK sorrendi hálózat specifikációja RST hatására alaphelyzetben vár, kimenete 0 Ha a BLINK bemeneti jel 1-be vált, akkor a kimenet aktív lesz és folyamatosan 1-0-1-0 sorozatot ad ki az órajel ütemében A BLINK jel kikapcsolására újra alaphelyzetbe áll és vár Előzetes állapotdiagram a szöveges specifikáció alapján: 3 állapot: INIT, ON, OFF BLINK=0 BLINK=1 BLINK=1 INIT/0 ON/1 OFF/0 Digit labor 4., 2014.08.18. (v1.0) 16 BLINK=0
Lab4_3 feladat: LED villogtatás A tervezés következő lépése: állapotminimalizálás Észrevehetően INIT és OFF állapotok ekvivalensek: Azonos kimenetet adnak Azonos bemenetre azonos (vagy ekvivalens) állapotba lépnek Tehát összevonhatók: legyen a megmaradó állapot az OFF A maradó 2 állapot 1 biten kódolható: OFF -> 0, ON -> 1 OFF/0 BLINK=0 BLINK=1 ON/1 Digit labor 4., 2014.08.18. (v1.0) 17 BLINK értékétől függetlenül visszalép
Lab4_3 feladat: LED villogtatás A végleges specifikáció megadása VerilogHDL nyelven Állapotregiszter műveletek Állapotregiszter definiálása (1 bit) Állapotkódok felsorolása Kezdeti RST állapot előírása CLK élre következő állapot Állapot átmeneti logika Az állapotdiagram szerint Feltételes vagy közvetlen Kimeneti logika Moore modell, az állapot alapján Digit labor 4., 2014.08.18. (v1.0) 18
Lab4_3 feladat: BLINK ellenőrzése A vezérlők működése egyszerűen szimulálható, de gyakran nehezen értékelhető a hullámforma alapján A BLINK_TF.v minta tesztkörnyezetet kiegészítjük A folyamatos órajel generátorral És bevezetünk egy state_label szimulációs változót ASCII karakteres állapot információk kiíratásához Digit labor 4., 2014.08.18. (v1.0) 19
Lab4_3 feladat: BLINK ellenőrzése A hullámforma ablakban a state_label[23:0] változóra az ASCII kijelzést állítjuk be A szimuláció eredménye néhány tesztvektorral Generáljuk a konfigurációs adatfájlt Letöltés után ellenőrizzük a működést A tapasztalatokat jegyezzük fel a Laboratórium 4. hét eredmények kérdőíven Digit labor 4., 2014.08.18. (v1.0) 20
Lab4_3 feladat: BLINK ellenőrzése A működést a LOGSYS GUI vezérlőjelekkel teszteljük Ezen jeleket BitBang módban adjuk ki Az órajel léptethető, futtatható Küldhető RST jel A MOSI jel (= BLINK) lehet: Statikus High-Low Vagy adott bitminta és Send Ezek az elsődleges interfészjelek megfigyelhetőek Digit labor 4., 2014.08.18. (v1.0) 21
Lab4_4 feladat: bitminta generátor A feladat egyszerű véges állapotú gép (FSM) tervezése ISE elindítása, projekt létrehozása Lab4_4.v forrásfájl mintakeret specifikálása clk, rst, mosi, miso LOGSYSGUI vezérlőjelek LOGSYS_SP3E.UCF fájl hozzáadása és adaptálása a kívánt interfészekhez (vezérlő és adat interfészek) A Lab4_4 feladat specifikálása a funkcionális kódrészletekkel: FSM_CNT Funkcionális kód ellenőrzése szimulációval Konfigurációs fájl generálása, letöltése és a működés tesztelése a kártyán Digit labor 4., 2014.08.18. (v1.0) 22
Lab4_4a feladat: bitminta generátor Tervezzünk egy vezérlőegységet (FSM) ami a RST pulzus után periódikusan a 011011011011011 sorozatot adja ki (az INP bemeneti jeltől függetlenül) A vezérlő állapotdiagramja: A/0 B/1 C/1 3 állapot (A, B, C), kezdőállapot az A állapot Minden állapotátmenet feltétel nélkül, az órajel ütemében történik 1 kimenet jel (OUT), az A állapotban 0 értékű, a B, és C állapotokban 1 értékű Moore modell Digit labor 4., 2014.08.18. (v1.0) 23
Lab4_4a feladat: bitminta generátor Az állapotregiszter minimális mérete: 2 bit Állapotkódolás: A = 00, B = 01, C =10 (lehetne más is) Az állapotregiszter és az állapot átmeneti logika Digit labor 4., 2014.08.18. (v1.0) 24
Lab4_4a feladat: bitminta generátor A kimeneti logika A szimuláció eredménye Generáljuk a konfigurációs adatfájlt Letöltés után ellenőrizzük a működést A tapasztalatokat jegyezzük fel a Laboratórium 4. hét eredmények kérdőíven Digit labor 4., 2014.08.18. (v1.0) 25
Lab4_4b feladat: bitminta generátor Módosítsuk úgy a vezérlőegységet (FSM), hogy csak az INP pulzus hatására adja ki a 011 3 bites mintát. Amennyiben INP folyamatosan 1, akkor működése legyen azonos a korábbi FSM-mel. A túl gyakori pulzusokat elveszítheti. A módosított vezérlő állapotdiagramja: INP=0 A/0 B/1 C/1 INP=1 Továbbra is 3 állapot (A, B, C), kezdőállapot az A állapot Az első állapotátmenet feltételes, a többi feltétel nélküli, de mindegyik az órajel ütemében történik 1 kimenet jel (OUT), az A állapotban 0 értékű, a B, és C állapotokban 1 értékű Moore modell Digit labor 4., 2014.08.18. (v1.0) 26
Lab4_4b feladat: bitminta generátor Az állapotregiszter minimális mérete: 2 bit Állapotkódolás: A = 00, B = 01, C =10 (lehetne más is) Az állapotregiszter és az új állapotátmeneti logika Digit labor 4., 2014.08.18. (v1.0) 27
Lab4_4b feladat: bitminta generátor A kimeneti logika A szimuláció eredménye Generáljuk a konfigurációs adatfájlt Letöltés után ellenőrizzük a működést A tapasztalatokat jegyezzük fel a Laboratórium 4. hét eredmények kérdőíven Digit labor 4., 2014.08.18. (v1.0) 28