Računarska elektrotehnika – VHDL
Fakultet
tehničkih nauka
+
_
Katedra
za
elektroniku
Trg Dositeja Obradovića 6, 21000 Novi Sad, tel. 021/450-032, fax. 021/450-028
SKRIPTA ZA RAČUNARSKE VEŽBE IZ VHDL-a
Ivan Mezei i Rastislav Struharik
Novi Sad, oktobar 2006.
Računarska elektronika – VHDL
2
Sadržaj
UVOD ...............................................................................................................................4
NIVOI MODELOVANJA I APSTRAKCIJE.................................................................5
STRUKTURA VHDL PROGRAMA ..............................................................................7
D
EKLARACIJA ENTITETA
.................................................................................................7
D
EFINISANJE ARHITEKTURE
.............................................................................................9
Opis ponašanja ..........................................................................................................9
Strukturalni opis.......................................................................................................11
P
ROCESI
.......................................................................................................................12
SEKVENCIJALNE NAREDBE....................................................................................13
I
F NAREDBE
..................................................................................................................13
PRIMER 1................................................................................................................15
C
ASE NAREDBE
.............................................................................................................15
PRIMER 2................................................................................................................19
S
IGNALI ILI PROMENLJIVE U PROCESIMA SINTEZE
...........................................................20
PRIMER 3................................................................................................................20
LEKSIČKI ELEMENTI................................................................................................22
K
OMENTARI
..................................................................................................................22
I
DENTIFIKATORI
............................................................................................................22
R
EZERVISANE REČI
.......................................................................................................23
S
PECIJALNI SIMBOLI
......................................................................................................23
B
ROJEVI
.......................................................................................................................24
K
ARAKTERI
..................................................................................................................25
S
TRINGOVI
....................................................................................................................25
B
IT STRINGOVI
..............................................................................................................26
KONSTANTE I PROMENLJIVE ................................................................................27
D
EKLARACIJE KONSTANTI I PROMENLJIVIH
....................................................................27
D
ODELA VREDNOSTI PROMENLJIVOJ
(
VARIABLE ASSIGNMENT
) .......................................28
SKALARNI TIPOVI .....................................................................................................29
D
EKLARACIJE TIPOVA
...................................................................................................29
C
ELOBROJNI TIPOVI
.......................................................................................................29
F
LOATING
_
POINT TIPOVI
(
TIPOVI SA POKRETNIM ZAREZOM
) ...........................................31
F
IZIČKI TIPOVI
..............................................................................................................32
Time .........................................................................................................................34
N
ABROJIVI
(
ENUMERISANI
)
TIPOVI
.................................................................................34
K
ARAKTERI
..................................................................................................................35
B
OOLEAN
.....................................................................................................................35
B
IT TIP
..........................................................................................................................36
S
TANDARD LOGIC
.........................................................................................................36
IZRAZI I OPERATORI ................................................................................................38

