1 / 32

Uvod u VHDL

Uvod u VHDL. VHDL. VHDL - standardni jezik za opis digitalnih kola i sistema. VHDL standard usvojen 1987. god. (IEEE 1076). Revidiran i trenutno aktuelni VHDL standard, IEEE 1164, usvojen 1993. godine.

Download Presentation

Uvod u VHDL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Uvod u VHDL

  2. VHDL • VHDL - standardni jezik za opis digitalnih kola i sistema. • VHDL standard usvojen 1987. god. (IEEE 1076). • Revidiran i trenutno aktuelni VHDL standard, IEEE 1164, usvojen 1993. godine. • Skraćenica od VHSICHardware Description Language. VHSIC skraćenica od Very High Speed Integrated Circuits” (Integrisana kola veoma velike brzine rada) Arhitektura mikrosistema

  3. VHDL • Osnovna namena: • Jezik za dokumentaciju • Jezik za simulaciju • Savremena primena: • Sinteza hardvera • Naš cilj: • Sinteza kombinacionih i sekvencijalnih kola i sistema niske i srednje složenosti u VHDL-u • Obiman i složen jezik • Dobra vest: za sintezu, bitan je samo jedan manji deo mogućnosti VHDL jezika. Arhitektura mikrosistema

  4. Programski jezik vs. jezik za opis hardvera • Programski jezik: • Opis algoritma • Sekvencijalni model izračunavanja • Kompajlira se u mašinski program radi izvršenja na računaru • Jezik za opis hardvera: • Opis algoritma • Opis strukture digitalnog sistema • Konkurentni model izračunavanja • Kompajlira se radi simulacije u RTL simulatoru • Sintetiše se radi implementacije u hardveru • Termini: • Program - opis algoritma u programskom jeziku • Kôd– opis algoritma ili strukture u jeziku za opis hardvera Arhitektura mikrosistema

  5. Organizacija VHDL kôda • Svaki celovit VHDL kôd, tj. onaj koji se može simulirati ili sintetizovati, sastoji se iz tri sekcije: Arhitektura mikrosistema

  6. LIBRARY • LIBRARY (biblioteka) • Kolekcija često korišćenih delova VHDL kôda. • Jednom se piše više puta koristi • Sadrži pakete (PACKAGE), a paketi sadrže: • Funkcije (FUNCTION) • Procedure (PROCEDURE) • Komponente (COMPONENT) • Konstante (CONSTANT) • Tipove podataka (TYPE) Arhitektura mikrosistema

  7. LIBRARY • Biblioteka se uključuje u projekat pomoću dve naredbe: LIBRARY ime_biblioteke; USE ime_biblioteke.ime_paketa.delovi_paketa; • LIBRARY - definiše ime biblioteke • USE – definiše delove biblioteke koje želimo da koristimo • Bar tri paketa iz tri različite biblioteke su neophodna u svakom projektu: • std_logic_1164 (iz biblioteke ieee) • standard (iz biblioteke std) i • work (iz biblioteke work) LIBRARY ieee; -- tačka-zarez (;) označava USE ieee.std_logic_1164.all; -- kraj naredbe ili deklaracije LIBRARY std; -- dupla crta (--) označava komentar USE std.sdandard.all; LIBRARY work; USE work.all; Arhitektura mikrosistema

  8. LIBRARY • Standardne biblioteke: • std je biblioteka resursa (standardni tipovi podataka i sl.). • work je projektna biblioteka (za smeštanje fajlova projekata) • IEEE biblioteka za sintezu, paketi : • std_logic_1164: definiše višenivovske logičke sisteme • numeric_std: podrška za aritmetiku • Biblioteke std i work po automatizmu uključene u svaki projekat. • VHDL kôd za sintezu obično počinje linijama: • LIBRARY ieee; USE ieee.std_logic_1164.all; Arhitektura mikrosistema

  9. ENTITY • Entitet (ENTITY): definiše interfejs (ulaze i izlaze, tj. portove kola) • ENTITY ime_entiteta IS PORT ( ime_porta : smer_signala tip_signala; ime_porta : smer_signala tip_signala; ... ); END ime_entiteta; • Port (PORT): izlazni ili izlazni signal kola • Smer signala • IN – ulaz, OUT – izlaz, INOUT – dvosmerni port (ulaz/izlaz), BUFFER - izlaz koji se može koristiti kao interni signal. • Tip signala: BIT, STD_LOGIC, INTEGER . . . Arhitektura mikrosistema

  10. ENTITY ENTITY ni_kolo IS PORT (a, b : IN BIT; c : OUT BIT); END ni_kolo; • Opisuje spoljni pogled na kolo, a ne funkciju kola • Više portova istog smera i tipa mogu biti deklarisani u istoj liniji • Linije PORT konstrukcije završavaju se znakom ΄;΄, osim poslednje, nakon koje sledi zatvorena zagrada • Ime entiteta može da sadrži slova, cifre i crtu za podvlačenje. Ograničenja: ne može početi cifrom, ne može biti ključna reč • VHDL ne pravi razliku između velikih i malih slova Arhitektura mikrosistema

  11. ARCHITECTURE • Arhitektura (ARCHITECTURE) – sadržati opis funkcionisanja (ponašanja) ili opis unutrašnje strukture kola • ARCHITECTURE ime_arhitekture OF ime_entiteta IS [deklaracije] BEGIN [kôd] END ime_arhitekture; • Uvek pridružena jednom entitetu (ime_entiteta) • [deklaracije]: definiše interne signale i konstante • [kôd]: kôd arhitekture Arhitektura mikrosistema

  12. ARCHITECTURE ARCHITECTURE ni_funkcija OF ni_kolo IS BEGIN c <= a NAND b; END ni_funkcija; • Kolo obavlja NI operaciju (NAND) nad dva ulazna signala, a i b, i rezultat dodeljuje (˝<=˝) izlaznom pinu c. • Naredba dodele se izvršava uvek kad se na nekom od signala a ili b desi događaj. • Događaj na signalu - promene vrednosti signala. • Naredba dodele je senzitivna na promenu vrednosti bilo kog signala s leve strane znaka <=. Arhitektura mikrosistema

  13. Stilovi projektovanjau VHDL-u • Funkcionalni (ili bihejvioralni) • Konkurentne naredbe (dataflow, tj. model toka podataka) • Sekvencijalne naredbe (sekvencijalni model, kao kod programskih jezika) • Strukturni (ekvivalentno blok dijagramu) • Mešovit (kombinacija konkurentnih/ sekvencijalnih naredbi i strukturnog opisa) Arhitektura mikrosistema

  14. Konkurentno izvršenje naredbi ENTITY primer IS PORT(a, b, c: IN BIT; y : OUT BIT); END primer; ARCHITECTURE dataflow OF primer IS SIGNAL x : BIT; BEGIN y <= x NAND c; x <= a NAND b; END dataflow; Deklaracija internog signala Konkurentne naredbe • Arhitektura sadrži konkurentni kod • Naredbe se iniciraju promenama signala • Redosled naredbi nije od značaja (isti efekat ima sledeći kod): x <= a NAND b; y <= x NAND c; Arhitektura mikrosistema

  15. Modeliranje propagacionog kašnjenja • Naredba dodele proširena klauzulom after: • x <= a NAND b after 20 ns; • δ- kašnjenje: beskonačno malo kašnjenje • x <= a NAND b; isto što i • x <= a NAND b after 0 ns; • Navođenje propagacionog kašnjenja nije dozvoljeno u kodu za sintezu! ENTITY primer IS PORT(a, b, c: IN BIT; y : OUT BIT); END primer; ARCHITECTURE dataflow OF primer IS SIGNAL x : BIT; BEGIN y <= x NAND c after 20 ns; x <= a NAND b after 20 ns; END dataflow; 20 ns 20 ns Arhitektura mikrosistema

  16. Port smera OUT se ne može koristiti kao ulazni signal! Neispravno Ispravno Interni signali se mogu koristiti i kao ulazi i kao izlazi x je izlazni port! Arhitektura mikrosistema

  17. Opis tabele istinitosti • Omogućava modeliranje (opisivanje) funkcije ili ponašanja kola bez ulaženja u strukturne detalje ARCHITECTURE dataflow OF primer IS BEGIN WITH (a & b & c) SELECT y <= '1' WHEN "000", '0' WHEN "001", '1' WHEN "010", '0' WHEN "011", '1' WHEN "100", '0' WHEN "101", '1' WHEN "110", '1' WHEN "111"; END dataflow; I ovo je konkurentan kod Arhitektura mikrosistema

  18. Sekvencijalne naredbe • Proces: sekvencijalna sekcija kôda (naredbe u procesu se izvršavaju jedna za drugom) LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY dff IS PORT (d, clk, rst: IN STD_LOGIC; q: OUT STD_LOGIC); END dff; ARCHITECTURE behavior OF dff IS BEGIN PROCESS (rst,clk) BEGIN IF(rst='1') THEN q <= '0'; ELSIF (clk'EVENT AND clk='1') THEN q <= d; END IF; END PROCESS; END behavior; lista senzitivnosti (promena bilo kog signala iz liste pokreće proces) Desio se događaj na signalu Detektuje rastuću ivicu takta Arhitektura mikrosistema

  19. Mešovit opis- Konkurentni/sekvencijalni kod • Arhitektura je okvir za konkurentni, a proces za sekvencijalni kod ARCHITECTURE primer OF primer IS SIGNAL x : BIT; BEGIN x <= d1 NAND d2; PROCESS(clk) BEGIN IF(clk'EVENT AND clk='1') THEN q <= x; END IF; END PROCESS; END primer; Proces se izvršava konkurentno sa ostalim naredbama iz arhitekture Arhitektura mikrosistema

  20. Strukturni opis • Opisuje složenije kolo kao skup povezanih kola manje složenosti • Zasnovano na konceptu komponenti • Komponenta: • Celoviti VHDL opisi (entitet plus arhitektura) koji se jednom piše, a onda koristi za konstrukciju složenijih modela • Pakuju se u pakete Arhitektura mikrosistema

  21. Strukturni opis - primer • Primer Komponente Sistem se opisuje kao skup povezanih kola manje složenosti. U suštini, tekstualni opis blok dijagrama Arhitektura mikrosistema

  22. Mešovit opis - konkurentni/strukturni kod ARCHITECTURE struct OF pr9 IS -- komponenta dff ----------- COMPONENT dff IS PORT (d, clk: IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT; SIGNAL x : STD_LOGIC; BEGIN x <= d1 NAND d2; K2: dff PORT MAP(x, clk, q); END struct; Konkurentna naredba dodele Naredba za instanciranje komponente Arhitektura mikrosistema

  23. Projektne jedinice • Nedeljiva sekcija VHDL kôda • U potpunosti sadržana u jednoj projektnoj datoteci(projektna datoteka može sadržati proizvoljan broj projektnih jedinica) • To su: • Entitet • Arhitektura • Deklaracija paketa • Telo paketa • Konfiguracija Primarna Sekundarna Jedna primarna, više sekundarnih Definiše spoj primarne i sekundarne jedinice Arhitektura mikrosistema

  24. Procesiranje VHDL koda • Faze u procesiranju koda: • Analiza (posebno svaka projektana jedinca) • Sintaksna analiza i kompilacija. Rezultat je međukod projektinih jedinica koji se smešta u biblioteku work. • Elaboracija • Hijerarhijski kod u ´ravanski´ kod. Zamena instanci komponenti njihovim arhitekturama • Izvršenje • Simulacija ili sinteza Arhitektura mikrosistema

  25. Simulacija VHDL koda stimulansi odziv Arhitektura mikrosistema

  26. Testbenč Dodatni kod koji generiše stimulanse Kod koji se testira Dodatni kod koji analizira odziv testbenč Arhitektura mikrosistema

  27. CONFIGURATION • Jedan entitet više arhitektura. • Konfiguracija - spoj entiteta i arhitekture • Kako arhitekturu povezati sa entitetom? Odgovara entitetu Analogija Odgovaraju arhitekturama Arhitektura mikrosistema

  28. CONFIGURATION -- Instanciranje kola koje se testira ------------------------ uut: simple_circuit PORT MAP(a=>test_in(2),b=>test_in(1),c=>test_in(0),y=>test_out); Definiše arhitekturu komponenta simple_circuit koja se koristi CONFIGURATION demo_config OF simple_circuit_testbench IS FOR tb_arch FOR uut : simple_circuit USE ENTITY work.simple_circuit(behavior); END FOR; END FOR; END demo_config; Ako postoji samo jedna arhitektura, CONFIGURATION nije neophodno! Arhitektura mikrosistema

  29. Sinteza VHDL koda • Preslikavanje jezičkih konstrukcija iz VHDL kôda na hardverske elemente identičnog ponašanja (funkcije) • Nije moguće sintetizovati proizvoljan VHDL opis ! • Pojedine jezičke konstrukcije se ne mogu sintetizovati. • Pojedine se mogu sintetizovati uz određena ograničenja • Pojedine se mogu sintetizovati Arhitektura mikrosistema

  30. Primer sinteze 1. korak . . . f1 <= x AND y; f2 <= x AND NOT y; f <= f1 OR (f2 AND z) OR (f2 AND w); . . . Funkcionalna mreža 2. korak 3. korak Logička mreža - konačni rezultat sinteze Optimizovana funkcionalna mreža Arhitektura mikrosistema

  31. Složeniji primer sinteze Aktivnosti projektanta Aktivnosti softvera za sintezu Konceptualni dijagram Funkcionalna mreža . . . f <= a + b WHEN ctrl=´0´ ELSE a – b: . . . VHDL kod Optimizovana funkcionalna mreža Arhitektura mikrosistema

  32. Uloga VHDL-a u procesu projektovanja Funkcionalna simulacija Vremenska simulacija nakon sinteze Vremenska simulacija nakon fizičkog projektovanja Arhitektura mikrosistema

More Related