Professional Documents
Culture Documents
end bhv;
* V d v khai bo Entity:
A
COUT
FULL_ADDER
CIN
SUM
B (3)
COUT
A (2)
B (2)
A (1)
B (1)
A (0)
B (0)
CIN
FULL _ ADDER
SUM (3)
SUM (2)
SUM (1)
SUM (0)
10
11
12
13
L2
X1
SUM
A1
CARRY
14
15
return BIT_VECTOR;
end EXAMPLE_PACK;
v d ny tn ca package c khai bo l EXAMPLE_PACK.
N c cha cc khai bo kiu, phn t, hng v hm. Lu rng
hot ng ca hm INT2BIT_VEC khng xut hin trong khai
bo gi, m ch c giao tip ca hm xut hin. Vic nh
ngha, hay thn ca hm ch xut hin trong thn ca ng
gi ( Body Package ).
Gi s rng ng gi ny c dch v to thnh mt th
vin thit k v c gi l DESIGN _LIB . Xem xt vic dng
mnh use s dng chng di y:
library DESIGN_LIB;
use DESIGN_LIB.EXAMPLE_PACK.all
Entity RX is.........
Mnh library DESIGN_LIB cho php th vin thit k
DESIGN_LIB c php dng trong phn m t ny, iu c
ngha l tn DESIGN_LIB c th c s dng. Mnh use
tip theo s ly tt c cc khai bo c trong Package
EXAMPLE_PACK vo trong khai bo Entity ca RX. C ngha l ta
c th chn la cc khai bo t trong mt cc khai bo ca mt
ng gi vo trong mt n v thit k khc. V d :
library DESIGN_LIB;
use DESIGN_LIB.EXAMPLE_PACK.D_FLIP_FLOP;
use DESIGN_LIB.EXAMPLE_PACK.PIN2PIN_DELAY;
16
17
18
{use_cluse}
{configuration_item}
end for;
Vi mt Entity ca b cng FULL_ADDER nh gii thiu
phn trn, v d ny ta c th s dng chng trong php
nh cu hnh nh sau:
configuration FADD_CONFIG of FULL_ADDER is
For STRUCTURE
for HA1, HA2 : HALF_ADDER use entity
burcin.HALF_ADDER(structure);
for OR1: OR_GATE use entity
burcin.OR_GATE;
end for;
end FADD_CONFIG;
y tn ca php nh cu hnh l tu , v d ny ta
ly tn l FADD_CONFIG, cn vi dng lnh For STRUCTURE
ch ra kin trc c nh cu hnh v c s dng vi thc
th Entity FULL_ADDER. Gi s rng chng ta dch hai thc
th HALF_ADDER v OR_GATE thnh th vin vi tn l burcin v
s dng chng trong v d trn.
1.5. Cc th vin thit k
Kt qu ca vic bin dch VHDL l chng c ct gi bn
trong cc th vin dng cho bc m phng tip theo, iu
ny ging nh vic s dng mt phn t c khai bo trong
19
20
signal S : BIT;
begin
S <= A xor B;
SUM <= S xor CIN after burcin.my_pkg.delay;
COUT <= (A and B ) or (S and CIN) after 5ns;
end DATAFLOW;
1.6. Cc i tng d liu :
Mt i tng d liu gi mt gi tr ca mt kiu nht
nh. Trong VHDL c ba lp i tng d liu :
- Cc hng ( Constants ).
- Cc bin ( Variables ).
- Cc tn hiu ( Signals ).
Lp cu mt i tng c ch ra bi mt t kho v n c
ch ra im bt u ca mt khai bo.
1.6.1. Cc hng ( Constant )
Mt hng n l mt i tng m n c khi to ch ra
mt gi tr c nh v n khng b thay i. Khai bo hng
c php khai bo trong cc ng gi, cc Entity, cc kin trc,
cc chng trnh con, cc khi v trong pht biu ca cc qu
trnh processes.
C php khai bo chng nh sau :
Constant constant_name {constant_name}: type [:= value];
V d :
constant YES : BOOLEAN:= TRUE;
constant CHAR7: BIT_VECTOR (4 downto
21
0 ):="00111";
constant MSB: INTEGER:=5;
1.6.2. Cc bin
Cc bin c dng lu d liu tm thi, chng ch c
php khai bo trong pht biu Process hoc cc chng trnh
con.
V d :
variable X,Y : BIT;
variable TEMP: BIT_VECTOR (8 downto 0) ;
variable DELAY : INTERGER range 0 to 15:=5;
1.6.3. Cc kiu tn hiu ( Signal ):
Tn hiu c dng kt ni cc Entity ca thit k li vi
nhau v trao i cc gi tr bin i trong pht biu
process. Chng c th c xem nh cc dy dn hay cc bus ni
trong mch thc t. Tn hiu c th c khai bo trong cc
ng gi ( Package ), trong cc khai bo Entity, trong khai bo
kin trc (Architecture), trong cc khi ( Block ). Vi cc tn
hiu c khai bo trong cc package th tn hiu ny c gi
l tn hiu ton cc ( Cc thit k c th s dng chng ), cc
tn hiu c khai bo trong Entity l tn hiu ton cc trong
mt Entity, tng t vi tn hiu c khai bo trong mt kin
trc, n l tn hiu dng chung trong mt kin trc .
C php ca chng c dng nh sau :
Signal Signal_name {,signal_name}: type [:=value];
V d :
22
23
24
25
( '0', '1' );
26
27
28
end record ;
signal S : HOLIDAY;
variable T1: integer range 1900 to 1999;
variable T2 : DATE_TYPE;
T1: = S .YEAR;
T2:= S . DATE;
S . DAY <= 30;
1.3.6. Cc kiu STD_LOGIC :
to mu cc ng tn hiu c nhiu hn hai gi tr ( '0' ,
'1' ), VHDL nh ngha chn khong trong gi chun. Chn gi
tr bao gm :
type STD_LOGIC is
29
Library IEEE;
USE IEEE.STD_LOGIC_1164.all;
30
mt kiu ph hay kiu con ca kiu nguyn v chng c th c dng vi bt k mt hm nguyn no.
V d :
subtype INT4 is INTEGER range 0 to 15;
subtype BIT_VECTOR6 is BIT_VECTOR (5 downto
0);
1.8. Cc ton t
VHDL cung cp 6 lp ton t , mi mt ton t c mt mc u
tin nht nh. Tt c cc ton t trong cng mt lp th c cng
mt mc u tin.
Mc
u
tin
thp
Cc ton t
Cc ton hng
nht
.
Logical_operator
and
or
Cng kiu
nand
Cng kiu
Cng kiu
31
nor
Cng kiu
xor
Cng kiu
Cng kiu
Relational _
/=
Cng kiu
operator
<
Cng kiu
<=
Cng kiu
>
Cng kiu
Cng kiu
concatenation_op
>=
&
erator
Cng kiu
arithmetic_operat
Cng kiu
or
arithmetic_operat
Bt k kiu s no
or
arithmetic_operat
Bt k kiu s no
Cng kiu
or
Cng kiu
mod
integer
integer
Kiu m integer
Mc
arithmetic_operat
rem
**
or
abs
Bt k kiu s no
not
Cng kiu
tin
cao
Logical_operator
nht
1.8.1. Cc ton t logical
Kiu ton t logic khng chp nhn cc ton hng l cc kiu
tin nh ngha nh kiu BIT, BOOLEAN v cc kiu mng cc
bit, cc ton hng cn phi l cng kiu v cng di.
32
V d :
signal A,B : BIT_VECTOR (6 downto 0);
signal C,D,E,F,G: BIT;
A<= B and C ; -- Khng xy ra v cc ton hng
khng cng kiu.
D <= (E xor F) and (C xor G);
1.4.2. Cc ton t quan h
Cc ton t quan h cho ta kt qu c kiu Boolean, cc ton
hng cn phi c cng kiu v cng di.
V d :
signal A,B : BIT_VECTOR (6 downto 0);
signal C: BOOLEAN;
C <= B <= A; ( Tng ng nh C <= (B<=A));
1.4.3. Cc ton t cng
Cc ton t cng bao gm "+", "-" , v "&" , trong ton t
"&" l ton t kt ni chui v cc i tng l mng cc thanh
ghi. Vi s c du v khng du c th c dng vi cc s
nguyn v cc kiu BIT_VECTOR.
V d :
signal W: BIT_VECTOR (3 downto 0);
signal X: INTEGER range 0 to15;
signal Y,Z : UNSIGED (3 downto 0);
Z <= X + Y + Z;
Y <= Z (2 downto 0) & W(1);
33
34
. Kiu chui
. Kiu BIT_VECTOR
. STD_LOGIC_VECTOR
1.9.1.1. Kiu ch k t
Kiu ch k t ch ra mt gi tr bng vic s dng mt k
t n v km theo mt du ngoc n. Nhn chung VHDL
khng quan tm n cc trng hp ch thng v ch hoa, tuy
nhin vi kiu ch k t cn phi phn bit ch thng v ch
hoa. V d : 'a' hon ton khc vi kiu 'A' trong kiu ch k t.
Kiu ch k t c th c dng nh ngha bt c kiu
no trong cc ng gi chun v gi tr mc nh ca chng
l Null.
V d : 'A' , 'a' , ......'1' .
Kiu ch k t khng phi l kiu bit k t nh '1' hoc kiu
nguyn 1, v vy kiu ch l t cn phi c cung cp mt tn
kiu no .
1.9.1.2. Kiu chui
Mt kiu chui k t thc cht l mt mng cc k t. Mt
chui cc k t c nh ngha trong mt du ngoc kp .
V d : "A" , " hold time error ", " x " ....
1.9.2. Kiu BIT
Kiu bit l kiu m t hai gi tr ri rc bng vic s dng cc
ch k t '0' v '1'. i khi cc kiu Bit ny c dng to ra
35
36
37
38