Računarska elektronika – VHDL
4
Uvod
VHDL (
V
ery High Speed Integrated Circuits
H
ardware
D
escription
L
anguage
)
predstavlja programski jezik koji se koristi za opis hardvera. Koristi se za simulaciju i za
sintezu hardvera i to su dve oblasti primene VHDL-a kojima ćemo se baviti u okviru ovog
dela kursa.
Osim VHDL-a, u upotrebi su i Verilog, AHDL, ABEL, Cupl i drugi programski jezici u
ovoj oblasti, ali se VHDL i Verilog najviše koriste.
VHDL počinje da se razvija krajem 70-ih i početkom 80-ih. Danas, VHDL predstavlja
jezik pomoću kojeg se mogu opisati veoma složeni procesi, hardverske arhitekture itd. pa
kao takav predstavlja industrijski standard u ovoj oblasti. Razvoj VHDL-a kao standarda je
počeo 1986. kada je predložen prvi IEEE standard. Posle nekoliko revizija, u decembru
1987. je usvojen IEEE 1076 standard. Ovaj standard je 1993. imao reviziju, tako da je
danas uglavnom u upotrebi IEEE 1076-1993 standard (kraće VHDL93) iako je i posle toga
nastavljan razvoj na ovom standardu (poslednja revizija je bila 2002).
Iako VHDL predstavlja programski jezik i po elementima sintakse veoma podseća na
dobro poznate programske jezike (Pascal, C, C++ itd.), treba biti oprezan pri njegovom
razumevanju jer se on suštinski razlikuje. Osnovna razlika je u tome što je VHDL u suštini
paralelan
jezik, a ne samo strukturalan kao što je recimo Pascal ili objektno orijentisan kao
što je C++. Pod pojmom paralelan se podrazumeva da se elementi VHDL programa u
suštini izvršavaju paralelno (konkurentno, istovremeno) jer VHDL nastoji da opiše fizički
sistem, najčešće, neki digitalni sistem. U strukturalnim programskim jezicima program se
izvršava po principu “naredba po naredba” i na unapred predviđen, sekvencijalan, način.
Digitalni sistemi gde recimo imamo više ulaza u zavisnosti od kojih se menja izlaz, način
izvršavanja VHDL programa koji opisuje takav sistem se značajno razlikuje i ne postoji
pravilo po kojem se svaki program izvršava, već način izvršavanja zavisi od konkretnog
programa. Kasniji primeri će bliže pojasniti način izvršavanja VHDL programa.
U realnim sistemima imamo odgovarajuća kašnjenja logičkih kola i drugih elemenata
sistema, i njihovo modelovanje je omogućeno u VHDL-u. Dakle, pomoću VHDL-a je
moguće modelovanje veoma složenih sistema i nivo dubine opisa hardvera i abstrakcije
zavisi isključivo od programera i njegove potrebe.
Računarska elektronika – VHDL
5
Nivoi modelovanja i apstrakcije
Kao što je u uvodu rečeno, VHDL predstavlja univerzalan jezik za različite primene u
procesima opisa, modelovanja, simulacije i sinteze hardvera.
Nivoi modelovanja najčešće se dele u tri grupe:
1)
Funkcionalni ili nivo ponašanja (
behavior
)
2)
Strukturalni
3)
Fizički ili geometrijski
Ova podela nije striktna i razlikuje se u literaturi, ali suština je slična kod svih podela.
Nivoi modelovanja ujedno predstavljaju i nivoe abstrakcije. Pojam abstrakcije je poznat i u
strukturalnim programskim jezicima. Recimo, ako želimo da uradimo množenje dva broja
to u C-u možemo uraditi u jednom redu, iako se na konkretnom hardveru – mikroprocesoru
ta operacija izvršava u više perioda takta. Na taj način programer ne mora detaljno da
razmišlja o konkretnom hardveru. Slično, u VHDL-u što je neki nivo po svom opisu
udaljeniji od konkretne hardverske implementacije to je njegov nivo abstrakcije veći.
Prvi nivo opisuje ponašanje sistema i samim tim predstavlja najviši nivo abstrakcije. Drugi
nivo modeluje strukturu sistema u smislu povezivanja pojedinih celina. Najniži nivo
abstrakcije i najkonkretniji je fizički nivo gde se programer može spustiti do fizičkog nivoa
– tranzistora, otpornika itd.
U okviru ovog kursa će biti razmatrana samo prva dva nivoa, a konkretan način
implementacije hardvera će biti prepušten softverskim alatima koji će se koristiti.
Sledeći primer opisuje različite nivoe modelovanja i abstrakcije. Pretpostavimo da treba da
realizujemo mali elektronski digitalni sklop čija je funkcija da upozori vozača u
automobilu da nije vezao pojas ili da su vrata otvorena. Ulazi u ovaj digitalni sistem su:
stanje motora (startovan ili ne), stanje vrata (otvorena ili ne) i stanje pojasa (vezan ili ne).
Dakle upozorenje (izlaz našeg sklopa) se aktivira samo ako je motor startovan i pri tome
vozač ili nije vezao pojas ili nije vrata nisu zatvorena (ovo je već opis ponašanja, a koliko
smo daleko od konkretne implementacije!). Ovaj tekstualni zapis se može zapisati i
algoritamski
(slika 1),
Bulovom algebrom
(slika 2), ili recimo
tablično
(tabela 1), što sve
predstavljaju podnivoe prvog nivoa - nivoa ponašanja. Ukoliko sistem prikažemo crtanjem
konkretnih logičkih blokova i njih povežemo u cilju dobijanja željene funkcije onda smo to
uradili na strukturalnom nivou (slika 3).

Računarska elektronika – VHDL
7
Struktura VHDL programa
VHDL programi se sastoje iz tri dela:
1)
deo za uključivanje biblioteka i paketa
2)
deo koji opisuje entitet (
entity
) i
3)
arhitekturnog dela
Za sada ćemo razmatrati samo drugi i treći deo.
Drugi deo programa opisuje interfejs modula koji VHDL program opisuje. Dakle interfejs
prema spolja. Ako zamislimo da VHDL program opisuje ponašanje jedne crne kutije, onda
deo koji opisuje entitet u stvari opisuje spoljašnje tačke (
portove
) preko kojih crna kutija
komunicira sa spoljnim svetom. (slika 4)
Treći deo programa, arhitekturni deo, opisuje način funkcionisanja entiteta definisanog u
prvom delu. Arhitekturnih delova može biti više. Za sada ćemo podrazumevati da je samo
jedan arhitekturni deo.
Slika 4:
Blok šema VHDL programa
Deklaracija entiteta
Kako bi izgledala deklaracija entiteta za naš primer?
Na ovom primeru se vide neke od osobina VHDL-a.
deklaracija
entiteta
(interfejs)
telo
(arhitektura)
portovi
--
primer deklaracije eniteta
entity
ALARM
is
port
(VRATA
:
in
std_logic;
POJAS
:
in
std_logic;
MOTOR
:
in
std_logic;
UPOZORENJE :
out
std_logic);
end entity
ALARM;
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti