Uvod u VHDL
-
Upload
catriona-kissane -
Category
Documents
-
view
81 -
download
5
description
Transcript of Uvod u VHDL
![Page 1: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/1.jpg)
Uvod u VHDL
![Page 2: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/2.jpg)
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)
![Page 3: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/3.jpg)
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.
![Page 4: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/4.jpg)
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
![Page 5: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/5.jpg)
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
![Page 6: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/6.jpg)
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
![Page 7: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/7.jpg)
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;
![Page 8: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/8.jpg)
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;
![Page 9: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/9.jpg)
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
![Page 10: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/10.jpg)
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
![Page 11: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/11.jpg)
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
![Page 12: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/12.jpg)
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 <=.
![Page 13: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/13.jpg)
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)
![Page 14: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/14.jpg)
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
![Page 15: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/15.jpg)
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
![Page 16: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/16.jpg)
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
![Page 17: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/17.jpg)
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
![Page 18: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/18.jpg)
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
![Page 19: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/19.jpg)
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
![Page 20: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/20.jpg)
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
![Page 21: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/21.jpg)
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
![Page 22: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/22.jpg)
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
![Page 23: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/23.jpg)
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
![Page 24: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/24.jpg)
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
![Page 25: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/25.jpg)
Arhitektura mikrosistema
Simulacija VHDL koda
DFF
clk
d q
rst
stimulansi
odziv
![Page 26: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/26.jpg)
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
![Page 27: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/27.jpg)
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
![Page 28: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/28.jpg)
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!
![Page 29: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/29.jpg)
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
![Page 30: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/30.jpg)
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
![Page 31: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/31.jpg)
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
![Page 32: Uvod u VHDL](https://reader031.fdocuments.in/reader031/viewer/2022013112/56812af3550346895d8eda1b/html5/thumbnails/32.jpg)
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