Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | catriona-kissane |
View: | 83 times |
Download: | 5 times |
Uvod u VHDL
Arhitektura mikrosistema
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 VHSIC Hardware Description
Language. VHSIC skraćenica od Very High Speed Integrated Circuits” (Integrisana kola veoma velike brzine rada)
Arhitektura mikrosistema
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
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
Organizacija VHDL kôda Svaki celovit VHDL kôd, tj. onaj koji se može simulirati ili
sintetizovati, sastoji se iz tri sekcije:
LIBRARY(deklaracija)
ENTITY
ARCHITECTURE
VHDL kod
Arhitektura mikrosistema
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)
FUNCTIONS
PROCEDURES
COMPONENTS
CONSTANTS
TYPES
PACKAGE
LIBRARY
Arhitektura mikrosistema
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č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
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
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 . . .
KoloIN
OUT
INOUT
BUFFER
Arhitektura mikrosistema
ENTITYENTITY ni_kolo IS
PORT (a, b : IN BIT; c : OUT BIT);END ni_kolo;
ab c
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
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
ARCHITECTURE
ARCHITECTURE ni_funkcija OF ni_kolo ISBEGIN
c <= a NAND b;
END ni_funkcija;
ab c
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
Stilovi projektovanja u 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
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;
abc
yx
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;
Konkurentne naredbe
Deklaracija internog signala
Arhitektura mikrosistema
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 Navođenje propagacionog kašnjenja nije dozvoljeno u kašnjenja nije dozvoljeno u kodu za sintezu!kodu za sintezu!
Modeliranje propagacionog kašnjenja
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;
abc
yx
20 ns20 ns
Arhitektura mikrosistema
Port smera OUT se ne može koristiti kao ulazni signal!
ab x
y
ab
(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 ---------------------------------------
(b) (c)
Neispravno
Ispravno
x je izlazni port! Interni signali se mogu koristiti i kao ulazi i kao izlazi
Arhitektura mikrosistema
Opis tabele istinitosti Omogućava modeliranje (opisivanje) funkcije ili
ponašanja kola bez ulaženja u strukturne detalje
a b c y
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
ARCHITECTURE dataflow OF primer ISBEGIN 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
Sekvencijalne naredbe 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') 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)
Detektuje rastuću ivicu taktaDesio se događaj na signalu
Arhitektura mikrosistema
Mešovit opis- Konkurentni/sekvencijalni kod
Arhitektura je okvir za konkurentni, a proces za sekvencijalni kod
d1d2
DFF
clk
qx
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
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
Strukturni opis - primer Primer
d1d2
DFF
clk
qx
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 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;
d1d2
DFF
clk
qx
Konkurentna naredba dodeleNaredba za instanciranje
komponente
Arhitektura mikrosistema
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
Procesiranje VHDL koda Faze u procesiranju koda:
1. Analiza (posebno svaka projektana jedinca) Sintaksna analiza i kompilacija. Rezultat je međukod
projektinih jedinica koji se smešta u biblioteku work.
2. Elaboracija Hijerarhijski kod u ´ravanski´ kod. Zamena instanci
komponenti njihovim arhitekturama
3. Izvršenje Simulacija ili sinteza
Arhitektura mikrosistema
Simulacija VHDL koda
DFF
clk
d q
rst
stimulansi
odziv
Arhitektura mikrosistema
Testbenč
PROCESS BEGIN test_in <= "000"; WAIT FOR 200 ns; test_in <= "001"; WAIT FOR 200 ns; . . .END PROCESS;
PROCESS VARIABLE ... BEGINWAIT ON test_in;WAIT FOR 100 ns;IF((test_in="000" AND test_out='1') OR (test_in="000" AND test_out='0') OR. . END PROCESS;
test_in test_outa,b,c y
simple_circuit
Kod koji se testira
Dodatni kod koji analizira
odziv
Dodatni kod koji generiše stimulanse
testbenč
Microsoft Word Document
Arhitektura mikrosistema
CONFIGURATION Jedan entitet više arhitektura. Konfiguracija - spoj entiteta i arhitekture Kako arhitekturu povezati sa entitetom?
Entitet
Arhitektura1
Arhitektura2
Arhitektura3
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 IS FOR tb_arch FOR uut : simple_circuit USE 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 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
Primer sinteze. . .
f1 <= x AND y;
f2 <= x AND NOT y;
f <= f1 OR (f2 AND z) OR (f2 AND w);
. . .
AND
NOT
ANDAND
AND
OR
xy
z
w
f
f1
f2
Funkcionalna mreža
1. korak
ORAND
NOTOR
AND f
x
y
z
w
2. korak
Optimizovana funkcionalna mreža
x
y
zw
f
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
+
-
a
b0
1
ctrl
f
Funkcionalna mreža
+0
1
ra
b
ctrl
cin
Optimizovana funkcionalna mreža
Aktivnosti projektanta Aktivnosti softvera za sintezu
Arhitektura mikrosistema
Uloga VHDL-a u procesu projektovanja
RTLopis
Testbenč
Sinteza Simulacija
NetlistaDatotekakašnjenja
Raspoređivanje i povezivanje
Konfiguracionifajl
Datotekakašnjenja
Programiranjekomponente
Simulacija
Simulacija/Vremenska
analiza
FPGAčip
VHDLfajl
Legenda:
Funkcionalna simulacija
Vremenska simulacija nakon sinteze
Vremenska simulacija nakon fizičkog projektovanja