Professional Documents
Culture Documents
LPRS1 Tutorial3
LPRS1 Tutorial3
POKAZNA VEBA3
VHDL opisi kombinacionih i sekvencijalnih mrea
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.
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.
Konkatenacija se moe vriti i nad delovima signala koristei operator indeksiranja, kao i nad konstantama. Na
primer, ako napiemo sledee:
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.
<signalName><=<expression1>when<condition1>else
<expression2>when<condition2>else
...
<expressionN>when<conditionN>else
<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.
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
if(<condition1>) then
<statements>
elsif(<condition2>)then
<statements>
else
<statements>
end if;
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.
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
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 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
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.
5
Pokazna veba 3 VHDL opisi kombinacionih i sekvencijalnih mrea 2011/12
4. Zadaci
COUNTER
Kombinaciona SET
oCNT [7:0]
iEN D Q
mrea
FFs
CLR Q
iCLK
inRST
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