Uvod u VHDL
Arhitektura mikrosistema
VHDLo VHDL - standardni jezik za opis digitalnih
kola i sistema. n VHDL standard usvojen 1987. god. (IEEE 1076). n Revidiran i trenutno aktuelni VHDL standard,
IEEE 1164, usvojen 1993. godine.o Skraćenica od VHSIC Hardware Description
Language. VHSIC skraćenica od Very High Speed Integrated Circuits” (Integrisana kola veoma velike brzine rada)
Arhitektura mikrosistema
VHDLo Osnovna namena:
n Jezik za dokumentacijun Jezik za simulaciju
o Savremena primena:n Sinteza hardvera
o Naš cilj:n Sinteza kombinacionih i sekvencijalnih kola i sistema
niske i srednje složenosti u VHDL-uo Obiman i složen jezik
n Dobra vest: za sintezu, bitan je samo jedan manji deo mogućnosti VHDL jezika.
Arhitektura mikrosistema
Programski jezik vs. jezik za opis hardverao Programski jezik:
n Opis algoritman Sekvencijalni model izračunavanjan Kompajlira se u mašinski program radi izvršenja na računaru
o Jezik za opis hardvera:n Opis algoritman Opis strukture digitalnog sisteman Konkurentni model izračunavanjan Kompajlira se radi simulacije u RTL simulatorun Sintetiše se radi implementacije u hardveru
o Termini:n Program - opis algoritma u programskom jezikun Kôd – opis algoritma ili strukture u jeziku za opis hardvera
Arhitektura mikrosistema
Organizacija VHDL kôdao Svaki celovit VHDL kôd, tj. onaj koji se može simulirati ili
sintetizovati, sastoji se iz tri sekcije:
Arhitektura mikrosistema
LIBRARYo LIBRARY (biblioteka)o Kolekcija često korišćenih
delova VHDL kôda.o Jednom se piše više puta koristio Sadrži pakete (PACKAGE), a
paketi sadrže:n Funkcije (FUNCTION)n Procedure (PROCEDURE)n Komponente (COMPONENT)n Konstante (CONSTANT)n Tipove podataka (TYPE)
Arhitektura mikrosistema
LIBRARYo Biblioteka se uključuje u projekat pomoću dve naredbe:
LIBRARY ime_biblioteke;USE ime_biblioteke.ime_paketa.delovi_paketa;
n LIBRARY - definiše ime biblioteken USE – definiše delove biblioteke koje želimo da koristimo
o Bar tri paketa iz tri različite biblioteke su neophodna u svakom projektu:n std_logic_1164 (iz biblioteke ieee)n standard (iz biblioteke std) i n work (iz biblioteke work)
LIBRARY ieee; -- tačka-zarez (;) označavaUSE ieee.std_logic_1164.all; -- kraj naredbe ili deklaracijeLIBRARY std; -- dupla crta (--) označava komentarUSE std.sdandard.all;LIBRARY work;USE work.all;
Arhitektura mikrosistema
LIBRARYo Standardne biblioteke:
n std je biblioteka resursa (standardni tipovi podataka i sl.).n work je projektna biblioteka (za smeštanje fajlova projekata)
o IEEE biblioteka za sintezu, paketi :n std_logic_1164: definiše višenivovske logičke sistemen numeric_std: podrška za aritmetiku
o Biblioteke std i work po automatizmu uključene u svaki projekat.
o VHDL kôd za sintezu obično počinje linijama:n LIBRARY ieee;
USE ieee.std_logic_1164.all;
Arhitektura mikrosistema
ENTITYo Entitet (ENTITY): definiše interfejs
(ulaze i izlaze, tj. portove kola)n ENTITY ime_entiteta IS
PORT ( ime_porta : smer_signala tip_signala;ime_porta : smer_signala tip_signala;... );
END ime_entiteta;o Port (PORT): izlazni ili izlazni signal
kolan Smer signala
o IN – ulaz, OUT – izlaz, INOUT –dvosmerni port (ulaz/izlaz), BUFFER -izlaz koji se može koristiti kao interni signal.
n Tip signala: BIT, STD_LOGIC, INTEGER . . .
Arhitektura mikrosistema
ENTITYENTITY ni_kolo IS
PORT (a, b : IN BIT;c : OUT BIT);
END ni_kolo;
o Opisuje spoljni pogled na kolo, a ne funkciju kolao Više portova istog smera i tipa mogu biti deklarisani u istoj linijio Linije PORT konstrukcije završavaju se znakom ΄;΄, osim
poslednje, nakon koje sledi zatvorena zagradao 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čo VHDL ne pravi razliku između velikih i malih slova
Arhitektura mikrosistema
ARCHITECTURE
o Arhitektura (ARCHITECTURE) – sadržati opis funkcionisanja (ponašanja) ili opis unutrašnje strukture kolan ARCHITECTURE ime_arhitekture OF ime_entiteta IS
[deklaracije]BEGIN
[kôd]END ime_arhitekture;
o Uvek pridružena jednom entitetu (ime_entiteta)o [deklaracije]: definiše interne signale i konstanteo [kôd]: kôd arhitekture
Arhitektura mikrosistema
ARCHITECTUREARCHITECTURE ni_funkcija OF ni_kolo IS
BEGINc <= a NAND b;
END ni_funkcija;
o Kolo obavlja NI operaciju (NAND) nad dva ulazna signala, ai b, i rezultat dodeljuje (˝<=˝) izlaznom pinu c.
o Naredba dodele se izvršava uvek kad se na nekom od signala a ili b desi događaj.
o Događaj na signalu - promene vrednosti signala. o Naredba dodele je senzitivna na promenu vrednosti bilo kog
signala s leve strane znaka <=.
Arhitektura mikrosistema
Stilovi projektovanja u VHDL-uo Funkcionalni (ili bihejvioralni)n Konkurentne naredbe (dataflow, tj. model toka
podataka)n Sekvencijalne naredbe (sekvencijalni model, kao
kod programskih jezika)o Strukturni (ekvivalentno blok dijagramu)o Mešovit (kombinacija konkurentnih/
sekvencijalnih naredbi i strukturnog opisa)
Arhitektura mikrosistema
Konkurentno izvršenje naredbiENTITY 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;o Arhitektura sadrži konkurentni kodo Naredbe se iniciraju promenama signalao Redosled naredbi nije od značaja (isti efekat ima sledeći kod):
x <= a NAND b;y <= x NAND c;
Konkurentne naredbe
Deklaracija internog signala
Arhitektura mikrosistema
o Naredba dodele proširena klauzulom after:
o x <= a NAND b after 20 ns;
o δ - kašnjenje: beskonačno malo kašnjenje
o x <= a NAND b; isto što io x <= a NAND b after 0 ns;
oo Navođenje propagacionog Navođenje propagacionog kakaššnjenja nije dozvoljeno u njenja nije dozvoljeno u kodu za sintezu!kodu za sintezu!
Modeliranje propagacionog kašnjenja
ENTITY primer ISPORT(a, b, c: IN BIT;
y : OUT BIT);END primer;ARCHITECTURE dataflow OF primer IS
SIGNAL x : BIT;BEGINy <= x NAND c after 20 ns;x <= a NAND b after 20 ns;
END dataflow;
20 ns20 ns
Arhitektura mikrosistema
Port smera OUT se ne može koristiti kao ulazni signal!
(a)
1 ---------------------------------------- 2 LIBRARY ieee; 3 USE ieee.std-logic-1164.all; 4 ----------------------------------------5 ENTITY mode-demo IS 6 PORT (a,b: IN STD_LOGIC; 7 x,y: OUT STD_LOGIC); 8 END mode-demo; 9 ---------------------------------------- 10 ARHITECTURE pogresno OF mode-demo IS 11 BEGIN 12 x <= a AND b; 13 y <= NOT x; 14 END pogresno; 15 ---------------------------------------
9 ---------------------------------------- 10 ARHITECTURE ispravno OF mode-demo IS 11 SIGNAL ab : STD_LOGIC; 12 BEGIN 13 ab <= a AND b; 14 x <= ab; 15 y <= NOT ab; 16 END ispravno; 17 ---------------------------------------
Neispravno
Ispravno
x je izlazni port! Interni signali se mogu koristiti i kao ulazi i kao izlazi
Arhitektura mikrosistema
Opis tabele istinitostio Omogućava modeliranje (opisivanje) funkcije ili
ponašanja kola bez ulaženja u strukturne detalje
1111
1011
0101
1001
0110
1010
0100
1000
ycbaARCHITECTURE dataflow OF primer ISBEGIN
WITH (a & b & c) SELECTy <= '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
Sekvencijalne naredbeo Proces: sekvencijalna sekcija kôda (naredbe u procesu se
izvršavaju jedna za drugom)
DFF
clk
d q
rst
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 ISBEGIN
PROCESS (rst,clk)BEGIN
IF(rst='1') THENq <= '0';
ELSIF (clk'EVENT AND clk='1') THENq <= d;
END IF;END PROCESS;
END behavior;
lista senzitivnosti (promena bilo kog signala iz liste pokreće proces)
Detektuje rastuću ivicu taktaDesio se događaj na signalu
Arhitektura mikrosistema
Mešovit opis-Konkurentni/sekvencijalni kodo Arhitektura je okvir za konkurentni, a proces za sekvencijalni kod
ARCHITECTURE primer OF primer ISSIGNAL x : BIT;
BEGINx <= d1 NAND d2;PROCESS(clk)BEGINIF(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
Strukturni opis
o Opisuje složenije kolo kao skup povezanih kola manje složenosti
o Zasnovano na konceptu komponentio Komponenta: n Celoviti VHDL opisi (entitet plus arhitektura) koji
se jednom piše, a onda koristi za konstrukciju složenijih modela
n Pakuju se u pakete
Arhitektura mikrosistema
Strukturni opis - primero Primer
Microsoft Word Document Komponente
Sistem se opisuje kao skup povezanih kola manje složenosti.
U suštini, tekstualni opis blok dijagrama
Arhitektura mikrosistema
Mešovit opis -konkurentni/strukturni kodARCHITECTURE struct OF pr9 IS-- komponenta dff -----------
COMPONENT dff ISPORT (d, clk: IN STD_LOGIC;
q: OUT STD_LOGIC);END COMPONENT; SIGNAL x : STD_LOGIC;
BEGINx <= d1 NAND d2;K2: dff PORT MAP(x, clk, q);
END struct; Konkurentna naredba dodeleNaredba za instanciranje
komponente
Arhitektura mikrosistema
Projektne jediniceo Nedeljiva sekcija VHDL kôdao U potpunosti sadržana u jednoj projektnoj datoteci
(projektna datoteka može sadržati proizvoljan broj projektnih jedinica)
o To su:n Entitetn Arhitekturan Deklaracija paketan Telo paketan Konfiguracija
Primarna
Sekundarna
Jedna primarna, više sekundarnih
Definiše spoj primarne i sekundarne jedinice
Arhitektura mikrosistema
Procesiranje VHDL kodao Faze u procesiranju koda:
1. Analiza (posebno svaka projektana jedinca)o Sintaksna analiza i kompilacija. Rezultat je međukod
projektinih jedinica koji se smešta u biblioteku work.
2. Elaboracijao Hijerarhijski kod u ´ravanski´ kod. Zamena instanci
komponenti njihovim arhitekturama
3. Izvršenjeo Simulacija ili sinteza
Arhitektura mikrosistema
Simulacija VHDL koda
DFF
clk
d q
rststimulansi
odziv
Arhitektura mikrosistema
TestbenčKod koji se
testiraDodatni kod koji analizira
odziv
Dodatni kod koji generiše stimulanse
testbenč
Microsoft Word Document
Arhitektura mikrosistema
CONFIGURATIONo Jedan entitet više arhitektura.o Konfiguracija - spoj entiteta i arhitekture o Kako arhitekturu povezati sa entitetom?
IC2 IC3IC1
Štampana ploča
Kućište
(a) (b)
Analogija
Odgovara entitetu
Odgovaraju arhitekturama
Arhitektura mikrosistema
CONFIGURATION
-- Instanciranje kola koje se testira ------------------------uut: simple_circuitPORT MAP(a=>test_in(2),b=>test_in(1),c=>test_in(0),y=>test_out);
CONFIGURATION demo_config OF simple_circuit_testbench ISFOR tb_arch
FOR uut : simple_circuitUSE ENTITY work.simple_circuit(behavior);
END FOR;END FOR;
END demo_config;
Definiše arhitekturu komponenta simple_circuit koja se koristi
Ako postoji samo jedna arhitektura, CONFIGURATION nije neophodno!
Arhitektura mikrosistema
Sinteza VHDL kodao Preslikavanje jezičkih konstrukcija iz VHDL kôda
na hardverske elemente identičnog ponašanja (funkcije)
o Nije moguće sintetizovati proizvoljan VHDL opis !n Pojedine jezičke konstrukcije se ne mogu sintetizovati.n Pojedine se mogu sintetizovati uz određena ograničenjan Pojedine se mogu sintetizovati
Arhitektura mikrosistema
Primer sinteze. . .f1 <= x AND y;f2 <= x AND NOT y;f <= f1 OR (f2 AND z) OR (f2 AND w);. . .
Funkcionalna mreža
1. korak
2. korak
Optimizovana funkcionalna mreža
Logička mreža - konačni rezultat sinteze
3. korak
Arhitektura mikrosistema
Složeniji primer sinteze
Konceptualni dijagram
. . .f <= a + b WHEN ctrl=´0´ ELSE
a – b:. . .
VHDL kod
Funkcionalna mreža
Optimizovana funkcionalna mreža
Aktivnosti projektanta Aktivnosti softvera za sintezu
Arhitektura mikrosistema
Uloga VHDL-a u procesu projektovanja
Funkcionalna simulacija
Vremenska simulacija nakon sinteze
Vremenska simulacija nakon fizičkog projektovanja