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;