Tải bản đầy đủ (.pdf) (30 trang)

Thiết kế mạch bằng máy tính part 6 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (552.56 KB, 30 trang )

Phltn
ban OR I
gtlt1
\'6'i
tlu,l'c
IhJ
OICGATE
lrong tilu
Yi¢n
WORK.
Ph:lt1
Itch
VIIDL
Ii'!
qu{t
Irlllh
kicll1
Ira Ihi':t
kc'
VHDL
eho dllllg
Cll
ph<.ip
<I
nglf
nghTa.
Sau khi
phtlt1
Itch
VHDL,
d.e


don
\'!
thiet
kC'
sc
dUQ'c
luu
giu'
trotH!
C{tC
thu
vitn
de
sU:
dun"
sau
n~IY.
Tim \'len thiet
kc
co the chefa
nilu"llo
~
. ' c
_,
c
phein
tLr
tilu \'i¢n sau:
Goi : i:'lllhlrng
m()

ta, khai b,io
clU'0e
clung
chung.
Tiwe
the:
Iii
nhling
me)
ta thic'l
kc
dU\K
dung chung.
Kic'n
true:
nhlrng
thie1
k(
chi
tic't
dlfqc
dLlng
chung.
C\u
hinh :
[;1
nhu'ng phien b,in ella thlle thc
du(}"c
dllng chung.
eic

don
vj
tilu'
\'ien Iii dIe
e<.'iu
true
YHDL
co
the
dUQ'e
ph,ln tfeh rieng
r0
thco trlnh
11,1'
nh[11
d!nh. Vi dl.l, tlwc the ph,ii
dUQ'e
ph,ln tfeh
truCic
kil'"n
true
eua chung:
dc
gOI
phai
dU\1C
ph:111
tich
truCK
khi

UU\K
dan
v1
thiet
kc
su'
clL,mg.
Trong ngon
ngiJ'
VIIDL
co
11m
vi~n
Ihie't
kc'
d,~c
hi';l eo tcn
IZI
"WORK".
Khi chung la hien d!ch
m61
cillwng Ir'inh viel tren
ngt'm
ngli
VHDL
nhung
khong chi r6 thlf
vi~n
dtch, chucmg
trlnh

nilY
sc
dU\K
bien d!ch
Vi:I
eh(ra
vilO
11m
vi¢n
"WORK".
Vi
d~l,
knh
\iC My-Design.vhd
sc
ki~lll
tra eu phap cillrung trinh ntun trong t¢p "My-Dcsign.vhd",
d1eh
L
_B~9~p~h~a_n~1
-+
tfch _
[
j library-1
[IEEE
-
[ STD
-
WORK
Thllv,en

[
-
omop
ong
VHDL
9 tong ap
VHDL
lIinh
6.10
So lui hie'll rlicn
qllli
lrinh bi':n
dich
va
m6
phon12
Ili'
cillt(/l1g trinh lhimh
e<ic
lhlr
\'i~1l
ella
ngon
ngfr
VHDL.
sal!
d{)
nle
t!m
"icil

~L:
dU'(ie
dli'<t
\'ilO!J':
me)
p!JClIlS_
cillf(mg trlnh
clo
r()i
ehlb
vilo
thu vi¢n
"WORK".
Illnh
6.10 chi
ra
de
phU'o)lg
thue slr
cll;lllg
cae
Ihu'
\'i~n
thiet
k~
trong ngon ngiI
VHDL.
l\gon
llgU
VHDL

c6
ba
di,mg
d6i
1Lf9'llg:
bien, tfn
h~¢u
\'il hi\ng,
Phfl!l
khai
lxio lrung
C{lC
du
truc ng6n
ngCi
so:
h~t
ke cac
deli
tWl'ng
s2
Sif
(iL,mg.
CiIC
klCll
ella
dc
d6i
IU'0ng
do

\'J.
giii
tri ban d:iu mil
Ch(lllg
sC
nh(lll lrong qua trlnh
I1H1
phcmg.
1.
Cae
d6i
tut,mg
du
li~u
Trong ngon
ngCf
VHDL
nglf0i
1<1
p\},ln
hi¢1
ha loai d6i
1lH,:ing
dCi
li~u:
htlllg.
hi~n
\'~I
tin hi¢u. Cac d6i
1L1l)'ng

du'C)'c
c1[\C
1<.1
dl,ra
V:IO
C<IC
tlf kllOa.
NhCing
ILl
kho{1
n:l)'
rh~li
xufit
hi¢n 0 rhfln
(HIU
eua rlhin khai bao
cloi
tL19'ng.
a.
Han~
Htlllg b
el6i
Ilf9'ng
dl!9'c
khc)'i
tao
btl11g
nhCing
gia tr! nhfit djnh khi
dl!0'C

1' 10
ntn
trong
qu<i
Irinh
thve
hi~ll
va sau
d6
gi,i lri clla h,\ng khong lhay
(h~i.
Htlllg co the
dL10c
khai
b{1O
trong
cUc
gai. timc Ihe, kie'n truc, cillf(mg lrinh
con. khoi
Va
qu'.l
trlnh.
Cll
ph<.ip
kiwi
bao
hung:
constant
{ell
hiing

.
fhl
hlillg
I:
kic'll
1;-:::
i ;/(i
fr!
J:
Vf
d~l,
constant
CIIAR7 :
BIT
_ VECfOR ( 4
downtu
0)
:-:::
"00
III
";
constant
MSB:
I~TEGER;::=
5;
b. Bien
Bien
HI
d6i
tU(Jng

du'
li¢u
dung
d~
clitIa
nhCfng
kc',
qU~l
trung
gian. Bien
chi
c6
the dm!c kiwi o.io ben Irong cac
qua
Idnh
hO~lc
chuang
trinh
con.
Bien
\uon
eli
doi \'6i
kiC:u.
do d6 bien rh,'ti
dlt'(K
kiwi baa
kiC:u.
xac d!nh
khOi.lng

gi{)'i
h~lI1
hO~lc
gia
Ir~
kh{)'i
I~\{)
ban dall.
M0t
d.ch
m~le
d!nh, gi,i
Ir!
kh(')'j
1:,10
eLla
hic'n
El
gicl
trj thiip nhiit
trang
cae
gici.
trj thu(lC mit:n
x.;ie
dPlh
ella ki6u.
BiC:'ll
eo
Cli

pllclP khai
belo
nhu
sau.
Vi
d~l,
Co
Tin
hiell
variable
Temp:
ilIT_
VECTOR
( g
duwnto
0 )
variahle
Delay: INTEGER
ran~e
0
to
15
:=0:
Tin hieu
l~l
dtii
w0ng
du li¢u dung
de
ke't

n6i
gii!":l
cae
qua
trlnh
ho<)C
d6ng
b<,')
de
qu,i trinh. Khai
1xio
tin hi¢u
:0.13
1<.10
tin hi¢u
1116i
c{)
GIC
gi

l
tl"!
ella ki6u x.ie djnh. Tin hi¢ll
c6
thc duqc khai b.lo tfOng ph,\n khai
b,IO
g6i
( khl
d6
tin hi¢ll sc Iii tin

hi~u
tO~IJl
Cl.IC
).
khai b,io tlll!e th6 ( khi do tin hi¢u
b
tin
hi~Ll
toan
CL.lc
eLla
tht!c the l. khai hao kicn
tnk
( tin hi¢u sc
1;1
tin
hl¢U
tO~1l1
clie ella ki6n
true)
V;:I
trung khai. Cae tin hi¢u
c6
thc
dU\K
SLf
dung
nlurng k.h6ng the
(ILrqe
khai bao trong c:ic qu.i

Idnh
\';1
dc
chu()'ng trlnh con.
Co
the
gi,:ll
thieh dieu
n;IY
nhu
sau.
dc
qua
trlnh
va
chuaHg trlnh con
1:1
Gte
thanh ph.i])
e0
sa
eua
m6
hinh \'il.
dU0e
coi
1<'1
e.:ie
hl)p den.
Cite

tin hi¢u
-;c
\;ic
ch)ng
V;IO
c.ie ht)p elen
do
tv
ben ngoi:li. Cae d.ip
ung
Cll.1
hl)p
den
SC
(ll1h
hU'l'mg
de'll
dlrCil1g
tin hieu
fa.
Cic
tin hieu c{l Cll
phci.p
k.hai
b.io nhu' sau.
signal
Ikcp: BIT:= '0';
signal
Res:
INTEGER

range
0
to
Ion:
2.
elK
kiClI
dj1
Ii~u
M9i
dai
tut:mg dfr li¢u trong ng6n ngfr VHDL deu ph

'll
dm:c d!llh nghia
boi c

le kicu
di}'
Ii¢u. Ng6n ngiJ
VHDL
eho
phcp
sir dYllg CilC kicll
co
sO
de
t, l0
ncn
de

doi
tLr0ng
pi1(fe
t' lp
han.
154
KiC;u
ph<.ll
du\1C
khai h,ia tmoe khi
Slr
dl.lOg.
Khai
h<to
kie'u
x<tc
c1inh
t(:11
kitu
vi\
mi6n x,\c
dinh
eua kieu. Cae khai baa kicu
e6
the
n:111l
troug
plHin
khai
b{lo

cLla
g6i. khai b,\o Ilmc
th(
klUli
hell)
kicn true. khai
h,IO
ehuD'llg
!rlnh
con
vii
kiwi
b,.lO
dc
qu<.i
trinh.
Cae kicu
dCr
iL~u
ehinh
trong
ngon
ngCi:
VHDL:
Kicu
ki¢1
kt.
Kieu
so
nguyen

Kicu
du'CJe
djnh nghia tru6c eua VHDL
Kicu
lm'tng
K ieu
h,in
ghi
Ki~u
STD_LOGIC.
SIGNED
va
UNSIGNED.
Ck
h~u
con.
a. Kicu
Ij~t
kc
Kieu li¢t ke dmJe
dPlh
nghia hilllg c{IC!1 li¢t
ke
t[{1
Cli
cae
gia !rj
e{)
the
e6

clla kicu.
CeK
gi<.t
!rj
nilY
do
nguoi
Slr
dl,lng
x.ic dmil \'a
c6
tile
la
c;ic
kn
hO;lc
nhung
ky'
q.J'.
OJ
ph<.ip
clla
klCU
li¢1
ke
Trong
ngon
ngCi:
VHDL kit'll
li¢1

kt
co
(h~le
diem kh;ie
\,{1i
kieu
li('\
k0
eLlil
de
ngon ngiJ
1(lp
trlnh khae.
M{)i
gi,i
tri
trong
thimh ph[in ella
kicu
e6 tile
xuii! hi¢n
trong
hai
ho~\C
nhicu
hon kicu li¢t
kt.
Vi
d~l,
type

Color is (Red, Orange,
Ydlmv.
Green, niue, Purple):
type
Light is ( Red, Y cllow, Green
):
t~pc
STD_LOOIC
is
CU',
'X', '0', '1',
'z',
'W', 'L',
'If,
'.'J:
yariahle
X:
Color:
si~nal
Y:
STD_LOGIC:
Tron
o
cae n"(ll1 l1"illap trlnh !ruven thOll", cae liet
kc
khong
dU(1C
phcp
eo
e e

.•
e .
~.
ch(Ta
nhCfng
phan
\\i
gi6ng nhall. Trong
VI
dl,l
tren, tmng
cac
ng6n ngiJ
I,)p
1:')5
Irlnh Iruycn Ih6ng
de
khai b,io hai
kitu
"Color'"
viI
"Lighl'"
iiI
sai
\'~
m~tt
ell
ph,ip.
Dicu
do

I~\
do
n2~u
m(lt hien X
co
kicu
12t
"Colm".
thl khl
thl.fC
hi~ll
phcp
g,in
x
,=
Red:
ehuong
trlnh
dich
se kh()ng xac
dinh
dLlqc
gia Ifi 'Red' Ihuc)c
mien
x<.le
dPlh
cua
kieu
n~lo!
Neu

gia
tr!
'R.:J'
J6
thU(1C
kicu
"Color"
Ihl pilcp
gem
lit
dung.
Tl'Ong trlfong
hqr
gia trj
'Red'
thu(le
ki~u
"Light" thi
phep
gem
do
Ii:I
sai.
D~
gi,ii
LJuye'(
tinh
tri lllg
m(lp
ma

do.
tl'Ong ngt'lll
ngu
YHDL
ton
1'.11
co
ehe
dinh
kieu. Co
ehe
nay
cho
phcp
xae
dinh
mr)t
each
tU'ong
111mh
giet
tri
dang
xcI Ihu(le
kleU
n(lo.
M6i
d6i
IU(,mg
xuilt

hi~n
trong kicu
co
mc)t
vi
trf nhflt dll1h \'il
duqc
Xi.le
dinh
b6i trtll
tLl
xu:it hien. :\1(lt
c<tch
mac
dinh,
doi
ILlqng
dtiu lien c6
\"i
trf
O.
deli
tuqllg
tiep
theo
c(l
vi
lrf
I.
v.\'.

Trong
qua
trlnh tcing
IWp
phi."in
clrng,
kfch
thude
ella tin
hicu
ho,)c
bi61
klCU
li¢t kc
dUQ'e
x<\c
dinii blri
so
Iwmg
bit
nh() nhSI
de
mJ
h6a
s6luqng
de
gia
tr!
li¢1
kc.

h. Kicli s(i
nguj"cn
Kicu
nguyen
Ji:t
llli~n
xac
dinh
eua
dte
so
nguyen. Ttlt
Cit
c.ie plIcp
loan
to

il1
hqc
th61lg thu(l'ng deu.up
dl;lI1g
dur/c
eho
so
nguyen,
Cal'
phep
to;in
th~rc
hi¢ll tren kic'u

nguyen
IiI:
+.

*,
/.
Quy
ti.k
Cll
pilar
kilai
hi.lo
kicu
nguyen
co
dang
nhu
sau:
type
U;/1
ku;;{
is
ran<>e
mU;/1
\()
Il(l{/\C/I
.
.
~
~,

mi/II
\(j'
IIglI\(,1I
I~\
mien
can
eua
t(lp
hop
s(j
nguyen.
Vi
dy,
t,ype
lnteg~r
is
rangs
-2 I 474R3047
to
2147403647:.,
t)'pe
Twos_complement_Integer
is
range
-3276R to
32707:
c. Cae kieu duoe
dinh
nUh)a
tru6c

tron"
VHDL
. .
~ ~
Tileo
tieu
ehufin
IEEE
1076 - 1987
ngu'()'i
ta
x<\c
dinh
hai
gOI
ehutin: g6i
Standard
\,~I
goi
Textio
Irong tim
\'i~n
STD. Moi
gOI
chua
t(lp
hqp
eic
kicu
V~I

toan
tLe.
Trong
gOI
Standard
chua
tat
d.
cae
t¢p
nguon
elm
ng6n
ngiJ'
YIIDL
l:So
v(1i
cae
!l1~nh
d~
[In. Sall
d:IY
\,\
m(lt
s6
\";iC:u
ehu,-In dlHl'e
1116
ta
trong g/ll

Standard.
Bouh'<ln:
kiC:ll
lid
kc
c6
h,-11
giCI
Ir~
faise
vii
true
\/ii
qLlan
h~
fHI~e
<
trul'.
Ck
phcp
t,:i.e
dQng
kn
doi
tlf()'ng
\";i~u
Uoolcan
;;\
rh0p
lo,ln

16gie vtl quan he.
Cae
phep toan
n~\y
If,-I
h.li
gi.1
tri ki0u
Boolean.
Bit: ki0u liet
ke
\'(ii hai
giCI
Iri '0' vii 'J'.
C:IC
phcp
10:\11
16glC
c6 Ihe
Ilwe
hl~n
Iren
de
Mii
tu'qng
kieLJ
Bit
va
Ir.l
h.li

gia In kiell Hit.
Character:
kicu
iI~t
\ ;C
veii
mien \.ac d!nh
1:1
t~IP
hnp
die
k;'
Ill'
ASCII,
eic
k~'
Ill'
kh(mg hicll
du(.'iC
bi~u
dien billlg
10;1
eht'l'a
ha k)'
ILL
Cae
k)'
It.r
hl~n
hlnh

dlf<,'IC
bicu dicn giua hai
da'u
lm'lc do)).
]nte~cr:
kieu
so
nguyen v6i
nhullg
giii trj dlfong ho(tc
[l1n.
Mien
Xiie
dPlh
Cll,1
ki~u
Intl'~cr
lfOng g6i Standard la:
ILl'
-2. [47.41)1.647
d0'l1
2.147 A!n.G-l-7,
Ck
phcp to.ln tren
C<IC
dc'li
IUcl'ng
kicu I
ntcgrr
Iii

UtC
phcp tmin
so
h')c:
+,

;"
,/
'
Natural:
III
m(lt
kiC:u
COil
clla
kieu
,,,6
nguycil
\':1
dltng
de:
chi
utC ,,(l
ngu)'C'n kh('ng
[lin
-
,,,6
IV
nilien.
P()~itivc:

Iii
ki.::'u
con
clm
ki~u
so
nguyen
sir dung de hieu dicn c.\c s6
duong.
Bit
vector:
Iil.
kicu bicu dicn
111,'lIlg
eae
Bit.
Strill;:!;: kieu
ch-['
lt~u
bao g6m
ndng
cac
Charater.
M()I
glcl
In
KIC:U
Strin~
dWl'C
chl'l'a Hong

m()t
cap
m6c kcp.
Real:
mt'l
1,'\
GtC
s6 tlwc Irong gi6i
h'.ln:
tu
-1.ClI :
+
38
(kn
I.OE +
::IS.
Phy-,icaltypc
Time:
kieu
Time
dU9c
Sll'
dy.ng
de'
hie'u
di~ll
uie
~l,i
If!
thl~i

gl<111
dLll1g
Irong qua Irinh m(i pbong,
d.
KiC'u
m.in~
Tlflmg
11.1'
IIbll'
trong
etc
ng(lI1
ngCf
1~lp
trlnh truycn Ih6ng. lrong ng()Il
ngCr
VHDL. phiin
Ill'
kieu m:ing
121
nh6m cae phfin
tLI'
clll1g
kicu
vi:t
duoe truy c:tp
\l'ri
nlHr m(ll d(ii
tu<:m~.
Ph:in ttr kieu mang

trung
ng6n
ngi.1'
Vl-IDL e6
nhCing
dae
dlcm
nhu
~all.
CCIC
ph,-\II
ILl'
clla
m:l1lg
c{l
Ihe
lit
l119i
ki(:u lfOng ngt'lllllgt"i' VI-IDL,
SCi
ill'(!ng
e.ie
dl!
s6 ella m.ing ( noi
deh
khat
1<'1
s6
ehicu
cua

1l1,-'llIg
e6
Ihe'
nh:lIl
1l19i
gi.l Ir\ dll'ong.
Nting
chi
cl'i
m()t va chi m(lt
chi
s6
dung de Iru)'
nil~lr
Ill'i
ph~in
ttl'.
!'i7
Mien hie'n lhien
elH'
ehi
s6
xilc dinh s(i phan tu cua llliing
\,~I
hu6ng
~,jp
:\c'p chi ,,6 trong
1l1ilng:
llr c,ie chi
,,6

eao
xu6ng c,\c chi
so
lhftp
ho\\C
nguoe
1'.11.
Kicll elm chi
s6
co
the'
1;'1
kitu
nguyen
ho~\C
kicu li¢t
kc.
Khiie
\'{j'i
de
ng6n
ngu
IZlp
trlllh tru),cn thong,
trong
ng(lI1
IlgU"
YHDL
rn;ing
dw)"C

cilia
Uun
hai
lo".li:
m<.lng
c6
r~lllg
bU(K
\';'1
m

lng kh6ng rllng bw)c.
M:.ing
c6
r~ng
hU(le
III
milng lrong d6 kie'u
eLla
chi
s6
e6
mien xac
dinll
dUlye
quy
d!nh
mQ\
d.ch
lU"i".mg

Inlllh.
Dicu
do
co
nghTiI
Iii
,au
klu
dU<;Ic
Khai
])(io,
mang co
Krcll
thw'K
c6
dinh.
'llnr
y,Jy
m:"lng
c6
r:ltlg hU(K tHong
II,!"
"oi
doi tllvng
kltu
lll<.ing
Iiong
ele
ngllll
ngCr

li)p
trlnh Iruycn til6ng.
eli
phiip
eua
11l,ing
co
fling
bUi)e:
t)PC
ICII_lIhllIg
is
array
(Alw(f!l'.;_
(liil_(
11I·_.\() )
uf
Alell
(1l0 1!/itlll
III
Trong
(h).
/ :/i()(iIlX_(
,i(/_cJlI_,wJ'];'llIlicn
con
clJ<1
kitu
nguycn
ho~\C
kicll lil:!

t l:.
/ :/(,'u_Cliu-,)Jh'il_,/i·la kicu ella
phfill
lU
m;ing.
vr
dl.!,
khai
b<.io
mlmg ella
64
rhfin
lU-
nguyen.
type Arl-is
array
(0
to
63)
oflntcgcr:
Miin!.!
khl')'l!! rllll!!
bw.)e
III
ki0u milll!! Iron!!
d6
mien
""ie
dinh elta


'
L.

L
klCII
chi
Stl
\';1
lur6ng s{lr
xc'p
ella
de
chehi sli kh()lIg
\"iie
dinh illae
ell!
s6
IU\l'n,!!
chil'u ella lll:ing
(tWl"e
chi
roo
\'!m
\'ity
(kii
Ill"ting llliing
kh()J1g
r;lIlg
bU(le
eo

the
e6
s(i
!UO'llg
ph:11l
Ill'
kh()ll~'
:>;;Il' dlllh.
1\6i
c

iell kllile
mill'g
kh(lng ri\ng
hU(K'
e6
"(1
kich
IlJU\l'c
bll,'n Ihicn
'lIm
\'<.)y
dung
lu\mg
btl
nho
slr dung
Chll
lllr)1
ll1,ing

kh(')llg rilllg
hill'll"
e6
the thay doi
tU)'
theo
nhu
cliu slr
ell.mg,
Dlcu nlly khae \
6"i
de
ng(l/l
ngLr
1(lp
tflllh lruyen th6ng nlnr
C.
Pa"eal. .
ell
phiip eua
m<.lng
kh()ng riltlg hur)c:
f~Pt'
/(;II_"hing
is
arra~'
( 1(;/1
/ :/{'II
('hi
,I/!

n.ll1gc < > )
of
Ai
('II
1)1111'11_1/;'.
Ihl
/":/(;11
('/11'
sli'lll kicu eon xile dinh chi
sCi.
Vfdu.
t.ype
B1T_
VECfOR
is
array
(i'atUl'HI
ran~e
< »
of
BIT:
type
String
is
array
( pustiy('
rHng~'
< > )
of
dwractc,,:

;-,uhtypc
B4
is
I31T
_VECTOR
( 3
down
to
0
):
\.'ariablc V5 :
BIT_VECTOR
(4
downtn
()
):
rv1ang
IlllJ'tillg
dl:ll1,!!
tl2 bicu
di~n
call
Ink
luyc'n
1111h
nhu
tl1a1111
gill.
RAM.
ROM.

eic
phfin
ILl'
m;lng dune d;inh dja chi hang
de
elll
:-;6.
do
del
chi
<;(i
ella m;lng
ph;l]
co
ki~u
n\i
1"<.1t:
nl11i
kicu
:-;0
nguy0n.
kil:U
li~·t
kc.
Vi
(IL.I:
m6
I;;
Ix)
Ilh6'c6 kich Ihu6c

16
x
10:
suhtypt,
int J.
is
Integer
range
0
to
15:
;-,uht.\pc ImlO
is
lntcgt'r
range
0 to 1023:
f)'pc
\1ClIIllfY
is
array
(
Inl 1-
)
of
Illi [0:
Ta
e6
the truy c;)p
t6"i
de

phfin
Ilr
cLla
tn~ing
thco chi
:-;6.
Vi
d~l.
LtC
Iruy e(lp
lai
de
ph;"in
IU
eLla
tn,ing X thea ehl
:-;6
l.
variable
X:
Mcmory:
variable
1:
int 1-:
variable
Y:
IntlO:
Y:=XI
]+3
I:

l\gClllllgO" VI-IDL elm phep kh;\i
b;Io
de
1l1;lng
nhi(:u
ehicu. Vi
dl,l
\'c
truy
c;)p
mang
nhi(:u ehicu duqe dua
ra
du6i day.
Vi
til.l.
type
T\\oarray
is
array
({) 10 7. 0
to
3)
of
BIT:
constant
'l\nlROM
:
Twoanay:=
11'11',

'U', '()',
'I'
I
( '(I', ' (' , '()' ,
'('
I
( '0', '0'
,']'
,'('
I
( '1', ' I' ,
'0'
,
'1
t )
X
:=
TwoROM
(2,3);
('0'
,'0'
,'(' ,'('
I,
I
'0'
,
']'
, '0' ,
'('
I,

(
'('
, '0' , '0' ,
'('
),
('(',
'(',
']',
']'));
C.
Kicil ban
nhi
"
Rill ghi
1;\
ullom
eua
m()t
ho~\e
nhieu
ph£ill
tu'
thw.)e nhO'ng
ki~ll
kh.ie
nluLI
\'~\
dLil.K
truy
dp

tdi
nhu
1l1t)1
d6i
tI1Q'ng.
Rill ghi
e6
nhung
d,)e
dicm
saL!.
NMi
ph:in
tLf
eua
\xill
ghi duq'c truy nh(lp t6i
then
I~n
trl1()'ng.
eic
phiin ttl
ella
Ixin ghi
co
the
nh~1ll
moi kicll ella
ngbn
ngiI

VBDL
kc
C<.I
1l1<"lIlg
yil
\xln
gill.
VI
d~l
kiell h,ln
ghi:
type
Datc_
Type
is ( Sun,
Mon.
Tue,
Wed.
Till'. Fri. Sal
):
typc
Holyclay
is
rccord
Y
car
: Intc!!;cr
rangt'
1900
to

1l)99~
Month:
Integ:cr
ran!!;c I
to
12:
Day
:
Integer
range
I
to
31
~
Date
:
Date_Type:
end record:
eic
phfln
ILf
eua
h.ln ghi
dU(Jc
tru)' nhttp
theo
ten
b<.'ltl
giti \':1
ll'll

11
LflJng.
Hai tklllh
[1h,'ln
n~ly
ng[1ll
deh
nhau
h()oi
d:lu ',' .
Vi
d~l,
signal
S:
Iioliday:
variable
T
I:
Inte~cr
rangc
( 1900
to
2099
):
variable
T2:
Datc_
Type:
Tl
:= S.Year:

T2
: = S. Data;
f.
Cae
kicli
trung
goi
Standard
Logie
n.:"
Il1d
hinh
hOii
uic
till
1H~'n
C()
tile:
nh;:1ll
nhicu
hO'n
1w.i
giii tr!,
IlUn,g
ngon
ngO'
VIIDL
X{IC
djnh gl)i
Standard

Logic (
tuong
ling
voi chu[ln IEEE
](iO
Std 1164 -
19(3).
Hai kicu
dG'
li¢u
co
~&
Irnng goi
nay
I:l
STD_ULOGIC
va
STD_LOGIC.
STD_CLOGIC
xac djnh
ki~u
dlilL¢u grim chin
giii
II"!.
etC
gi<.1
tr~
tin hil:u
klc'u
STD_ULOGIC

kh6ng
th~
tham gia
\'110
dlc
pbcp
lOitn
logic
Y~I
so
hQc
co h,in. Trong
tru'cmg
hOp
n~IY
1<1
ph,ii
1l1(:i
rong
C(IC
phcp
tU~ln
so
hQC
va logic
C0
b,ll1
bang each cung
Ci;IP
cac

h,1111
quye"t
dlllh. Trong nhling tru'ung
IWp
khi
lin hi¢u tren
Im''lt
dUi'J"ng
co
the
nh,)n duoc
til"
nhieu
nguon lin hi0u
kh(lc
nhau,
chung
ta
cOng ph,'li cung eilp
dc
kiln
quycl d!nh.
Vi
dy.,
trong Iru'ong
hqp
tr0n
hinh
5.11.
dlf()"Il,g

tin
hi¢u s
Iii
kc"t
n6i
eLliI
hi.!1
dLfCl"ng
tinl1]l.::u
d(lC
1~1l1
SI
\"i\
s]
, khl d6
t<.li
diem kel noi
cll<\
hai
dU'o-ng
tin
hi~Ll
ta ([in
ph<li
xac djnh
giu
tin hi¢u tren
s
DlI:ll1l1;ll
1Iilll1

quycI
dll1h
gl~i
In lin
hl~LI
mnh
6.11
Trlrollg
hOp
,Lf
dung hiltll
quyfl
,1mh.
dlfCl"llg
s
sCi
nh[ln throc tu
gi<.i
Irj
lIn
hi~u
trcn
duo-n,g
"I
\',\
S,
nhu Ih6
n£\O.
Thong thu'cmg
giil

trj Iren duong S
du~1"C
X(IC
djnh
b~ll1g
de
phcp
loCm
OR,
AKD
hO~lc
XOR. Trong Irll'bng
i10P
gi,t Irj
CUi.!
tin hi¢u duqc
1110
1,1
b~l11g
m(lt
lrong chin
gi;'t
trj
CLla
kicu
STD_lJLOOIC.
ta
din
phai
Im'1

rQng
cac phcp
tocin
\('lgic
cha
dc
giAlr! khong IhuQc
I(lp
hqp {
'0',
't
'J
hay
I
'rills~',
'Irue'
1.
NIlllng
phcp
to,in m6 r¢ng d6
duC)'c
bieu
dicn
htlllg dlC
hilln
lJuy6t
d.ll1h.
Cae
gia
If!

clla
kicu
STD_ULOGIC:
type
STD_ULOGIC is
('U',
'X',
'I)',
,\"
'Z', '\Y', 'L', 'H', '.'
),
STD_LOGIC
lil
ki~u
dU'\JC
x,-ie
d!nh. Cae hiun
quye't
dinh cua
kiC"u
l\~y
du"Oc
cung
dip
hlii g6i Stand and Logic.
Tunng
tll'
nhu' nIT
V;I
nrr_

V
ECrOR.
n~6n
ngu VHDL
CUllg
cap
hai kl,-'u
STD_L'LOGIC
VECTOR
V"
STD_LOGIC
VECTOR.
Vi
dL,l.
cntity ADDER
is
port ( A.
It
in
STU_LOGIC
YLCfOR
( 3
do\~nto
0
).
Cin :
in
STU_LOGIC:
S
,out

STD_LOGIC_ VECTOR (
,downto
()
.
Coul,
(lut STD_LOGIC:
),
end
ADDER;
161
g. Kicli
signed
va
unsigned
Ki~u
e6
d:ill
signed
va kh6ng
dflu
unsigned
dLIqe
sir
dl,lOg
doi v6i
nbu'l1g
d6i
tuVng
sc
uuqe truy

C(lp
t6i
nhLI
cae bit va
nhLI
d.C s6 nguyen. Hai
h~u
nilY'
dLIQ'C
djnh
nghLa
lrang hai g6i
NUMERIC~BIT
va
NUMERIC_STD
nhu'
"au:
t~[pe
signed
is
array
(natural
range

of
BIT/ STD_LOClIC:
ty'pe
unsigned
is
array

(natural
range

of
BIT/ STD_LOGIC:
Vi
dl,!.
Card_Input:
unsigned
( 3
down
to 0
);
Score:
signed
(4
downto
0)
:= "00100";
cae
phep toun so hqe dlIqe Ina r¢llg eho nhling
kit~u
dO'
li¢u
nilY
vii
dlIq'C
1116
ta trung cae goi
NUMERIC_BIT

va
NUMERIC_STD.
Cie
d6i
tuVng
ki6u
unsigned
duqe bieu dien nlllr cae so
nguyen
nhj phflll kll6ng
drlll.
h. Kicu
con
Cae kieu
COil
I~l
IlH?t
t(lp
h(,ip
COn
eua
de
kicll
drr
dU'<;K
djnh
nghLil
khtic.
Phep kiwi
bao

ki~u
con
c{)
the
ntul1
a
1l1i,li
\'j tri cho pllcp
J hai
baa
kicu.
SI!
kh.ic bi¢t giua kiell
can
vii
kieu la 0 ella kicu con chi la t(lp con ella
m{)t
ki~u
hOZlC
llH?t
kieu con
diJ
dlt~K
dinh nghia trltlk.
Kicll
can
Ihuang dung
dC
gioi
IWIl

c,ie dang
du'
li~u
trong
de
phep
gem
va
Ir-:n
de
duo'l1g
dn li¢u. V6i \'i¢c khai
b,IO
de
kicu
eOIl,
cac
(h.Ulg
du
li~Ll
c6
the
dLIqe
nh(Ul
c,Ie
gi{l
tri
eo
nghL<I.
Cte

kieu con
k6
thLra
I11qi
Imln
tll"
vii
ehuong
trlnh con tae d¢ng len cae ki6u eha.
Vi
Ul,!.
eile kicu
natural
\'~l
positive
iil
eSc
ki~u
con
eua
kicLL
nguyen
integer.
Ck
kiwi bao kicu con cll
dc.lllg
sau:
suht)'pc
Int4 is
Integer

range
0
to
15:
subtype
IlIT_ VECTOR6 is IlIT_ VECTOR \ 5 downto \J):
§6.4
Toan
hi
va
hieu
thuc
Trong ngon
llgU
VHDL.
de
hiell thue
lil
C<l.e
eong Ihuc. Cile
et'lllf!
therc
nay xac djnh cae tae dQng linh toiln
ICn
cae
doi
11I(jllg
du
lieu.
Cie

hi~u
Ihue
in2
tlll.rc
hi~n
d.c
Iinh
IO(lIl
so
hqc
\"it
l{lgic
su
dl,lI1g
Gic
c.ic
{O.in
IU
\'6i
m{)1
s()
uic
toan h'.lllg. Cae
10(111
tll"
d~IC
trung cho phcp lo,in
se
duqc
t1wc

bi2n
cem
de
loan
hi mg
lil
de
ngu(ln
dl1
li¢u
eho
de
phcp
toano
1.
C~ic
toan tit
Cae
loan
Ilt
dlH1c
pl1flll
chia
theo
dc
!TItfc
dc)
uu
lien
vii

tl"(11
I~t
tinh lOall.
Trong b,ing
5.1
dU'a
ra
dc
nholll
phep
toan
YlJi
tnii"c
L1<)
ltU
lien
t[mg
d in.
Clc
quy
lfOC
ve
1r(lt
IV
t1wc hi¢n
cae
ph~p
toan
trong
oieu thue dltqe the

hi~n
nlm
sau:
Trollg bicll
thll"c
cac
phep lo,in e6 tnt1c
dl)
lfU
lien
IOn
han
'Ie
dWl"C
tlwe
hien
truck.
C.ic d,lu
ngoi~c
dem
cUllg
giup
x(\C
djnh dung
tr[\1
tu
tinh
10:.1.11
oieu
thu·c.

Cae
ph~r
toan
lrong
nh{l!l1
YO'j
Cltng
1Il(1\
mlte d(l
uu
!i':n
-;c
dU"<;J"C
t1wc
hi~n
IV
Ir.ii 4ua ph:li trong d.e
oieu
thu'('
Hang
6.1. Cae Imln tit
\'A
!l1(i"c
d6
uu lien.
Gic
e!ll~D
Io.:in
IOOle
and, or, nand, nor, xor

eic
phcp
lOan
quail
he
:::,
I:::,
<,
<:::,
>,
>:::
Cae phcp loan
c<;Jug
+,
-,
&
Toan
Ill"
d,lu
+,
-
Gie
ph~p
toan
!lh 1Il
,
, /, mod. rem
Cae phcp loan kh,ie
**
.

ao",
not
a.
Cae
I)hcp
tOlin
lllgic
Trong
ng()n ngl[
YHDL
dc
phcp toan \6gic
gom
eo and, or, nand, nor.
xur
\'~t
not.
Lie
phcp
tn{1ll
ntlY
Ille d(lIlg
lCn
d.c dlt h¢u
ki~u
BIT, Boolean
V;I
1l1,ing m(ll
chi~u
de

BIT.
86i
Y{ij
cae
phc:p
lo{m
hai
ngoi
and.
or.
nand,
nor.
xur.
Cilc
lo(m
h,.mg
ph.ii
eung kieu. Trnng trl10ng hop
de
loin
hdllg
\a
de
]11,llIg
mc)1
chicu
de
BIT
thl
de

mang phai
co
eung
d<)
clai.
Cae phcp
!Oitn
nh!
phan
xae
dl11h
cae
ham
trcn
e{lc
bil
eua
nhil"ng
ph:in
tu
ll1ilng
C(~l
cung chi
so.
kCI
qUi.l
s~
1;1
!1lQI
m.ing

c()
cung
d()
d;\i
\';1 gi6i h
•.
tIl
cae chi
~.,(i
Ph0p
tOal1
illQt
ngoi not xac d!nh phcp dao
oil
doi \'oi loan
h'.l1lg
eua
II,·.
Trong
twang
iwp
lOan
h'.ll1g
lil
m¢1
mang thi phep toan
not
lik:
d<)ng
10n

1M
ci
de
ph{in
IV
CLb.
mango
163
Vi
ell}.
signal
A.
n,
C:
nrc
VECfOR
( 6
down
to 0
):
A
<=
13
and
C
h.
Cae phcp tmill
quan
h~
Cae tmin

tlI
quan

g6m co cae phep toan
~o
sanh ":::" .
"/=",
"<"
.
"<="
,
">"
. ">:::".
Cae
phcp loan so silnh
1,1
dc
phcp
toan
hCli
ngoi
v~\
efc
to{1ll
hi ll1g
ph,i.i
co
clll1g
h~u.
Kct quit so

s<lnh
nh(m
kicu lloolc'lIl.
Phcp tOi.\l1
":::"
kic'm Ira quail
h~
"hJng":
"/="
-
kie'm
tra quan
he
"khi.le" .
"<" - quail
h~
"nhl)
han":
"<="
- nila hlm
hO(lC
b,l.l1g
,
">"
- "k'm
hll"il"
,
">="
-
"16"11

hem
h()~c
b~lllg".
KCI
4Ui.\
I1h~1l
gia
trj
true
I1(U
quail
h6
dW1c
nghi¢m
dung
vi:t
nh~H1
gl{l
Ir~
false
lrong
Info-ng
h0P
ngLI0c
i'.H.
e{\(:
quan

"="
vii

"/=" xac djnh
w1i
1119i
kicu
da
li¢u. Glll
cac
qwm

con
1\li
"<"
, "<:::" , ">" ,
">="
chi xae
c1jnh
vCti
cae
kicu
li¢t ke, so nguyen.
l1le'll1g
l11¢t
ehicu
cae
li¢t
k(:
ho~c
so nguyen.
51!
sap

xep
G'te
gia
1r!
Irong mien xae dinh eua kicu
xae
dinh
k61
tjUet
cLla
cae phcp
Imin
so
: anh.
Cie
: 6
nguyen duqc
StlP
xcp
theo
IhCI
\tf
II!
nhl~n
III
Gie
s6
,1m
deil
cae

so dtlung.
Cie
m.:tng
st:
dlI~1C
so
sanll hilllg
dch
'>0
s<inh
lirng
ph::i11
Ill:
clla
m~\llg
btl{
di.lU
lu
dn
Ir{li
ella mien xac
d~nh
chi
,,()
m,'lllg.
VI
cit,!,
signal A.
B:
unsigned

( 6
down
to
0
);
signal
C.
D.
E:
Boolean;
C <= ( A =
Il
l:
C.
C{IC phcp
toan
c(mg
Ciic
pbcp
t0611
c¢ng bao
g6m
"+". "-" .
"&".
Cae
pilip
to,in "+", "-" time
hl~n
trcn
de

d6i
ILH,mg
kicu
integer.
Phcp loan noi
"&"
ap
d~ll1g
v6i cae d6i
Ilf\mg la mang thanh ghi. Phcp
to,il1
nay xily
cl\fng
ll1<.'mg
m6i ballg
dich
ghcp
noi
hai
1TIi.l.ng
nam
trong toan
b;:.mg
Vo\
nhau.
Mc)i
toan
hi.~ng
ella
phcp

tOil.ll
"&"
co
Ihe'
ia
m¢t mang
hO(IC
philll
IL1
ella
m tng.
Cae
phcp
loAn
Ili'ty
cling
thlfc
hi~n
v{)'i
cae
to<l[1
h
•.
mg c6
ki~u
signed
Yll.
unsigned.
164
signal

W:
BIT_
VECfOR
(3
downto
O)~
signal
X:
integer
rangc
{)
to
15~
signal Y. Z:
unsigned
( 3 do".'nto 0
)~
Z<=X+Y+Z~
Y
<::::
Z ( 2
down
to 0 ) & W( I
)~
d.
Cae
phep
toall d!llh d{iu
Cie
phcp loan

lTI(lt
ngbi
"+",
"-"
,
"abs"
tlNc hi¢n vtii
d.c
to(lll h:.\llg
d,.mg
so
va
tni
I'.li
gia
tri
elmg kieu.
c.
C~ic
phcp
toan
nhan
Cic
phcp toan
nh,l11
"*'*" , ,,*" .
"r
,
mod,
rem

!lwe
hi~n
(rC'1l
cae kicll
integer.
Pllcp
(OUI1

,:,*"
the
hien phcp
nang
1011
Ill}'
thlra~
,,*" - phcp nh[\ll;
"j"
- phcp chia:
mod
-
Itiy
m()(lull:
rem·-
lAy
ph:ill
dlL
Vi
dl,l,
2.
Cae

tmin
Iwng
signal
A.
B,
C:
integer
range
0 to
31
~
A<=Il'Il;
D<::::
E
mod
4:
, ,
Trong
!1l0t
bieu thue,
cae
Imin
tiI
dung
de
tmin
h'.lll;
;ti11'f4
,, elC
~i:'

Ir!
clla
chung.
Thl'Hlg
thuang
trong ngbn
ngCi:
YHDL
c6
nhlcu
d,.tng
tmill
Il:mg.
Cac
loan
h,.mg
cOng
c6
the
In.
ehinh
cae
bicu thue.
Cae dang loan
han
o
tron"
noon
noCi:
VHDL

baD
gam:
. . 0 0 0 (;:-
Cac
hang,
ky
hi~u
nhu
'x' , "1001" ,
345;·
ale
ten.
d!nh
danh;
Cit
chi
s6~
165
Cae tcn
ngin
\'a biet danh:
- Cae ten
thU(lC
I[nil:
Ciie
I1h6m:
Oic
bi~u
thli'c d!nh kieu:
Ole

phc'p
goi
h~lIn;
Cae hieu
thlfC
ehuycn
deli
kieu.
Cue
htlllg
ky'
yi\
gJ,i
11'\
k5'
hi~u
hO(IC
ia gia Ifj
~O,
gia Ifi
k)'
IV,
cae gia
If!
ii¢!
kc
,
c;.ic
gl<i
tfi xau.

166
eic
gi;i
Ir!
so
lil.
c<ie
lli\ng
gia
Ir!
nguyen. Cae
gi<.1.
Ifi
so
dL19'C
bi~u
di.211
tU)'
thu()c Ihen

e(l
so
l11a
gi<.\
Irj
diS
hieu (hell.
• Trong
h6
cO"

sci
mui".l'i
cae gia
II"!
~6
duQ'c
yie·1
nhu
blnh Ihuang.

Trang
h~
co
s6 khae
111
2
)-
16,
ta
\'i2'1
du6i
d,.mg
((1_"\0'
#
gl([
1/1
/Ulllt;
Vfdu,
2#
1101

Cae
htll1g
ky
IV
i~l
de
ky
It!
fieng
Ie
dU'(1e vicl Hong hai
ngo(lC
do'n.
V[
ell:'.
'1.'.
Cae
h,\ng
li¢1
kc
iu
cae hang
du~J'C
xae djnh Irong djnh nghla kicu
ii~t
kc.
Trong ngon
ngil'
VHDL
cae

gi,i
If!
licl
k0
ella
cue
ki~u
ii~t
k0
khcic
nhau
co
the Irung nhau.
V[
du,
type Color
is
( Red, Green, illuc
):
type
Lighl
is
( Red, Yellow, Green
):
eie
gia
Jrj
X[IU
ky
It!

la
bicl]
dicn ella mung ky
III
me)!
chicu
dc
k}'
It!.
C6'tul(
d,.mg
hilng
x{iu:
de
xilu
ky
It!
\'3.
xiiu
de
bit.

Ck
x{iu
ky
tL.r
Iii
ehu6i
de
k)'

tt!
ntllTI
giua hai driu moe
b:p.
V[
d'-:l,
"Demo", ''100lO01''.

X;lu
cae bil duqe bicu dien
IL1o'ng
II!
nhu
X[tll
ky
II!,
nhlIng
ph[m
bi¢t
c<.I.c
de
ch.tng
xflu
nhj
phfm.
oclal \'a
hcxa
bitng
de
k)'

h.r
chi
he
co
s6,
Vf
du,
B"
10011
",0
"277", X "4C",
h.
C:ie
ten
,"';}
d!nh
danh
Ok
dinh
uanh
d6i khi
con
g9i
1m)!
cach
don
giin
IiI
t2n. Dinh
danh

li\
uk
!en
deli
\'6i htmg, bien, tin hi¢u,
th~re
th~,
ella
d.c
ding,
cl1l1O'ng
Irlnh
COil
\'(1
ella cac khai
baa
tham
so. Cae
IV
klloi\.
trong IJgon
ngCf
VHDL
ciing
1~1
cae
dinh danh. Cae ten
phii
btlt dau Itl chiJ
cai

va
chi
chua
chi.1
GiL ehiJ
so
\"~l
(Hlu
gi lch
noi
'_'.
D[llI
g,~ch
noi '_' kh6ng
!h~
la
ky
tI! sau cung
trung
llH)!
d!nh
danh. Trong
ng()]l
ngi.1
VHDL
cac tcn va djnh
danh
kh6ng
ph[1ll
bi¢t theo chu

hoa
\'U
chiI
!l1lfOllg.
Mt)t s6
djnh
danh
nhl1
entity,
port,
is
\'tl
end
1~1
de
ILl'
khoj
trong ng6n ngu
VHDL.
Moi tv
khoa
eo
5'
nghia
xac
djnh
trung
ng(m
ngu
vii

khong
the
su
dl,Jl1g
trong
de
1lll,lC
dfch
kh,k.
e. Tell du''lc
chi
s6
hlHl
Nhung len
nily
x<.le
djnh
m()t
phfin
tu ella doi luqng
Inelng.
Cll
philp m6
I,i
cLla
ten chi s6
nhu
sau:
Trong
do,

hilll_ll!((("
ph<.ii
tra
l<;Ii
gia
tfj
lu
chi so clla phfln
tt!
lTIi.ing
trong mien
x<.tc
djnh clla chi s6.
Vi
dl,l,
type
Memory is
array
( 0 to 7 )
or
intcj:!;cr
range
0 to 1023:
variable
Data_Array: Memory:
,"'ariablc ADDR:
integer
ranj:!;c
0 to
7;

,'ariable
Data:
integcr
nlllge
0 to 1023;
Data
::::
Data_Array
(
ADDR
):
d.
Ten
ngan
\'U
hi~t
danh
Ten ngltn x,\c dtllh
chuai
eac ph,ln
lU
eua d6i tuqng
m<.lng.
Huang Clb
uic
chi s6 phan
tu
ll1,ing la to
hO(lc
downto.

Tuy
nhicn
chieu chi so
cll<1
len
nglm ph,ii
luong thlch voi ehicu chi so
cua
ki~u
milng
tuang
LIng.
Ten
ngtlll
co
the
st'r
(h,lllg
cung
\'oi cac
bi~l
danh
(alia'>
).
167
Bi¢t
danh
(,,\0
r<'l
1110t

ten
ll10i
elm
ll1Ql
ph:in
ho~c
tO~U1
be)
mango
Bi~t
danh
eung
Gtp
m(l(
co
che
truy
G~p
khCle
Wi
phein
tir eua m;'ll1g.
V[dl;!.
variable
Org :
BIT_
VEcrOR
( 7
down
to

a
):
alias AI : lllT_
VECfOI(
(0
to
3)
is
ORG ( 7
down
to 4
):
alias 1\2 : BIT_
VECfOR
( 107
duwnto
100)
is ORO:
alias
1\3 : BIT is
ORG
( 7
);
e,
nUHk
tlnh
Thw.)c
(fnh
];\
<IiI

It¢u gan !Jen v6i
d(ii
tuong
(rong
ngon
ngCr
VHDL.
Thw)c tinh trong
ngCm
ngCr
VHDL
ella
de
hic'n
hOile
tin hieu llf(mg ung
\'oj
nhiJng gi;.l(r!
Cl.l
the \'ll duq·c xac
d!l1h
Iheo
lJUY
tac
Cll
ph,ip sau:
Cae Ihu(K t[nll duoe dinh
nghia
trude trong ngon ngu·
VHDL

iiI
left,
right,
luw, high.
range,
reverse-range.
length.
168
Cae thu(K tfnh left
hO;IC
right
tni.
l<:ti
chi
~o
clla
phi.ln
Ilr
ben Inii
ohAt
[m(lc
hell pll,lj
nh~t(
ella
ki~u
du
li~u.
CCic
thU(K
tfnh

hij!;h,
low tnt
1;.11
chi
so
ella
phiin
lit can
ni1ft(
hO(lc
thllP
nhflt
cua
kicu
dG
li¢u.
CCic
thu()c tinh
range
VlI
reverse
range
X~IC
dinh kho:lllg ella chi st).
- Thm)c tinh length dua
ra
so
luqng cac phfill
Ilr
eua

!1l()(
IlIT_
VECfOR.
Vi
elL,l,
suht)'pe
Index_range is
integer
range
10
downto
0:
\'ariable
Veetl : BIT_
VECfOR
(lndx_rangc);
khi
do
ta St e6:
Veer
J'
lert
f-)
Indx_rangc'
left::::::::
J 0;
Veetl'
right
f-)
Indx_range'

rij!;ht::::::::
0;
VectI'
high B Indx_runge' high
==
10;
Veetl'
lo~,'
B Indx_ntnge'
low
==
0;
VeetI'
range
B Indx_rangc
==
10
downto
0:
Veell'
reverse_range
B Indx_range
==
()
to
10:
V eet
l'
leng;th «-t
11.

Gic
thu()c tfnh
event
V~I
stable
chi
co
d6i
vO"i
e,le tin
hi~u,
C[IC
tbUl)e
tfnh
11;11'
chi
rtmg tren duo'ng tin
hi~u
dang
xd
c6 xu[it hi¢n
sV
ki¢n
hay gi,i
tf!
trell duong tin
hi~u
6n djnh
t<.li
th()·i

diem hicn t'.ll. Trong
qua trlnh long
hqp
1l1<.lCh,
cae IIlll¢e tinll
nily
thuang
dll11g
vO"i
de
lenh
wait
";1
l¢nh if,
Trong ngon ngiI VHDL con e6 m¢t so
thuQc
tinh
ltuQ'e
djnh nghla
trudc
kh[lC.
Ph[in
16n
d.c
Ihu9c Ifnh
nllY
duqc
dung
eho
qUii

trlnh
\TIc.
phung. Vi
d~
nill!"
d.c
Ihu9c tfnh
delayed,
activc,
behavior.
structure,
last_cwll.
l:lst acth c.
f.
Cae
nh(lI11
Cae I1hom
kCI
hqp
mC)1
hO(lC
nhicu gia
tl"j
vao
11l¢1
gi[l
Ifj
kC·I
hqp
ella

kicu
Im'tllg
ho(1C
kitu
han ghi. Nh6m duqe
dung
de
gun
gi<\
Irj
eho
deli
tU'Cfng
kicLi
m:lIIg
ho(1C
b<.ln
ghi khi kh6i
t<.IO
hOZlc
trong
de
bieu
th(J'e
gan. Vi¢e d.lnli chi
so
de
ph,l.n
Ill'
duQ'c

d(1C
t<1
thea
t6n
ho~e
Illeo
\'!
Irf.
8(lc
1,\
Ihea
len: sl!
luang
{fng
giiJ'a
c<le
phan
tll'
clla
nht'1l11
V~l
pilan
Ilf
ella
deli
lu'(;mg
du~)'C
gall
dLfQ·C
chi

1"0
thea ten ella tlrng
ph{in
Iii
<I gi'l
tr!
clb
chung.
Vi
dl,l,
t)·pc
Coloclist
is ( Red.
Orange,
Blue,
White
):
type
Coiocarray
is
army
(Color_lisl)
of
I31T
_VECTOR ( I
down
to
()
);
variablc

X :
Color3lTay;
X
:=
(
Red
=>
"00", Elue
=>
"10", Orange => "01",
Whit(.:
=>
"II"
):
169
Dtle t,i
thea
vi tri :
m6i
philn tti
nll~n
gi,\ tri ella cluing
trong
bicu thue
then
trM
tt!.
vr
ell.).
nhu

tren
tru
phcp
gan
eu6i :
type
CoIOl'_list is ( Red, Orange. nIue.
White
);
type
Colocarray
is
array
(CoJoclist)
of
BlT_ VECTOR ( 1
downto
0);
variable
X ;
Coiocarray;
X
;=
(
"00"
.
"10"
,
"0
I"

,
"11"
);
K hi
gan
giii tf!
eho
nhom.
ta
e()
the'
kh6ng
can
thiet
(t~lt
gia
trj
eho
tAl
dl
de
ph:in
tu
ella
nhom.
Vi
dl,l.
subtype
BV7 is I3IT _
VEcrOR

( 7
duwntu
0
);
variable
X : BV7;
X:=
('0'.
'0'. '0'.
'I'.
'I'. 'I'. 'I'.
'1');
X '.= ( '0' . '0' . '0' . others =>
'1'
);
X
:=
llvT ( '0' • '0' . '0' . others =>
'I'
):
g, Cae hien
thue
djnh
kieu
Oie
bieu
thuc
djnh
kicu la !lhiing bi2u thue
hO(IC

nh6m
ciLlIlg
de
xac
djnh
fa
nilling
tlnh
tr'.U1g
m~lp
mo.
Vi
d!.J.
nhu
trong
truong
hQ'p
hai
beu
li¢t k6 co
nhling
gia
tfj li¢t
ke
gi6ng
nhau.
CU
phapcua
bieu
thCre

dinh
kieu
nhu
sau:
hi/If
flll(e
phili
co
kieu trung. vai fl'J/):.ii;'If.
170
VI
dl,l.
tmng
truang
hqp
hai li¢t
kc
co
nhOng
gia
tri giong nhau.
type
Color{ is (
Red.
Orange,
Yellmv,
Green,
Blue. Purple);
type
Color2

is (
Green,
Black.
White.
Yellow);
variahle
X:
CaIOl·I;
X
:::::
Color!'
(
Yellow);
Uia
tri 'YeUO\v'
dU(jc
XdC djnh tuong minh
la
thut)c kicu
Colorl.
Nhu
v(ty phcp gall (r2n lit dung \'6i cu
phap.
h.
Phcp
ehuycn
dui
kicu
Phep
ehuycn

u61
kicu
cung
dip
phuong ti¢n
biC'n
(k~i
gia
tq
ella nht1ng
doi
tU<;l'ng
Ihw>e
nhGng kieu
e6
quan
h~
eh~t
ehe
voi nhau \'i dy nille kieu
rca
I
va kieu intej:!,cr.
CU
ph,ip ella
ph~p
bien doi kieu
nhu
"au:
VI

tiy,
signal
X:
STD_LOGIC_
VELIOR
(
~
downto
0);
signal
Y:
STD_ULOUIC
YECrOR
( 3 down to
0):
Y
<=
STD_ULOGIC
YECroR
( X
):
~6.5.
Cae
e:lu
true
tmln
t~
Trang
ngon ngfr VIIDL, kie'n true Xil.c djnh eh6e
nfmg

ella timc
the:.
Trong
kicn true
chua
ph[in khai
IXlo
cae
ki~u,
d.e
I[n
hi2u. cae
htll1g.
dc
thanh ph[in va
de
chlfo'ng trinh con.
111(.:0
sau
phAn
khili bao li\
eAc
C{lll
Irllc
tlu.re
hi¢n dong thoi.
Cic
eau
true thlfe
bi~n

dong
thai
co
the:
iit
de
bi0u tbue
gall tin
hi~u
song song.
de
khoi
\'a
cae
!<;nh
kll{1i
tao phien ban
cUJ.
Ihanh
phfin.
Cae
I~nh
thy"e
hi~n
dong thai
dU~1e
ket noi
veti
nhau hang
nhG'ng

I[n
hi~u.
Moi
khoi
ICnh
tiwc
hi~n
dong thai trong mt)t kit'n true xac dinh
In91
don
yj
t[nh toan
baD
gOIl1
de
thao t,le tfnh toan nhu:
dQe
tin hi¢u \,ao. tlwc
hi~1l
de
tfnh toan trcn cue lin
hi~u
do
va gan nhnng gia Iri tfnh
dUQ'C
cho
de
tin
hi~u
ra.

Trang
ngon
ngt1
VHDL,
I1H?t
cau
true
thy"e
hi~n
d6ng
thoi
II
qua
trlnh
(
pruees "
).
Qua
tdnh
Iii.
lTIt)t
du
true
quan
trQng
dV(je
su
tlL.IIl);
de
m6

1:1
171
hill1h
vi
hOi 11
dong
cua
mi LCh.
Trong
ITIQI
kien lr(lc,
1[\1
ci
dc
qu,\ trlnh sl'
dW1C
Ih~rc
hi¢n d6ng thai khi
ma
phung.
\11)1
qu,\ trlnh
duC)'c
xay
dl!ng
tll"
nhl1ng
cfiu
Ink
lu,"in

IV
- hay
6lJl
~t)i
Iii
c,le \¢nh tufin
tlr
Trong thoi gian
ITIO
phlmg, cac
\~nh
IU(1Il
IV
Irong
]lll)1
qll'.\
trinh sc ctuae
tlll.rc
hi¢n
\fill
IUQ1
trong
1l1(1\
chu trinh
VO
\wn
hM
dfill
Ill"
I~nh

thCr
nh:it
(k"n
10:nh
lhu
/I
va sau
do
vi¢c thvc
hi~n
qua trlnh
1<.li
quay
In)"
t.li
knh
cti.lu.
Vi¢c Ilwc
hi~n
Il1Ql
qua Irlnh trong qu,i trlnh m6 phlmg
In~n
ngon
ngiJ
VHDL
hi
dung
h.li
khi
gZtp

diu
l~nh
wait
va
duC)'c
kfeh hoat
I' Ii
khi
c()
su
thay
cit),
tn.Lng
thai eua it
nh[it
tnQt
trong
cac tin
hi~u
mCuTI
Irong
danh
sitch
die
till hi¢u
I(IC
d(mg.
Cac I¢nh
ttHIn
IV

trang ngon
ngCr
VIIDL gum eo:
Gill
\¢nh gan eho hien;
Gill
I¢nh gan cho lin hi¢u;
Cau I¢nh
iF;
Gill
1¢1111
case;
Gill
I~nh
rcng
null:
Cic
I¢nh \'()ng
\(tp.
1.
Phcp gan bien
Trang ngon
ngu:
VIIDL, phep gan bien co lac
d~lllg
\u"lmg
II!
phcp gan
().
cae ngon

ngil"
1(lp
Irlnh truyen thong. Phcp g •
.in
bien
IhleL
\(\p g[,\
tr!
m6"i
cho
hilYn.
Cu.
ph<lp
cua phep gan bien
nhu
sau:
bit';11
:=
hilll
tllli't":
Ve"
tnti eua phep gan
phil!
la
bien da
dUQ'c
khai
bilo
tir truac.
Ve

ph,ii ella
phcp gan
Ia
bieu thuc.
De
phcp gan co the tlwc hi¢n duqc, bieu thuc d
\'C
trai
va
bien
ave
pil,ii
clLa
phep gan phai cung
ki6u,
Klli
mc)t
bien
dU"qc
gan gia
II'"
phcp gan duqc
Ihl:re
hi¢11
vl:ii
tl1(\i
gLan
rno
phimg
bimg.

khong.
DieLl
d6 e6 nghia IiI sl! Ihay do, gia tri
cua
bien
ctuqc
xu)'
ra
ttk
Iho-i
ngay
t:'.li
thui diem
rna
ph6ng hi¢n tai.
Cac
hic'n
chi
dU"<;1c
khai bao trong cae gu

!.
trlnh
ho<:tc
ChU0Jlg
trlnh con
va
duC)'c
slr
cl~l!1g

de
Iuu
tnl cac ket qua trung gian. M¢t bien
dU"q'c
khai
[)iio
hl':n
trung m(ll qua
tdnh
hO(lc
chuang trlnh con se ton
t~li
C~IC
bl)
lrang qua trlnh
ho~tc
chuong
lrlnh
con do
va
kh6ng the
dU"<;1C
truy
C~tP
16i
Ilr
cae
e~iu
truc
:->ong

song
kh

"ic.
172
VI
dV
ph{;p
gan bien,
suht."pe
Intl6
is
integcr
rallj!;c 0
to
05635;
siglwl S1.
S2;
In116:
si~nal
(iT:
boolean:
pruccss
(Sl,
S2)
variable
A,
13
: Int16:
COllstant

C:
Intlo;=
100;
bcgin
A
:~Sl
+ I:
B
:~
52 *2 -
C:
GT <= A >
13;
end
pl'ocess;
2.
Phep
gall tin hieu
Trong ngon
ngi::i'
V HDL. tin hi¢u
lA
m9t
d~ng
clui
tuVng
d[\c
bi¢t.
Ph{;p
gan tin

hi~u
dung
de
tbay doi gia
tri
eua tin hi¢u. Die tin hi¢u lu6n
c1uo'C
bi~u
dicn
kc't
hQ'p
v6i dicn
biC:n
thui gian. Phcp gan tin hi¢u thay doi
gi{\
II'!
clla lin
hi~u
tl(ang lrng thea thui gian va plw
thu<)e
vao
de
mo hlnh qua Irlllh Ire
Irong
d.e
phfin
Ill'
mi leh.
Khi tin hi¢u
citlqe

gan gia Ir!. gia
Ir!
m6i
clo
kh(ing
dWK
g.an
\"()'j
1111
hl~U
m()\
deh
IU."C
Ih,1i
mil.
plliii sau
11191
thoi gian
duq'c
d~nh
Ijeh lrlnh trude trong
Iho'i
diel1l
m6 ph6ng tiep then
wang
lWg
v6i
1110
hlnh
tre. Phep gall lin

hi~u
eo
eu
ph{lp
nhLf
sau:
fJ/c"II_lfllk xJc djnh
dlc
gia tri gall. Kieu clla bu;'u_,IIII"c
ph"li
trung
\'6'j
ki~ll
ella
1{/I)li~;II_,1fc".
IfuJi_Ulal/
iii.
bieu thlIe C() kieu
TIME.
Trang
1119t
qu,i trinh, vi¢c gan gia Iri clla
bi~u
thu'c
cho tin
hi~u
sc
throc
lam tre
khi chu trinh mo ph6ng

diUlg
thlfc
hl~n
va
dUQ"c
kiem
soit
bo-i
loan
Ilr
wait. Chlmg ta hay xct
VI
d~l
ve
phep gan tin
hi~u
trang
dOi U1
chuC1ng
I["[nh
sau:
proccss
hc~in
end;
S 1
<:::::
nut
eLK
after
30

ns
;
Sl
<= DIn
aftcr
0 ns ;
S3<=SllmdS2;
wait
on
eLK;
Trang doc.lrl chuang Irinh nay. Ihao
tac
g.ln
kc'l
qua
c.:ua
phcp
tO<Ill
"not
eLK"
cho
bien
SI
'iC
chI9c
I1wc
hi91l
~au
30
ns

tlnh
IU
tho'j
di~m
Illt)
phong hien lai.
Trong
Call
\¢nh Ihtt hai. thai gian tre
clli.l
phcp
g<.in
dU"(fc
clio Ix\ng
'0',
khi
do
n¢c
gtlll
gi,i
Iri
ella
lin hi¢u DIn
cho
tin hi¢u S2 s0
du"(1C
tln.!"c
hi¢li
sau
khaang

thi:1i
gian delta tlnh
III
th(:ji
diem
m6
phc'mg
hl~n
t'.lI.
Tm111g
!L.r
nlllr
v;ly.
t!"ong
ph 'p
g.,in
lIn hieu
1\111
ta.
kct
qu<.i
ella
phc'p
tOiln
IC)gic
and
\11lK
hi¢n Ir0n cac gia tri hi¢n
tho'i
cua lill hi¢u SI d S2

Sl:
dlf0c gan cho tin hi¢u
Sl
S,tU khming
tho'j
ginn delta tinh
IV
Ihui
diem
1116
ph()ng hi¢n
Ih('ii.
Khi
XU<lt
hi¢n
st!
ki~n
tren
dU'ung
lin hi¢u
eLK
( gi,i tri
tn~n
duang tin hi9u
eLK
chuycn
tLr
'0'
sang
'I'

),
tat
d.
cac giaa
d~ch
<.tJ
dU(Jc
dillh lich trlnh Inf(k
thai di6m
Xuflt
hi~n
slf ki¢n sc
dUQ"c
tlwc hi¢n b6i
h0
m()
ph()ng.
Khi tin
hl¢U
dl:qc gan
gi,,\,
Ir!
trang qua trinh, phcp
g{m
s2
:.;.{tC
dinh m6t
h<,1
dieu
khien lin hi¢ll. Trang

me)t
qua trinh,
I110t
tIll
hl~U
chi co
the'
nl
1n01
clicll khien, dicu d6 co nghlu
Ib.
ben {rang
lllQt
qua trlnh tin
hi~Ll
chi e6
Ih~
xu[it phat til
me>1
ngu()ll. Neu tin
hi~u
dU<;1c
gan
gi{1
II"!
trong nhicu qua
tl"lnh

h;lc
!lhau, cllling ta

1161
l"t'ing
tin
hi~u
c6 nhi6u dieu
khi~ll.
Trong
ng{)n
ngu'
VIIDL,
lrong
true\ng
lWp
m()t
lin hi¢u c6 nhicu dicu .klllen, cae
h~l1n
lJu),ct
d~nh
duc.K
xily
dl;rng
c1~
xac d!llh gia tri cae tin
hl~U
eo
llhiC:u
cilCLl
khic;n
J"\hu'
(1;1

de
e<\p
ltii Irong
c!lll"ong
ha,
Irong
lhl~1
! c'
m'lch.
ChLlllg
la
ph~11l
bi~1
bai
h<li
d:'.l1lg
thai gian
In':
khi
ta
dicu khien
d.c
Ihao
t,IC
Ircn
Illl
11I¢u
thc()
Ihi\i
gian:

IhCii
gian Ire qu,in tfnh
\"it
Ih('ii
gi':'lIl
Ir(:
Ian
Iru)-'"cn.
174
Thll'i gian
tr~
quan
11nh
(hwc the hi¢n
m[tC
djnh
lrung ng()n
ngCr
VHDL.
GlCt
II"~
thi:1i
gJan
tn~
qU{ll1linh
lit
dt)
dili
gitii han
dn

Ihi(,'1
u'la
tin hicu
tAc
dong
d~
thiet c6
Ih~
ph,'tn
(rng
vc1i
sV
xufit
hi~n
Ifn
hi¢u
d[iu vao. Neu thai
gian
16n
I,.ti
cua tin hi¢u
dfiu
\'ao khong
\"lI01
qua
gij
trj
thl:fi
gian
In!

qu;in tlnh thi
lTIi lch
sc kh6ng phan
lJng
v()'i
s~r
Ihay
dOl
ella tin hi¢u. Th()ng s6 thai gian
Ir~
qu,in tinh
dU'<;1c
sU:
dl;lllg
lrang
quS trinh
1116
hinh hoa cac thiet
bi
so
d~
loal Irir
s~r
xu[.t
hi91l
nhOng
xung
11hon
\'.li
dflU

\,~IO.
Thdi
gian
tre Ian
truycn
Ja
thai
gian
In'S
xual hien khi tin hi¢u di qlla
ll1'.Kh.
TiI
khoa
transpOI't
dV<,"ic
dung
lrong
twang
hQ"p
thai
gian
11\':
lrong
phcp
g<ln
lu
tho-i
gian
Ir~
Ian

truy~n.
Neu
khong
slr dl,lng tiI khoa
transport
trong
phcp gall tin hi¢u.
thai
gian tre se
dVQ"c
coi
lil.
thai
gian tre qUiln tinh 1l1()\
each
null
d\llh.
Vi~c
SLr
dl,lllg tre quail I[nh
Vll
tn~
Ian
truycn
tao nen nhu·ng
hi¢u
Ling
khi\c nhau len
qUi}
trlnh

!TIO
phong. Chung
ta
hay
xct
qua
trlnh sau:
sij.!;nal
S:
BIT
::::::
'0';
prol'l'sS
hegin
S
<=
'
I'
after 5
ns
;
S <= '0'
after
10
ns:
end
process:
Trong
c:tu I¢nh
thCc

nha!.
he
thong
1110
ph6ng
se
djnh
I\ch lrillh
cho
ph':p
g(ll1
tin hi¢u S gi,.l tri 'J'
saL!
5 ns linh tir
Ih(1i
di~m
mo
phong
hi¢n
thai
D6i
\'(1i
cflu I¢nh
thCr
hai,

1116
phcmg se djnh Ijeh trlnh
eho
phcp

giil}
gli.'l
If!
'0'
eho
tin
hi~u
S sau 10 ns Ifnh tir thai
di~1TI
m6
ph6ng
hien thai.
NhLf
V(ly,
du
l¢nh
thCr
hai sc
xoa
b6
kc·t
qua
ella phep
gan
thu
nhAt
bui
VI
gi<.1.
Irj thai gian tre

1;:1
thoi
gian
tre qUiin tfnh.
GIU
I¢nh thlr nhat chi ra rtmg
thai
gim1
tre
qu<.!n
tinh
ella
phcp
gi.1.n
1;:1
5 ns, trong khi
do
cflu l¢nh tht! hai khil.ng
djnb
thai
gian
tr~
qUol[\
tinh
ella
ph~p
giin
!~I
10 ns.
I\'eu doi

cl10
hai phcp
gan
trong
ctO'.1I1
chu·ong trlnh tfen, ehllng la
nh(lI1
dU\1C
qUe!
tdnh
duoi
day,
signal
S:
BIT:=
'0':
)11'Ol'l'SS
begin
S <= '0'
after
[0
ns:
S
<=
'1'
after
5 ns :
wait
on
ClK

:
end
process:
175
Trong
trueillg
hq'p
n:t:',
du
ICnh
g<in
thu
nhat se
X,-lc
dinh
IDQI
ph~p
gan gia
tri
'0'
eho
tin
hi~u
S sau
10
ns
trnh
tu
thai di6m
IDO

ph6ng
hit;'11
thl1'i
con
phep giln th(i' hai
;.,e
:de
d!nh
thao
t<lC
gan gia
tr!
'1'
eho
S sal!
:)
ns so \'l)i
tht'J"i
(ticll1 hien
Ih{ii.
l\'hu
\,~ty.
khi h6
IDO
phong
htlt
dUll
thlfC
hi¢n,
d.c

giao
t,.i.e
eua
phcp
g<.in
thll hai
c1U<,K
t1wc
hi9n Ihay
eho
cac giao
tik
ClW
phcp
g{1ll
thll"
nhtit. Dictl do c6
nghl<l
Iii,
chi c6 phcp gan gia
tr[
'1'
cha
tin hi¢u S tal
thl1i
diem:)
ns tfnh tit thai diem
mo
phong hi¢n th0i
se

c1uQ'c
th~tc
hi¢n.
Nc'u
lrong
dOi lt1
clllwng lrinh lren. chung ta Ihay
1h0i
gli.\n
tn:
qu<ill
tfnh
bhng thoi gian tre
Ian
truyell nhu Irang
cta'.H1
clllf(1ng
trlnh duai day,
k61
qu,i
thlle
hi¢n
cua
qua Irlnh
siS
thay
dOl,
signal
S:
nIT:== '0';

process
hegin
S
<::::
transport'
l'
after:)
ns
:
S
<::::
tran!olport '0'
after
IOns;
wait
on
eLK:
end
process;
Trong do
•.
tIl
chuang trlnh nay, vi¢c gan gi,i tri '}' cho tIn
h!¢u
S
se
dlf(~C
lilm
tre
:'i

ns
tlnh tv
1h(1i
diem m6 phong. Con phep
gem
tin hi¢u
t11lt
hai se
t11f'm
m()t
thaD tae
m{1i
cho dieu khien
eua
tin
hi~u
S.
Dicu
n:1Y
co
nghla
LI
'>C
Cl)
hai
thaD
lac
cluqc
IhLJc
hien:

mot
Ihao
1.le
gall
gi<.i
Irj
x,iy
ra
,>au
:)
ns
linh til
th0i diem md phong
vii
1hao
t,k
gall
thu
hai se
du:(}c
!h~tc
hi¢n sau
10
os
linh
tLl"
thoi diem
1116
ph('mg,
Kct

qUt'\
I:t
lren du'ong tin hi¢u
Sse
XU[lt
hi~n
m()\
XUllg
h~ng
'I'
co
ell)
did:)
ns
t<~i
th(1i
dic'm:)
ns
Ilnh
Itl"
t!1('1i
die'm
hi¢1\
th('}j.
176
Trang
VI
tiL!-
dang xct
6"

In.':n.
Chlll1g
la d6i ch() hai phep g,in nhl! sau:
signal
S:
BIT
:==
'0':
process
hegin
S
<==
tnlllsport
'0'
after
lOllS:
S
<==
transport'
l'
after
5
ns
;
wait
on
eLK;
end
process:

×