VHDL jezik za opis hardvera VHDL jezik za opis hardvera VHDL jezik za opis hardvera Prof. Dr Predrag Petković Dr Miljana Milić Sadržaj 1. Šta je VHDL? 2. Opis hardvera 3. Signali 4. Osnove VHDL pravopisa 5. Opis osnovnih logičkih operacija 6. Redosled izvršavanja naredbi 7. Stilovi opisa 1 2 1 (a) Šta je VHDL? 1 (b) Šta je VHDL? Very high speed integrated circuits Hardware Description Language g Zašto? da se popravi komunikacija medju projektantima koji rade na razvoju istog integrisanog kola. Standardizaciju je iniciralo i finansiralo Ministarstvo odbrane SAD-a (US DoD). 3 4
1 (c) Šta je VHDL? 1 (d) Šta je VHDL? Kad je nastao i kako se razvija? VHDL je 1987. godine usvojen kao standard: IEEE Std. 1076-1987 VHDL-93, VHDL AMS (što dolazi od Analogue and Mixed Signals) VHDL-99. ŠTA OMOGUĆAVA? VHDL može da se primenjuje u svim fazama projektovanja: opis, verifikaciju (simulaciju), sintezu i dokumentovanje. Mogućnost jednostavnog opisa projekta na višim nivoima apstrakcije. 5 6 2 (a) Opis hardvera 2 (b) Opis hardvera Opsti_primerprimer Svaki blok VHDL prepoznaje kao entitet koji se definiše preko ključne reči AD entity. 8 ALE RD WR C1 C2 4 Da bi se entitetu dodelila funkcija koja povezuje stanja na ulaznim i izlaznim portovima potrebno je definisati arhitekturu entiteta. Opis arhitekture počinje ključnom reči architecture. 7 8
2 (c) Opis hardvera entity Opsti_primer is port( AD, ALE, RD... WR... C1... C2... ); deklaracija portova end entity ty Opsti _primer; WR 8 Opsti_primer AD ALE RD C1 C2 4 2 (d) Opis hardvera architecture proba of Opsti_primer is.. deklaracija signala. begin.. telo arhitekture. end proba; 9 10 2 (e) Opis hardvera 3 (a) Signali Kao što se u elektronici jedna ista funkcija može realizovati na više načina, tako i jednom entitetu može da se pridruži više arhitektura. Obrnuto ne važi jer jedna arhitektura može da obavlja samo funkciju zbog koje je projektovana. Očigledno je struktura VHDL jezika prilagodjena osnovnim strukturama koje se javljaju tokom projektovanja elektronskih kola. 11 Jedan entitet povezuje se sa drugim preko portova. Kroz portove putuju signali, a kako se radi o opisu digitalnihit ih kola, rečč je o digitalnimit i signalima. Zato i definicija signala u VHDL-u ima sve atribute koji se javljaju u realnim digitalnim kolima: Vrednost Tip Mod 12
3 (b) Signali Svaki signal nosi informaciju o logičkom stanju ili logičkoj vrednosti std_ logic (standard IEEE 1164): ) vrednost značenje U neinicirani signal (Uninitialized) X jako nepoznato stanje 0 jaka nula 1 jaka jedinica Z visoka impedansa W slabo nepoznato nato stanje (Weak) L slaba nula (Low) H slaba jedinica (High) - nebitno stanje (don t care) 3 (c) Signali Tip signala: kroz jednu žicu, prolazi signal tipa bit std_logic, kroz magistralu,, signal je tipa vektor bitova std_logic_vector. 13 14 3 (c) Signali 3 (d) Signali Mod signala: ulazni in Entitet može samo da čita sadržaj ovog signala, a ne može oemu dodeljivati novu vrednost ved izlazni out vrednost mu se dodeljuje unutar entiteta, a njegov sadržaj ne može da se koristi za pobudu drugih ulaza istog entiteta bidirekcioni inout Redosled bitova u signalu tipa std_logic_vector: MSB levo: std_logic_vector(3 downto 0) 0101 5 MSB desno: std_logic_vector (0 to 3) 0101 10 15 16
3 (e) Signali 4(a) Osnove VHDL pravopisa Redosled navođenja : naziv porta : mod tip in in in in Opsti_primer entity Opsti_primerprimer is port ( AD: in std_logic; ALE, RD: in std_logic; WR: in std_logic_vector (7 downto 0); C1: out std_logic_vector (3 downto 0); C2: inout std_ logic _ vector ); end entity Opsti_primer; 8 AD ALE RD WR C1 C2 out 4 inout Svaki jezik karakteriše skup sintaksnih pravila za pisanje kojih se korisnici moraju pridržavati. Ta pravila mogu da se podele u dve osnovne kategorije: - način označavanja pojmova - format navodjenja pojmova. 17 18 4(b) Osnove VHDL pravopisa 4(c) Osnove VHDL pravopisa Način označavanja pojmova a. Ne pravi se razlika izmedju malih i velikih slova; b. Si Svi nazivi iimoraju da počnuč slovnimznakom c. Koristite samo slova (a-z i A-Z), brojeve (0-9) i podvučenu crtu (_ ) d. NE koristite znakove interpunkcije!,?,.,,,i.t.d. i t d e. NE koristite sukcesivno dva simbola ( _ ) Ispravne oznake Prvi_primer Opsti_Primer0 OPSTI_PRIMER_9PRIMER Opsti_Primer_0 Neispravne oznake Razlog 1_Primer prekršeno pravilo b Opsti_#1_primer prekršeno pravilo c Opsti!_primerprimer prekršeno pravilo d Opsti primer prekršeno pravilo e 19 20
4(d) Osnove VHDL pravopisa Način označavanja pojmova (nastavak) f. NE mogu dva različita pojma u okviru istog entiteta ili arhitekture imati ista imena, odnosno oznake g. Postoje rezervisane reči koje se NE SMEJU koristiti za označavanje pojmova pj (date u svakom priručniku za VHDL) rezervisane reči 4(e) Osnove VHDL pravopisa 21 22 4(f) Osnove VHDL pravopisa Način označavanja pojmova (nastavak) h. Linijski komentari počinju dvostrukim minus znakom -- 4(g) Osnove VHDL pravopisa Način označavanja pojmova (nastavak) i. Ne postoji ograničenje u broju karaktera kojim se može označiti neki pojam IPAK ne treba preterivati!!! 23 Međutim neki programi za sintezu prepoznaju najviše 32 karaktera. Zato se preporučuje da broj karaktera u jednoj oznaci ne prelazi 32. Dobro je da oznake budu dovoljno duge da ukažu na pravo značenje, ali da ne budu i predugačke. Dobra je praksa da se signali nazovu clock, data ili global_input, anec, d, ili g. 24
4(h) Osnove VHDL pravopisa 4(i) Osnove VHDL pravopisa Format pisanja treba sagledati pojedinih celina. Celinu čini: jedna naredba, struktura naredbi ili grupa naredbi. sa stanovišta opisa Pod jednom naredbom podrazumevamo opis koji počinje nekom od rezervisanih reči ; opis aktivnosti koja označava dodeljivanje vrednosti nekom signalu. 25 26 4(j) Osnove VHDL pravopisa 4(k) Osnove VHDL pravopisa strukturu naredbi čini više povezanih naredbi sa jasnim semantičkimznačenjem. Primer if...then...elseif...else struktura: if uslov1 then akcija1; elseif uslov2 then akcija2; else akcija3; kij3 end if; Grupa naredbi obično počinje: ključnom rečju, imenom bloka ili labelom (oznakom), može da sadrži: naredbe kojima se deklarišu promenljive koje se javljaju u toj grupi, ključnu reč za početak opisa tela grupe begin, telo i ključnu reč end kojom se opis grupe naredbi završava 27 28
4(l) Osnove VHDL pravopisa - Svaka logička celina završava se znakom ;. - U okviru jedne logičke celine VHDL koristi slobodni format za pisanje koda. Primer: if uslov1 then akcija1; ; --nacin 1 5 (a) Opis osnovnih logičkih operacija - Pored ostalog VHDL podržava korišćenje osnovnih logičkih operatora nad signalima tipa std_logic. if uslov1 then akcija1; --nacin 2 if uslov1 then akcija1; ; -- nacin 3 29 30 5 (b) Opis osnovnih logičkih operacija 5 (c) Opis osnovnih logičkih operacija - Dodeljivanje logičke vrednosti nekom signalu ili portu označava se simbolom: <= Operacije sa većim brojem signala, npr. a i b može da seiskaženasledeći ikž ldćinačin: rezultat <= a AND b; -OperatorNOTimanajveći prioritet,doksu svi ostali operatori istog prioriteta. Redosled njihovog izvršavanja određuje se redosledom navođenja u naredbi. Tako u naredbi: rezultat <= a AND b OR c XOR d; izvrši se najpre AND operacija, zatim OR i na kraju XOR, što može da se iskaže kao (((a AND b) OR c) XOR d). 31 32
Međutim u opisu: 5 (c) Opis osnovnih logičkih operacija rezultat <= a AND NOT b OR c XOR d; redosled izvršavanja operacija jeste (((a AND (NOT b)) OR c) XOR d). 5 (c) Opis osnovnih logičkih operacija Redosled izvršavanja operatora kontroliše se upotrebom zagrada: rezultat <= (a AND b) OR (c XOR d); Najpre se obave AND i XOR operacija, a zatim OR. Da bi se povećala čitljivost koda, preporučuje se korišćenje zagrada. 33 34 6(a) Redosled izvršavanja naredbi 6(b) Redosled izvršavanja naredbi Osnovna ideja: VHDL je namenjen za opis ponašanja u digitalnim sistemima. Aktivnosti u hardveru odvijaju se, uglavnom, paralelno, konkurentno; u opisu arhitekture nekog entiteta primenjuje se ista logika. Arhitektura može da sadrži više logičkih celina a da signali iz jedne ne utiču na stanja u ostalim i obrnuto. U tim slučajevima signali i dogadjaji iz jedne celine ne utiču na dogadjaje u ostalima, odnosno prostiru se nezavisno, konkurentno, t.j. paralelno u vremenu. 35 36
6(c) Redosled izvršavanja naredbi 6(d) Redosled izvršavanja naredbi VHDL podržavadvaosnovnametodakroz koje se signalima unutar arhitekture dodeljuju vrednosti. To su: procesi (process) i konkurentna dodela vrednosti signalima. U jednom istom trenutku procesi i konkurentna dodela vrednosti signalima obavlja se paralelno. Zato i redosled njihovog navodjenja u okviru opisa arhitekture nije važan. unutar arhitekture konkurentno (paralelno) 37 38 6(e) Redosled izvršavanja naredbi 6(f) Redosled izvršavanja naredbi Primer: architecture proba of Opsti_primer is begin c2 <= ad OR ale; c1(0) <= rd AND wr(0); seq: process (wr(7)) begin... end process seq; end architecture proba; = architecture proba of Opsti_primer is begin c2 <= ad OR ale; seq: process (wr(7)) begin... end process seq; c1(0) <= rd AND wr(0); end proba; architecture 39 Postoji potreba da se opišu i sekvencijalni procesi (u kojima je redosled dodeljivanja vrednosti signala sekvencionalan). Zato je ostavljena mogućnost da se unutar grupe naredbi koja se zove PROCES (PROCESS) vrednosti promenljivima dodeljuju u redosledu po kome su naredbe navedene. 40
6(g) Redosled izvršavanja naredbi 6(h) Redosled izvršavanja naredbi unutar procesa sekvencijalno (redno) Zato je redosled navodjenja naredbi unutar procesa veoma bitan Primer: architecture proba of Opsti_primerprimer is begin seq: process (ad, ale, rd, wr) begin c2 <= ad OR ale; c2 <= rd AND wr(0); architecture proba of Opsti_primerprimer is begin seq: process (ad, ale, rd, wr) begin c2 <= rd AND wr(0); c2 <= ad OR ale; end process; end proba; end process; end proba; 41 42 6(i) Redosled izvršavanja naredbi 6(j) Redosled izvršavanja naredbi Proces Generalno gledano, naredbe u procesu, pored sekvencijalnog izvršavanja, karakterišu još dve važne osobine: - proces traje u beskonačnoj petlji ukoliko ne dobije zahtev da se zaustavi; - proces se zaustavlja naredbom čekanja (wait), dok se vrednost nekog od signala ne promeni. Proces 43 44
Proces 6(k) Redosled izvršavanja naredbi Svaki proces treba da nosi jedinstvenu oznaku labelu koja se završava sa :. Ona je opciona, ali se preporučuje naročito sa stanovišta sinteze. Signali koji se generišu automatskom sintezom sadržaće i ime procesa iz koga su proistekli čime se olakšava tumačenje celog projekta, naročito u fazi otkrivanja potencijalnih grešaka. 45 Proces 6(l) Redosled izvršavanja naredbi Iza oznake (labele) procesa sledi ključna reč process. 46 6(m) Redosled izvršavanja naredbi 6(n) Redosled izvršavanja naredbi Proces Zatim se navodi lista signala na koje je proces osetljiv. Lista signala navodi se između malih zagrada, a oznake pojedinih signala odvojene su zapetama. Proces Ovaj oblik podrazumeva da jedan proces može da počne samo kada nastane promena u nekom od signala koji se u vidu liste navode na početku deklaracije proces. 47 48
6(o) Redosled izvršavanja naredbi Proces Ovakav opis ekvivalentan je slučaju da se kao poslednje naredbe u procesu nalaze one koje nalažu čekanje sve dok ne dođe do promene stanja bilo kog od signala na koje je proces osetljiv. 6(p) Redosled izvršavanja naredbi Proces, kao i arhitektura, sadrži polje za deklarisanje elemenata (npr. promenljivih) lokalnih za taj proces 49 (ALI lokalni signali NE SMEJU da se deklarišu u okviru tela process-a a tj. nakon ključne reči begin). 50 6(r) Redosled izvršavanja naredbi 6(s) Redosled izvršavanja naredbi Centralno polje zauzima telo procesa u kome se navode naredbe po striktno sekvencijalnom redosledu. Opis procesa završava se sa end process. Opciono može da se doda ime procesa što se uglavnom i preporučuje - procesa. 51 52
7(a) Stilovi opisa projekta 7(b) Stilovi opisa projekta VHDL podržava opis projekata na: - algoritamskom nivou i - nivou logičkih jd jednačina. Sobziromdaje VHDL i razvijan sa ciljem da se efikasno opišu složena kola, rezultujući kôd karakteriše jezgrovitost koja proističe iz hijerarhijskog pristupa dekompoziciji projekta. Postoje ti tri stila opisa projekta jkt u VHDL-u. To su strukturni opis (structural) opis ponašanja (behavioral) opis toka podataka (dataflow) 53 54 7(c) Stilovi opisa projekta 7(d) Stilovi opisa projekta Primer: Rezultat =(a b) c a b c Entitet Primer_Stil_opisa a) Rezultat entity Primer_Stil_opisa is port ( a: in std_ logic; b: in std_logic; c: in std_logic; Rezultat: out std_logic ); end entity Primer_Stil_opisa; Strukturni opis: Entitet Primer_Stil_opisa _ Arhitektura a o1 Rezultat b XOR2 XOR2 c Strukturni_opis architecture Strukturni_opis of Primer_Stil_opisa is signal o1: std_logic; --deklaracija -- internih signala begin u1:xor2 port map ( a => I1, b => I2, o1 => Y); -- telo u2:xor2 port map ( o1 => I1, c => I2, Rezultat => Y); end architecture Strukturni_opis; 55 56
Opis ponašanja: 7(e) Stilovi opisa projekta architecture Opis_Ponasanja of Primer_Stil_opisa is XOR_od_3: process (a, b, c) -- imenovanje (labeliranje) procesa -- nije neophodno, ali je korisno begin if (((a XOR b) XOR c) = '1') then Rezultat <= '1'; else Rezultat <= '0'; end if; end process XOR_od_3; _ end architecture Opis_Ponasanja; Opis toka podataka: 7(f) Stilovi opisa projekta architecture Dataflow of Primer_Stil_opisa is signal begin o1: std_logic; -- deklaracija -- internog signala o1 <= a XOR b; Rezultat <= o1 XOR c; end architecture Dataflow; 57 58 VHDL jezik za opis hardvera VHDL jezik za opis hardvera Šta treba da znamo? Elementarno (za potpis) Šta omogućava VHDL? Osnovna (za 6) 1. Koji par ključnihč reči opisuje osnovneosobine hardvera u VHDLu? 2. Stilovii opisa kolauvhdlu. Šta treba da znamo? Ispitna pitanja a) Šta je i kako k se definiše iš port? b) Šta su i kako se definišu signali? c) Oznaka redosleda bitova kod tipa std_logic_vector? d) Pravila za označavanje pojmova. e) Dodeljivanje vrednosti signalima u okviru procesa i arhitekture. f) Sinteksna pravila za za opis procesa. 59 60
VHDL jezik za opis hardvera Sledećeg časa VHDL језик за опис хардвера Наш први пројекат Структурни С опис Компоненте Библиотекеб Литература: П. Петковић, М. Милић, Д. Мирковић, VHDL i VHDL- AMS подршка пројектовању рј електронских кола и система, Поглавље 2 VHDL кôд прилагођен синтези, стр. (18-34)) 61
Page:2 / 3
Page:3 / 3