VHDL (Very High Speed Integrated Circuits Hardware Description Language)
Simulacija projekta korišćenjem softvera MS Project 2003">Simulacija projekta
korišćenjem softvera MS Project 2003 - See more at: http://studenti.rs/?
s=simulacija+ra%C4%8Dunara&x=7&y=14#sthash.tz1Xmuhc.dpuf
Fakultet
tehnickih nauka
Katedra
elektroniku
za
Trg Dositeja Obradovica 6, 21000 Novi Sad, tel. 021/450-032, fax. 021/450-028
SKRIPTA ZA RACUNARSKE VEZBE IZ VHDL-a
Ivan Mezei i Rastislav Struharik
Novi Sad, oktobar 2006.
Racunarska elektronika - VHDL
2
Sadrzaj
UVOD........................................................................................................................................4
NIVOI MODELOVANJA I APSTRAKCIJE.......................................................................5
STRUKTURA VHDL PROGRAMA.....................................................................................7
Deklaracija entiteta.............................................................................................................................................................7
Definisanje arhitekture.......................................................................................................................................................9
Opis ponasanja.................................................................................................................. 9
Strukturalni opis..............................................................................................................11
Procesi..............................................................................................................................................................................12
SEKVENCIJALNE NAREDBE...........................................................................................13
IF NAREDBE...................................................................................................................................................................13
PRIMER 1........................................................................................................................15
Case naredbe.....................................................................................................................................................................15
PRIMER 2........................................................................................................................19
SIGNALI ILI PROMENLJIVE U PROCESIMA SINTEZE..........................................................................................20
PRIMER 3........................................................................................................................20
LEKSICKI ELEMENTI....................................................................................................... 22
Komentari.........................................................................................................................................................................22
IDENTIFIKATORI..........................................................................................................................................................22
REZERVISANE RECI....................................................................................................................................................23
Specijalni simboli.............................................................................................................................................................23
Brojevi..............................................................................................................................................................................24
Karakteri...........................................................................................................................................................................25
Stringovi...........................................................................................................................................................................25
Bit stringovi......................................................................................................................................................................26
KONSTANTE I PROMENLJIVE.......................................................................................27
DEKLARACIJE KONSTANTI I PROMENLJIVIH......................................................................................................27
Dodela vrednosti promenljivoj
(variable assignment)........................................................................................28
SKALARNI TIPOVI............................................................................................................. 29
Deklaracije tipova.............................................................................................................................................................29
Celobrojni TIPOVI...........................................................................................................................................................29
Floating_point TIPOVI (TIPOVI SA
pokretnim zarezom).........................................................................................31
FIZICKI TIPOVI..............................................................................................................................................................32
Time.................................................................................................................................34
Nabrojivi (enumerisani) TIPOVI.....................................................................................................................................34
Karakteri...........................................................................................................................................................................35
Boolean.............................................................................................................................................................................35
Bit tip................................................................................................................................................................................36
Standard logic...................................................................................................................................................................36
IZRAZI I OPERATORI....................................................................................................... 38

