You are on page 1of 6

Pokazna veba 3 VHDL opisi kombinacionih i sekvencijalnih mrea 2011/12

POKAZNA VEBA3
VHDL opisi kombinacionih i sekvencijalnih mrea

1. VHDL opis kombinacionih mrea


VHDL jezik omoguuje nekoliko naina za opis kombinacionih mrea, koji su krai i itljiviji od opisa na nivou
logikih kola. Ovi opisi podseaju na opis programske podrke poto koriste iste ili sline konstrukte.
Kombinacione mree se u VHDL jeziku mogu opisati sledeim nainima:

Dodelom vrednosti signalu na nivou logikih kola (nain koji smo koristili u prethodnim vebama),
Dodelom vrednosti signalu pomou ostalih VHDL operatora,
Uslovnom dodelom vrednosti signalu,
Pomou kombinacionih procesa.

1.1. Dodela vrednosti


Signalu se u VHDL jeziku vrednost moe dodeliti pomou operatora <= .

Na nivou logikih kola vrednost signala se definie navodei logiki izraz sa desne strane, koristei VHDL
logike operatore not, and, or, xor, nand, nor, xnor, kao to smo radili u prethodnim vebama.

Prilikom definisanja (dodele) vrednosti nekom signalu, mogu se koristiti i ostali VHDL operatori. Trenutno je za
nas najzanimljiviji operator konkatenacije(&). Operator konkatenacije omoguuje da signalu dodelimo vrednost
kombinacije nekih drugih signala. Na primer, ako pretpostavimo da je signal C 8-bitni, a signali A i B 4-bitni, tada
ako napiemo sledee:

C <= A & B;

signal C e dobiti vrednost koja se dobije spajanjem signala A i B. Viih 4 bita signala C e dobiti vrednost
signala A, a niih 4 bita signala C e dobiti vrednost signala B. Konkatenacija se moe posmatrati i kao davanje
novog imena skupu ica. Posmatrajui Sliku 1-1, ako signal A predstavlja gornje 4 ice, a signal B predstavlja donje
4 ice (svaka ica prenosi 1 bit, signali su 4-bitni), tada gornja konkatenacija znai da ovih 8 ica posmatramo kao
jedinstveni signal C. Konkatenacija ne definie nove komponente u digitalnom sistemu, ve samo postojeim
icama iz drugih signala daje novo ime i posmatra kao novu celinu.

Slika 1-1. Konkatenacija signala A i B u signal C

Konkatenacija se moe vriti i nad delovima signala koristei operator indeksiranja, kao i nad konstantama. Na
primer, ako napiemo sledee:

C <= 1 & A(1 downto 0) & B(3 downto 2) & 00;

definiemo signal C irine 7 bita, i tojednog bita vrednosti konstante'1', dva bita iz signala A, dva bita iz signala
B i dva bita vrednosti konstante'0'.

1
Pokazna veba 3 VHDL opisi kombinacionih i sekvencijalnih mrea 2011/12

Za kompletan spisak VHDL aritmetikih operatora preporuujemo da konsultujete udbenik i naredne vebe,
jer oni izlaze izvan opsega ove vebe.

1.2. Uslovna dodela vrednosti


Uslovna dodela se koristi da bi se opisala kombinaciona logika tipa IF-THEN-ELSE. Kako bi se skratio VHDL
opis, VHDL ne zahteva da se ovakvalogikaopisujenanivoulogikih kola, veza to
postojiposebnakonstrukcijaprilikomdodelesignala. Sintaksa uslovne dodele je data u Listingu 1-1.

Listing 1-1. Sintaksa uslovne dodele u VHDL-u

<signalName><=<expression1>when<condition1>else
<expression2>when<condition2>else
...
<expressionN>when<conditionN>else
<expressionDefault>;

Signal <signalName>dobija vrednost <expression1>ukoliko je ispunjen uslov <condition1>, u


suprotnom dobija vrednost <expression2> ukoliko je ispunjen uslov <condition2>, itd. Ukoliko nijedan od
uslova nije ispunjen, signal dobija vrednost <expressionDefault>.

Vrednosti sa desne strane se mogu definisati pomou VHDL operatora kao u prethodnoj sekciji, a za
definisanje uslova mogu se koristiti VHDL relacioni operatori jednakosti, nejednakosti i poreenja.

1.3. Kombinacioni procesi


Sem pomou operatora dodele vrednosti, kojim se definie vrednost izlaza kombinacione mree na osnovu
vrednosti ulaza, kombinaciona mrea se moe opisati i pomou kombinacionog procesa. Listing 1-2 prikazuje
sintaksu za VHDL opis kombinacione mree pomou procesa.

Listing 1-2. Sintaksa VHDL kombinacionog procesa

process(<sensitivityList>)begin
<processBody>
end process;

Unutar zagrada u prvoj liniji procesa definie se lista osetljivosti procesa. Lista osetljivosti slui alatu za
simulaciju kako bi znao kada komponenta (kombinaciona mrea) koja se opisuje procesom moe da promeni
izlaznu vrednost. Prema osobinama kombinacione mree, promena izlazne vrednosti se moe desiti prilikom
promene bilo kog od ulaza, poto izlaz uvek predstavlja funkciju trenutnih vrednosti ulaza. Dakle, u listi osetljivosti
kombinacionog procesa treba da budu navedeni svi ulazi kombinacione mree koja se procesom opisuje, odvojeni
zarezom.

Telo procesa sadri opis kombinacione mree. Svim izlazima kombinacione mree treba da se dodeli vrednost.
Za tu svrhu se moe koristiti operator dodele, ali i VHDL konstrukcije koje se mogu koristiti samo u procesima, a
najee koritene su uslovne konstrukcije IF i CASE. Listing 1-3 i Listing 1-4 prikazuju sintaksu ovih konstrukcija.

2
Pokazna veba 3 VHDL opisi kombinacionih i sekvencijalnih mrea 2011/12

Listing 1-3. Sintaksa IF strukture

if(<condition1>) then
<statements>
elsif(<condition2>)then
<statements>
else
<statements>
end if;

Listing 1-4. Sintaksa CASE strukture

case (<signalName>) is
when <value1> =><statements>
when <value2> =><statements>
...
when <valueN> =><statements>
when others =><statements>
end case;

IF i CASE struktura imaju istu logiku kao i u programskim jezicima. Samo iskazi koji su u delu strukture za koju
je uslov zadovoljen e definisati ponaanje izlaza kombinacione mree.

Prilikom definisanja kombinacionih mrea pomou procesa koji sadre IF i CASE, neophodno je definisati
svaki izlaz u svakoj grani IF i CASE strukture. U suprotnom kombinaciona mrea je nedovoljno definisana i
rezultovae loim digitalnim sistemom. Takoe treba izbegavati paralelne IF i CASE strukture poto svaki izlaz
definie jedna logika funkcija, a svaka IF i CASE struktura predstavlja razliitu logiku funkciju.

Za spisak ostalih struktura koje se mogu nai u telu procesa preporuujemo da konsultujete udbenik i
internet, poto oni izlaze van opsega ove vebe.

1.4. Koja je razlika ranijih naina opisivanja?


Naveli smo dva pristupa opisivanju kombinacionih mrea pomou operatora dodele (to se jo naziva i
konkurentnim iskazom) i pomou kombinacionih procesa. Izmeu navedenih naina opisivanja kombinacionih
mrea nema razlike, odn. oba naina rezultuju istom kombinacionom mreom. Procesi imaju vie podranih
konstrukcija, a dodele su u najveem broju sluajeva krae i ne zahtevaju listu osetljivosti. Da li ete koristiti
dodele ili procese ostaje na vama i vaim preferencama.

2. Zadaci
2.1. Dekoder
Opisati dekoder iz prethodne dve vebe pomou uslovne dodele i procesa.

2.2. Multiplekser
Opisati multiplekser iz prethodne dve vebe pomou uslovne dodele i procesa.

3
Pokazna veba 3 VHDL opisi kombinacionih i sekvencijalnih mrea 2011/12

3. VHDL opis sekvencijalnih mrea


