Digitale elektronica en processoren: Examenvragen 21 juni 2005 (14u00) 1) Leg uit wat een critical race is? Hoe kunne we deze elimineren? 2) Wat is het gebruik van attributen in VHDL, geef ook een voorbeeld 3) Fsmd: typische fsmd zoals de oefenzitting en op toledo ( maar ik ken hem nie vanbuiten de onze) 4) Schriftelijk: Implementeer volgende FSM met zo goedkoop mogelijk met SR-FF en Nand poorten 01 10 11 S0 S0/00 S0/01 S3/11 S1 S2 S3 Rest weet ik zo niet meer maar het opzet is wel duidelijk denk ik. Eerst toestande minimaliseren... 27 juni 2005 (9u00) Theorievragen: 1) Wat is het verschil tussen een PLA en een CPLD? 2) Wat is het verschil tussen een instructieset-stroomschema en een ASM-schema? 3e vraag: brok vhdl-code om een fsmd voor te maken 4e vraag: toestandstabel -> fsm ontwerpen met nor-poorten en jk-ff's 9 juni 2006 (9u00) 1) Waarvoor gebruikt men een Schmitt trigger ingang en waarom? 2) Wat is het verschil tss RISC en CISC en welk effect heeft dat op het ontwerp ervan. 3) VHDL (ge moet er zelf de syntax bijdenken :p): ------------------in a 0..255, b -255..255, LD 0..3 out c integer var n,p signal s begin wait if LD>0 n=2**LD s=0 for k in 1 to n wait p=a*b s=s+p endfor wait p=128*n c=s/p endif ---------------------------b is in sign magnitude, c in 2-complement standaard vragen hints:voor macht nen DeMux gebruiken, sign magnitude int begin al omzetten naar 2complement(ik heb da gedaan met HAS en eerste bit als direction te gebruiken en af te trekken van 0,spijtig genoeg wel pas opt einde :o) deling lijkt eerst onmogelijk maar hij heeft mij verklapt da wa ge derin steekt machten van 2 zijn en ge dus hun coeff moet aftrekken ofzoiets :) 4) standaard FSMke om te vereenvoudigen, te implementeren met T-FF en NOR's (en minimale kost), en kritiek pad van te berekenen. eerste 2 vragen zijn mondeling samen na een uur, 3e vraag moet ge mondeling gaan verdedigen als iedereen 1e gedaan heeft, en hij gaat het rijke af :) 13 juni 2006 (16u45) 1. Wat is een open-collector en waarom wordt deze gebruikt? 2. Wat is het verschil tussen een "if" en een "case" in VHDL? Heeft dit impact op de hardwaresynthese? 3. Ontwerp een FSMD die volgende functie uitvoert: entity fsmd is port(clk: in bet; a, LD: in integer range 0 to 255; b: integer range -255 to 255; c: out integer); end entity fsmd; architecture behave of fsmd is begin process is signal p, q, s: integer; variable n, t: integer; begin wait until clk= '1'; if LD>0 then n := 2*LD; p <= 0; q <= 0; s <= 0; for k in 1 to n loop wait until clk= '1'; if (k and 1) = 1 then p <= a; q<= b; t := (a mod 16)*b else t:= (p/16)*q end if; s <= s + t; end loop; wait until clk= '1'; c <= s; end if; end process; end architecture behav; De ingang b wordt in sian-magnitude voorgesteld. De uitgang c wordt voorgesteld als 2-complement-getal met zoveel bits als minimaal nodig is om het zo nauwkeurig mogelijk voor te stellen. (a) Teken een ASM-schema voor deze schakeling, die de vereisten qua tijdsgedrag respecteert. Probeer zo weinig mogelijk toestanden te gebruiken. (b) Ontwerp het datapad tot op RTL-niveau. Minimalisering is niet nodig, maar probeer wel zo weinig mogelijk hardware te gebruiken, zonder evenwel nog het ASM-schema te wijzigen. Vergeet ook niet het aantal bits bij iedere verbinding te vermelden. (c) Beschrijf het controlegedeelte met een toestandsdiagramma. 4. Maak de goedkoopst mogelijke realisatie van onderstaande FSM in een FPGA. Bereken hoeveel CLB's er nodig zijn om dit te realiseren. x= --- 0 ----- 1 S0 -- S4/1 - S1/1 S1 -- S5/1 - S4/0 S2 -- S2/0 - S7/0 S3 -- S1/1 - S6/1 S4 -- S0/1 - S1/1 S5 -- S0/1 - S5/1 S6 -- S5/1 - S0/0 S7 -- S3/0 - S7/0 21 juni 2006 (14u00) 1. Wat is het verschil tussen equivalente en compatibele toestanden? waarom zijn deze verschillende soorten nodig? 2. Waarom kan het herschrijven van VHDL code toch een betere synthese geven? 3. Ontwerp een fsmd die volgende functie uitvoert: library ieee; use ieee.math_real.all; entiry fsmd is port(clk: in bit; LD: in integer range -6 to 6; a: in real range 0.0 to 10.0; y: out integer) end entity fsmd; architecture behav of fsmd is begin signal b,s: real; process is signal p: real; variable t: real; variable n: integer; begin s<=1; if LD>0 then n:=10*LD; p<=a; for k in 1 to n loop wait until clk='1'; p<=a; t:=2*a-p; s<=s+t; t:=t+2*a; end loop; end if; wait until clk='1'; end process; b<=log2(s); -- binair logaritme y<=trunc(b); -- afbreken naar geheel getal end architecture behav; Alle real getallen worden in hardware voorgesteld als getallen met een vaste komma. de ingang a wordt voorgesteld als fix<4,3>. De uitgang y wordt voorgesteld met zoveel bits als minimaal nodig om hem zo nauwkeurig mogelijk voor te stellen. (a) Teken een ASM-schema voor deze schakeling, die de vereisten qua tijdsgedrag respecteert. Probeer zo weinig mogelijk toestanden te gebruiken. (b) Ontwerp het datapas tot op rtl niveau. Minimalisering is niet nodig, maar probeer wel zo weinig mogelijk hardware te gebruiken, zonder evenwel nog het ASM-schema te wijzigen. Vergeet ook niet het aantal bits bij elke verbinding te vermelden. (c) Beschrijf het controlegedeelte met een toestandsdiagramma. 4. Maak de goedkoopst mogelijke IC realisatie van onderstaande FSM waarbij je enkel gebruik mag maken van SR-ff's en NAND-poorten met 2 ingangen. Maak gebruik van Karnaughkaarten om alle functies te bepalen. Bepaal ook het kritische pad in de schakeling. -- 10 - 01 - 00 S0|S2/1-S1/1-S0/0 S1|S3/1-S2/0-S1/1 S2|S0/1-S1/1-S2/0 S3|S0/1-S3/1-S3/0 S4|S3/1-S0/0-S4/1 21 juni 2006 (9u00) 1. Wat is het verschil tussen een asynchrone en een synchrone teller? Wanneer verkiezen we een asynchrone teller boven een synchrone teller? 2. Wat zijn de belangrijkste verschillen tussen een traditionele softwaretaal en een hardwarebeschrijvingstaal? 3. Ontwerp een fsmd die volgende functie uitvoert: library ieee; use ieee.math_real.all; entiry fsmd is port(clk: in bit; a: in real range 0.0 to 1023.0; b: in integer range -255 to 255; y: out integer) end entity fsmd; architecture behav of fsmd is begin signal c: real; signal d: integer; process(a,c) is begin c<=log2(a); -- binair logaritme d<=trunc(c); -- afbreken naar geheel getal end process; process is variable n,t: integer; begin if d>0 then n:=2*d; t:=0; wait until clk='1'; for k in 1 to n loop if(k and 1)=1 then t:=t-k; else t:=t+k; wait until clk='1'; end if; end loop; y<=t; end if; wait until clk='1'; end process; end architecture behav; Alle real getallen worden in hardware voorgesteld als getallen met een vaste komma. de ingang a wordt voorgesteld als fix<10,6>. De ingang b wordt in sign-magnitude voorgesteld. De uitgang y wordt voorgesteld als 2-complementsgetal met zoveel bits als minimaal nodig om hem zo nauwkeurig mogelijk voor te stellen. (a) Teken een ASM-schema voor deze schakeling, die de vereisten qua tijdsgedrag respecteert. Probeer zo weinig mogelijk toestanden te gebruiken. (b) Ontwerp het datapas tot op rtl niveau. Minimalisering is niet nodig, maar probeer wel zo weinig mogelijk hardware te gebruiken, zonder evenwel nog het ASM-schema te wijzigen. Vergeet ook niet het aantal bits bij elke verbinding te vermelden. (c) Beschrijf het controlegedeelte met een toestandsdiagramma. 4. Maak de goedkoopst mogelijke IC realisatie van onderstaande FSM waarbij je enkel gebruik mag maken van JK-ff's en NOR-poorten met 3 ingangen. Maak gebruik van Karnaughkaarten om alle functies te bepalen. Bepaal ook het kritische pad in de schakeling. -- 10 - 01 - 00 S0|S2/1-S1/1-S0/0 S1|S3/1-S2/0-S1/1 S2|S0/1-S1/1-S2/0 S3|S0/1-S3/1-S3/0 S4|S3/1-S0/0-S4/1 8 juni 2007 (8u30) 1) Implementatie van XOR poort op tor niveau + vertraging en kost 2) Verschil in ontwerp van datpad tss FSMD en CISC (en dan nog een 3) en 4)) 8 juni 2007 (14u00) 1) "Wat wordt bij digitaal ontwerp bedoeld met "Technology mapping" in de verschillende ontwerptechnologieen? 2) Wat is het verschil tussen een instructieset-stroomschema en een ASM-schema? Gebruik een "Laad indirect" instructie als voorbeeld. 3) moeilijke fsmd en nog een 4) 9 juni 2007 (8u30) 1) Waarom zijn basis poorten, opgebouwd met CMOS technologie, altijd inverterende poorten? 2) Wat bepaalt de snelheid van een programmeerbare processor? Leg de link met de lengte van de instructiewoorden. 3) stuk vhdl code. Maak mij een asm schema, een datapad op rtl niveau en duid ook de bitbreedtes van de bussen aan en een controller voorgesteld als een toestandsdiagramma. (in uw asm schema oppassen wanneer je met variabelen en signalen zit, x2 is shift left en 2 tot de macht iets implementeer je best met ofwel een barrel shifter ofwel met een decoder die de juiste shift bewerking selecteert). 4) Gegeven een toestandstabel van een fsm. Geef de goedkoopst mogelijke implementatie voor deze fsm in een FPGA. Schat hoeveel clb's je daarvoor nodig hebt. (dus: minimaliseren, states encoden en karnaugh kaarten invullen voor de ingangen van de D-flip flopjes en de uitgangen) 18 juni 2007 (8u30) 1. Bespreek de verschillende soorten "Field Programmable Design". Geef ook aan wanneer ze gebruikt worden. (PLA, PLD, CPLD, gate array, ...) 2. Wat is 'chaining'? Wat zijn de voor- en nadelen? 3. Ontwerp een FSMD die de volgende functie uitvoert: entity fsmd is port(clk: in bit; a, LD: in integer range 0 to 254; y: out integer) end entity fsmd; architecture behav of fsmd is begin signal n: integer; n <= 2*LD + 1; process is variable q: integer; signal p, s: integer =0; begin wait until clk = '1'; if n > 1 then p <= a; s <= 0; wait until clk = '1'; for k in 1 to n loop p <= a; q := 256*p + a; if (k and 1) = 0 then s <= s - 2; q := q + 2; else s <= s + (q/16); wait until clk = '1'; end if; end loop; end if; y <= s; end process; end architecture behav; De uitgang y wordt voorgesteld met zoveel bits als minimaal nodig is om hem zo nauwkeurig mogelijk voor te stellen. (ASM-schema, datapad op RTL niveau en controller) 4. Maak de goedkoopst mogelijke IC realisatie van onderstaande FSM in 'one-hot' codering waarbij je enkel gebruik mag maken van T-flip-flops en NOR-poorten met 2 ingangen. s0 s1 s2 s3 s4 s5 s6 s7 x = 0 s4/1 s5/1 s2/0 s1/1 s0/1 s0/1 s5/1 s3/0 x = 1 s1/1 s4/0 s7/0 s6/1 s1/1 s5/1 s0/0 s7/0 Wat ik heb: 2 x 2 equivalente toestanden (eliminatie van 2 toestanden dus) T-ingangen in functie van de Qi waardes die overeenkomen met de rijen waardat Tj = 0 ( ge ziet zelf maar)