Racunarska elektronika - VHDL
4
Uvod
VHDL
(Very High Speed Integrated Circuits Hardware Description Language)
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 cemo 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 najvise koriste.
VHDL pocinje da se razvija krajem 70-ih i pocetkom 80-ih. Danas, VHDL predstavlja
jezik pomocu kojeg se mogu opisati veoma slozeni procesi, hardverske arhitekture itd. pa
kao takav predstavlja industrijski standard u ovoj oblasti. Razvoj VHDL-a kao standarda
je poceo 1986. kada je predlozen 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 (krace 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 podseca na
dobro poznate programske jezike (Pascal, C, C++ itd.), treba biti oprezan pri njegovom
razumevanju jer se on sustinski razlikuje. Osnovna razlika je u tome sto je VHDL u
sustini
paralelan
jezik, a ne samo strukturalan kao sto je recimo Pascal ili objektno
orijentisan kao sto je C++. Pod pojmom paralelan se podrazumeva da se elementi VHDL
programa u sustini izvrsavaju paralelno (konkurentno, istovremeno) jer VHDL nastoji da
opise fizicki sistem, najcesce, neki digitalni sistem. U strukturalnim programskim
jezicima program se izvrsava po principu “naredba po naredba” i na unapred predviden,
sekvencijalan, nacin. Digitalni sistemi gde recimo imamo vise ulaza u zavisnosti od kojih
se menja izlaz, nacin izvrsavanja VHDL programa koji opisuje takav sistem se znacajno
razlikuje i ne postoji pravilo po kojem se svaki program izvrsava, vec nacin izvrsavanja
zavisi od konkretnog programa. Kasniji primeri ce blize pojasniti nacin izvrsavanja
VHDL programa.
U realnim sistemima imamo odgovarajuca kasnjenja logickih kola i drugih elemenata
sistema, i njihovo modelovanje je omoguceno u VHDL-u. Dakle, pomocu VHDL-a je
moguce modelovanje veoma slozenih sistema i nivo dubine opisa hardvera i abstrakcije
zavisi iskljucivo od programera i njegove potrebe.
Racunarska elektronika - VHDL
5
Nivoi modelovanja i apstrakcije
Kao sto je u uvodu receno, VHDL predstavlja univerzalan jezik za razlicite primene u
procesima opisa, modelovanja, simulacije i sinteze hardvera.
Nivoi modelovanja najcesce se dele u tri grupe:
1)
Funkcionalni ili nivo ponasanja (
behavior
)
2)
Strukturalni
3)
Fizicki ili geometrijski
Ova podela nije striktna i razlikuje se u literaturi, ali sustina je slicna kod svih podela.
Nivoi modelovanja ujedno predstavljaju i nivoe abstrakcije. Pojam abstrakcije je poznat i
u strukturalnim programskim jezicima. Recimo, ako zelimo da uradimo mnozenje dva
broja to u C-u mozemo uraditi u jednom redu, iako se na konkretnom hardveru -
mikroprocesoru ta operacija izvrsava u vise perioda takta. Na taj nacin programer ne mora
detaljno da razmislja o konkretnom hardveru. Slicno, u VHDL-u sto je neki nivo po svom
opisu udaljeniji od konkretne hardverske implementacije to je njegov nivo abstrakcije
veci.
Prvi nivo opisuje ponasanje sistema i samim tim predstavlja najvisi nivo abstrakcije.
Drugi nivo modeluje strukturu sistema u smislu povezivanja pojedinih celina. Najnizi
nivo abstrakcije i najkonkretniji je fizicki nivo gde se programer moze spustiti do fizickog
nivoa - tranzistora, otpornika itd.
U okviru ovog kursa ce biti razmatrana samo prva dva nivoa, a konkretan nacin
implementacije hardvera ce biti prepusten softverskim alatima koji ce se koristiti.
Sledeci primer opisuje razlicite nivoe modelovanja i abstrakcije. Pretpostavimo da treba
da realizujemo mali elektronski digitalni sklop cija je funkcija da upozori vozaca 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 naseg sklopa) se aktivira samo ako je motor startovan i pri tome
vozac ili nije vezao pojas ili nije vrata nisu zatvorena (ovo je vec opis ponasanja, a koliko
smo daleko od konkretne implementacije!). Ovaj tekstualni zapis se moze zapisati i
algoritamski
(slika 1),
Bulovom algebrom
(slika 2), ili recimo
tablicno
(tabela 1), sto sve
predstavljaju podnivoe prvog nivoa - nivoa ponasanja. Ukoliko sistem prikazemo
crtanjem konkretnih logickih blokova i njih povezemo u cilju dobijanja zeljene funkcije
onda smo to uradili na strukturalnom nivou (slika 3).

Racunarska elektronika - VHDL
7
Struktura VHDL programa
VHDL programi se sastoje iz tri dela:
1)
deo za ukljucivanje biblioteka i paketa
2)
deo koji opisuje entitet (
entity
) i
3)
arhitekturnog dela
Za sada cemo razmatrati samo drugi i treci deo.
Drugi deo programa opisuje interfejs modula koji VHDL program opisuje. Dakle
interfejs prema spolja. Ako zamislimo da VHDL program opisuje ponasanje jedne
crne kutije, onda deo koji opisuje entitet u stvari opisuje spoljasnje tacke
(portove
)
preko kojih crna kutija komunicira sa spoljnim svetom. (slika 4)
Treci deo programa, arhitekturni deo, opisuje nacin funkcionisanja entiteta
definisanog u prvom delu. Arhitekturnih delova moze biti vise. Za sada cemo
podrazumevati da je samo jedan arhitekturni deo.
Deklaracija entiteta
Kako bi izgledala deklaracija entiteta za nas primer?
Slika 4:
Blok sema VHDL programa
— 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;
Na ovom primeru se vide neke od osobina
VHDL-a.
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti