Digitale elektronica en processoren: Examenvragen

advertisement
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)
Download