26.05.2011. 1 9. Verifikacija projekta (Test Bench) a. Vremenska funkcija (after) b. Konstanta (constant) c. Čekanje (wait) d. Promenljive (variable); VHDL jezik za opis hardvera LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/ 26.05.2011. 2 9. Verifikacija projekta – (Test bench) LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/ 26.05.2011. 3 Test bench (TB) mora da sadrzi tri celine: - komponentu koja se ispituje (UUT, Unit Under Test) - pobudu (generatori test sekvence) - monitor („instrument“ na kome se prati odziv). 9. Verifikacija projekta – (Test bench) LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/ 26.05.2011. 4 Generatori pobude i monitor sastavni su deo TB, tako da se radi o jedinstvenom entitetu koji ne komunicira sa okolnim svetom preko portova. Saglasno definiciji entiteta, opis TB entiteta ne zahteva definisanje ni portova ni opštih konstanti - generika. UUT je posebna celina – komponenta opisana entitetom i arhitekturom. Sa pobudnim signalima i monitorom UUT je vezana preko sopstvenih portova koji u odnosu na TB predstavljaju interne signale. Arhitektura TB opisuje se na strukturnom nivou. 9. Verifikacija projekta – (Test bench) LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
14
Embed
VHDL jezik za opis hardvera Test bench) afterleda.elfak.ni.ac.rs/education/PEK_stari/literatura/predavanja PEK EMT... · Saglasno definiciji entiteta, opis TB entiteta ne zahteva
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
26.05.2011. 1
9. Verifikacija projekta (Test Bench)
a. Vremenska funkcija (after )
b. Konstanta (constant )c. Čekanje (wait )d. Promenljive (variable );
VHDL jezik za opis hardvera
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 2
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 3
Test bench (TB) mora da sadrzi tri celine:
� - komponentu koja se ispituje (UUT, Unit Under Test)
� - pobudu (generatori test sekvence)
� - monitor („instrument“ na kome se prati odziv).
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 4
Generatori pobude i monitor sastavni su deo TB, tako da se radi o jedinstvenom entitetu koji ne komunicira saokolnim svetom preko portova.
Saglasno definiciji entiteta, opis TB entitetane zahtevadefinisanje ni portova ni opštih konstanti - generika.
UUT je posebna celina – komponenta opisana entitetom i arhitekturom.
Sa pobudnim signalima i monitorom UUT je vezana prekosopstvenih portova kojiu odnosu na TB predstavljajuinterne signale.
Arhitektura TB opisuje se na strukturnom nivou.
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 5
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 6
Definisanje pobude i željenog odziva
Testni vektor predstavlja sve kombinacije promene ulaznihsignala koje su neophodne da bi se kolo testiralo.
Redosled ulaznih signala može da se zadajekonkurentno, direktnim dodeljivanjem vrednosti pojedinim signalima ilisekvencijalno, u okviru procesa (pogodno je kod manjihprojekata, kada je dužina testnog vektora mala).
Za veća kola, meñutim, mnogo je zgodnije zapisati povorkutestnih impulsa u fajl, pa je odatle iščitati.
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 7
Definisanje pobude i željenog odziva
Verifikacija => modeli sa vremenskim parametrima.
Podrazumevaju definisanje talasnih oblika ulaznih signala, a takoñe, mogu da obuhvataju i sva kašnjenja signala naputu od ulaza do izlaza.
O definisanju kašnjenja kroz pojedine komponente biće rečinešto kasnije; sadaćemo se posvetiti samo definisanjutalasnih oblika ulaznog vektora.
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 8
Definisanje pobude i željenog odzivaŠto se odziva tiče, ukoliko povorka izlaznih signala nije
velika, najbrži način provere jeste posmatranje talasnihoblika signala.
Meñutim, u slučajevima testiranja složenijih kola, kada supovorke izlaznih signala duge, mnogo je povoljnije da se informacija o odzivu upisuje u izlazni fajl.
Poreñenjem željenog i dobijenog talasnog oblika utvrñuje se ispravnost kola, pričemu je moguće generisati iodgovarajuće poruke koje projektantu mogu pomoćiprilikom otkrivanja i otklanjanja eventualnihnepravilnosti.
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 9
Definisanje pobude i željenog odzivaDa bi se ispitao odziv kola Prvi_projekat za sve
moguće kombinacije ulaznih signala potrebno je da sekolo pobudi sa tačno osam kombinacija:
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 10
Definisanje pobudeDa bi se ispitao odziv kola Prvi_projekat za sve moguće
kombinacije ulaznih signala potrebno je da se kolo pobudi sa tačnoosam kombinacija:
Definisanje željenog odziva
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 11
Definisanje pobude i željenog odziva(1)
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 12
Definisanje pobude i željenog odziva
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 13
Definisanje pobude i željenog odziva(2)npr: constant PropDelay: time := 40ns;Definiše konstantnu vrednost nekog parametra koji se prosleñuje celoj
arhitekturi (kada se definiše u deklaracionom delu arhitekture). 1. constant
<identifikator >: -- naziv, ime<tip > -- tipovi iz uputstva za VHDL (bit, Bulean, integer, real -
-- floating point, std_logic,...) ili
-- novododati tipovi (korisnički) ili
-- podtipovi (time, podtip od floating point,...) := -- znak za dodelu vrednosti
<vrednost > -- vrednost
; -- (kraj naredbe)
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 14
Definisanje pobude i željenog odziva(2)1. constant
Konstante se najčešće koriste za definisanje
� dimenzija složenih objekata(nizova),
� brojača u petljama i
� vremenskih parametara(kao što je slučaj u ovom primeru).
Naglasimo da se one NE koriste za definisanje dimenzija portova, jer za to služe konstante opšteg tipa (generic) koje se deklarišu u okviru entiteta, a ne arhitekture.
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 15
Definisanje pobude i željenog odziva(2)
2. Pristup elementu vektorapristup pojedinim bitovima std_logic_vector -a
(pravilo važi i za ostale vektore).
ulaz( k) - k-ti član vektora ulaz
npr: a=> ulaz(2);
b=> ulaz(1);
c=> ulaz(0);
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 16
Definisanje pobude i željenog odziva(2)
3. Dodeljivanje vrednosti vektoru
Zahteva da se umesto jednostrukih (koji se koriste za
dodeljivanje vrednosti bitu), koriste dvostruki navodnici.npr: ulaz<= “000”; wait for PropDelay;
ulaz<= “001”; wait for PropDelay;ulaz<= “010”; wait for PropDelay;ulaz<= “011”; wait for PropDelay;ulaz<= “100”; wait for PropDelay;ulaz<= “101”; wait for PropDelay;ulaz<= “110”; wait for PropDelay;ulaz<= “111”; wait for PropDelay;
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 17
Definisanje pobude i željenog odziva(2)4. wait
Zaustavlja proces koji bi trajao neprekidno:
� bezuslovno (trajna)
� uslovno –čeka: � for <vreme> - za neki period(u našem primeru)
� on <naziv signala> - na promenu nekog signala
� until <logički iskaz> - dok se ne ispuni neki logički uslov
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 18
Definisanje pobude i željenog odziva(2)4. wait
npr: ulaz<= “000”; wait for PropDelay;ulaz<= “001”; wait for PropDelay;ulaz<= “010”; wait for PropDelay;ulaz<= “011”; wait for PropDelay;ulaz<= “100”; wait for PropDelay;ulaz<= “101”; wait for PropDelay;ulaz<= “110”; wait for PropDelay;ulaz<= “111”; wait for PropDelay;
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 19
Definisanje pobude i željenog odziva(4)variable
Za process je rečeno je da unutar njega
� Nije moguće deklarisati signale,
� Dodeljivanje stvarnih vrednosti signalima obavlja se samo na kraju procesa,
� Signali ne mogu da se koriste za memorisanje privremenih rezultata (meñurezultata).
Mogućnosti process -a se povećavaju, uvoñenjem novog objekta koji se zove variable .
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 20
Definisanje pobude i željenog odziva(4)variable
može da se deklariše unutar procesa i da trenutno dobija novu vrednost, tako da omogućava pamćenje meñurezultata.
Promenljive tipavariable deklarišu se samo unutar procesa i to na sledeći način:
variable ime_promenljive:tip:=<vrednost >;
<vrednost > može da budeizraz
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 21
Definisanje pobude i željenog odziva(4)
Ime_Procesa : process
( Lista signala na koje je proces osetljiv )variable ime_promenljive : tip <vrednost> ;
begin.
.
.
end process Ime_Procesa ;
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 22
Definisanje pobude i željenog odziva(4)variable
dodeljivanje kod signala i promenljivesignal <= nova vrednostvariable := nova vrednost
Ukoliko su signali i variable istog tipa, njihove vrednosti mogu da se dodeljuju jedne drugima.
Variable imaju samo osobine tip i vednost. Ne može se reći da variabla dobija vrednost after xxs.
9. Verifikacija projekta – ( Test bench)
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
26.05.2011. 23
10. Tipovi kašnjenja
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
10. Tipovi kašnjenja
� Inerciono (kroz komponente)
� Transportno (kroz veze)
Realni model logičkih komponenata (primitiva) zahteva unošenje kašnjenja.
Koristi ćemo RISE/FALL model kašnjenja ( mogu i drugi modeli)
26.05.2011. 24
10. Tipovi kašnjenja
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
--Model DLatch (sekvencijalni)architecture DLatch of DLatch isbeginLatch: process (en, d) begin
if en = '1' then q <= d;
end if;end process Latch;
end DLatch;LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 36
a. Le č latch
Realizacija korišćenjem process-aNaredba if nije kompletirana sa else . Na ovaj način
upravo se ostvaruje funkcija memorisanja prethodnog stanja na izlazu.
Stanje na izlazu se ne menja (ukoliko nije došlo do promene signala dozvole en), čime se podrazumeva da postoji veza sa izlaza ka ulazu, preko koje se održava prethodno stanje na izlazu u svim ostalim slučajevima koji nisu obuhvaćeni if...then...else strukturom.
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 37
b. D flipflop
Za razliku od leča, D flip-flop je memorijski element koji je osetljiv na promenu ivice kontrolišućeg signala (CLK).
Q‘ označava prethodno stanje
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 38
b. D flipflop – Realizacija pomoću If...then naredbelibrary IEEE;useIEEE.STD_LOGIC_1164.all;entity dff is
port ( d: in STD_LOGIC;clk: in STD_LOGIC;q: out STD_LOGIC);
enddff;architecture rtlIf of dff isbegin
dffIf: process(clk)begin
if clk'event and clk ='1' thenq <= d;
end if;end processdffIf;
end rtlIf;LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
Umesto
if clk'event and clk ='1' then
može da stoji IEEE funkcija
wait until rising_edge(clk)
26.05.2011. 39
VHDL omogućava definisanje funkcija (function ).
Postoje i ugrañene funkcije u okviru standardnih paketa.
Tako paket std_logic_1164 u biblioteci ieeesadrži i funkcije za detekciju ivice: rising_edge i falling_edge koje mogu da se koriste za opis ponašanja DFF.
.
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 40
b. D flipflop sa direktnim (asinhronim)resetom
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 41
b. D flipflop sa direktnim resetom
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 42
b. D flipflop sa direktnim (sinhronim) resetom
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 43
b. D flipflop sa direktnim resetom
Sinhroni reset
R = ‘1’ ispituje se kao prvi u lancu. Kod If...then naredbi kada se pronañe ispunjen
uslov, ostali se ne ispituju! Ako se ne nañe ni jedan, izvršava se akcija iz else .
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 44
c. RS flipflop
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 45
c. RS flipflop
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 46
d. Dekoderi
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
end architecture; LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 50
d. Dekoderi case naredbaCase konstrukcija:
Ukoliko case nije kompletna, neće moći da se izvrši ni simulacija ni sinteza!
Svaki when iskaz mora da se pojavi samo jednom!
Da bi sinteza bila moguća, case mora biti lokalno statička, odnosno, vrednost signala se ne sme menjati u uslovu! Npr.
Nekorektno je: case uslov is
when uslov +1 => -- ne sme da se menja -- uslov u okviru case naredbe!
. . .
end case;
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 51
d. Dekoderi With...select
[ oznaka : ] with expression select
Ime_signala <= [ dodela_kasnjenja ]
{ vrednost1 when izbor1 { | ... } , }
vrednost2 when izbor2 { | ... } ;
Primermuxs: with sel select –- sel dvobitni signal
z <= d0 after 2 ns when "00",
d1 after 2 ns when "01",
d2 after 2 ns when "10",
d3 after 2 ns when "11";LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 52
d. Dekoderi With...select
architecture behavior of decoder_using_select isbegin
with (binary_in) selectdecoder_out <= "00000001" when "000",
"00000010" when "001","00000100" when "010","00001000" when "011","00010000" when "100","00100000" when "101","01000000" when "110","10000000" when "111","00000000" when others ;
end architecture ;
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
12. Opis osnovnih logičkih kola
26.05.2011. 53
d. Koderi
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/