2..év hó nap NÉV:...neptun kód:.. Kurzus: feladatokat önállóan, meg nem engedett segédeszközök használata nélkül oldottam meg: Olvasható aláírás:... Kedves Kolléga! kitöltést a dátum, név és aláírás rovatokkal kezdje! z alábbi kérdésekre a válaszokat - ahol lehet - mindig a feladatlapon oldja meg! feladatok megoldása során a részletes kidolgozást nagyfeladatonként külön papíron végezze, (egyértelműen jelölje, hogy melyik lap melyik feladathoz tartozik, a papírra már a kezdetkor írja rá a nevét és neptun kódját) és ezeket a papírokat is adja be a dolgozatával! kérdésekre a táblázatok vagy a pontozott vonalak értelemszerű kitöltésével válaszoljon, hacsak külön másként nem kérjük. Mindenütt a legegyszerűbb megoldás éri a legtöbb pontot. Jó munkát! Ellenőrző kérdések (25p) E. Konvertálja az alábbi számokat a kért formátumra! (2p) kiinduló formátum konvertálandó szám kért formátum konvertált szám decimális 2 6 bites előjel nélküli bináris bites 2-es komplemens decimális -3 E: F: F2: F3: : E2. Mi az előnye a 2-es komplemens számábrázolásnak? Húzza alá a legkedvezőbb választ! (p) a. előjeles számok viszonyának (kisebb/nagyobb) eldöntésénél előnyös. b. Előjeles számok összeadásánál előnyös. c. Előjeles számos 2 hatvánnyal való szorzásánál előnyös. E3. Egyszerűsítse az alábbi oole algebai kifejezést, oole algebrai átalakításokkal! részeredményeket is írja le! (p) + /. =...(+/)( + ) = +... E4. Kaszkádosítsa az alábbi, bites összeadókat a rajz kiegészítésével úgy, hogy azok 2 db 3 bites számot helyesen adjanak össze. ( értékét ennek megfelelően írja be). dja meg a kimeneteiken megjelenő logikai értékeket is a beírt adatok esetére! (2p) UM UM E5. Megadtuk a fenti összedadó kimenetének igazságtábláját Karnaugh táblás alakban. (3p) a. Írja le a függvényt megvalósító kombinációs hálózatot Verilog nyelven, egyszerűsítetlen OP alakban! Ci.. assign = ~&~& ~&&~ &~&~ &&;. b. Lehet-e egyszerűsíteni a függvényt, ha a megvalósításhoz csak N, OR, INV logikai operátorokat használhatunk? Húzza alá a megfelelő választ! igen nem E6. z alábbi kapcsolási rajz egy ismert funkcionális elem belső felépítését mutatja. dja meg a nevét, majd folytassa az O kimenetének Verilog leírását! (3p) O O I3 I2 I neve:...prioritás enkóder... always (*) if(en) casex (I) 4 b: O = 2 b; 4 bx: O = 2 b; 4 bxx: O = 2 b; INV En 4 bxxx: O = 2 b; default: O = 2 b; I UM
E7. a. Milyen ismert áramkör látható az alábbi kapcsolási rajzon? (p)...r flip-flop... b. dja meg, milyen válaszsorozatot ad az alábbi bemeneti sorozatra az áramkör! megoldást elkezdtük, folytassa! (2p) X X X X E. Egészítse ki az alábbi rajzot, az kérdéseknek megfelelően! a. REG O MPX I [3:] I Ld b. REG O MPX I [3:] I Ld a. Egy engedélyezhető regisztert valósítson meg! (Ld = tölt) (p) b. Egy jobbra shiftelő tölthető shiftregisztert valósítson meg! (Ld = tölt, egyébként shiftel) (p) [3:] [3:] i,[3:] [3:] E9. Milyen funkcionális elemet adtunk meg az alábbi Verilog leírással? (p) wire [3:] in; assign ou = (({3 b,en} << sel) & in); funkcionális elem neve:.multiplexer (4 bit, en). E. a. Készítsen az alábbi ROM-okból 3-szoros kapacitású egységet! (Egészítse kia a rajzot!) (p) z elkészítendő egység jelei: 3-, 7-,, C b. Mekkora egy ROM modul kapacitása? (p) 4 kibyte - - - C 3 2 E s s 2 C C C C2 - - - ROM C ROM C2 ROM C 7- C 7- C 7-7- 7-7- EK 3 E. Mely állítások igazak és melyek hamisak? Jelölje +-al az igaz, --al a hamis állításokat! (5p). z always blokkban wire és reg tíusú változóknak lehet értéket adni. - 2. bináris számlálók bármely adat kimenetén a magas és alacsony szint névlegesen ugyanannyi ideig tart. 3. z EXNOR függvény páratlan számú -es esetén ad -et. - 4. Minden szinkron sorrendi hálózat kimenete csak az órajel aktív élének hatására változhat meg. - 5. Ha két ugyanazon órajelre működő regiszter között egy kombinációs hálózat van, akkor az ideális órajel periódusidejére (T) igaz, hogy T > tcqmax + tpmax + tsu Feladatok: F. (p) dott egy FM az alábbi állapotgráffal. Állapotok:,,C,,E. emenetek:, tart, f, f2, f3. Kimenetek: z,z. z állapotkódolást megadtuk. Készítse le a Verilog leírását külön az állapotregiszter, külön a next_state logika és külön a kimeneti logika megadásával! next_state logikánál az always-t a kimeneti logikánál pedig assign-t használja! leírást elkezdtük, fejezze be! + + z,z= f /f z,z= C z=, z= z,z= f2 /f2 z,z= f3 z=, z= Milyen modell szerint működik? Húzza alá a megfelelőt! (p) Mealy Moore /f3 z,z= 2
//Konstans és változó deklarációk, minhárom egységhez tartozó deklarációkat ide írja! (2p): localparam [:] = 2 b, = 2 b, C = 2 b, = 2 b; reg [:] state; reg [:] next_state; //Állapotregiszter (2p): always@( posedge ) if() state <= ; state <= next_state; //Next_state logika (4p): always@( * ) case (state) : if(f) next_state <= ; next_state <= C; : if(f2) next_state <= ; next_state <= ; C: if(f3) next_state <= ; next_state <= C; : next_state <= ; default next_state <= ; //Kimeneti logika (2p): assign z = f2 & (state == ) (state == ); assign z = f3 & (state == C) (state == ); F2. ecimális számláló modul tervezés, kaszkádosítás, időmultiplexált kijelzés. (2p) a. dja meg egy decimális számláló (dec_cnt) Verilog modulját. számláló tölthető (ld, d[3:]) kétiányú (dir = fel), engedélyezhető (en), kimenetei: q[3:] és tc. (6p) module dec_cnt(input, input ld, input dir, input en, input [3:] d, output [3:] q, output tc) assign q = q == 4 d; assign q9 = q == 4 d9; assign tc = en & (dir? q9 : q); always @(posedge ) begin if(ld) q <= d; if(en) if(dir) if(q9) q <= ; q <= q+; if(q) q <= 9; q <= q-; end b. Kaszkádosítson a fenti dec_cnt modulból 2 példányt (dec_cnth, dec_cntl. Utóbbi adja az L-t)! kaszkádosítást annak Verilog leírásával végezze! (4p) dec_cnt dec_cntl(.(),.ld(ld),.dir(dir),.en(en),.q(ql),.tc(tcl)); dec_cnt dec_cnth(.(),.ld(ld),.dir(dir),.en(tcl),.q(qh),.tc(tch)); 3
c. Egészítse ki a b-pontbeli leírást (alább vagy külön lapon), hogy a decimális számlálók kimenete egy 2 digites időmultiplexált kijelzőn jelenjen meg! 7 szegmenses kijelző digitjeinek engedélyezését a dig, dig jelek végzik, az adat bemenete dat[3:]. 7 szegmenses kijelző C kódú adatokat vár (a C_7 szegmenses dekóder bele van építve). z időmultiplexálás vezérléséhez rendelkezésére áll egy 2 bites gyűrűs számláló modul: ring(input, input, output [:] Ou). (3p) wire dig,dig; wire [3:] dat; ring ring(.(),.(),.ou({dig,dig})); // gyűrűs számláló példányosítása always @(*) case ({dig,dig}) 2 b: dat <= ql; 2 b: dat <= qh; default: //adatok multiplexálása 4
F3. Egy 256x-as ROM-ban meg kell számolni a külső din bemeneten lévő adattal egyező adott adatok számát! számolást a start bemenetre adott impulzus indítja. feladat elkészültét az rdy kimenetén egy pulzussal jelzi, ekkor data_count kimenetén az adatok száma található. (2p) a. Röviden fogalmazza meg az algoritmust! (2p) start előtt az adat számlálót és cím számlálót -ázzuk. start után minden címen tesztelni kell, hogy a ROM adat egyezik-e a bemenetivel. Egyezés esetén inkrementálni kell az adat számlálót. Tesztelés után növelni kell a címszámlálót. legnagyobb memória címen való tesztelés után rdy jelzés, majd vissza az elejére. b. Rajzolja le az adatstruktúrát vezérlő HLM állapotdiagramját! (4p) z baloldali verzióban az eredmény csak az rdy alatt érvényes, a baloldaliban az új TRT-ig. Maxaddr =(addr_cntr == 255) rdy = rdy = sum_clr = REY REY addr_cntr = ILE!(data==indat) & Maxaddr TRT TET ILE TRT!(data==indat) & Maxaddr INIT TET INC_ddr data==indat!maxaddr INC_sum Maxaddr sum_clr= addr_cntr= INC_ddr data==indat!maxaddr INC_sum Maxaddr addr_cntr = addr_cntr + sum_cntr = sum_cntr + addr_cntr = addr_cntr + sum_cntr = sum_cntr + c. Rajzolja le a feladat adatstruktúrájának blokkvázlatát. feladat elkészítéséhez az alábbi előre megadott modulokat használja fel (akár több példányban is). (6p) ROM256x(input [7:] addr, output [7:] data); counter256(input, input, input en, output [7:] q, output tc); comp(input [7:] a, input [7:] b, output eq); //ROM //szinkron -ű felfele számláló // egyenlőség komparátor TTRUKTÚR: addr_cntr inc_addr E TC Maxaddr q[7:] addr_clr R counter256 sum_cntr[] T sum_clr ROM addr data data ROM256x sum_cntr[7:] inc_sum q[7:] tc en counter256 sum_clr aeqb a=b a b din inc_addr sum_clr Maxaddr rdy addr_clr inc_sum aeqb comp v ezérlõ számlálót 9-bitesre kell kiegészíteni, mert ha minden adat egyezik, akkor a sum_cntr = 256 (x). Maximális pontszám: 6 pont Rendelkezésre álló idő: perc 5