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

Thiết kế mạch bằng máy tính part 7 docx

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 (518.05 KB, 30 trang )

<
sa.
dr)'
ItJp
>:
trong ngon ngu VHDL co m9t so
d~ng
vong
l~p
vai cae
sa
do
l~p
khae nhau
nhl1:
vang
l~p
v6i
sa
d6
l~p
for, vong
1~lp
while,
\'a
vong
l~p
khong ehua
sa
do
l~p.


Vai nhiJng vong
h}p
kh6ng chua <
S(I
do
l<lp
>,
cae
l¢nh trong day
l~nh
tu[in
1If
sc
du<,1c
thuc hi¢n cho toi khi
duq'c
ngit
bbi cau
l~nh
exit. Trong
ng6n ngu
VHDL
cau l¢nh next eung c6
th€::
duqc dung
de
thay
obi
tdnh
tt!

th~fC
hi~n
than ella vong
l~p
(giong
cau l¢nh
continue
trong ng6n ngu
C).
Vi
dl;!,
Count_down:
process
variable
Min,
Sec
:
integer
range
0 to 60;
begin
LI : loop
L2:
loop
exit L2
when
(
Sec
:::;
0 ) ;

wait until CLK'event
and
CLK =
'I
';
Sec
:=
Sec -
I;
end
loop L2;
exit
L 1
when
( Min:::; 0
);
Min:=
Min -1;
Sec := 60;
end
loop
Ll;
end
process
Count_down;
Yang
Il~p
chua < sd_dr)'_I(/p >
d~ng
for

la m¢t
di.wg
khac cua vong
b~p.
Yang
l(lp
for
la
du
I¢nh tuan
It.!
nam trong qua
tdnh
process, va cho phep
Ihan cua \'ong
l~p
tht!c hi¢n theo
so
luqng xae djnh cae Ian
l(lp.
V f
dl:\,
for
I
in
1 to
10
loop
Lsquare
(

I)
::::;
I *
I;
end
loop;
Bien dicu
khd::n
\'ong
l~p
1 kh6ng ctin thiet ph,ii khai hao tnrac
va
kh6ng the
dl1q'C
gan gia trj trong
th[\I1
vong
l~p.
Trang nhung tru0ng hqp de chi ra dmg
bien
l~p
nh~n
khoang lui. chung ta co the
si'r
dl;!ng
tlr
khoa
downto.
Vi
dL.1.

182
for I
in
X
downto
Y loop
Csquare ( I )
:~
I * I;
end
loop;
SCI
do
l~p
",'hile la
sa
do
l~p
trong do qua trlnh
l~p
dllQ'C
thlfe hien neu
bieu thuc dieu ki¢n
I~p
nh(tn gia tr!
true.
Vang
l~p
sc
dung

li,li
khi gi.i
tr!
ella
bitiu thuc dicu ki¢n
trO'
thanh false
hoi!.c
qua trinh
th,!C
hi¢n than vong
l~p
g~p
l¢nh exit. Cling wang
tl,C
nhu vong
l~p
for, cau l¢nh
next
cung co
th~
dllQ'c
dung M thay doi
tr~t
11,C
l~p.
VI
dl:l.
process
variable

A,
B.
C,
D:
integer;
begin
while ( ( A + B ) > ( C + D ) ) loop
A:~A-I;
c:~
C +
B;
next when
(B
<
10);
B:~
B - D;
end loop:
end
process:
86i
v6i cac vong
l~p,
trong cac nhanh chua phep gan tin hi¢u phai co
it
nhat
lTI(lt
du
l¢nh wait. Neu khong th6a man (lieu
ki~n

nay, qua trinh mll
ph6ng c6
the:
khac tli. Chung ta hay xct
vi
dl:l
dm.l11
cJ1llCfIlg
trlnh sau,
signal
S:
integer
range
0 to
10;
process
variable
I:
integer
ran~e
0 to
10;
begin
wait
until
( CLK'event
and
CLi\
=
'0'

);
I:~
0;
while ( I <
\0
) loop
S
<~
I;
1:~I+l;
end
loop;
end
process;
lR3
Trang
vi
dl,l
nay, tin hi¢u S duqe
e~p
nh~t
10
Ian trong
vang
l(tp.
Hanh
vi
n~ty
se khong duqe
b(>

mo phung
th~
hi¢n. Tuy nhien, cae ket 4u;i tue thoi
co the
dUQ'C
hi~n
thi lrang qua Idnh
!TI6
phung
ke't
qua tdng hqp
mi leh.
7.
Call
I~nh
next
L¢nh
next
chi
dung
trong
cae
vong
l~p.
L¢nh
nay
co
tae
d~ng
lo"~1

bo
vi~c
thl!e hi¢n
uk
c;.tU
lc;nh
nam
giUa
eau
l~nh
next
va
cuoi
vong
h)p khi
dieu
ki¢n
lrong
can
l¢nh
duqc
nghi¢m
dung
(
tuang
tl.r
l¢nh
continue
trong
ngon

ngfr C
).
L¢nh
next
co
eftU
truc
cu
phap
nhu
Si.lU,
next
[<
nhiin _w)ng_/(lp >][
when
< di/I1_ ki¢n > L
Trang
twang
hqp
co
dc
Yang
l~p
lOng
nhau
thl vi¢c th!!c
hi~n
l¢nh
next
sc

duqc
xac
d~nh
mQt
cach
tuong
rninh htmg < nhilll_\"(Jng_'{/jJ >.
Neu
khong
c6
nhLin
vlmg
1~IP
trong
c<tU
l¢nh. lc;nh
next
se
lac
dy.ng len
vong
I~p
trong
cling
chua
l¢nh
next.
Vf
dl!,
L I : while I <

10
loup
L2: while
J <
10
loop
next
Ll
when I =
.I;
end
loop L2;
end
loop L1;
8.
Cau
I~nh
exit
Cau l¢nh exit
co
tht
duqc dung ben trang cae \'oog
"JP.
CflU
J¢nh nay e6
t[le
dl,lng b6 4ua cae l¢nh
con
!i li
cua vong

l(tp
va th!!c
hi~n
ngay J¢nh tiep
sau vong
I~p
vua ket thuc. L¢nh exit e6
clu
true
Cll
phap
nhu
sau,
exit [< J/J/(JI1_l'img_l(ip >][
when
<
Ji["u_
ki(;/1
>];
9.
Call
I~nh
wait
L¢nh wait dieu khien
bl)
1116
phong ngilng vi¢e tlwc hi¢n cae
qUi.i
trlnh
hO(lc

cae chuffilg
I["lnh
con
eho
16i
khi dicu
ki~n
ben trang cau
l~nh
duCjc
184
nghi~rn
dung.
Ta
co
the noi dlng dieu
ki~n
trong
diu
l~nh
wait
chi
co
the
duqc
nghi~rn
dung
khi
XU[lt
hi~n

cae sl!
ki~n
tren dl1ang tin
hi~tl.
Nhu
\'~y.
Ulc doi tl1qng
di11i~u
tham gia trong trung dieu ki¢n phui
HI
cae tin hicu. etc
dieu
kiGI1
de
ti~p
wc
qua trinh bt dung
co
the duqc bicu thj duai ba
d' mg
sau
day
trung
ngon
ngQ
VHDL:
wait
[on
<
{(ill

{/II
111('/1
> \' <
{ell
fill
IIh'JI
> \ J
- - . - - .
l until < hilill tM(c fo,<ic >]
- - <
[for
<
bi/lI_flufc_tllrfi_MiulI
>1;
Gill
l¢nh
wait
on:
chi cho
chung
1a
danh
stich
dc
duang
tin hi¢u
ma
b(l
mo
phong sc

cila
sl!
ki~n
( sl! lhay d6i
tr~ng
thai
cae
lill
hi¢u ). Vi
dl.l,
doi voi cau l¢nh
wait
on A.B;
qua
trinh rna ph6ng
sc
dUng
l<;li
eho
den
khi
c6
xuat
hi~n
sl!
ki~n
tren
dUOng
tin
hi~u

A,
hO(lc
B.
Sau
do
b(l
rna
ph6ng
se tiep
Il,lC
thl!c hi¢n C[IU l¢nh dung sau \¢nh
wait.
Cfm
l~nh
wait
until sc dil'tlg vi¢c thl!c hi¢n qu,i
tdnh
cho
tai
khi
bi~u
th(~c
logic
nh~n
gill
trj
truc.
GIU
I~nh
wait

Im.li
nay se
t~lO
ra
mQt
danh
saeh ng,im dinh
dc
tin
hi9U
lac
dOng trong
bitu
lh(rc
logic.
Moi kili
co
h[it ky
mQt
Sl!
ki~n
xu[i't
hi¢n tren
duang
tin
hi¢u trong
danh
sach
n~ly,
bieu

lillIe
16gic se
dm.K
tlnh.
Trong
twang
hgp l¢nh
wait
until khong
chua
bieu thuc l6gic,
chung
ta
hieu
rtlllg
cau
l~nh
se
la
wait
until
truc.
Vi
dl,l
Slr
dl,lllg l¢nh
wait
until,
wait
until x < 10;

qua
t["lnll
tlwc hi¢n se
dung
l~i
cho tai khi x < 10.
Cau l¢nh
wait
for
se dung
vi~c
rn6
ph6ng
qUit
trlnh m()t thai gian
bAng
gia tri thai gi,m duqc chi
djnh
ben trong
dieu
ki~n.
Sau
khoang thai giun duqc chi dinh,
h9
rno
phong
thl!c hi¢n I¢nh tic'p
theo sau l¢nh
wait.
Neu

bitu
thue thai gian khong co, chung ta
hitu
ding l¢nh wait
c6
y
nghia
nhu
sau:
wait
for
time'high;
185
dieu nay
co
nghIa
HI.
chung ta kh6ng
co
chi dinh
wang
minh ve
thoi
gian eho,
Vi
dl,l
ve
Slr
dl,lng cau I¢nh
wait

for,
wait
for
IOns;
Cac hla chQn tren
co
th6
duqc
Slr
dyng dong
thai.
nhu
tcong vi dy
duui day:
wait
on
A, B
until
( x < 10 )
for
10
ns;
diell nay
co
nghIa la b¢
m6
phong
se
eho
khi

c6
thay doi tin hi¢ll
A
hO(lC
B va
se
tiep tyc chi
khi
( x < 10 )
t(!.i
thoi
di~m
xufit hi¢n
sy'
ki¢n,
ho<!.c
eho
toi khi 10 ns da troi qua.
Trong qua tclnh
m6
hinh hoa
Im,lch,
l¢nh
wait
co
tht' dtrqc dung
t1e
thief
J(tp
dong ho cho

che

dong
b(>,
Trong
cac
rna
hinh thiet k6 bang
ngan
ngfr
VHDL.
J¢oh
wait
ogling
qua
tdnh
thl!C
hi~n
cho
lui xuat hi¢n
suiYn
dutmg
ho~c
suiJn
am
lren duemg tin hi¢u.
Vi
dy, khi
rna
hinh

hoa
phan tir
triga
D
lam
vi¢c
trang
che

dong b¢
thea
suan
duong, chung ta
co
the'
nh(tn thrqc
dm,lI1
chuong
tdnh
VHDL
nhu
sau.
entity
D_FF
is
port
(eLK:
in BIT;
D:
in BIT; Q: bulTer

BIT);
end
D_FF;
architecture
Behavior
of
D_FF is
begin
process
wait
until
CLK'evcnt
and
CLK
= ' 1
';
Q<~D;
end
process;
end
Behavior;
10.
Phcp
gl)i
chuang
trinh
con
va
I~nh
return

Trong
ngan
ngiJ
VHDL
co
hai
d~ng
chuang
trinh con:
186
Thu
tl,lc:
procedure
co
th~
tni.l:;ti
nhieu gia trj:
Ha111:
function chi
tnt
l~i
mQt
gia trj va co th6 tham gia vao cae
bi{;u
thue.
Cau l¢nh
return
dung de ket thlic
hO<;l.1
dQng

eua cae clllrtmg
tdnh
can
va
chi duqe
Slr
dl.mg
trang
h~un
hO~IC
thu
tL,lc.
D6i voj ham,
Sl.1
co
m,~t
eua
l~nh
return
la
bal bu()e con trong thu
tL,lC
thl khong bat huge. L¢nh
return
co
diu
truc eu
phap
Bhu sau:
§6.6.

Cac
call
true
song song
Trong ngon
ngu
VHDL,
1119t
kicn true c6 the ehua m¢t
ha~c
nhieu ci.k
eau true
song song. Moi eau trlie song song xae dinh
Jl1~)t
Jon
vi
tinh toan
baa
gom
cae
thaa
tae JQe tin hi¢u,
thl,l'e
hi¢tl eae tinh tmin
\r~n
cae
gia
tr~
tin
hi~u

va gan nhung gia
Iri
tlnh
dLIqc
eho
tin
hi~u
ra. Cac cau true song song
xae
dinh
cae thanh philn va cae qua
tdoh
lien ket nhung thilnh phan
d6
bttng
nhilng cau true va hanh vi
eua
cae
thl;Ic
the.
Cie
diu
true song song se duqe
thl;Ie
hi~n
dong thai trong qua trlnh mo phong khong
pJW
thU(lC
VtlO
Ir(l\

II!
xuat hi¢n eua chung Irong kien true.
Trong ngon
ngu
YHDL
e6 cae eau true song song sau:
Qua
trlnh process;
Cae phcp
grin
tin hi¢u song song;
Phcp gan tin hi¢u eo dieu
ki~n;
Phcp gan tin hi¢u eo
Jl!a
eh(:m;
Khoi;
Phep
gQi
chuang
tdnh
con song song.
1.
Cac
qua
trinh
process
Qua
trlnh tinh loan process duqe
1<).0

thanh tll
m()1
li!-p
hqp cae cuu l¢nh
tufin
II!.
Tal d cae qua trlnh process
Iml1g
111(H
Ihicl
ke
duqe
Illlfc
hi¢n
m91
each song song. Tuy
v~y,
t;:ti
1119t
thai
diem
xae djnh chi co
111¢1
cau I¢nh
187
tuAn tt!
dUQ"c
tlwc hi¢n
trong
moi

qua
trlnh
process.
M<.)I
quit tflnh
process
lien kct voi phan
eon
h.ll
eua
thlet ke'
thong
qua
cae
thao tac
dc:)C
ciie giil trj tit
dc
tin hi¢u d:iu \'iI0,
cUc
c6ng
dU"9"e
khai
bao
ngoili
qUii
lrlnh
ho(1C
ghi gia tri
vito eac tin hi¢u,

cong
06.
M¢t
qua
trlnh t[nh
toan
process
dUQ"c
rn6
Iii theo
quy
tac
cu phiip sau:
[<
11/1(/11
>:]
proccss

donI! sdch ctic tin
hi~;11
{(Ie
J()J/g >))
1<
pll(lllJlwi_lhlo > I
bq!;in
1<
/11111
_tllclll_/l/ > J
end
process

[<
I1hiln
>];
< pll(ln
Jlwi
_btio
>
oinh
nghia
cac
doi
tlIQ"ng
ton
{<.Ii
el,le
b6
Hung
process
ban
gom:
- Cac khai
ban
bien, khai
baa
hang,
khai
baa
kitu,
kieu
eon;

-
Than
chvang
trlnh
can,
khai
baa
cae
bi~t
danh.
lu~t
use.
Neu
qua
trinh
chua
<
d(JII"_s(irll_c6c_lfl1_hi~;/{_tdc_J(Jl1g
> thi
ILk
06
qua
trinh nay se
tuang
ttf
nhv
qua
trinh
kh6ng
chua

danh
sueh
tin hi¢u
tac
d¢ng
nhung
li;li
chua
l¢nh wait a
v~
tri cau I¢nh
cuoi
cling
trong
qua
trlnh:
wait on < dal1it _"'rlch _ c(/c_till_hi¢ll_t(lc_d()/lg
>;
Nhung
qua
trinh
d6
kh6ng
can
c6
sl!
xuat
hi¢n
tuang
minh

eua
I¢nh
wait.
Vi¢c thvc hi¢n
mqt
qua
trlnh
proccss
baa
g6m
vi¢c thtfc hi¢n
l~p
h.ll
dc
c[iu true
wan
ttf eilIIa
ben
trang
than
qua
trinh. Sau khi c,lu l¢nh tu,1n ttf
cu6i
cling
dugc
tht!c
hi~n,
\'i¢c
md
ph6ng

qua
trlnh
se
dUQ'c
bAt
dau
I\li
tll C[IU l¢nh
twin
tl,f
dau
tien
eua
qua
trlnh.
Dieu
nay
lam
cha
vi~e
1116
ph6ng
hm.it
d(mg
cua
qua
trlnh
giong
nhll Ill')t
vong

Iij.p
vo
hi 1ll
baa
g()m tat d cac
du
l¢nh
tWIn
tV
bcn
trong
qua
trinh. Vi¢e thtfc
hi~n
m6
phong
qua
trinh
process
e6
the
bi
dung
Ii.li
bang Cil.U l¢nh wait
va
co
th6 dl1gc kich ho;;tlI;;ti khi xu[it hi¢n
sl! ki¢n
trcn

cac
duang
tin
hi~u
trong
danh
such tIn hi¢u hic
o¢ng.
Chung
ta
hay
xet
vi
dl,l
mb
r,lnh hoa b')
ma
hoa
8~3.
Qua
trlnh bi6u
oien

ma
hoa
nay se
c6
danh
sach
tin

hi~u
tac
d¢ng
g6m
cae
tin hi¢u y I, y2, y3, y4, y5,
y6, y7,
Dicu
nay
eGng lUang
duang
voi
m<.)t
qua
trl11h
khong
c6
oanh
sach
tfn
hi~u
tac
d¢llg
nhung
chua
cau
l¢nh:
188
wait
on

y I. y2, )'3, y4, yS. y6, y7;
t<.li
V!
trl cftu I¢nh cuoi cimg trang
4U;'\'
trlnh.
BQ
ma
haa
8
->
3
duqc
111(1
t,'l
bang
dm.1l1
ehu'ong trlnh
VHDL
duai
day:
entity
Encoder is
port
(yl.
y2, y3. y4, yS, y6, y7: in BIT;
Vec:
out
BI1''-VECTOR ( 2
downto

0));
('nd
Encoder;
architecture
Behavior
of
Encoder is
hq!;in
process(
y
I,
y2, y3, y4. y5. y6. )'7)
begin
if(
y7
~
'1')
then
Vee
<~
"III";
clsif"( y6
~'I'
)
then
Vee
<~
"110":
elsif ( y5 = '1' )
then

V cc
<=
"
JO
1
";
elsif ( y4 =
'1'
)
then
Vee <= "100";
elsif(
y3
=
'1')
then
Vec <=
"all
";
elsif(
y2 =
'I')
then
Vee <= "010";
elsif(
)'"1
=
'I')
then
Vee

<=
"001";
else Vee <= "000";
end
if;
end
prol'css;
end
Bcha\'ior;
Chung
ta xct
111Qt
VI
d~
ve
51!
tuang
tac
giua
hai qua trinh. d
dfly
chung ta
co
Il1Qt
qua trtnh
gt'ri
thong
tin va
qm!.
tr"inh

thu
hai nh(lll thong tin.
Qm\.
trlnh glfi
thdng
lin
co
danh
soiell
tin hi¢u tae dQng
g6m
hai tin hi¢u
CLK
\,~l
Ack. Qu.i
trlnh
nh(Ul
e6
hai tin hi¢u trong
danh
sach
tin hi¢u
lac
dC)ng
eLK
V~l
Ready.
Hai qua
trinh
nilY

dong
b(l
hoa
ho~t
dQng
cua
chung
bAng
l¢nh
Ack
vit
Ready.
DOi.~n
chlIang trlnh
VHDL
dlIai day
m6
ts.
hm.H
dQng ella hal
qua
Irlnh n6i tren.
11-)9
190
entity
HandShake is
port(
eLK
: in
IllT:

DIn : in integer;
DOue
out
inte~cr
);
end
IlandShakc;
Data·
in
Process
A
-
Ready
Data
Process
out
-

B
ACK
-

HLnh
6.12.
},if)
hlnh
tLrOng
tac
gWa
hai

qua tdnh proc('ss.
architecture
Protocol
uf
HandShake is
signal Ready.
Ack:
nIT;
signal Data: integer;
begin
Send: process
begin
Ready
<;::::'
I';
Data
<:::::
DIn;
wait until CLK'cvent
and
CLK
:::::
'I'
and
Ack
:::::
'1';
Readv
<==
'0'·

. .
w'lit
until
CLK'event
and
CLK
==
'1'
mul
Ack
==
'0';
end
process Send;
Receive:
prucess
begin
Ack
<~
'0';
wait until CLK'evcnt
and
CLK
==
'\'
and
Re:'ldy
==
'\
';

DOut
<=
Data;
Ack<=='J';
wait
until
eLK'event
and
CLK
==
'I'
and
Ready = '0';
end
process Receive;
end
Protocol;
2.
Cae
phep
gall
tin
hi~u
song
song
M9t
ch.mg
khae ella phcp gan tin hi¢u trang ngon ngu VHDL
lu
phep

g)n
lIn
hi¢u song song. Phcp gan
nay
dm,1C
sir
Jl,lng ben
ngo~ti
d,e
process
v(\
ben
trong cae kien true,
D',mg
dan
gian nh:ft ella phcp
g,-ln
tin
hi~u
"ong
song:
eo
eau true ell
pil{lp
nill]'
sau:
trong d6,
< till_hrt(II_Jicl! >la tin hi¢u
nh*,n
gii

tri eua <
bie"lI_tJI/(C
>. Cling
gi6ng
nhu truang
hCfP
phep gan tin hi¢u luan
tl.!.
lw~t
after
se
duge b()
tcing
ll0p
m~eh
h6 qua.
Phep gan tfn hi¢u song song tlJang chrong
vui
m()t
qua trlnh process
d1lra
phep gan tin
hi~u.
Chung ta hay xct vi
dl,l
v6i hai phcp gan tin hi¢u
song
song
trong !nt;it
kiei1

true.
Vi
d~l,
architecture
Description I
of
Example is
signal
II,
12,
13,
14,
And_Out, Or_Out:
I31T;
begin
And_Out <= II
and
12
and
13
and
14:
Or_Out <= II
or
12
or
I3
or
14;
end

Deseriptionl:
Uoan chu'ong
tdnh
nay tu'ong duong vai cillrong trinh VHDL vai cae
process
chua
de
phip
gan tin hi¢u
tuUn
tI! sau,
architecture
Description2
of
Example is
hegin
signalll,
12,
13, 14,
And_Out,
OcOut:
mT;
,
proccss( II.
12. 13.
14
)
begin
And_Out <= II
and

12
and
13
and
14;
end
process;
191
proccss(
II.
12.
13.
14
)
begin
Or_Out <= I I
or
12
or
I3
or
14:
end
process;
end
Description2;
Dm.ln
ehu'o"ng trlllh lr2n cOng
lU(l'ng
ctuang

yO'i
do'!n
chuang
tdnh
citr6i day,
trong
do
cae
qua
lrinh
proc~ss
kh6ng
co
danh sach
d.c
tin hi¢u tiic d(mg
nhung
chua
cac
Icnh
wait.
architecture
Description3
of
Example
is
signal
11,
12, 13, 14.
And_Out. Or_Out: BIT;

process
bc~in
And_Out
<==
Il
and
12
and
I3
and
14;
wait on
ll.
12. 13.
14:
end
process;
process
begin
Or_Out
<==
11
or
12
or
13
or
14:
wait
on

II.
12, 13,
14;
end
procl'ss;
end
Description3;
3.
Phcp
gao
tin
hi~1I
co
dieu
ki~n
Phep gan
tIll
hi¢u co dieu
ki¢l1
ia
cUll
I¢nh
song song thlle
hi¢11
phcp g,ill
gi{1
If!
eua cae hicu
Ihlrc
rho

ll1¢t
tin hi¢u dich
IUY
then
ni.l'
dieu
ki¢11
d~\t
ra.
Trong
cac bieu thtl::
cua
l~nh
gan.
ngo;;ti
tri:r
hieu thlrc elloi cung,
nhi1ng
bieu
Ihue khae
c1U9\:
di
kl:i11
\'(1i
dieu
ki~n
g{m.
Khi
InQI
di~u

ki~n
nao do
nh~ln
gia
Irj
bang
true,
bicu Ihue IHong
Crng
\'(1i
dieu
ki~n
sc
duqe h!a
cl19n
va
kct qua
eLla
\'i¢e Ifnh
to~in
bieu
IlllJ'c
sc
Juqe
gan
eho
tin
hi~u
dfeh.
T;:.li

1l1()1
thoi diem
th.oi
gian, chi co
tn(ll
bi~u
thli'e
duqc
'jl(
dwng
eho phep g,in. Phep g,in
tfn
hi¢u co dieu
ki~1l
dU'{;Jc
m6
t,i
theo quy
t{1C
ell
pluip sau:
192
< till hi;!!/
dieli
>
<::::
{<
hie"11
tluce
>lafter

<
[Jlilt
tilde
fluli
gum
>1
'
-

when
<
dic'I/_ki~;1I
> else f
<
billl_fJl/rc>[after
< hilH_tlJlCc_th(h_gwll
>j:
MQi
phep gan tin
hi~u
c6 dieu
ki~n
tuonE:
ducmg
vOl
mQt
qua
tr1nh chda
l¢nh
if.

Do~m
chuang trinh duai day cho ta
vi
dl,l
\'6
slJ
luang duang do.
Vi
dl.l,
architecture
Description 1
of
Example is
signal
A,
B,
X,
Z;
BIT:
Z
<~
A
when
(X>
10)
else
Bwhen
(X>
5 ) else
c:

end
Description\:
Do~m
chuling trinh nay se wong duong voi qua trinh
process
sau:
architecture
Description2
of
Example is
signal
A,
B,
X,
Z ; BIT:
constant
C:
BIT:::::
'0'
;
process
( A,
B,
X )
begin
if
( X >
10
)
then

Z<~
A:
elsif (
X>
5 )
then
Z<~B
:
else Z<;:::::C;
end
if
end
process;
end
Description2;
4.
Phcp
gan
tin hi¢u theo
h,l'a
ch«;ln
Phep gan tfn hi¢u theo
tlJa
ehQn
tlll,IC
hi~n
phcp gan eho mot tin hi¢u dich
193
\"O'i
biC:u

thuc with. Gla tri
eua
bieu (huc
Ilfa
ch911
nam sau
III
kh6a
with
(ILr(K
Slt
dyng
gi6ng
nhu l¢nh case.
Phep
gan
chrqc
thy-c
hi¢n moi khi
c6
xual
bi~n
sy-
ki¢n hun thay doi gia tft clla bieu thuc
ll!<l
chqn.
eu
phap
cua
di.u

lenh
dUCK bi6u dien
nhu
sau:
with
< hiilll_,lute It/a chqn > select
<
'il1
__
hi~;If_d[clt
>
<=
1<
hi/ll_flllte
>[after
< hi(;lf tlllt(_,h/fl_gWIl
>J
wh~n
<
gitl_tr!)l/u
Jh(J1l >

J
< hi/l/_tllli"c
>[after
< hi/If_tllll"c _tl/{}j_giall > 1
whcn
< gui
frI
h(a _(

11011
>:
Phcp gan tin hi¢u then
l~ra
chQn
luang
ductrlg
"oi
In'>l
qua trlnb
process
chCra
crlU
lenh
casco
Vi dy, phep
gi.ln
tin hi¢u theo
Jl!a
chQn
sau day se luang
dUO'llg
HJi
m()l
qUi.l
tdnh
process
chua
J¢nh
case,

with
Sel
select
Z
<=
A
when
0 I 1
12,
I3
when
3
to
JOO,
C wlwil
others:
Cil\l
In:lc
cua
prucess
luang
dUring:
194
pro.::css( Sci. A,
B,
C )
begin
case
Sd
is

when
0
11
12
=>
Z<=A:
when
3 to 100
=>
Z
<=
Il :
when
others
Z<=C:
end
case;
end
process;
5.
Kh6i
Khoi bao g6m m¢t
t~p
hl.fP
cae cau l¢nh song song. M¢t
kic"n
true co the
duqe phun tach thanh
m(}t
so

d.c
cau truc logic. Moi kh6i hieu dicn m(lt
thanh
phi.ln
cua mo hlnh
va
thuang duqe
Slr
dl;L
g
de
t6 ehue
l11¢t
t~p
hqp cae
cAu
true song song philn cap. Khoi
(hrQ'c
bieu dicn theo 'luy Ute cu phap sau,
<
/li/(711
>:
block
{<
phJ'n
kiwi
hao
> J
begin
I <

call
/illl!
SOli!.; S(lli
Ii>
}
-'
_
'-
<
end
block
l < IIhdll >
J:
< phdl1_khai_bao >
x<ic
dinh cae doi
tut;mg
ton
t<).i
el,1e
bl)
trong kh6i
va
co
the
co
cae
d.,lIlg
sau:
Khai

baa
hang, kieu, kieu
can
va
tin hieu:
- Thfm chuang trinh con;
Khai
baa
cae
bi~t
oanh;
Khai
baa
cac' thanh philn;
LU~lt
usc.
Trinh tl! eua moi < cclll-'¢l1hJong_sollg > trang khoi khong quan tn,mg
bai
vi
d.e
call
l¢nh luon
dUQ'e
kfeh
ho,:,-1.
Cae <
Cdll-'¢lIh_sOllg_SOflg
> luon
truy~n
thong tin thong qua

de
tin hi¢u. Cac doi tuqng
oU'Q'c
khai bilo trong
1119t
kh6i
block
Ihi xae d,nh trang toIm
be>
kh6i, bao
gam
d.
cae khoi con.
Neu trong
n1¢t
khoi con co khai baa ffi¢t doi tuqng trung ten voi m¢! doi
tuqng 6
khai
bao
n{),
khi d6 khai baa eua doi tuqng 6 kh6i
con
sc ehe hip doi
tuqng
a khoi ben ngoai. Chung
fa
hay xet
lTI¢t
vi
dl,l,

architecture
Behavior
or
Example
is
signal
Ou
1:
integer;
signal
Ou2: BIT:
begin
Bl
:
block
signal
S :
integer;
195
end
Behavior;
begin
Oul<:::S;
end
block
HI;
B2:
block
begin
Ou2

<=
S;
end
block
il2;
6.
Goi
chu(fng
tdnh
con
song song
Phep goi
ChL1mlg
lrlnh
con
song
song
luang
dL1mlg
vai
cae
qua
t([nh
process
bao
gam
dc
phep
gQi
chuang

trlnh
con
luan
II.!
tL1ang
ung. Mbi
phcp gl)i
chw
.
.mg
Idnh
con
song
song
tL1ang
dumlg vai m(ll qua
Idnh
process
khong
chua
day
danh
sach
de
tin hi¢u tac d(mg,
phin
khai
hao
rang
va

ph all
(him
chua
mQI
phep
gQi
chuang
tdnh
con,
tiep
thea
la
m!?t
cau
I~nh
wait.
§6.7. C:'tc
chu'ang
trlnh
con va
de
goi
chuang
tdnh
1.
Cac
cilll'ong
trlllh
cun
Trong

ngon
ngil VHDL
co
hai
di lOg
chuang
tdnh
con
Hi
procedure
va
function.
Cac
chuang
trinh
con
co
the duqe
Slr
dl,lIlg
t<;li
mQi
vj
tri
trong
mo
la
VHDL
Cae goi
chuang

uinh
xac
dinh
ten
cua
mQi
d6i
tUQ'l1g
co
the
dUQ'C
chia
se giila
cae
thl!c Ih6.
196
Ok
Ihu
Il;lc
procedure
se dU0e
gQi
ue'n
nhu
mQI
Call
l¢nh
\'J.
co
Ih~

tnt
li;li
nhi~ll
gia
trio
MOt
thu
t!,lc
procedure
dUQ'c
pll(~p
thay
doi
gi<i
tri cac
d6i
tUQ'i1g
wang ung
v6'i
cae
tham
so
hinh
thCre
ella
procedure.
Nhu
\'~y,
cae
tham

so
eua
mQt
thu tllc
procedure
co
th~
co
d,c
d<J.ng
in,
out,
va
inout.
-
Cac
h~lIn
function
se
dUQ'e
sir
d!,lng
nhu
mOl
bieu
thu:c
va chi
duqe phcp tra
l<J.i
duy nhat

mQt
gia trj.
Ham
function
Ihubllg
dU<;ic
Slr
dl,lOg
de tht!c hi¢n tfoh toao treil cae gia tri
eua
th,\lli
Sl)
va kh6ng c6
m~lc
dich lhay dbi gia tfj
cua
cac doi tuqng duvc g:m
ket voi
tharn so. Do d6 cac tham so cua
h~lrn
phai co
di.\llg
in
V~l
thuQc
ohorn cae tin
hiGu
signal
ho~e
hang

constant.
Doi vdi hfun
function,
chung ta ph,ii
016
tit
kidu eua gia trj tra
l';li.
M()t
m6
tii.
chuang trinh con
dUQ"c
phan chia thanh hai phau: pb:in khai
bao
chuang
trinh con va than cua chuang tflnh con. Phan khai
0,10
du·u
ra cae
th6ng tin
ve
giao
di~n
cua chuong trinh
can
( co nghia
1a
cae
dAu

vao va dau
ra cua chuang trinh
con)
va phan
thfm
chuang lrinh con
016
ta
cae chlrc
nang cua
chuang t£lnh con.
Phan khai baa chuang trlnh con duqc rn6
ta
theo quy
tfic
cu ph,ip sau:
< kllUi_/J(j() (""wIng trillh
(on
>:::::::::
- - -
procedure
<
Ihl_flnl_/lIe
>< danh
__
wicft _fhum
Jr'/
> I
funtion
<

fCIl
ham
><
danil sacll
filUm
s{y'
>
- - -
return
< kiAI_gici_fILtnl_f9i > :
< dallh
__
widl_,lwm
.wf>
:::::::::
lclass] < dmlh
__
W1ch_thl >
lmode]
< kiell
>[::::::::
< biel'_tll/it >
J:
trong d6,
nham
class:
constant,
Yariable, signal;
d<:tng
mode: in, out, inout.

Neu kh6ng dugc chi
ro,
tham
so
se
duqc
COL
ding c6
mode
1a
in m¢t
each
m~e
djnh. Cung tuong tt!
nhU
v~y,
tham so co
d,~ng
in
se
c6
class la
hang
constant
lTI¢t
each
rn~c
djnh va
tuang
ullg cua

d,~ng
out
vii
inout
Ia
bie'n variable_
Vi
dJ}
duai day eho chung ta thay khai bao
cua
chuang
tdoh
con,
Vi
dl,l,
funtion
Increrncntef ( Count:
integer)
return
intf'gcr:
Philn than eua
ehU'ong
tdoh
con dugc rn6
til.
theo quy tac eli phap sau:
< klwi_bao _ chu(f!1s_trillh_
con>
is
1<

phdfl_khai_hao
JIIU
JllI(cf/1g_tllnh_con > I
197
begin
{< l¢nh_tl/(ll1_W
>}
end
[< ten JhJ((/!1ti_fn'llhJol1
>1;
Vi
dy
sau day eho fa thay
ma
tti
ella
th,1n
chuang trlnh con. Chu y rang. khi
g9i ham function, phcp gqi ham
se
b!
ng.it khi thl!c
hi~n
den
cflu
l~nh
return.
Cau
l~nh
return

xac
dinh gia
tfi
tra
l<;ti
cho phep g9i chuang
Trinh
can. Vi
ely,
Funtion lncrementer ( Count: integer)
return
integer
is
variable
Temp:
intcger
;
bcgin
if ( Count
>=
255 )
then
Temp
:=0;
else
Temp := Count + 1 ;
end
ir;
return
( Tcmp

);
end
Incrementer;
Khi
g9i
chuang
Trinh
can, cac doi luqng thl!c
te
wang
u-ng
voi tham so
hlnh thue lop
variable
pMi
la eac hien; wang
u-ng
voi lop
constant
phai la
hang so
ho~c
bieu thuc
va
tu{mg
ung voi
lOp
signal phai
Iil
tin

hi~u.
Ok
hang so va bien duq'c
truy~n
thea gia tr!, con tin
hi~u
duq'c
truy~n
thea dja
chi. Do do doi voi
lOp
doi tlIq'ng tin
hi~u
thl
mQi
tae d¢ng len tham so truyen
vao than
chuang
Trinh
can cling chinh
Iii
tac d¢ng
(fI!C
tiep len tin
hi~u
dUQ'c
truyen vao. Chung ta hay xet
vi
d1,l
chuang

Trinh
con sau:
198
Vi
d~l,
procedure
Send ( signal CLK: BIT ; Data: integer;
begin
signal
Ack: BIT; signal Ready:
out
BIT;
signal Wire:
out
integer)
is
wait
until
( CLK'event
and
CLK = '1'
and
Ack =
'1"
);
wire
<= Data;
Ready
<=
'1

';
wait
until
(elK'evcnt
and
eLK
=
'I'
and
Ack
~'l'
):
Ready <= '0';
cnd
Send;
2.
Cae
ham
quyet
d~nh
Cluing ta bittt d.ng, moi
tIn
hit?u
deu
XUilt
piull ttl
mt)1
n,gu(lIl.
,'\l6i
each

kiuic la moi
lill
hj~u
c6
mc)t
di~u
khi~n.
Trong
nhi~u
truang
ILl/p.
VI
dl,!
nlm
khi
cae
duang
tIn hi¢u
bi
ch(lp
l~L
tin hi¢u
eli
ra
kh6i nut
ch~lp
~C
du'<,1c
H~ng
hqp ttl cae tin hi¢u

di
V~IO
nut theo
m(H
iu~t
xac dinh. Trang trliang hqp
nilY,
chung la noi rang
1111
hi¢u
di
fa
khoi
nUt
eh~p
co
nhi~u
ditu
khi6n.
Ng.6n
I1gfr
YHDL cho
plH~p
chung ta c6
th~
xic
dinh
ca.c
lin
hi~u

xuii! phat
Ill'
nhieu
nguon neu
su-
dl,log
nhung ham quyel djnh. Nhung ham quyct dinh
nilY
dung
de
xic
dinh gia
tI"!
cua
duo-ng
tin hi¢u tll nhilng gia trj
nh~n
duqc
III
nhi~u
nguon dicu khi6n. Y i
dl,!,
Qua trinh i
Tin hieu
Ham quyet
dinh
Tin
hll3U
(
Q""ieh

k

Qua
trinh j
Tin hieu
Tin hi$u
lIinh
6.13.
Sd
do hallh
vi
clla
cae
qua trlnh sinh ra tin hieu co nhicu dieu khie'n.
Trong vi
dy.
nay,
d.
hai
qua
trlnh process i
va
prol·l:.~.
j cung
di~u
khi~n
mt)t tin hi¢u, do
do
chung ta can c6 ham quyet dinh
dt

xae djnh
giri
tr!
cho
tfn
hi¢u
nhi.~n
dlI,!C.
Doi voi qua Idnh mo phong, cae ham guyet dinh
(.;0.)
the ,,'
mQi
ham bao
gum cae cbuang trlnh viel tren ngon ngil YHDL. Trang
nhLrng
m~ch
thtJc.
ket qua
el\a cae ham quyet
d~nh
la lien ket cae tin hi¢u
va
cung cho qua
lTI¢t
phan tu logic
d~c
bi¢t c6 m¢t dau
Ca.
Trang
ky

thu~t:
chi co m¢t so
gi{ji
hqn
199
cae Trong cae phall
eUng
chi c6
mQt
vai
ki~u
thl,Ic
hi¢n cae ham quyct
r.1jnh
nhl1
lien ket
d~ng
Or, lien ket
d,-~ng
And
ho~e
lien ket
d~ng
ba
tr~ng
thii
( hinh 6.14).
Lien ket
d~ng
Or

Lien ket
d,~mg
And
Sa
tr~ng
thai
Uinh 6.14. Cac bieu (lien phan
tung
Clla
de
hinn quyct d!nh: harn quyc't dinh
d,!-ng
Or.
dang
And
viI
ba
trang
IIia1.
Cac tin hi¢u dugc cac ham quyet dinh
t<~o
ra
neu khai bao cua tin
hi~u
chua d cac ham quyet dinh
ho<!-c
khai bao
ki~u
can eua tin
hi~u

chua
h~l.In
quyet djnh. Vi dy,
signal NODE: WIRE_AND
BIT:
subtype
RESOLVED_STD
is
WIRE_OR STD_ULOGIC:
Trang vi dy nay, khai bao thu nh[\t cho chung ta lhay tin hi¢u NODE la tin
hi~u
dugc xae dinh \'6i ham quyct dinh la WIRE_AND. Moi khi xual
hi~n
sl,I
ki~n
tren duang tin hi¢u NODE, ham WIRE_AND duqc
gQi
va
tnt li.li gia
II"!
ki~u
BIT -
l.1
gia trj cua
t[n
hi¢u NODE. Khai baa thu hai xae djnh
kit!u
con duqc quyet dinh RESOLVED_STD.
C<ic
tin hi¢u

dW1C
khai bao
thuQc
ki~u
RESOLVED_STD
Itt
nhung tin hi¢u
dU'qc
quyet dinh. Duai day chung
ta thay each de
x<ic
dinh
va
sir
dl:mg
dc
tin hi¢u duqc quyet djnh:
- Xac dtnh
ki~u
tin
hi¢u
( neu can thiet
):
- Xac djnh ham quyet dinh. Ham nay sc
nh~n
cac lin
hiGu
vao
va
tra

I'!.i
tin hi¢u
thuQe
kieu
dii
dUQ'e
xae dinh;
- Khai baa kieu con cua
ki~u
tin
hi~u
kern v6i ham quyet djnh;
- Khai bio
va
Slr
dt:lI1g
cac tin hi¢u dugc quyct djnh.
Trong vi
dt,l
dttai day. chung ta thay tin
hi~u
Z
dttCJe
khai bao
Itt
thuQc
ki~u
dttqc quyet d!nh WIREOR_STD, trong d6
h~l.ln
quyct d!nh cua

kitu
tin hi¢u
la WIRE_OR.
Trong kien true, chung ta co
hai
phep gan tin hi¢u dong thoi.
Cii
hai phep gan deu gan gia trj cho tin hi¢u
Z.
Nhtt
v~y
tin hi9u Z
se
nMn
200
gia tr\
dl1qc
x<ic
d,nh
qua
phep
lOan
or
giil:a
hai dau vao
cua
ham
quyet
djnh:
(

[j
and
12
)
vii
(
13
xor
14
).
Vi
dl,l.
architecture
Resolved
ArchofWOR
is
begin
runction
WIRE_OR( Din: in
STD_UU1GIC
VECroR
)
return
STD_ULOGIC
is
begin
return(
Din( 0 )
or
Din( 1

»;
end
WIRLOR;
subtype
WIREOR_STD
is
WIRE_OR STD_ULOGIC;
signal
II,
12, 13,
14:
STD_ULOGlC;
signal
Z:
WlREOR_STD;
Z
<=
II
and
12;
7.
<=
13
xor
14;
end
WOR;
Cac goi
chuang
trlnh STD_LOGIC_1164

cua
tim
vi~n
IEEE
chua
cae
kieu
dl1
li¢u duqc quyct
o,nh
la
SID_LOGIC
va STD_LOGIC_
VECIOR.
D<~ng
quyc"t
d(nh
cua
kitu
STD_LOGTC lit
d<;lng
quyet ujnh
thea
ba
tn~ng
thai. Cae tin hi¢u
co
nhieu nguon uleu
khitn
se

duC}c
gan
eho
tin hi¢u -kitu
STD
_LOGIC
V~l
gia tri
duqc
quyct d(nh boi
cae
ham
ba
tr<;tng
thai.
3.
Cac
g6i
ChUling
trinh
Cac
kitu
dil:
li¢u, hang
s6
va
chuang
trlnh
can
co

the:
duqc khai hao ben
~ck~~o~~~~t~_c~ck~~.Qc~
baa
nay
ta
cl,lc
b~
nang
nhil:ng kien truc
wong
ung
va thlfc
thc'
kluic
kh6ng
the
truy
e~p
t6i nhung doi tuqng do. Tuy nhlen
traog
nhi~u
truong
hqp
nhung
kie"o
truc khac nhau
cung
co
the phai chia

sf:
nhung
doi
tuqng
chung
nao
do.
Gic
goi
chuong
trlnh ( Package,> )
trang
ngoo
ngu
VHDL
eho
phep
cluing ta thl!c
hi~ll
cae
khai
baa
chung
:ho
nhicu thlfc
tM
khac
nhau. MQt
goi
chuong

trinh
eua
ngon
ngu
VHDL
dugc
biofu
uien thanh hai phan:
ph~n
khai
baa
goi va than
cua
goi.
201
Phan khai hao goi m6 ta cae giao
di-<?n
cua goi va co cau true eu
ph{Lp
nhl1
sau,
package
< /('IlJ/la_g/ji > is
{< cdc_ khm _ h(l()
_lltl/O(
WJ/
> I
end
[< lell_g6i
>J;

Cae khai b,lo
ti1U¢e
g6i co
th~
la
cae :
Khai
bao
ki~u,
kitu
con, tin hi¢u, h,ing, bi¢t
Janh:
Khai bao thanh phan, chuang trlnh
can;
Lu(tt use:
Va
c6
the
ehCra
d
de
package khae.
Otc kiwi bao tin
hi~u
trong g6i
t~o
ntn
m<)t
so
van

d~
trang qua trinh
tong
hqp
m~lCh
b6i
\'1
Ill¢t tin
hi~u
kh6ng
th~
philn phoi
giO'a
hai
thl!C
the.
Cl.ch giai quyet thong d\lng van de nay
la
tin hi¢u
sf:
dL!(l'C
khai baa
nhu
l11<)t
tin hi¢u cuc h9. Noi each kh,ic, neu hai
thl!C
the
SLr
dl;!ng
cung

m<)t
tin
hi~u
lrong gol, moi
thl!C
the sc
nh~n
duqc
mOt
phicn
bun
sao chep CLIa tin
hi~u
nay.
Vi
dl;!
\'6 khai bao goi:
library
IEEE
use IEEE.NUMERIC_IJITaU;
package
Watch_Pkg
is
subtype
Mouth_type is
interger
range
0
to
12;

subtype
Date_type is
intergcr
range
0
to
3
!:
subtype
BCD4_type is
unsigned
( 3
down
to
0
);
subtype
BCDS_type is
unsigned
( 4
downto
0
);
constant
BCDS_I: BCDS_lype
:~
B"O_OOOI
";
constant
BCDS_7: RCDS_lype

:~
B"O_OOOI
";
function
.BCD_Inc ( L : in
BCD4_type)
return
BCD.'i_type:
end
Watch_Pkg:
Than clla
l11¢t
g6i xac djnh
dc
h~ll1h
vi
cua g6i. Than cua
mQt
g6i iu6n
ph,ij
cung
len voi khai
h,}o
goi. Phan than g6i duqc hat
d,lU
b6i
Ill:
khoa
package
body.

Cae
thong tin trong trong
thin
cua goi kh6ng
th~
nhin th,iy
202
<luqe
tu
cae thiet
ke'
ho~e
tlwe the sir
dl;lng
goi do.
Nhu
v~y
IU
cac thiet
ke
va
eae thvc the chung
la
chi co the truy
c~p
tai cac d6i lUang trong g6i thong
qua cae giao di¢n duqc
xUc
<l!nh
trang philn khai bao g6i

ma
khong
the'
can
thi¢p trvc tiep vao ben trung goi. Noi
mQt
dch
kh;k goi
hi.
mQt
hQp
den
vai
cae
giao di¢n
<luqc
dUa
ra trung phan khai bao. Than
cua
goi duqc
1116
tii
thea
quy
tic
cu phap nhu sau:
package
body
< len
nla

g/n > is
{ <
cacJhm
_/)(10
_tl
ollg_t}uln
grJ/
>}
end
[<
thl_CJ/(lj;6i
>J;
Trang
phan
khai bao trong than goi co
th~
chua eac:
Khai ban kieu, kie'u con,
h~ng;
- Than ehuOllg t lnh can;
-
~u~t
usc.
Vi
dl,!
<luai
day
cho
chung
la

thay
vi~c
m6
tii
than cua goi trang ngon
ngu
VHDL:
package
body
W A
TCH]KG
is
function BCD_INC ( L: in BCD4_
TYPE)
return
RCDS_ TYPE is
variable
VI,
V2,
V:
BCDS_TYPE:
begin
V I
:=
L + BCD5 - I :
V2
:=
L + BCD5 - 7 ,
case
V2(

4 )
is
when
'0'
=>
V:=
VI;
when 'J' => V := V2;
end
case;
return
( V
);
end
BCD_INC,
end
WATCH_PKG,
Cae phdn
tu
duqc m6 ta trang
pha.n
khai bao g6i
kh6ng
the nhln
IhAy
duqc
mQt
each
tv
dQllg

tu
cac thu
\'i~n
khac.
Lu~t
usc dung
tmae
mQI
dan
\"!
chuang
tdnh
se lam cho lal
ca
cac pl,3n
tu
trang
phil.Il
khai
hi.lO
goi
e6
the'
dUQ'c
lruy
Ci)p
tu
dan
vj
chuang trlnh d6. Vi

dl,!,
gi;i thiet rang, goi chuong
20]
ldnh
WATCH_PKG neu tren
dUCK
bien dich va dua vao thu vi9n
MY_LIBRARY.
De:
co
the:
si'r
dl,lng
cac khai bao trong goi WATCH_PKG,
chung
ta can dua chung vao thu vi¢n
chuang
tdnh
hi~n
Ihai
SLr
dl,lng
dot~n
l~nh
sau:
library
MY_LIBRARY;
lISC
MY_LIBRARY.
WATCH]KG.all;

HQi
dong
ChLl<1n
hoa IEEE xac djnh hai
thu
vi¢n
cho
ngon ngi1
VHDL
ia
STD va
IEEE. Moi thu vi¢n chua
rnQt
so
goi nhu:
STANDARD
va TEXTIO doi vai
thL(
vi¢n STD. Goi
STANDARD xac
djnh cac kieu
du
li~u
quan tn?ng
nhu
integer,
boolean, BIT

STD_LOGICI164, NUMERIC_BIT,
NUMERICSTD

doi
,oi
Ihu vi¢n IEEE. Cac goi nay chua cac
kie:u
va nhfrng
haITI
quan
tr",ng
eha
qua trinh tcing
hqp
va rnb phong bang ngbn ngiJ
VHDL
Trong
chuang
nay c1lling ta
d1t
khao sat nhung
d~c
die:m
co
ban eua ngbn
ngu
VHDL
-
lTI¢t
ngon
ngu
rno
ta

ph<1n
cling dien hloh. Ngon
ngu-
nay
dUQ'c
dung
de:
1110
hinh hoa
m~ch
trong cbng ngh¢ thiet
ke,
ehe
h.\O
l11<;lch
voi

tich h0P eao va sieu cuo. Nhilng
Ihinh
phan chfnh
eua
ngon ngil
nhu
cac
l¢nh
tu.}n
IL!,
cae l¢nh song song,
cUc
chuang

tdnh
con, cac
phu"Cing
pluip
1116
tA
thL!C
the va phuong phap
lu~n
bicu dien
l11<;tch
theo cau chue, hanh
vi
hO~lC
theo dong dfr li¢u
drr
dUQ'C
de
c~p
t6i. Trong chuang tiep theo chung ta
<;Lr
d'-:lng
ngbn ngil VHDL de Xi)Y
d~rng
dc
mb
hinh nhilng
In' lch
logic
cel

ban. '
204
Rai tap
cho
<'hU'o'ng 6
2.
Hay mo
I,}
h~lJ1h
vi
eua
b(>
giai ma 2 - 4 bang cau
I~nh
casco
3.
Hay mo
ta
hanh
vi
cua
bQ
gdi
rna 2 - 4 bang cau I¢nh if.
4.
DQ
ALU 8 bil thl!c hi¢n cac
ph~p
toan:
phcp

cQng
khi d,lu vao dieu
khj~n
nh~n
gia
If!
"00";
phcp tn!
khi
(I,lu
dicu khi6n
nh~n
gi,i
tf!
"01";
pbcp tmin
and
khi d,lu dicu khitn
nh~n
gia
If!
"10";
phep tmtn
or
khi dau dieu khi6n
nh~n
gi,'i
tr!
"11".
Hay viet

chuang trlnh Iren ngan ngu VHDL rna
hi
hanh
vi
cua
bo t[nh
toan so
hQc
-logic
noi tren.
5. Viet chm1ng Idnh In:n ngon ngu VHDL mol,}
ctiu
true va
ChlIC
nang ella
h6
chuy~n
(Uli
ma nco thanh hien thi 7 - rn,lnh.
6. Hay viet chuang trtnh con Ihl!c
hi~n
phep
cQng
hai so thea
ma
BCD.
7.
Hay viet chuang trlnh con
ki~m
Ira tfnh chan

Ie
cua
chuai
16
bit.
8.
Viet chuang trlnh con tlwc
hi~n
vi~c
chuy~n
d6i so nguyen trong khoiing
tLr
0 (ten 255 Ihanh vecta 8 bit va ngu'qc
l<;li.
205
CHUONG VII. MO HiNH HOA
M~CH
BANG NGON
NGLr
VHDL
§7.1.
:\16
hloh hoa
trcn
mtle
call
true
Cae
11li.ICh


6
lhuang
dU'~K
hiJu
(lien
theo
tn¢1
cAu
Inic
phil.n
cAp
Gle
th':11lh
phfin.
Moi
thi:mh
phAn
c6
t~IP
ht,1p
cae crlng d6 lien ket \'oi
d.c
thanh
phan klute.
M(lt
1hi61
kc
haa
g6m
mot t(lp hap nhling phi0n h,in

cU.;!
m:.teh
xci
Hen
nhCing
muc 09 chi lict khac nhau.
MQt
phicn
b;111
ll1i.\ch
tren
ml?t
mlfe chi
tie"!
Cl,l
the
Cll<1
thiel
kf
duVe
tao
th~tnh
tit
de
mCl
tii
nhung
phdn
It'r
!ren mtle

cbi tiel
d6
va nhD'ng ph,i.n
tu
nity
dU<;1C
lien
ket
Ih()og qua
cae
tin hi¢u
\'.Ii
de
cong
ella
chung
xel !rcn mile
chi
tiet
nilY.
Khi
ruo
1a
nwch
b~ng
ng6n
ngt1'
VHDL,
\'i~c
ph{lIl

cap Ihiel
ke
duae
tlwe
hiGH
thong
qua
c{le
khai
hclO
th;lllh
ph;i.n
nwch
va
cAe
bieu thue
m6
ta
phien
bAn
ella thunh phall.
Khi
m6
til.
hanh
vi
ella
nwch.
thanh
phiin

Cd
s0
ella hilnh
vi
Ii\.
de
call
\<';nh
m6
ta
qua
tdoh
(
process
),
cfm khi
ma
ta
dIll
true,
don
vi
co
so'
se
l~l
dc
cau
I~nh
m{l

til phien
bAn
ella Ibanh ph,in. Nhung
cau
I¢nb
ma
I,i
qua
Irlnh
d.
cac
CUll
I¢nh
ma
t.1
phicn
bi.ln
Ihanh phfin
dn
phi.1i
dUge
g(~li
\'ito
lrung
Ihi.ln
ella
mt'J
Ii.i
kie~n
true.

CAe
m6
t.;i.
kien true
sc
co ehue nung phfm
tach
d.c
dan
\'j
Ihi-:t
le.
MQt
trong nhung d(tc
tll1h
quan
tl"9ng
ella
VHDL
li\
ngon ngu nily eho phep
1116
hinh hmi Ihit't
kc
treo
nhung mlre
d6
trLrll
Ilt'<:mg
va

chi
tiC:I
khae nhau. N6i
mOt
d.ch
khac. m(lt bicu
di~n
kie'n true c6 the
haa
gam
c;le
dll
I~nh
m()
t:\
lJml Irlnh. cae
GIU
ICnh
ma
I,i
thimh
philO.
1.
Khai
hao
thanh
pluln
M()t
kicn true co
th~

sU:
d\,l11g
nhi1'ng
tiwe
the
da
dUQ"e
m(')
ti.'t
m()t
Ci.tch
d(lC
l,~p.
NhLrng
tl1l/c
th~
nay
dU0c
chua trong
tlllI
vi~n
thiet ke
V~l
co the
d1\'(/(
Slr
dung
Irong
de
khai

bao
th~\Jlh
phal1 va
nhLmg
cau
I~nh
m6
ti.l
cac
phi":n
bi'tn
cua
thZll1h
phAn.
Trong phtin
m6
tii
eua thiet
kc,
moi cau
I~nh
khai
h<.lO
Ib:mh
phAn
11J'l1ilg
{t'ng
\'('ii m(lt
thlfC
the.

D~
e6
Iht
ma
phong
ho~\e
t6ng
IH!P
Il1QI
thie"t
kc
min d6,
th~rc
th~
va
cae
m6
til ki6n true ella
tfil
d.
de
thanh
ph[ll1
lTIi;leh
phi.li
duqc bien
d~eh
tru6c trong tluI vi¢n thiet ke.
Trang
lrinh

It!
1116
phong
ho,Jc
t6ng
hQ'p
thie~1
kc.
Ihl!c
th~
vl\
m6
lil kicn
Irue
dcii
voi
n19i
thanh phall
ph<ij
dUQ"c
bien d(ch
trang
tim vi¢n Ihiet ke.
207

×