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.

Google Online Preview   Download