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;