опис VHDL j ik i h dVHDL jezik za opis...

17
VHDL jezik za opis hardvera VHDL j ik ih d VHDL 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žaj 8. 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 ulaze Projektovati kolo koje, ako se na ulaze dovedu signali A, B i C, na izlazu daje signal Y čija je vrednost specificirana u signal Y čija je vrednost specificirana u Tabeli 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.

Transcript of опис VHDL j ik i h dVHDL jezik za opis...

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.