32
Uvod u VHDL

Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

Uvod u VHDL

Page 2: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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)

Page 3: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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.

Page 4: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 5: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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:

Page 6: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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)

Page 7: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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;

Page 8: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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;

Page 9: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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 . . .

Page 10: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 11: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 12: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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 <=.

Page 13: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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)

Page 14: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 15: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 16: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 17: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 18: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 19: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 20: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 21: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 22: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 23: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 24: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 25: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

Arhitektura mikrosistema

Simulacija VHDL koda

DFF

clk

d q

rststimulansi

odziv

Page 26: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

Arhitektura mikrosistema

TestbenčKod koji se

testiraDodatni kod koji analizira

odziv

Dodatni kod koji generiše stimulanse

testbenč

Microsoft Word Document

Page 27: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 28: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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!

Page 29: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 30: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 31: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

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

Page 32: Uvod u VHDLes.elfak.ni.ac.rs/am/Materijal/Predavanja/Uvod u VHDL.pdf · 2013-12-06 · Arhitektura mikrosistema VHDL o VHDL -standardni jezik za opis digitalnih kola i sistema. n

Arhitektura mikrosistema

Uloga VHDL-a u procesu projektovanja

Funkcionalna simulacija

Vremenska simulacija nakon sinteze

Vremenska simulacija nakon fizičkog projektovanja