опис vhdl j ik i h dvhdl jezik za opis...
TRANSCRIPT
VHDL jezik za opis hardvera
VHDL j ik i h dVHDL jezik za opis hardvera
Prof. Dr Predrag PetkovićDr Miljana MilićDr Miljana Milić
1
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
VHDL jezik za opis hardvera
Sadržajj8. Naš prvi projekat
• Структурни описру ур• Компоненте• БиблиотекеБиблиотеке
2
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(a) Naš prvi projekat
Zadatak:Projektovati kolo koje ako se na ulazeProjektovati kolo koje, ako se na ulazedovedu signali A, B i C, na izlazu dajesignal Y čija je vrednost specificirana usignal Y čija je vrednost specificirana uTabeli
3
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(b) Naš prvi projekat
Entitet:
4
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(c) Naš prvi projekat
Entitet:
5
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(d) Naš prvi projekat
Entitet:
6
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(e) Naš prvi projekat
Arhitektura Opis_Ponašanja:
7
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(e) Naš prvi projekat
Arhitektura Opis_Ponašanja:
8
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(f) Naš prvi projekat
Arhitektura:
9
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(d) Naš prvi projekat
Entitet:
10
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8(e) Naš prvi projekat
Arhitektura Opis_Ponašanja:
11
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Struktura if:
- koristi se da bi se ispitao određeni uslov pre izvršenja neke operacije (npr dodeljivanja);neke operacije (npr. dodeljivanja);- može da ispita višestruke uslove ako se koristi elsif
š d if- završava se sa end if- treba je kompletirati sa else kako bi se iscrple sve mogućnosti iz if lanca.
12
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Opis ponašanja
Projektovanje zasnovano na opisu ponašanja jednog entiteta, ne definiše način protoka podataka niti strukturu koladefiniše način protoka podataka niti strukturu kola.
Programi za automatsku sintezu na osnovu opisa ponašanja generišu hardvergenerišu hardver.
Zato je izuzetno važno da se stekne osećaj za to kakvu će i lik ij i ti j di db i dbi iimplikaciju imati pojedina naredba i grupa naredbi u opisu projekta.
Ovome ćemo posvetiti pažnju u nastavku kursa.
13
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Arhitrktura Data_flow
14
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Naredba when:
reč when (treba čitati „kada je“) definiše
uslove pod kojima Y uzima vrednost logičke jedinice dok rečuslove pod kojima Y uzima vrednost logičke jedinice, dok reč else („u ostalim slučajevima“) ukazuje na
vrednost koju Y dobija u ostalim slučajevimavrednost koju Y dobija u ostalim slučajevima.
Dodeljivanje vrednosti signalima (levom strelicom <= ) ukazuje na tok dodeljivanja podataka odakle potiče i nazivukazuje na tok dodeljivanja podataka, odakle potiče i naziv ovakvom načinu opisa.
Dodeljivanje vrednosti navodi se između jednostrukihDodeljivanje vrednosti navodi se između jednostrukih navodnika, s obzirom da se radi o tipu bit.
15
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Posle sinteze dobija se logička šema - strukturni dijagram
16
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Strukturni opis odgovara pisanju net liste kola čija je logička šema poznata. Podrazumeva se da je već izvršena dekompozicija projekta na osnovne funkcionalne blokove.Ovakav način opisivanja je nešto opširniji, po broju linija, ali je koristan jer projektantu pruža dovoljno informacija oali je koristan jer projektantu pruža dovoljno informacija o dekompoziciju hardvera kao i o vezama između pojedinih celina
17
celina.LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Strukturni opis P i i i b ki i i l ičk šPre nego se pristupi opisu, treba skicirati logičku šemu („ručna” logička sinteza željene funkcije).
18
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Arhitrktura Strukturni_opis
19
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Arhitrktura Strukturni_opis
20
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Arhitrktura Strukturni_opis
21
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Sve ove komponente moraju prethodno da se definišu kao entiteti sa arhitekturomse definišu kao entiteti sa arhitekturom.
j i č k jcomponent je rezervisana reč koja označava entitet sa pridruženom arhitekturom.
22
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
23
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
24
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Za opis glavnog projekta, potrebno je:
a opisati par entitet arhitektura za svaku budućua. opisati par entitet-arhitektura za svaku buduću komponentu (pre definisanja entiteta glavnog projekta),
b. proglasiti (deklarisati) odgovarajuće parove entitet-arhitektura komponentama u okviru arhitekture projekta p p ju kome će se koristiti (čime se omogućava njihova višestruka primena),p )
c. uneti ih (instancirati) u opis arhitekture projekta.
25
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
26
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
27
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
28
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Arhitrktura Strukturni_opis
29
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
30
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Arhitrktura Strukturni_opis
Par entitet-arhitektura za svaku komponentu navodi se pre definisanja komponente u kojoj se pozivaju.se pre definisanja komponente u kojoj se pozivaju.
Svakom paru entitet-arhitektura prethode posebne lib i i dblib ieee i use naredbe.
Komponente se instanciraju konkurentno u okviru p jarhitekture i nikada se ne smeštaju unutar procesa.
31
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Bibli t k LibBiblioteke LibraryBibl.1 Bibl.3Bibl.2
Paket 1 Paket Id ž
Paket Asadrž_1sadrž_2 ... sadržI
sadržIId ž
sadrž_asadrž_b
Sadrž_3 sadržIIISadrž_c
32
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
BibliotekeFizička implementacija biblioteka nije obuhvaćena p j jstandardom, tako da ih različiti alati drugačije realizuju,ne narušavajući njihovu osnovnu namenu. One se, ipak,ne narušavajući njihovu osnovnu namenu. One se, ipak, najčešće realizuju kao direktorijumi. Kao što smo do sada videli na primeru biblioteke IEEEKao što smo do sada videli na primeru biblioteke IEEE, one moraju da imaju jedinstveno ime. Biblioteke postaju dostupne (otvaraju se) naredbomdostupne (otvaraju se) naredbom.
library ieee;
33
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke
Pored ieee postoje i dve biblioteke koje su implicitnoPored ieee postoje i dve biblioteke koje su implicitno dostupne korisnicima bez navođenja.
To su std i work.
NE MORAJU DA SE OTVARAJU saNE MORAJU DA SE OTVARAJU sa
Library work/std
34
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke
U biblioteci std smešteni su podaci o tipovimaU biblioteci std smešteni su podaci o tipovima promenljivih i operatorima (and, or, not, i.td.) za promenljive tipa bit ili operatori relacija (=, <, >,promenljive tipa bit ili operatori relacija ( , <, >,i.td.).
Biblioteka work je podrazumevana (default) radna korisnička biblioteka u koju se smaštaju podaci o tekućem projektu.
35
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Bibli t k LibBiblioteke LibraryIEEE WORKstd
std_logic_1164 Naše celijeINV
...INVOR2AND2
36
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Bibli t k LibBiblioteke LibraryIEEE
std logic unsignedstd_logic_misc
std logic 1164std_logic_arith package
_ g _ g
std_logic_1164
različit sadržaj kod različitih distributeraKONSULTOVATI UPUTSTVO
37
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
KONSULTOVATI UPUTSTVO
14.05.2012.
8. Naš prvi projekat
Biblioteke Library IEEEBiblioteke Library IEEEstd_logic_1164:
definiše standardne tipove podatakadefiniše standardne tipove podatakastd_logic_arith:
aritmetičke funkcije i f-je za konverziju i poređenje j j j p jtipova signed, unsigned, integer,
std_ulogic, std_logic i std_logic_vectortd l i i dstd_logic_unsigned:
definiše operatore za unsigned tipstd logic misc:std_logic_misc:
definiše podtipove, konstante i funkcije za paketstd logic 1164.
38
_ g _LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Bibli t k Lib ć k i j tBiblioteke Library – moguće kreiranje sopstvene biblioteke PEK2012_Biblioteka
PEK2012 paket unsignedPEK2012__misc
PEK2012 paket 1PEK2012__arith
__p _ g
PEK2012__paket_1
39
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke Pristup biblioteci
Library Ime biblioteke;y _ ;Pristup sadržaju
I bibli t k i k t I d žiuse Ime_biblioteke.ime_paketa.Ime_sadržine;Primeri
Library IEEE;Pristup sadržajuPristup sadržaju
use IEEE.std_logic_1164.all;
40
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Bibli t kBiblioteke Dodavanje komponenata u bibliotekuVećina alata za sintezu podržava podelu projekta u više fajlova. jPrethodni primer bi mogao da se pojednostavi ukoliko se svaki od parova entitet-arhitektura za INV AND2 isvaki od parova entitet arhitektura za INV, AND2 iOR2 smesti u poseban fajl.
41
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke Dodavanje komponenata u bibliotekuBiblioteke Dodavanje komponenata u biblioteku
42
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
BibliotekeBiblioteke Ovo se ponovi za sve komponente.K jli j ( i t k i ) ih f jlKompajliranjem (proverom sintakse opisa) ovih fajlova, podaci o komponentama automatski se smeštaju uradnu biblioteku work. Oni postaju dostupni za projekat ako se pozovu naredbom p j p p j puse.
43
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
BibliotekeBiblioteke Za konkretan primer,i i tit t P i j k t t b tiiza opisa entiteta Prvi_projekat treba navesti
use work.inv;use work.and2;;use work.or2;
44
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
BibliotekeBiblioteke
Kao ranijeKao ranije
45
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
BibliotekeBiblioteke
Kao ranije
46
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
BibliotekeBiblioteke Ni ovaj način opisa ne deluje naročito efikasno.U liki j kti j lj liki b j k tU velikim projektima javlja se veliki broj komponenta na gejtovskom nivou. Najverovatnije će mnogi projekti koristiti istekomponente. Da bi se pojednostavio opis projekta preporučuje se korišćenje paketa u okviru biblioteke.j p
47
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
BibliotekeBiblioteke Paketi - packageP k t d t lj k d kl ij ( tit ti k jiPaket predstavlja skup deklaracija (entiteti kojima su dodeljene odgovarajuće arhitekture) kojima može da se
i t i k išć j i kpristupi korišćenjem iskaza use. Pretpostavimo da želimo da deklaracije svih komponenta na najnižem nivou smestimo u paket koji hoćemo da nazovemo nase_celije, a nalazi se u work biblioteci.
48
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke - paketiBiblioteke paketi
P t t lj j ći d i tit t hit kt ćPretpostavljajući da se parovi entitet-arhitektura već nalaze u posebnim fajlovima za sve komponente, tada
b f jl j d k t ( k )se u posebnom fajlu, u jednom paketu (package), deklarišu sve primitive (za sada ih imamo tri)
49
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke - paketiBiblioteke paketi
50
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke - paketiBiblioteke paketi Time se automatski dodao paket WORKNase_celijeu biblioteci work
WORK
Naše celijeNaše celijeINVOR2AND2AND2
51
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke - paketiBiblioteke paketi Da bi sadržaj paketa mogao da se koristi, mora da se iskompajlira pre kompajliranja glavnog projektaiskompajlira pre kompajliranja glavnog projekta.
Najčešći oblik iskaza use pri sintezi je:use <ime biblioteke>.<ime paketa>.<ime komponente>;
52
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Biblioteke - paketiBiblioteke paketi use work.nase_celije.inv;
k lij d2use work.nase_celije.and2;use work.nase_celije.or2;Dabi se pojednostavio poziv komponenata, može se koristitibi se pojednostavio poziv komponenata, može se koristiti i kraći oblik:use work nase celije all;use work.nase_celije.all;
53
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
54
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
55
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Kao ranije
56
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
1. sadržaj biblioteke primitiva postaje dostupan posle iskaza usena početku opisa;
2. korisnička biblioteka work ne zahteva otvaranje sa library;3. sadržaj biblioteke koja je „otvorena“ sa library i use važi
samo za projektnu celinu koja senalazi neposredno iza ovih iskaza (kada se u istom fajlu nalazi opis više parova entitetiskaza (kada se u istom fajlu nalazi opis više parova entitet-arhitektura, svaki mora da ima svoje referenciranje na biblioteku i pakete,;pa e e,;
4. za razliku od portova koji su sastavni deo opisa entiteta, lokalni signali se deklarišu u okviru arhitekture;g
5. prilikom instanciranja, svakoj komponenti dodeljuje se jedinstvena oznaka.
57
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Konfigurisanje komponenataP d t št t ji ć t d j d k tPored toga što postoji mogućnost da se jedna komponenta
instancira više puta, VHDL dopušta projektantu da k fi iš ( fi ti ) k d jih d čijikonfiguriše (configuration) svaku od njih na drugačiji način. d k fi ij d d d l k kPod konfiguracijom se podrazumeva dodela konkretne arhitekture istom entitetu.
Podsećamo da jedan entitet može da ima više arhitektura. Konfiguracija ima smisla kada se radi o simulaciji, jer ovu opciju ne podržavaju svi alati za automatsku sintezu. Umesto toga, oni koriste jednu
58
podrazumevanu (default) arhitekturu.LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
Konfigurisanje komponenataR ličiti i t i i k t i t ti dRazličitim instanciranim komponentama istog tipa mogu, da
se dodele različite arhitekture. O ć bl k dbi čijOvo se omogućava blokom naredbi configuration čija
je sintaksa:configuration <identifikator> of
<ime entiteta> is for <ime arhitekture>.. -- telo konfiguracionog bloka.
end configuration identifikator;
59
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
60
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
61
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
8. Naš prvi projekat
62
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
VHDL jezik za opis hardvera
Šta treba da znamo?Elementarno (za potpis)Razlika između strukturnog i opisa ponašanja?g p p j
Osnovna (za 6)1 K k i t bibli t i i k t ?1. Kako se pristupa biblioteci i paketu?2. Čime/kako se definiše komponenta?
63
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
VHDL jezik za opis hardvera
Šta treba da znamo?
Ispitna pitanja) P i f k i l ia) Primer funkcionalnog opisa
b) Primer instanciranja komponente c) Sadržaj radne work i std bibliotekec) Sadržaj radne work i std biblioteked) Šta sadrži ieee biblioteka?e) Kako se kreira komponenta?e) Kako se kreira komponenta?f) Kako se kreira biblioteka?g) Kako se kreira paket?g) p
64
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/14.05.2012.
VHDL jezik za opis hardvera
Sledećeg časaVerifikacija prijekta (Test Bench)Verifikacija prijekta (Test Bench)
•Vremenska funkcija (after)•Konstanta (constant)Č k j ( it)•Čekanje (wait)
•Upozorenje (assert)•Zapis (record); •Polje (array); •Petlja (loop);•Promenljive (variable); •Zapisivanje u fajl (write i writeline); •Vremenska funkcija (now) •Čitanje iz fajla (read i readline);Čitanje i fajla ( ead ead e);
Литература:П. Петковић, М. Милић, Д. Мирковић, VHDL i VHDL-AMS подршка пројектовању електронских кола и система Поглавље 2 VHDL кôд
65
LEDA - Laboratory for Electronic Design Automation http://leda.elfak.ni.ac.yu/
пројектовању електронских кола и система, Поглавље 2 VHDL кôд прилагођен синтези, стр. (34-54)
14.05.2012.