U pokaznoj vebi 1 smo priali o prostoru Bulove algebre i logikim kolima za realizaciju Bulovih funkcija.
Pokazali smo da se sve Bulove funkcije mogu izraunati pomou samo nekoliko tipova logikih kola, a da je
raunanje u prostoru Bulove algebre matematiki dovoljno za realizaciju i najsloenijih raunanja unutar
digitalnog sistema. No, bilo kakva raunanja unutar digitalnog sistema nemaju smisla ukoliko se rezultat tih
raunanja nigde ne zapamti. Kombinacione mree sa kojima smo do sada radili imaju jedino mogunost raunanja
izlaza na osnovu trenutnih vrednosti ulaza, no nemaju nikakvu mogunost pamenja izraunate vrednosti.

Kako bi se rezultat raunanja zapamtio, treba da se iskoristi komponenta koja ima mogunost memorisanja
jednog od dva stanja logike nule i jedinice. Jedna od takvih komponenti se naziva flip-flop. Flip-flop spada u tzv.
bistabilne komponente, odn. komponente koje imaju dva stabilna stanja. Ta dva stanja se koriste za memorisanje
logike nule i jedinice. Flip-flop je komponenta osetljiva na signal takta. Prilikom rastue ili opadajue ivice signala
takta, flip-flop pamti vrednost koja se nalazi na ulazu i uva je do naredne rastue ili opadajue ivice takta. Izlaz
flip-flopa je trenutna sauvana vrednost unutar njega. Signal reseta postavlja flip-flop na vrednost logike nule.

Kada se flip-flop povee na izlaz kombinacione mree, omoguava se pamenje vrednosti koju izrauna
kombinaciona mrea. To pamenje traje onoliko koliko traje vreme izmeu dve ivice takta na koju je osetljiv flip-
flop. Prilikom svake nove ivice takta, pamti se nova vrednost koja se nalazi na izlazu kombinacione mree. Slika
3-1 prikazuje nain povezivanja kombinacione mree sa flip-flopom.

Kombinaciona SET
Ulazi D Q
mrea

CLR Q
CLK
RST

Slika 3-1.Osnovna komponenta sekvencijalnih mrea

Slika 3-1 prikazuje osnovnu komponentu sekvencijalnih mrea, a to su digitalni sistemi koji imaju u sebi
komponente za memorisanje vrednosti rezultata Bulovih funkcija. Sekvencijalne mree imaju dva specijalna ulaza
takt(CLK) i reset(RST) koji se vezuju na takt i reset ulaze flip-flopova unutar sekvencijalne mree. Na ulazu u svaki
flip-flop kombinaciona mrea vri raunanje koje se u datom flip-flopu pamti, a sem ulaza iz ostatka sistema, ulaz
kombinacione mree moe da bude i trenutna zapamena vrednost u flip-flopu (tada se kae da postoji povratna
sprega, odn. feedback).

Sekvencijalne mree su dobile takav naziv zbog toga to, uvodei komponente za memorisanje i signal takta, u
digitalni sistem uvode sekvencijalnost ponaanja. Naime, ako trenutne vrednosti unutar flip-flopova zajedno ine
stanje digitalnog sistema, sistem menja stanje samo na ivici takta i to redom, sekvencijalno, jedan takt za drugim.

Neke od standardnih sekvencijalnih mrea su: registri i brojai. Registri su nizovi flip-flopova koji se
posmatraju kao jedna celina i najee se povezuju na jednu kombinacionu mreu koja definie ulaze u sve flip-
flopove, viebitnim signalom.

4
Pokazna veba 3 VHDL opisi kombinacionih i sekvencijalnih mrea 2011/12

3.1. Sekvencijalni procesi


U VHDL jeziku za opis digitalnih sistema, sekvencijalne mree se mogu opisati iskljuivo pomou
sekvencijalnog procesa. Unutar liste osetljivosti sekvencijalnog procesa mogu da se nalaze samo takt i reset. Ivice
takta su jedini vremenski trenuci u kojima se stanje sekvencijalne mree, odn. vrednosti u flip-flopovima, mogu
promeniti. Reset signal moe biti asinhroni ili sinhron sa taktom. Asinhroni reset postavlja flip-flopove na logiku
nulu asinhrono sa taktom, odn. u bilo kom vremenskom trunutku kada se pojavi. Asinhroni reset treba da bude
takoe u listi osetljivosti. Sinhroni reset postavlja flip-flopove na logiku nulu jedino na ivici takta, dakle ita se
kao i svaki drugi signal. Sinhroni reset se ne vezuje na reset ulaze flip-flopova i ponaa se kao i svaki drugi ulaz, i
kao takav se ne stavlja u listu osetljivosti.Listing 3-1 pokazuje osnovni oblik sekvencijalnog procesa sa asinhronim,
a Listing 3-2 osnovni oblik sekvencijalnog procesa sa sinhronim resetom.

Listing 3-1.Primer sekvencijalnog procesa sa asinhronim resetom

process (iCLK, inRST) begin


if(inRST = '0') then
sREG <=<pocetna_vrednost>;
elsif (iCLK'event and iCLK = '1') then
<opis_kombinacione_mreze>
end if;
end process;

Listing 3-2. Primer sekvencijalnog procesa sa sinhronim resetom

process (iCLK) begin


if (iCLK'event and iCLK = '1') then
if(inRST = '0') then
sREG <=<pocetna_vrednost>;
else
<opis_kombinacione_mreze>
end if;
end if;
end process;

Listinzi podrazumevaju da se signal takta zove iCLK, signal reseta inRST, da je reset aktivan na niskom
logikom nivou, da je takt aktivan na rastuoj ivici i da se signal u koji se smeta vrednost kombinacione mree
naziva sREG. Flip-flopovi odn. registri se u VHDL jeziku definiu unutar arhitekture, pomou signal deklaracije, isto
kao i ice unutar sistema.

Standardne kombinacione mree (dekoder, koder, multilekser, demultiplekser, pomera, komparator,


sabira) i standardne sekvencijalne mree (registar, broja) su komponente koje emo u narednim vebama
koristiti pri projektovanje sloenijih digitalnih sistema. Potrebno je da znate njihov nain rada i njihove opise u
VHDL jeziku kako bi mogli da ih koristite u sloenijim zadacima. Pomou njih emo u narednim vebama
projektovati razne digitalne sisteme: automate, sisteme za rad sa LED diodama, prekidaima, tasterima, LCD
ekranom, a videemo i kako se pomou njih moe projektovati jednostavan procesor.

5
Pokazna veba 3 VHDL opisi kombinacionih i sekvencijalnih mrea 2011/12

4. Zadaci

4.1. Broja sa dozvolom brojanja


U VHDL jeziku opisati 8-bitni broja sa dozvolom brojanja sa Slike 4-1. Broja treba da uveava vrednost za 1
kada je ulaz iEN na logikoj jedinici, a u suprotnom da ne menja vrednost.

COUNTER

Kombinaciona SET
oCNT [7:0]
iEN D Q
mrea
FFs
CLR Q
iCLK
inRST

Slika 4-1. Broja sa dozvolom brojanja

4.2. Pomeraki registar


U VHDL jeziku opisati 8-bitni pomeraki registarsa dozvolom pomeranja i upisa sa Slike 4-2. Ulaz iLOAD
predstavlja dozvolu upisa u registar, i kada je on na logikoj jedinici, ulaz iDATA se smeta u registar. Ukoliko je
ulaz iLOAD na logikoj nuli, registar treba da se pomera u zavisnosti od kontrolnih ulaza iSHL, iSHR i iARITH i to po
sledeim pravilima:

Ako je ulaz iSHL na logikoj jedinici, a ulaz iSHR na logikoj nuli, pomera se za 1 mesto u levo,
Ako je ulaz iSHR na logikoj jedinici, a ulaz iSHL na logikoj nuli, pomera se za 1 mesto u desno,
Ako su ulazi iSHL i iSHR na istoj logikoj vrednosti, registar se ne pomera.

Ulaz iARITH definie da li je pomeranje aritmetiko ili logiko, odn. ako je ulaz iARITH na logikoj jedinici
pomeranje treba da bude aritmetiko, a u suprotnom logiko.

SHIFT REG

iARITH
iLOAD
Kombinaciona SET
oSHREG [7:0]
iDATA [7:0] D Q
mrea
iSHL
FFs
iSHR
CLR Q
iCLK
inRST

Slika 4-2. Pomeraki registar

You might also like