Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
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/
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
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/
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/
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
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/
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
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
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