14
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/

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

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

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/

Page 2: 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

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/

Page 3: 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

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/

Page 4: 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

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/

Page 5: 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

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/

Page 6: 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

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/

10. Tipovi kašnjenja� Inerciono (kroz komponente) - podrazumevano

(najčešće kao rise=tlh/fall=thl)

� Osobine:Kratkotrajni signali nemaju dovoljno energije da pr omene stanje- Ako je širina signala manja od kašnjenja, nema signala na izlazu

Page 7: 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

26.05.2011. 25

10. Tipovi kašnjenja

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

10. Tipovi kašnjenja

� Transportno (kroz veze)

Uvek se pojave na drugom kraju veze, ali sa zakašnjenjem

Specifični i mora da se naglasi u kôdu

klju čna reč transport

26.05.2011. 26

InertniA <= A after 10ns;

ZakasneliA <= transport A after 10ns;

Ako je kašnjnje manje od širine signala NEMA razlike

10. Tipovi kašnjenja

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

26.05.2011. 27

Kašnjenje prednje i zadnje ivice u opisu komponente definišemo preko opšte konstantegeneric koja se poziva u okviru entiteta.

S obzirom da je konstanta, navodi se na sličan način:constant <identifikator >:

<tip > := <vrednost >;generic (lista_konstanti);generic

( <identifikator >: <tip >:= <vrednost >,...

<identifikator >: <tip > := <vrednost > )

11. Modeli za verifikaciju

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

26.05.2011. 28

entity test is

generic ( k1 : integer:=5;

tlh: time := 5ns;

thl: time := 3ns;tlz, thz : time := 2ns;

default : std_logic :=‘1‘;

t_vect : std_logic_vector (3 downto 0) :=“0101“;

kontrola : bulean := false) ;

port ( i : in std_logic,

o : out std_logic);

end entity test;

.

11. Modeli za verifikaciju

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

Page 8: 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

26.05.2011. 29

Sve vrednosti mogu da se promene pri pozivu (instanciranju) entiteta.

U1: test

generic map( k1=>2 ,

tlh => 7ns,thl=> 4ns,tlz => 2ns,thz => 3ns,default=>‘1‘,t_vect =>“1111“,kontrola => true) –- nema ‘ ; ‘ ni ‘ , ‘

port map (i=> ulaz, o=>izlaz);

11. Modeli za verifikaciju

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

26.05.2011. 30

VHDL jezik za opis hardvera

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

Šta treba da znamo?Elementarno (za potpis)

Šta mora da sadrži test-bench?

Osnovna (za 6)

1. Kojim tipom opisa se definiše arhitektura testbench-a?

2. Tipovi kašnjenja u VHDLu.

19.05.2011.

26.05.2011. 31

VHDL jezik za opis hardvera

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

Šta treba da znamo?

Ispitna pitanjaa) Šta sadrži opis entiteta TestBench-a?b) Šta su i kako se definišu konstante

constant ?c) Šta su i kako se definišu promenljive

variable ?d) Šta je i kako se definiše naredba wait ?e) Koje je razlika izmeñu propagacionog i

transportnog kašnjenja?f) Čemu služe i kako se koriste opšte konstante

(generic ).19.05.2011. 26.05.2011. 32

Sledećeg časa

12. Opis osnovnih logičkih kolaa. Le č latch

b. D-flipflop

c. RS flipflop

d. Dekoderi

e. Koderi

9. Verifikacija projekta – ( Test bench)

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

Page 9: 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

26.05.2011. 33

a. Le č latch

b. D-flipflop

c. RS flipflop

d. Dekoderi

e. Koderi

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

12. Opis osnovnih logičkih kola

26.05.2011. 34

a. Le č latch

Leč je memorijski element koji je osetljiv na logički nivokontrolišućeg signala EN (enable) - a ne na ivicu,

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

12. Opis osnovnih logičkih kola

26.05.2011. 35

a.Le č latch - Realizacija korišćenjem process-alibrary IEEE;use IEEE.STD_LOGIC_1164.all;

entity D-Latch isport ( d: in STD_LOGIC;

en: in STD_LOGIC;q: out STD_LOGIC);

end D-Latch;

--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

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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/

12. Opis osnovnih logičkih kola

ulazni kod[2:0]

000 001 010 011 100 101 110 111

izlaz[7:0]

00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000

26.05.2011. 47

d. Dekoderi case naredba

Case konstrukcija:

[ oznaka : ] case (<select>) is

when izbor1 => <naredba1>;

when izbor2 => < naredba2 >;...when others => < naredba- n >;

-- najcesce nullend case [ oznaka : ] ;

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

12. Opis osnovnih logičkih kola

26.05.2011. 48

d. Dekoderi – Realizacija casenaredbomlibrary ieee;useieee.std_logic_1164.all;

entity decoder_using_case isport ( en :in std_logic;

binary_in :in std_logic_vector (2 downto 0);decoder_out:out std_logic_vector (7 downto 0));

end entity;

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

12. Opis osnovnih logičkih kola

Page 13: 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

26.05.2011. 49

architecture behavior of decoder_using_case isbegin

process (en, binary_in)begin

decoder_out <= "00000000";if (en = '1') then

case(binary_in) iswhen "000" => decoder_out <= "00000001";when "001" => decoder_out <= "00000010";when "010" => decoder_out <= "00000100";when "011" => decoder_out <= "00001000";when "100" => decoder_out <= "00010000";when "101" => decoder_out <= "00100000";when "110" => decoder_out <= "01000000";when "111" => decoder_out <= "10000000";

when others => null ;end case;

end if;end process;

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

Page 14: 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

26.05.2011. 53

d. Koderi

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

12. Opis osnovnih logičkih kola

ulaz[7:0]

00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000

izlazni kod[2:0]

000 001 0010 011 100 10 110 111

26.05.2011. 54

d. Koderi If...Then

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

12. Opis osnovnih logičkih kola

26.05.2011. 55

d. Koderi When

Sintaksa[ oznaka : ] ime_signala <= [ kasnjenje ]

{ vrednost when logicki_uslov else

.

.

.

vrednost when logicki_uslov else }

vrednost [ when ligicki_uslov ] ;

LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

12. Opis osnovnih logičkih kola

26.05.2011. 56

d. Koderi WhenPrimer

z <= d0 after 2 ns

when sel1 = ’0’ and sel0 = ’0’

else

d1 after 2 ns

when sel1 = ’0’ and sel0 = ’1’

else

d2 after 2 ns

when sel1 = ’1’ and sel0 = ’0’

else

d3 after 2 ns

when sel1 = ’1’ and sel0 = ’1’;LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/

12. Opis osnovnih logičkih kola