Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura...

Preview:

Citation preview

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

Recommended