Transcript Uvod v VHDL

Uvod v VHDL
Laboratorijske vaje
Andrej Trost
Kaj je VHDL?
VHDL je jezik za opis digitalnih vezij.
HDL = Hardware Description Language
V = Very high speed integrated circuits
modeliranje
simulacija
VHDL
dokumentacija
sinteza
Kaj je VHDL?
VHDL je visokonivojski jezik.



Opisujemo obnašanje vezja
Ne potrebujemo logičnih funkcij ali
Boolovih enačb
Drugi visokonivojski jeziki
 Abel
 Verilog
Kaj je VHDL?
VHDL je standardiziran jezik.
IEEE standard (1987) vsebuje
definicijo jezika
 Večina programskih orodij podpira
standard IEEE 1076-93 in dodatne
podatkovne tipe iz IEEE 1164

Načrtovanje digitalnih vezij
Tradicionalni pristop: shematsko

Uporablja se na različnih nivojih
 tranzistorji
 logična
vrata
 kompleksni gradniki
Načrtovanje digitalnih vezij
Tradicionalni pristop: shematsko
Prednosti
 shema
zelo pregledno prikazuje
relacije med posameznimi gradniki
 Pomanjkljivosti
 postane
nepregledno pri zelo
velikih vezjih
Načrtovanje digitalnih vezij
Sodobni pristop: načrtovanje v VHDLu

Opis obnašanja vezja
 uporaba
visokonivojskih stavkov
(npr. if stavek)

Opis strukture vezja
 povezava
vnaprej pripravljenih
komponent
Postopek načrtovanja vezij

Opis vezja

Simulacija

Sinteza logičnega vezja

Tehnološka preslikava
Opis digitalnih vezij
• Opis vezja
• Simulacija
• Sinteza vezja
Poimenujemo vse signale v vezju
 Enostavni signali
 zavzamejo
• Tehnološka preslikava

logično vrednost ‘0’ ali ‘1’
Skupek signalov (vodilo)
 predstavimo
jih z vektorji npr. “0000”
Opis digitalnih vezij
• Opis vezja
• Simulacija
• Sinteza vezja
Kombinacijska vezja
 Opis z logičnimi operatorji
a
• Tehnološka preslikava
c
c
b
<= a and b
a
 sum

<= (a xor b) xor c
Visokonivojski opis
 when
… else
 if … then … else
sum
b
c
a
0
o
b
s
1
Opis digitalnih vezij
• Opis vezja
• Simulacija
• Sinteza vezja
• Tehnološka preslikava
Sekvenčna vezja

RTL opis (Register Transfer Level)
 kombinacijska
vhodi
logika
logika
logika
registri
 registri
ura
izhodi
Simulacija vezja
• Opis vezja
• Simulacija
• Sinteza vezja
• Tehnološka preslikava
Funkcionalna simulacija
 Opazujemo spreminjanje signalov v
vezju, ki mu nastavimo stimulatorje
 Signali so definirani kot:
 bit
(‘0’, ‘1’)
 std_logic (‘0’, ‘1’, ‘U’, ‘Z’, ‘X’ …)
 omogoča
prikaz nedefiniranega
stanja, kratkega stika ipd.
Simulacija vezja
• Opis vezja
• Simulacija

• Sinteza vezja
• Tehnološka preslikava

V visokonivojskem jeziku je izvajanje
simulacije veliko hitrejše kot na nivoju
logičnih vrat
Za generiranje stimulatorjev lahko
napišemo poseben VHDL program
(Testbench)
Simulacija vezja
• Opis vezja
• Simulacija
• Sinteza vezja
• Tehnološka preslikava
Časovna simulacija
 V opis vezja dodamo zakasnitve
posameznih elementov
 uporaba
knjižnjic z elementi v izbrani
tehnologiji
 uporaba VHDL datoteke, ki jo
generirajo programi za časovno
analizo po tehnološki preslikavi
Sinteza vezja
• Opis vezja

• Simulacija
• Sinteza vezja

• Tehnološka preslikava

Pretvorba visokonivojskega opisa
vezja na nivo logičnih vrat
Programi za sintezo avtomatsko
generirajo vezje na nivoju logičnih
vrat in flip-flopov
Postopek sinteze je povezan z
optimizacijo vezja za izbrano
tehnologijo (monolitna vezja,
programirljiva …)
Sinteza vezja
• Opis vezja

 modeliranje
časovnih zakasnitev
 funkcije za delo z datotekami
• Simulacija
• Sinteza vezja
• Tehnološka preslikava
Vsi ukazi niso primerni za sintezo


Uporabljamo omejen nabor ukazov
Držimo se pravil pisanja VHDL
programa (npr. RTL opis
sekvenčnih vezij)
Tehnološka preslikava
• Opis vezja
• Simulacija

Logično vezje pretvorimo v obliko
primerno za izdelavo vezja
• Sinteza vezja
 maske
• Tehnološka preslikava
vezje
 datoteka za programiranje
programirljivih vezij
za monolitno integrirano
Dvovhodni multiplekser

Na izhod vezja se prenese
vrednost enega izmed vhodov,
glede na vrednost izbirnega vhoda
izbira = 0
izbira = 1
izhod = vhod0
izhod = vhod1
Shema multiplekserja
vhod0
izbira
izhod
vhod1

Zapis funkcije:
izhod <= (vhod0 and (not izbira)) or (vhod1 and izbira);
Zapis logične funkcije



Opis vezja v obliki logične funkcije
je precej nepregleden
Predstavitev vezja z logičnimi vrati
prepustimo programom za sintezo
Logične operatorje uporabljamo za
najosnovnejše gradnike in kadar
želimo optimizirati del vezja
Visokonivojski zapis

Pogojni prireditveni stavek:
izhod <= vhod0 when izbira=’0’ else vhod1;

Za opis vezja nam ni potrebno
poznati logično funkcijo
Zgradba VHDL programa
Opis vezja je sestavljen iz dveh delov

Opis priključkov vezja
entity ime_vezja is
opis parametrov in signalov
end ime_vezja;

Opis delovanja vezja
architecture opis of ime_vezja is
begin
stavki…
end opis;
Opis priključkov vezja

Priključki so opisani s stavkom port
port (vhod0, vhod1: in std_logic;
izbira: in std_logic;
izhod: out std_logic);

Vsak priključek ima definirano smer
in tip signala
Celotno vezje multiplekserja
library IEEE;
use IEEE.std_logic_1164.all;
entity ime_vezja is
port (vhod0, vhod1: in std_logic;
izbira: in std_logic;
izhod: out std_logic);
end ime_vezja;
architecture opis of ime_vezja is
begin
izhod <= vhod0 when izbira=’0’ else vhod1;
end opis;