VHDL Tutorial
VHDL POPIS
1. Úvod
VHDL je skratka pre VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
2. Úroveň reprezentácie a abstrakcie
[pic]
Obr. 1: úroveň abstrakcie: chovanie, štruktúra a fyzická realizácia
Chovanie
Warning = Ignition_on AND ( Door_open OR Seatbelt_off)
Štruktúra
[pic]
Obr. 2: Štruktúrna reprezentácia obvodu pre signalizáciu otvorených dverí a nezapnutých pásov
VHDL popis číslicových systémov na úrovni:
štruktúry
chovania: tok dát – medziregistrové prenosy súbežné príkazy, ktoré sa vykonávajú paralelne akonáhle prídu vstupné údaje.
Algoritmus - VHDL dovoľuje súbežné aj sekvenčné príkazy.
3.1 Základné komponenty VHDL jazyka
deklarácia entity
telo architektúry
[pic]
VHDL - používa vyhradené kľúčové slová (nerozlišujú sa v nich veľké a malé písmená)
VHDL – prísne typový jazyk
a. Deklarácia entity
- definuje názov entity a zoznam vstupných a výstupných portov.
Všeobecná forma entity:
entity MENO_ENTITY is [ generic generic_declarations);]
port (signal_names: mode type;
signal_names: mode type;
:
signal_names: mode type);
end [MENO_ENTITY] ;
názvy signálov_
• • mode:
o o in
o o out
o o inout
o o buffer
• • type: bit, bit_vector, Boolean, character, std_logic, and std_ulogic.
o o bit – hodnoty 0 a 1
o o bit_vector – bit_vector (0 to 7)
o o std_logic, std_ulogic, std_logic_vector, std_ulogic_vector: môže mať 9 hodnôt:
‘U’, -- neinicializovaná
‘X’, -- vnútená neznáma
‘0’, -- vnútená 0
‘1’, -- vnútená 1
‘Z’, -- vysoká impedancia
‘W’, -- slabá neznáma
‘L’, -- slabá 0
‘H’. -- slabá 1
‘-‘); -- neurčená
o o boolean –TRUE a FALSE
o o integer
o o real
o o character
o o time – čas
• • generic: určuje lokálne konštanty pre časovanie a určenie rozmerov (napr. šírka zbernice) v entite. Syntax pre generic:
generic (
constant_name: type [:=value] ;
constant_name: type [:=value] ;
:
constant_name: type [:=value] );
Príklad deklarácie entity:
|-- comments: example of the buzzer circuit of fig. 2 |
|entity BUZZER is |
|port (DOOR, IGNITION, SBELT: in std_logic; |
|WARNING: out std_logic); |
|end BUZZER; |
Multiplexor 4 na 1 pre 8-bitové slová.
entity mux4_to_1 is
port (I0,I1,I2,I3: in std_logic_vector(7 downto 0);
SEL: in std_logic_vector (1 downto 0);
OUT1: out std_logic_vector(7 downto 0));
end mux4_to_1;
D preklápací obvod so set a reset vstupmi:
entity dff_sr is
port (D,CLK,S,R: in std_logic;
Q,Qnot: out std_logic);
end dff_sr;
b. Telo architektúry
- špecifikuje, ako obvod pracuje a ako je implementovaný.
- Entita môže byť špecifikovaná rôznymi spôsobmi, ako chovanie, štruktúra alebo ich kombinácia.
Telo architektúry - definícia
architecture architecture_name of NAME_OF_ENTITY is
-- Declarations
-- components declarations
-- signal declarations
-- constant declarations
-- function declarations
-- procedure declarations
-- type declarations
:
begin
-- Statements
:
end architecture_name;
1 Model chovania
architecture behavioral of BUZZER is
begin
WARNING DOOR_NOT);
U1: NOT1 port map (in1 => SBELT, out1 => SBELT_NOT);
U2: AND2 port map (in1 => IGNITION, in2 => DOOR_NOT, out1 => B1);
U3: AND2 port map (in1 => IGNITION, in2 => SBELT_NOT, B2);
U4: OR2 port map (in1 => B1, in2 => B2, out1 => WARNING);
4-bit. sčítačka z 1-bit. sčítačiek
sum = (A ( B) ( C
carry = AB + C(A ( B)
[pic]
Obr. 4: Schéma 4-bit. sčítačky z 1-bit. sčítačiek.
|4 Bitová sčítačka –hierarchický VHDL model |
|-- Príklad 4-bitovej sčítačky |
|library ieee; |
|use ieee.std_logic_1164.all; |
|-- definition of a full adder |
|entity FULLADDER is |
|port (a, b, c: in std_logic; |
|sum, carry: out std_logic); |
|end FULLADDER; |
|architecture fulladder_behav of FULLADDER is |
|begin |
|sum ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.