Professional Documents
Culture Documents
BG - Thiết kế VLSI và ASIC PDF
BG - Thiết kế VLSI và ASIC PDF
biu din hnh hc ca mch hon ton ph thuc vo cc c tnh ca cng ngh
nh kch thc ca cc dy dn trong mch ph thuc vo cng ngh ch to.
Bi ton ti u mch lun kt hp cht ch vi bi ton tng hp mch. Qu trnh ti
u i hi phi la chn nhng chi tit xc nh ca mch vi mc ch lm tng kh
nng ca mch v phng din thit k tng ng vi nhng o xc nh. Vai tr
ca ti u l nng cao cht lng ca mch in nh ti u v chc nng, v din tch,
v tnh d kim nghim v pht hin li. Chc nng lin quan n thi gian thc hin
mt qu trnh x l thng tin cng nh s lng thng tin c th c x l trong mt
n v thi gian. Cc tnh nng ca mch l nh hng ln ti kh nng cnh tranh ca
mch trn th trng. Vn cht lng ca mch cng lin quan ti kch thc cng
nh din tch ca mch. Din tch cng l i tng ca ti u mch. Kch thc nh
ca mch cho php c th phn b nhiu mch trn mt lp, iu lm gim gi thnh
ch to v ng gi. Trong cng nghip ch to chng ta mang mun c nhng thit k
cho php pht hin li v xc nh v tr li ca mch sau khi ch to. Kh nng ny,
trong nhiu trng hp, nh hng ln ti cht lng ca mch. Mt thng s quan
trng trong vn pht hin li ca mch l phn trm li c th c pht hin i vi
mt b gi tr th nghim. Ni chung ngi thit k mong mun c nhng mch d
kim nghim, iu lm gim gi thnh chung ca qu trnh sn xut.
c. Kim nghim v ph chun
Qu trnh ph chun mch l vic t c mt mc chc chn hp l rng
mch in s lm vic ng vi gi thit khng c li ch to. Nhm loi b mi li
thit k c th c trc khi a vo sn xut. Qu trnh ph chun mch bao gm vic
xy dng m hnh m phng mch da trn thit k v thc hin kim tra. M phng
mch bao gm phn tch cc din bin hnh vi ca mch in theo thi gian i vi mt
hoc nhiu b gi tr u vo. Qu trnh m phng c th p dng trn nhiu mc thit
k khc nhau ty theo cc mc tru tng ca m hnh.
1.2 M hnh ho mch in
M hnh mch l biu din tru tng trong ch ra nhng c tnh thch hp m
khng c nhng chi tit tng ng. Qu trnh tng hp mch l qu trnh to m hnh
mch bt u t nhng biu din s lc nht.
Cc m hnh c phn loi theo cc mc m t tru tng v cc gc quan st.
-
Mc kin trc
Mch in c th hin qua tp hp cc thao tc nh cc tnh ton trn d
liu, cc php chuyn i v truyn thng tin. V d, trn mc kin trc, mch
c th c biu din qua nhng m hnh trn cc ngn ng m t phn cng,
nhng biu lung thng tin.
Mc logic
Mch in c th hin nh tp hp cc chc nng logic v c chuyn
thnh cc hm logic. V d, trn mc logic mch c th c biu din thng
qua cc biu chuyn trng thi, cc s mch lgic
Mc hnh hc
Mch c th biu din nh tp hp cc i tng hnh hc. V d n gin ca
biu din hnh hc c th l cc lp trong mch nhiu lp, dng v b ngoi v
phn b ca cc phn t cu thnh mch.
-
1 ) a , b B , a + b = b + a , a .b = b . a ;
2 ) a , b , c B ,
a + ( b . c ) = ( a + b ).( a + c ), a .( b + c ) = ( a . b ) + ( a . c )
3 ) 1 B , 0 B :
a B , a + 0 = a , a .1 = a
4 ) a B : a B , a + a = 1 , a .a = 0
Cc nh l ca i s Bool:
1 .a + a = a
2 .a .a = a
3 .a + 1 = 1
4 .a .0 = 0
5 .a = a
6 .( a .b ).c = a .( b.c )
7 .( a + b ) + c = a + (b + c )
8 .a + a .b = a
9 .a .( a + b ) = a
10 .a + b = a .b
11 .a .b = a + b
2.2 Cc hm logic v dng chun tc ( c hc, SV t c ti liu)
2.3 Ti thiu ho cc biu thc logic ( c hc, SV t c ti liu)
Cc phn t logic c bn gm phn t AND, OR, NOT, XOR, NOR, NAND, ngoi ra
trong nhiu trng hp phn t ng ngt cng c coi l phn t c bn.
Trn quan im v kh nng xy dng cc hm logic bt k, mt phn t c bn hp
thnh h y . iu c ngha l vi cc hm c bn tham gia vo h y , ta c
th xy dng mi hm logic. Ta c h cc phn t AND, OR, NOT to thnh mt h
y v ta c th xy dng mi hm logic theo cc dng chun tc tuyn hoc hi vi
s tham gia ca cc phn t ny.
H cc phn t NOT, AND to thnh mt h y v php ton OR c th c biu
din qua NOT v AND.
z = x + y = x. y
- H cc phn t NOT, OR to thnh mt h y
- H php ton ch c phn t NAND hoc NOR l mt h y
- Phn t ng ngt v phn t NOT to thnh mt h y .
.
Ngoi cc phn t lgic hai u vo nu trn, trong cng ngh cn s dng nhng
phn t c nhiu hn 2 u vo. Cc phn t c nhiu u vo c th c biu din
nh ghp ni nhiu lp cc phn t lgic c s lng u vo t hn hoc nh mt phn
t duy nht.
Cc phng php xy dng mch c la chn da vo cc tiu chun ti u v
din tch tinh th bn dn ca mch, nng lng m mch tiu th v thi gian tr
truyn ca tn hiu khi i qua mch.
3.3 Thit k cc mch t hp
1. Tng hp mch theo biu thc lgic
Thng thng cc hm lgic c biu din bng cc biu thc lgic cha cc php
ton AND, OR, XOR, NOT. Nhng biu thc c th c thc hin thnh mch
thng qua nhng phn t lgic c s.
Biu thc c th c phn tch di dng cc cy tnh ton tng ng vi cc du
ngoc v mc u tin ca cc php ton.
V d:
f = x + y.z w
Phng php xy dng mch trc tip t cc biu thc lgic nh nu trn l
phng php n gin. Vi phng php ny ta c th xy dng mi hm lgic vi
f = (0,2,5,6,7,8,11,12,15)
Thit k theo dng chun tc tuyn trc tip v thit k sau khi ti thiu ha
Xy dng mch trc tip t cc dng chun tc, trn thc t phng php ny khng
hiu qu. Khi xy dng mch cc phn t lgic c n u vo cn nhiu din tch trn
tinh th bn dn hn khi xy dng trn phn t c hai u vo. Do gi thnh mch
cng ph thuc vo s lng u vo ca cc phn t lgic. i vi vic thit cc
mch t hp s dng s hai tng thng qua cc phn t AND-OR. Bn cnh vic
gim s lng cc phn t cn gim s lng u vo ca cc phn t .
3. Thc hin mch t hp trn c s cc PLA/ROM
Ma trn logic lp trnh l cc khi phn t v m c s dng thit k nhng
mch LSI, VLSI theo cu trc cc mch hai tng. Cc PLA bao gm cc ma trn
AND v ma trn OR c mc ni tip. Ma trn th nht l ma trn AND, ma trn
th hai l ma trn OR. Nh ta bit cu trc cu trc 2 tng AND OR tng
ng vi cu trc hai tng ca cc phn t NAND. Theo nguyn l i ngu, cu
trc cng tng ng vi cu trc hai tng NOR-NOR. Do trong k thut
thit k cu trc hai tng NAND-NAND v NOR-NOR c s dng rng ri.
Ma
trn
OR
Ma trn
AND
Lm
thay
hon
ton
chc
nng
hot
ng
ca
mch
Mch nh tnh
x1
x2
x2
Thanh
ghi
ng
xn
xn
CK
3. Cc ch ng b:
Tn hiu iu khin cc u vo ca mch nh thng cung cp bi cc mch ng
b. u vo tn hiu ng b tng ng ca mch gi l cc u vo ng b. Tn
hiu ng b c xc nh bi di khong thi gian t m tn hiu trng thi 1
v chu k T.
t
T
Cc mch nh s dng tn hiu ng b thc hin cc thao tc c v ghi d liu khi
u vo ng b nhn gi tr 1 hoc 0. Cc mch loi ny c gi l cc mch lm vic
trong ch ng b theo mc. Khi thit k cc mch lm vic theo ch ng b, di
ca tn hiu ng b ng mt vai tr quan trng trong hot ng ca mch. Nu cc trigo D
ng b theo mc c ghp ni ni tip v ni chung cc u tn hiu ng b ta s c
thanh ghi lm vic theo ch nh sau:
u vo
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
Q
CK1
4. Cc trigo s dng ch ng b hp v ng b hai pha
Trong k thut, nhiu mch nh s dng cc trigo hot ng theo cc ch ng b
theo sn ln hoc lm vic theo ch ng b hai pha. Cc ch ng b ny
cho php gii quyt vn cnh tranh gia cc phn t logic trong hot ng ca cc
trigo. iu ny lm cho cc mch nh hot ng tin cy hn v lm gim tnh bt
nh ca mch.
5. Thit k cc mch tun t bng cc otomat hu hn
Trong cc mch t hp, gi tr u ra c hon ton xc nh theo cc tn hiu u
vo ti thi im hin ti. Nhng cc mch tun t c cc gi tr u ra c xc
nh theo dy cc gi tr u vo tc ng vo mch ti nhng thi im trc thi
im hin ti.
3.6 Nhng vn khi thit k mch dy
1. Hin tng cnh tranh trong cc mch tun t
Khc vi cc mch t hp, trng thi ca cc mch tun t c xc nh
khng ch t cc tn hiu vo m cn ph thuc vo cc trng thi trc ca
mch. Vic lu tr cc trng thi trc ca mch c thc hin trn cc
phn t nh nh thanh ghi, trigo, Nh vy mch tun t c th biu din
bng cc otomat c s trng thi hu hn.
Trong cc otomat, do nh hng ca thi gian tr tn hiu trn cc phn t
mch, ngi ta quan st thy nhng trng thi trung gian chuyn tip gia cc
trng thi trong thit k. nhng trng thi chuyn tip ny c nh hng ln
hnh ha phn cng phi h tr vic m t thit k trn gc hnh vi v cu trc nhm
biu din cc c trng ca mch mt cch c hiu qu.
- Vic xc nh thi gian v thi im thc hin ca cc php ton ht sc quan trng
trong phn cng do cc tng tc gia cc thnh phn phn cng vi nhau. Trong khi
vn tng tc theo thi gian t nh hng ti vic thc hin cc php ton trong cc
chng trnh phm mm, tr mt s trng hp trong nhng ng dng thi gian thc.
Mch in c th c m t di nhng gc quan st khc nhau, do cc ngn ng
HDL vi nhng c trng tng ng cng c pht trin.
1. Nhng c im khc bit ca cc ngn ng m t phn cng.
Cc ngn ng c c trng nh cc quy tc c php, ng ngha v thc t s
dng. C php lin quan n cc cu trc ca ngn ng v c th c thc hin
qua cc quy tc ng php. Ng ngha ch ra ngha ca cc thnh phn ngn ng.
Cc quy tc ng ngha tc ng tng ng vi ti nhng thnh phn ngn ng
tha mn cc quy tc c php. Thc t s dng ngn ng lin quan n nhng
kha cnh khc ca ngn ng, bao gm c vn s dng v thc hin ngn ng.
C th chia ngn ng thnh 2 loi:
+ Ngn ng th tc (procedural): cc chng trnh th hin cc tc ng mong
mun bng cch m t dy cc bc cn thit thc hin cc tc ng .
+ Ngn ng khai bo (declarative): cc m hnh th hin cc vn s c gii
quyt bng tp hp cc c t, khai bo m khng a ra chi tit cc phng php
gii quyt. Do trnh t m t cc khi c s khng quan trng trong cc ngn
ng khai bo.
Cc ngn ng m hnh ha phn cng c phn loi da trn c s gc quan st cc i
tng c m t. V d nhng ngn ng m t thit k mc vt l s c h tr nh cc
c t nhng i tng hnh hc nguyn thy, cc thao tc trn cc i tng .
Cc ngn ng HDL thng c pht trin km theo cc b m phng. Tc thc hin l
mt trong nhng yu cu i vi b m phng. Cc thut ton m phng theo s kin c
s dng rng ri bi v chng cho php b m phng gim thiu s lng cc tnh ton v
do lm gim thi gian thc hin m phng.
Qu trnh m phng bao gm vic tnh cc gi tr cuiar tn hiu trong mt khong
thi gian xc nh. Khong thi gian c chia thnh cc khung thi gian. Trong mi khung
thi gian chu trnh m phng gm cc bc sau:
theo xung nhp ng h, vi nhng phn nhnh chuyn trng thi tng ng vi
trng thi hin thi.
V d: M t otomat hu hn thc hin nhn bit cc bit 1 lin tip dng d
liu vo.
4.3 Cc m hnh tru tng
1. Cc cu trc
Cu trc ca mch c th m hnh ha da vo cc cu trc lin kt bao gm
tp hp cc mun, tp hp cc mng kt ni v quan h lin kt gia cc mun v mng
kt ni. M hnh cu trc c th c biu din bng nhiu cch.
-
C th biu din m hnh cu trc mt cch n gin bng cc siu th, trong
mi nh ca th tng ng vi cc mun v cung tng ng vi mng
lin kt. Quan h lin kt gia cc mun v mng c m t bng cc ma trn
lin kt. Ta c siu th tng ng vi mt th 2 phn c tp hp cc nh
chia lm hai phn, trong mt phn tng ng vi cc mun, phn cn li
tng ng vi cc mng.
Thng thng cc ma trn lin kt rt tn mn, khi s dng danh sch mng c hiu qu
hn m t cu trc. Trong danh sch mng ta nh s tt c cc mng ni vi tng
mun (danh sch loi ny c gi l danh sch mng hng mun) hoc nh s tt c
cc m un kt ni vi mt mng (danh sch mng hng mng).
V d:
2. Mng lgic
Mng logic tng qut l mt cu trc trong nhng m un ti l tng ng vi
cc hm logic tun t hoc t hp. Gm mng logic t hp v mng logic ng
b.
-
p = ab
b
c
q = p+c
S
mng
Va
Va, Vb, Vc l 3 nh vo
Vx, Vy l 2 nh ra
Vp, Vq l
Vb
Vp
Vx
2 nh trung
gian tng ng vi cc
Vc
Vq
hm logic.
Vy
Chng trnh
m phng
Kt qu
M hnh mch
Chng trnh m phng s biu din tn hiu vo v tn hiu iu khin, pht trin qu
trnh tnh ton trn cc tn hiu theo thi gian v hnh thnh cc gi tr u ra da trn m
hnh ca mch.
Vic kim chng thit k logic l qu trnh kim tra thit k mch trn phng din
hot ng v chc nng v theo thi gian. Qu trnh ny c thc hin da trn vic so
snh cc kt qu nhn c qua qu trnh m phng vi nhng gi tr c tnh ton t
trc da vo chc nng. Bn cnh m hnh ha logic cn c th s dng kim
chng cc tnh cht sau ca hot ng ca mch c thit k:
-
Cho php thay i tham s thi gian tr ca cc phn t trong m hnh kim
tra nhng trng hp xu nht v iu phi thi gian trong mch.
Cho php kim sot mt cch chnh xc vic iu phi thi gian i vi nhng s
kin khng ng b.
c gi tr vecto u
vo x tip theo
y=Y
Y
y = Y?
Hnh trn m phng mch khng ng b bng m hnh m lnh bin dch. Khi thc
hin m phng m hnh, qu trnh m hnh ha s thc hin tnh gi tr tn hiu z v Y
da trn gi tr x v y.
Phng php ny khng chnh xc khi thc hin i vi cc mch khng ng b
trong cc thao tc tnh ton u da trn tham s thi gian tr ca cc phn t mch.
V d: Ta xt mch to xung sau:
A
B
C
D
Thi im m phng
tip theo
Xc nh s kin hin
ti
Thay mi cc gi tr
Lan truyn cc s
kin qua cc phn t
Kt thc
m phng
3. t cc gi tr u vo: a = 0, b = 1. Ta c VA = {(a,0)(b,1)};
4. Ta thy V0<>rng, chuyn sang bc 5
5. Gi tr trn ng tn hiu ra c thay i t X sang 1, tp hp V1 = {(c,1)};
6. Gn V1 vo V0. Tp hp V0 nhn gi tr V0 = {(c,1)} v quay li bc 4
7. Ta thy V0<> rng, chuyn ti bc 5
8. Gi tr tn hiu trn ng d chuyn t x sang 0, V1 = {(d,0)}
9. Gn V1 vo V0, V0 = {(d,0)}, quay v bc 4
10. Ta thy V0<> rng, chuyn sang bc 5
11. Gn V1 vo V0, khi V0 = rng, chuyn sang bc 4
12. Ta thy V0 = rng, quay v bc 3
13. c cc gi tr tip theo u vo
Nh vy vi gi tr u vo a = 0, b = 1, ta nhn c cc gi tr u ra c = 1, d
= 0.
5.4 M hnh ho qu trnh tr tn hiu trong cc phn t mch
Khi thc hin m hnh ha logic v m phng hot ng ca mch trn mc cc phn
t logic, mt nhn t quyt nh mc chnh xc ca m hnh so vi mch thc t l tham
s thi gian tr ca cc phn t logic. Nu ta biu din hot ng ca mch khng tng
ng vi nhng tnh hung thc t s din ra trong cc phn t logic, khi s xut hin s
khng chnh xc trong cc m hnh hot ng ca mch ch yu theo nhng quan h v thi
gian.
1. M hnh ha qu trnh tr tn hiu qua cc phn t logic:
Mi phn t logic u tc ng ln cc tn hiu vo v lm tr cc tn hiu . Trong k
thut thng s dng hai m hnh tr qua cc phn t logic: m hnh tr lan truyn v m
hnh tr qun tnh
- Tr lan truyn: l s tr tn hiu pht sinh khi ta cho tn hiu i qua phn t mch.
- Tr qun tnh: l s tr tn hiu gn lin vi nng lng kch hot phn t mch.
a. Tr lan truyn:
Thi gian tr lan truyn l thi gian m tn hiu ra ca mch chm pha so vi tn hiu
vo mch. M hnh tr lan truyn l m hnh c bn, trong xc nh khong thi gian T
cch bit gia cc s kin xut hin ti u ra vi s kin xut hin ti u vo sinh ra
chng. n gin, cc gi tr thi gian tr s dng trong m phng l cc s nguyn.
Trong mt s trng hp khi m hnh ha mch ta khng tnh n thi gian tr tn
hiu khi i qua cc phn t. Lc ta coi thi gian tr ca cc phn t bng khng, chng ta
s dng m hnh vi thi gian tr tn hiu bng khng. Phng php m hnh ha logic v
m phng bng bin dch s dng m hnh thuc tnh tr ny. M hnh cc phn t vi thi
gian tr bng khng ch c s dng m hnh ha cc gi tr logic trong nhng mch t
hp v mch tun t ng b.
M hnh mch trong thi gian tr ca tt c cc phn t logic bng nhau gi l m
hnh vi thuc tnh tr thun nht. Do cc phn t logic c thi gian tr khc khng nn
chng ta c kh nng m hnh ha v x l cc mch khng ng b c phn hi. Trong
mt s trng hp ta c th chn gi tr thng s tr lm n v vi t l mt, m hnh ny
c gi l m hnh tr n v.
Trong trng hp tng qut, cc phn t ca mch c th nhn nhng thi gian tr
khc nhau. thc hin qu trnh m hnh ha hot ng ca mch, ta s dng n v thi
gian o gi tr thng s thi gian tr l c s chung ln nht T ca cc thng s thi
1
c
e
1
c
d
e
g
h
Hot ng ca mch trn vi m hnh tr thun nht.
a
b
c
d
e
g
h
Hot ng ca mch vi m hnh tr phn tn
Khi m hnh ha hnh vi ca cc phn t logic, thng phn tch chc nng tnh ton
logic c ch iu phi thi gian ca chng. Nh vy mt phn t vi thng s thi gian
tr l T s tng ng vi phn t logic c thng s thi gian tr bng 0 v phn t tr c
thng s thi gian tr l T. Trong qu trnh m hnh ha hnh vi ca phn t logic, u
tin phn t b kch hot s c tnh ton theo chc nng logic, sau cc thuc tnh tr
s c tnh ton v th hin qua qu trnh iu phi thi gian.
Khi s dng m hnh tr khng xc nh hoc m hnh tr cc i cc tiu , trong
hot ng ca mch s xut hin nhng hnh vi khng xc nh v biu th qua nhng
gi tr U.
V d:
a
e
g
S
D
QN
R
QN
Tg Tr
S/Q = 4; S/QN = 3
R/Q = 3; R /QN = 4
fC/Q = 8; rC/QN = 6
rC/Q = 6; fC/QN = 8
I/O: ch tr ca p ng ti u ra O i vi tc ng ti u vo I
r, f: tr sn ln v sn xung ca phn t.
Ta xt dng th 3: nu trng thi ban u ca phn t q = 1 v ti cc ng tn hiu S,
R khng c tc ng (S = 1, R = 1), s chuyn trng thi ca xung ng h C t 0
sang 1 s lm cho u ra Q nhn gi tr ca ng D vi thi gian tr sn xung fC/Q
= 8; u ra QN chuyn t 0 sang 1 vi tr rC/QN = 6.
Dng cui cng ca bng ch ra rng nu cc u vo nhn gi tr cm 00, c hai u
ra s nhn gi tr U.
5.5 M hnh ho trn mc cc phn t
Cc phng php iu khin qu trnh th hin trnh t thc hin m hnh ha v nhng
phng php x l gn lin vi qu trnh m phng mch. Trong phng php bin dch,
trnh t thc hin m hnh ha c xc nh bng vic phn hng cc phn t . Nh vy
vic ngt cc vng phn hi trong cc mch tun t v phn hng phn t chnh l phng
php iu khin qu trnh m hnh ha.
Khi s dng phng php m hnh ha hng s kin nu cc gi tr tn hiu v(j) ti
thi im thi gian t0 khc gi tr V(j) ti thi im trc, iu c ngha l xut hin s
kin, ta s coi rng tn hiu thay i gi tr vo thi im t0 +T trong T l tr lan
truyn ca phn t ang xt.
m t s xut hin s kin trn cc ng tn hiu trong mch theo thi gian ta cha
cc s kin vo danh sch tuyn tnh c dng biu din nh sau:
u danh
sch
ti
S kin
tj
S kin
S kin
S kin
S kin
tk
t
t+1
S kin
S kin
S kin
S kin
S kin
Thng thng khong thi gian tng thch vi tr ca cc phn t trong mch.
Trong nhng trng hp khi trong mch c nhng phn t vi tr ln, khong thi gian
c th vt qu thi gian gii hn M, iu ny dn ti vic thi im m phng vt ra
ngoi vng thi gian v gy nn hin tng trn. gii quyt vn ny, ta xy dng danh
sch b tr lu tr cc thi im trn v gi l danh sch trn. Trong trng hp s dng
danh sch trn, mi khi bnh xe thi gian thc hin c mt vng quay, ta cn thc hin
thao tc tr cc thi im trong danh sch trn v chu trnh x l theo vng thi gian.
Khi thc hin qu trnh m hnh ha theo vng thi gian, cc bc ca qu trnh m
phng c th c biu din di dng sau:
entity COMPARE is
port ( A,B: in BIT;C:out BIT);
end COMPARE;
- M t mch bng hnh vi
m t mch bng hnh vi, trong ngn ng VHDL ngi ta dng cu trc
process. Khi m t bng hnh vi, ta khng cn thit phi cung cp chi tit v
vic thc hin thit k. Trong v d ny ta thy mch so snh c m t bng
mt qu trnh process. Qu trnh ny chu tc dng ca hai tn hiu l A v B.
ahitechture BEHAVIOR or COMARE is
begin
process (A,B)
begin
if (A=B) then C<= 1;
else C<=0;
end iF
end process;
end BEHAVIOR;
begin
U0: XOR_Gate port map (I0 => A,I1 =>B, O =>NET_I);
U1: NOT_Gate port map (I0 => NET_I, O => C);
end STRUCTURE;
2.Qa trnh m phng
Nh cp ti trong chng 4 ,cc ngn ng HDL lun i km vi cc b m
phng. Cc thit k trn ngn ng VHDL, s thc hin trn b m phng VHDL
kim tra hnh vi ca h thng c m hnh ha. ti to hot ng ca m hnh, nh
thit k cn cung cp tp hp cc tc ng vo m hnh. Chng trnh m phng s gn
cc tc ng ti u vo ca m hnh ti nhng thi gian xc nh v da vo m
hnh a ra cc p ng ca mch. Cc kt qu c nh thit k s dng kim tra
mc thch hp ca thit k.
Ta c th thc hin m phng trn bt k giai on no ca qu trnh thit k. Ti cc
mc bao qut nht ca thit k m phng cung cp cho ta thng tin v hot ng ca
mch ang thit k. Thng thng m phng mc ny thc hin rt nhanh v khng
cung cp cho ta nhng thng tin chi tit v hot ng ca mch v nh ch nh thi
gian. M phng mc thp chim nhiu thi gian hn nhng cung cp cho ta nhiu
thng tin chi tit v hot ng ca mch, ch thi gian ng h. Ngn ng VHDL
cho php s dng c ch m phng hn hp. u im ca phng php m phng hn
hp l cho php nh thit k tp chung v xy dng nhng phn mch quan trng.
gim gi thnh thc hin m phng cc mc thp cc b m phng cn c dng
pht hin cc li cng sm cng tt. Trong qu trnh m phng chng trnh VHDL, cc
nh thit k cn cung cp tp hp cc gi tr th nghim ti nhng thi im m phng
xc nh
Signal a
a
Signal c
c<=not
(a xor b)
After 10ns
b
Signal b
a
b
c
Hinh 6.1: M hnh b so snh 1 bt
v cc tn hiu qua m phng
3. Tng hp mch
Tng hp mch l qu trnh xy dng cc m t thit k t mt mc tru tng no
sang mt mc tru tng thp hn. Qu trnh ny c th l s bin i t hnh vi ny
sang hnh vi khc hoc t hnh vi sang cu trc. Qu trnh bin i ny tng t nh
qu trnh bin dch chng trnh phn mm vit trn cc ngn ng bc cao sang cc m
Assembly. Cc u vo ca cc cng c thit k thng l cc m t trn cc ngn ng
HDL, cc c ch iu khin thi gian cc mc tiu ti u, cc th vin k thut. u ra
ca h thng h tr thit k l cc danh sch cc mng li ti u, cc hiu nng ca
mch, din tch ca thit k c xy dng.
-Tng hp hnh vi l qu trnh bin i cc m ta bng cc ngn ng th tc
sang cc m t mc thanh ghi truyn t. Thit k mc thanh ghi truyn
t thng bao gm cc ng truyn d liu, cc mch nh v cc b iu
khin. Qu trnh tng hp hnh vi thng c gi l qu trnh tng hp
mc cao hay cn gi l tng hp kin trc.
-Tng hp mc thanh ghi truyn t l qu trnh to ra cu trc mng cho
cc mch tun t t tp hp cc hm truyn t thanh ghi. Cc trng thi
- Cc kin trc
- Cc gi
- Cc cu hnh
- Cc th vin
1. M t cc thc th
Cc khai bo thc th cho ta ci nhn i vi phn t mch cn c m t t mt
bn ngoi. Bng cch khai bo thc th, phn t mch s c m t bng s
lng v chc nng ca cc cng giao tip v cc tnh cht ca d liu ti cc
cng ny theo phng din t ngoi vo.
Ngn ng VHDL c m t theo ngn ng c php. i vi cc m t thc th
c php c dng nh sau:
entily ten_thc_th is
[lnh_khai_bo_generic]
[cc_lut_ti_cng]
{cc_thnh_phn_khai_bo_thc_th}
[begin
Cc_thnh_phn_biu_thc_thc_th]
end [tn_thc_th];
Lnh khai bo generic dng khai bo cc tham s c s dng kim soat
cu trc hoc hnh vi ca thc th. Cc hng s ny c gi l cc tham s
chung. Cu trc generic c cu trc nh sau:
generic (
tn_hng: kiu_con [:=gi_tri_khi_to]
{;tn_hng: kiu_con [:=gi_tr_khi_to]}
);
tn_hng: l tn ca tham s chung
kiu: kiu d liu ca tham s.
A
B cng
cout
Cin
Hnh vi
Dng d
Cu trc
liu
Process(A,B,Cin)
Begin
End.
S<=A xor B
Sum<= S xor Cin
Affter 5ns
Cout<=(A&B)V(S&Vin
)
a.
Tn hiu
Qu trnh i
Qu trnh k
Tn hiu
.
..
Tn hiu
Qu trnh j
M hnh qu trnh
..
Tn hiu
Giai on mt
: Cp nht tin
hiu
Giai on 2 :
Thc hin tnh ton
iu khin lch trnh
cc giao dch
Kt thc m phng
OR1
HA1
B
N2
N3
HA2
sum
Cin
Khi phc tp ca thit k tng ln, nh thit k thng phn tch h thng
thnh nhng h thng con. Cc h thng con ny lin kt cht ch theo chc nng
trong thnh phn ca h thng tng th. Mi h thng con li c th c phn tch
thnh nhng phn h mc thp hn na. Trong ngn ng VHDL, mc cao nht
ca thit k ngi ta s dng m hnh kin trc theo phong cch kin trc ca thc
th.
Mi phin bn ca thnh phn mch c m t bng cc hp en trong biu din
cu trc vi cc lin kt u vo v lin kt u ra c m t r rng. Cc phin bn
thnh phn phi tng thch vi cc thc th. Cc thc th ny s m t cc chc
nng ca thnh phn mch bng cc m hnh kin trc theo biu din cu trc hoc
hnh vi. V d, i vi mch cng mt bit ca hai tn hiu, ta c mch cng s c
xy dng t hai mch na tng v mt phn t OR. Khi theo cc m t kin trc
ca cc thc th bng cc m t cu trc, thc th FULL_ADDER c to bi hai
thc th HALF_ADDER v mt thc th OR_GATE. Trong thc th
HALF_ADDER c th c xy dng t cc phn t XOR v AND.
M t thc th HALF_ADDER theo cu trc t cc phn t AND v XOR.
entity HALF_ADDER is
port ( I0, I1: in BIT; S, C0: out BIT );
end HALF_ADDER;
architecture STRUCTURE of HALF_ADDER is
component XOR_GATE
port ( I0, I1: in BIT; S, C0: out BIT );
end component;
component AND2_GATE
port ( I0, I1: in BIT; S, C0: out BIT );
end component;
begin
U1: XOR_GATE port map ( I0,I1,S);
U2: AND2_GATE port map ( I0,I1,C0);
end STRUCTURE;
4. Cc cu hnh
Mt thc th c th c mt vi kin trc. Trong qu trnh thit k, ta c th cn
phi th nghim mt vi bin th ca thit k bng cch s dng cc kin trc khc
c. Tn hiu
Tn hiu l i tng d liu dng kt ni gia cc qu trnh hoc ng b cc qu
trnh. Khai bo tn hiu s to tn hiu mi c cc gi tr ca kiu xc nh. Tn hiu
c th c khai bo trong phn khai bo gi, khai bo thc th, khai bo kin trc
v trong khi. Cc tn hiu c c php khai bo nh sau.
signal tn_tn_hiu {, tn_tn_hiu } : kiu [ := gi_tr_khi_to ];
2. Cc kiu d liu
Trong i tng d liu trong ngn ng VHDL u phi c nh ngha bi cc
kiu d liu. Ngn ng VHDL cho php s dng cc kiu c s to nn cc i
tng phc tp hn.
Kiu phi c khai bo trc khi d dng. Khai bo kiu xc nh tn kiu v min
xc nh ca kiu.
Cc kiu d liu chnh trong ngn ng VHDL:
- Kiu lit k.
- Kiu s nguyn.
- Kiu c nh ngha trc ca VHDL.
- Kiu mng.
- Kiu bn ghi.
- Kiu STD_LOGIC.
- SIGNED v UNSIGNED.
- Cc kiu con.
a. Kiu lit k
Kiu lit k c nh ngha bng cch lit k tt c cc gi tr c th c ca kiu.
Cc gi tr ny do ngi s dng xc nh v c th l cc tn hoc nhng k t.
C php ca kiu lit k.
Type tn_kiu is ( gi_tr_lit_k {, gi_tr_lit_k } );
2,147,483,647 n 2,147,483,647 ).
- Natural: l kiu con ca s nguyn v dng ch cc s nguyn khng m
s t nhin.
- Positive: l kiu con ca kiu s nguyn s dng biu din cc s dng.
-Bit_vector: l kiu biu din mng cc Bit.
- String: kiu d liu bao gm mng cc Charater
- Real: m t cc s thc trong gii hn t -1.0E+38 n 1.0E + 38
s1
S2
h. Kiu con
Cc kiu con l mt tp hp con ca cc kiu c nh ngha khc. Php khai
bo kiu con c th nm mi v tr cho php khai bo kiu. S khc bit gia kiu
con v kiu l ch kiu con ch l tp con ca mt kiu hoc mt kiu con c
nh ngha trc.
Kiu con thng dng gii hn cc dng d liu trong cc php gn v trn cc
ng d liu.
6.4 Ton t v biu thc
Trong ngn ng VHDL, cc biu thc l cc cng thc. Cc cng thc ny xc nh
cc tc ng tnh ton ln cc i tng d liu. Cc biu thc thc hin cc tnh
ton s hc v lgic s dng cc ton t vi mt s cc ton hng. Cc ton t c
trng cho php ton s c thc hin cn cc ton hng l cc ngung d liu cho
cc php ton.
1. Cc ton t
Cc ton t c phn chia theo cc mc u tin v trt t tnh ton. Trong bng
6.1 a ra cc nhm php ton vi mc u tin tng dn. Cc quy c v trt t
thc hin cc php ton trong biu thc c th hin nh sau:
- Trong biu thc cc php ton c mc u tin ln hn s c thc hin
trc. Cc du ngoc n cng gip xc nh ng trt t tnh ton biu thc.
Cc php ton trong nhm vi cng mt mc u tin s c thc
hin t tri qua phi trong cc biu thc.
+, -, &
Ton t du
+,-
*,/,mod, rem
a.
Trong ngn ng VHDL, cc php ton lgic gm c and, or, nand, nor, xor v
not. Cc php ton ny c tc ng ln cc d liu kiu BIT, Boolean v mng mt
chiu cc BIT. i vi cc php ton hai ngi and, or, nand, nor, xor, cc ton hng
phi cng kiu. Trong trng hp cc ton hng l cc mng mt chiu cc BIT th
cc mng phi c cng di. Cc php ton nh phn xc nh cc hm trn cc bit
ca nhng phn t mng c cng ch s, k qu s l mt mng c cng di v
gii hn cc ch s. Php ton mt ngi not xc nh php o bit i vi ton hng
ca n. Trong trng hp ton hng l mt mng th php ton not tc ng ln tt
c cc phn t ca mng.
b. Cc php ton quan h
Cc php ton quan h gm cc php ton so snh =, /=, <,
<=, >,
>=. Cc php ton so snh l cc php ton hai ngi v cc ton hng phi c cng
kiu. Kt qu so snh nhn kiu Boolean. Kt qu tr v gi tr true nu quan h
c nghip ng v nhn gi tr false trong trng hp ngc li.
Cc quan h = v /= xc nh vi mi kiu d liu. Cn cc quan h cn
li <,
d. Cc php ton nh du
Cc php ton mt ngi +, , abs thc hin vi cc ton hng dng s v
tr li gi tr cng kiu.
e. Cc php ton nhn
Cc php toan nhn **, * , / , mod, rem thc hin trn cc kiu integer.
Php ton ** th hin nng ln ly tha;* php nhn; / php chia; mod ly
mdun; rem ly phn d.
2. Cc ton hng
Trong mt biu thc, cc ton t dng cc ton hng tnh cc gi tr ca chng.
Thng thng trong ngn ng VHDL c nhiu dng ton hng. Cc ton hng cng
c th l chnh cc biu thc.
Cc dng ton hng trong ngn ng VHDL bao gm:
- Cc hng, k hiu nh x, 1001, 345;
- Cc tn, nh danh;
- Cc ch s;
- Cc tn ngn v bit danh;
- Cc tn thuc tnh;
- Cc biu thc nh kiu;
-Cc php gi hm;
- Cc biu thc chuyn i kiu.
a. Cc hng v gi tr k hiu
Cc hng k v gi tr k hiu hoc l gi tr s, gi tr k t, cc gi tr litk k, cc
gi tr xu.
- Cc gi tr s l cc hng gi tr nguyn. Cc gi tr s c biu din ty
thuc theo h c s m gi tr biu din.
Trong h c s mi cc gi tr s c vit nh bnh
thng.
thay i trng thi ca t nht mt trong cc tn hiu nm trong danh sch cc tn hiu tc
ng.
Cc lnh tun t trong ngn ng VHDL gm c:
- Cu lnh gn cho bin.
- Cu lnh gn cho tn hiu.
- Cu lnh if;
- Cu lnh case;
- Cu lnh rng null;
- Cc lnh vng lp;
Php gn bin
Trong ngn ng VHDL, php gn bin c tc dng tng t php gn ngn ng lp
trnh truyn thng. Php gn bin thit lp gi tr mi cho bin. C php ca php gn
bin nh sau:
Bin:=biu_thc;
V tri ca biu thc phi l bin c khai bo t trc. V phi ca php gn l biu
thc. php gn c th thc hin c biu thc v tri v bin v phi ca php
gn phi cng kiu.
Khi mt bin c gn gi tr, php gn c thc hin vi thi gian m phng bng
khng. iu c ngha l s thay i gi tr ca bin c xy ra tc thi ngay ti thi
im m phng hin ti.
Cc bin ch c khai bo trong cc qu trnh hoc chng trnh con v c s dng
lu tr cc kt qu trung gian. Mt bin c khai bo bn trong mth qu trnh hoc
chng trnh con s tn ti cc b trong qu trnh hoc chng trnh con v khng
th c truy cp ti t cu trc song song khc.
2. Php gn tn hiu
Trong ngn ng VHDL, tn hiu l mt dng i tng c bit. Php gn tn hiu dng
thay i gi tr ca tn hiu. Cc tn hiu lun c biu din kt hp vi biu din
thi gian. Php gn tn hiu thay i gi tr ca tn hiu tng ng theo thi gian v ph
thuc vo cc m hnh qu trnh tr trong cc phn t mch. Khi tn hiu c gn gi
tr, gi tr mi khng c gn vi tn hiu mt cch tc thi m phi sau mt thi
gian c nh lch trnh trc trong thi im m phng tip theo tng ng vi m
hnh tr. Php gn tn hiu c c php nh sau:
tn_hiu_ch <= [transport ] biu_thc [ after thi_gian ]
Trong mt qu trnh, vic gn gi tr ca biu thc cho tn hiu s c lm tr khi chu
trnh m phng ang thc hin v c kim sot bi ton t wait.
Khi tn hiu c gn gi tr trong qu trnh, php gn s xc nh mt b iu khin tn
hiu. Trong mt qu trnh, mt tn hiu ch c th c mt iu khin, iu c ngha l
bn trong mt qu trnh tn hiu ch c th xut pht t mt ngun. Nu tn hiu c
gn gi tr trong nhiu qu trnh khc nhau, chng ta ni rng tn hiu c nhiu iu
khin.
Nh cp trong chng ba, trong thit k mch, chng ta phn bit hai dng thi
gian tr khi ta iu khin cc thao tc trn tn hiu theo thi gian: thi gian tr qun tnh
v thi gian tr lan truyn.
- Thi gian tr qun tnh c th hin mc nh trong ngn ng VHDL. Gi tr thi
gian tr qun tnh l di gii hn cn thit ca tn hiu tc ng thit k c th
phn ng vi s xut hin tn hiu u vo. Nu thi gian tn ti ca tn hiu u vo
khng vt qu gi tr thi gian tr qun tnh th mch s khng phn ng vi s thay
i ca tn hiu.
- Thi gian tr lan truyn l thi gian tr xut hin khji tn hiu i qua mch.
T kha transport c dng trong trng hp thi gian tr trong php gn l thi
gian tr lan truyn. Nu khng s dng t kha transport trong php gn tn hiu, thi
gian tr s c coi l thi gian tr qun tnh mt cch mc nh.
3. Cu lnh if
Cu lnh if to nn phn nhnh trong khi thc hin chng trnh. Ty theo kt qu ca
biu thc iu kin m c th hoc mt s lnh hoc khng c lnh no s c thc
hin. Cu lnh if c cu trc nh sau:
if < iu_kin> then
{ < cu_lnh_tun_t>}
{elsif <iu_kin> then }
{ < cu_lnh_tun_t>}
[else { < cu_lnh_tun_t>} ]
end if
Trong mi nhnh ca ton t if c th cha mt hoc nhiu cu lnh tun t. u tin
biu thc iu kin c tnh ton, nu kt qu cho gi tr true, cc cu lnh tun t
nm sau t kha then s c thc hin tc thi. Trong trng hp ngc li, biu thc
iu kin sau t kha elsif cho gi tr true, cc cu lnh sau t kha then tip theo s
c thc hin
4. Cu lnh case
Cu lnh case c s dng trong trng hp mt biu thc kim sot nhiu r
nhnh trong chng trnh VHDL. Cc lnh tng ng vi mt trong cc la chn s
c thc hin nu biu thc kim sot c gi tr bng gi tr tng ng ca la chn.
Cu lnh case c c php nh sau:
case <biu_thc> is
when <la_chn> =>
{ < cu_lnh_tun_t>}
{ when <la_chn> =>
{ < cu_lnh_tun_t>}}
end case
5. Cu lnh rng null
Cu lnh rng c c php nh sau:
Null;
Trong ngn ng VHDL, khi chng trnh m phng gp phi cu lnh null, n s b
qua lnh ny v thc hin cu lnh tip theo. Thng thng cu lnh null dng ch
trng hp khng thc hin lnh mt cch tng minh khi c cc iu kin tr li gi tr
true. Do cu lnh null thng c dng trong cc cu lnh case i vi cc la chn
khng cn thao tc.
6. Cc lnh vng lp
Lnh lp loop cha thn vng lp gm dy cc cu lnh s c thc hin khng hoc
nhiu ln. Cu lnh loop c c php nh sau:
[<nhn>:][<s__lp>] loop
{ < lnh_tun_t>}
{next [<nhn>][when<iu_kin>];}
{exit [<nhn>][when<iu_kin>];}
end loop
Vi nhng vng lp khng cha <s__lp>, cc lnh trong dy lnh tun t s c
thc hin cho ti khi c ngt bi cu lnh exit. Trong ngn ng VHDL, cu lnh next
cng c th c dng thay i trnh t thc hin thn ca vng lp.
Vng lp cha <s__lp> dng for l mt dng khc ca vng lp. Vng lp for l
cu lnh tun t nm trong qu trnh process, v cho php thn ca vng lp thc hin
theo s lng xc nh cc ln lp.
S lp while l s lp trong qu trnh lp c thc hin nu biu thc iu
kin lp nhn gi tr true. Vng lp dng khi gi tr ca biu thc iu kin tr thnh
false hoc qu trnh thc hin thn vng lp gp lnh exit. Cng tng t nh vng lp
for, cu lnh next cng c dng thay i trt t lp.
i vi cc vng lp trong cc nhnh cha php gn tn hiu phi c t nht mt cu
lnh wait. Nu khng tha mn iu kin ny, qu trnh m phng c th khc i.
Chng ta hy xt v d on chng trnh sau.
7. Cu lnh next
Cu lnh next ch dng trong cc vng lp. Lnh ny c tc dng loi b vic thc hin
cc cu lnh nm gia cu lnh next v cui vng lp khi iu kin trong cu lnh c
nghim ng. Lnh next c cu trc c php nh sau:
Next [< nhn_vng_lp >][ when <iu_kin>]
Trong trng hp c cc vng lp lng nhau th vic thc hin lnh next s c xc
nh mt cch tng minh bng < nhn_vng_lp >. Nu khng c nhn vng lp trong
cu lnh, lnh next c tc dng ln vng lp trong cng cha lnh next.
8. Cu lnh exit
Cu lnh exit c th c dng bn trong cc vng lp. Cu lnh ny c tc dng b qua
cc lnh cn li ca vng lp v thc hin ngay lnh tip sau ca vng lp va kt thc.
Lnh exit c cu trc c php nh sau:
Exit [< nhn_vng_lp >][ when <iu_kin>]
9. Cu lnh wait
Lnh wait iu khin b m phng ngng vic thc hin cc qu trnh hoc cc chng
trnh con cho ti khi iu kin bn trong cu lnh c nghim ng.
Ta c th ni rng iu kin trong cu lnh wait ch c th c nghim ng khi xut
hin cc s kin trn ng tn hiu. Nh vy, cc i tng d liu tham gia trong iu
kin phi l cc tn hiu. Cc iu kin tip tc ca qu trnh b dng c th c
biu th di 3 dng sau y trong ngn ng VHDL:
Wait
[ on <tn_tn_hiu >{, <tn_tn_hiu>}]
[ until <biu_thc_lgic>]
[ for <biu_thc_thi_gian>];
- Cu lnh wait on: ch cho chng ta danh sch cc ng tn hiu v b m phng s
ch s kin (s thay i trng thi cc tn hiu).
- Cu lnh wait until: s dng vic thc hin qu trnh cho ti khi biu thc nhn gi tr
true. Cu lnh wait loi ny s to ra mt danh sch ngm nh cc tn hiu tc ng
trong biu thc lgic. Mi khi c bt k mt s kin xut hin trn ng tn hiu trong
danh sch ny, biu thc lgic s c tnh. Trong trng hp lnh wait until khng
cha biu thc lgic, chng ta hiu rng cu lnh s l wait until true.
-Cu lnh wait for: s dng vic m phng qu trnh mt thi gian bng gi tr thi gian
c ch nh bn trong iu kin. Sau khong thi gian c ch nh, b m phng
thc hin lnh tip theo sau lnh wait. Nu biu thc thi gian khng c, chng ta hiu
cu lnh wait c ngha nh sau:
Wait for time hight
iu ny c ngha l chng ta khng ch nh tng minh v thi gian ch.
Trong m phng mch, lnh wait c th c dng thit lp ng h cho ch
ng b. Trong cc m hnh thit k VHDL, lnh wait ngng qu trnh thc hin cho ti
khi xut hin sn dng hoc sn m ca tn hiu.
10. Php gi chng trnh con v lnh return
Trong ngn ng VHDL c 2 dng chng trnh con:
5. Khi
hin cc hm quyt nh nh lin kt dng Or, lin kt dng And hoc lin kt dng ba
trng thi
Cac tn hiu c cc hm quyt nh to ra nu khai bo ca tn hiu cha c cc hm
quyt nh hoc khai bo kiu con ca tn hiu cha hm quyt nh. V d:
Signal NODE: WIRE_AND BIT;
Subtype RESOLVED_STD is WIRE-OR STD_ULOGIC;
Trong v d ny, khai bao th nht cho chng ta thy tn hiu NODE l tn hiu c
xc nh vi hm quyt inh l WIRE_AND. Mi khi xut hin s kin trn ng tn
hiu NODE, hm WIRE_AND c gi v tr li gi tr kiu BIT l gi tr ca tn
hiu NODE. Khai bo th hai xc nh kiu con c quyt nh RESOLVED_STD.
Cc tn hiu c khai bo thuc kiu RESOLVED_STD l nhng tn hiu c quyt
nh. Di y chng ta thy cch xc nh v s dng cc tn hiu c quyt nh:
- Xc nh kiu tn hiu ( nu cn thit);
- Xc nh hm quyt nh. Hm ny s nhn cc tn hiu vo v tr li tn hiu thuc
kiu c xc inh.
- Khai bo kiu con ca kiu tn hiu km vi hm quyt nh;
- Khai bo v s dng cc tn hiu c quyt nh
3. Cc gi chng trnh
Cc kiu d liu, hng s v chng trnh con c th c khai bo bn trong cc khai
bo thc th hoc bn trong thn ca cc kin trc. Cc khai bo ny l cc b trong
nhng kin trc tng ng v thc th khc khng th truy cp ti nhng i tng .
Tuy nhin trong nhiu trng hp nhng kin trc khc nhau cng c th phi chia s
nhng i tng chung no . Cc gi chng trnh trong ngn ng VHDL cho php
chng ta thc hin cc khai bo chung cho nhiu thc th khc nhau. Mt gi chng
trnh ca ngn ng VHDL c biu din thnh hai phn: phn khai bo gi v thn ca
gi.
Phn khai bo gi m t cc giao din ca gi v c cu trc c php nh sau:
Package < tn_ca_gi >is
{< cc_khai_bo_thuc_gi>}
End [ < tn_gi >];
Cc khai bo thuc gi c th l cc:
- Khai bo kiu, kiu con, tn hiu, hng, bit danh;
- Khai bo thnh phn, chng trnh con;
- Lut use;
- V c th cha c cc package khc.
Cc khai bo tn hiu trong gi to nn mt s vn trong qu trnh tng hp mch bi
v mt tn hiu khng th phn phi gia hai thc th. Cch gii quyt thng dng vn
ny l tn hiu s c khai bo nh mt tn hiu cc b. Ni cch khc, nu hai thc
th s dng cng mt tn hiu trong gi, mi thc th s nhn c mt phin bn sao
chp ca tn hiu ny.
Thn ca mt gi xc nh cc hnh vi ca gi. Thn ca mt gi lun phi cng tn vi
khai bo gi. Phn thn gi c bt u bi t kha package body. Cc thng tin trong
thn ca gi khng th nhn thy c t cc thit k hoc thc th s dng gi . Nh
vy t cc thit k v cc thc th chng ta ch c th truy cp ti cc i tng trong
gi thng qua cc giao din c xc nh trong phn khai bo gi m khng th can
thip trc tip vo bn trong gi. Ni mt cch khc gi l mt hp en vi cc giao
din c a ra phn khai bo. Thn ca gi c m t theo quy tc c php nh sau:
Package body <ten_ca_goi > is
{ < cc_khai_bo_trong_than_gi>
End [< tn_ca_gi>];
Trong phn khai bo trong thn gi c th cha cc:
- Khai bo kiu, kiu con, hng;
- Thn chng trnh;
- Lut use.
Cch m t cu trc thnh phn cng tng t nh cch thc m t thc th.
Trc ht m t cu trc ca thnh phn, chng ta phi xc nh r cc giao
din ca thnh phn, cc giao din ny chnh l cc ng tn hiu vo v ra
khi thnh phn. Trc khi c s dng cc thnh phn phi c khai bo
mt cch tng minh theo quy tc c php sau:
Component<tn_thnh _phn>
[port(<khai_bo_cc_b>)]
End Component;
2. M t cc phin bn ca thnh phn
Cc thnh phn m t trong kin trc c th c khi to bng cc cu lnh to
phin bn thnh phn. Ti cc v tr c to ra, phin bn ca thnh phn c
biu din thng qua cc thuc tnh bn ngoi nh tn, kiu hoc hng tn hiu
ti cc cng vo/ra, nhng cc tn hiu bn trong thnh phn khng c biu
din tng minh, cc cu lnh khi to sinh ra cc phin bn ca thnh phn v
kt ni chng to ln mt danh sch lin kt ca thit k.
Cu lnh to phin bn thnh phn c cu trc c php nh sau:
<nhn_khi_to>:<tn_thnh_phn>
Portmap([<tn_cng_cc_b>=>]<biu_thc>
{[<tn_cng_cc_b>=>]<biu_thc>});
cu truc port map nh x cc cng ca phn t vo cc tn hiu. nh x ny c
th hiu nh vic kt ni cng tng ng ca phn t vo ng tn hiu. Cc
cng c m t tromg khai bo thnh phn l nhng cng cc b. Trong khi ,
cc cng ca cc phin bn thnh phn c gi l cng thc. Trong cc cu lnh
to phin bn thnh phn, cu trc port map t tng ng mi cng thc ca
phin bn vi mt cng cc b ca thnh phn. Mi cng thc phi l i tng
dng tn hiu. Trong ngn ng VHDL a ra hai phng php nh x cc cng
cc b vo cc cng thc: nh x theo v tr v nh x theo tn.
Process (A,Z,Phi_1)
Begin
If (Phi_1 = 1) then
D <= A or Z;
End iF;
End process;
Process( B,D, Phi_2)
Begin
If (Phi_2 =1) then
Z <= B and (not D);
End iF
End process
End Implement;
4. Cc mch trigo lm vic theo sn (flip flop)
Cc qu trnh cha cc tn hiu if hoc wait iu khin theo sn ln ( hoc
sn xung) l cc qu trnh c nh gi. Cc mch trigo iu khin theo sn
ln hoc sng xung ca tn hiu s c to ra t m t trn ngn ng VHDL
nu php gn tn hiu ( hoc php gn bin ) c thc hin theo sn ln hoc
sn xung ca cc tn hiu iu khin.
Thuc tnh event ca tn hiu c dng biu din s bin thin ca tn
hiu. Khi chng ta cn xc nh s bin thin ca tn hiu, thuc tnh event s cho
ra gi tr lgic ty theo trn ng tn hiu c xut hin s kin hay khng. Thuc
tnh stable cng cho gi tr lgic v c s ngha ngc li vi thuc tnh event.
Trong cc chng trnh trn ngn ng VHDL, cc bin cng c th siinh ra
cc trigo iu khin theo sn tn hiu. Chng ta bit rng, khi mt bin c khai
bo trong mt qu trnh process, gi tr ca bin s khng ri khi qu trnh ( c
ngha l gi tr cu bin c khai bo bn trong mt qu trnh s khng c s
V d:
Signal CLK, Din, Dout, SRDT: BIT;
Process ( CLK );
If (CLKevent and CLK =1) then
If ( SRST = 1) then
Dout 0;
Else
Dout Din;
End if
End if;
End process;
Trong nhiu trng hp, vic thit lp hoc xa gi tr ca phn t nh khng
ph thuc vo thi gian ng h.
6. S chung m t mch c nh
Nu xt trn quan im cu trc v chc nng, mch c nh lun c
chia thnh hai phn: cc thnh phn t hp v cc mch nh ng b. Tng ng
vi cch phn chia chc nng v cu trc nh vy, m hnh ca mch c nhos bao
gm hai phn: mt phn m t cc cu trc v chc nng t hp; mt phn m t
cc cu trc v chc nng mch nh ng b.
- Trong phn m t cc thnh phn t hp, chng ta biu din nhng thnh
phn mch c hnh vi ph thuc vo s thay i gi tr tn hiu nm trong danh
sch tn hiu tc ng. Tt c cc tn hiu c tham chiu ti trong phn m t
cc thnh phn t hp phi c lit k trong danh sch cc tn hiu tc ng.
-Trong phn m t cc mch nh ng b, chng ta biu din cc thnh phn
mch c hnh vi ph thuc vo s xut hin cc sn ca tn hiu ng b. Cc
thao tc i vi tn hiu trong phn ny cha cc php kim tra s kin trn
ng tn hiu v kim tra sn tn hiu .
2 Y- Tp cc tn hiu ra ca otomat:
Y={y1(t),, yn(t)}
if (X(2) = 1) then
Y(3) =1;
NextState :=S2;
Else Y(2) = 1;
NextState :=S2;
End if;
input
Output
Mch t hp
clock
Entity AsyncMealy is
Port ( CLK,RST: in BIT;
X: in BIT- VECTOR ( 3 downto 1);
Y: out BIT VECTOR ( 4 downto 1);
End AsyncMealy;
Architecture Implement of AsyncMealy is
Begin
Process (CLK,RST,X)
Type StateType is (S0,S1,S2,S3,S);
Variable State: StateType;
Begin
If(RST =1) then
State = S0;
Elsif (CLKevent and CLK =1) then
State = NextState;
End if;
Case State is
When S0 =>
If (X(1) =1) then
Y(1) = 1;
State := S1;
Elsif (X(2) = 1
Y(3) = 1;
State :=S2;
Else Y(2) = 1;
State := S2;
End if;
..
)then
clock
input
Output
Mch t hp
clock
thng xuyn sao cho sc xut xut hin nhiu hn mt li gia hai ln kim tra lin
tip l nh. Nhng trng hp xut hin nhiu hn mt li c th l:
-
H mch
Cc ng tn
hieu bi nghn
a)
R nhnh
H mch
b)
Cc ng tn hiu
b nghn
- Trong nh ngha ny chng ta gi thit rng vic kim tra li bng cch t cc gi
tr th nghim v thu nhn cc kt qu thng qua cc chn ca phn t v so snh hon ton
ca cc kt qu nhn c.
2.Pht hin li trong mch tun t
Kim tra mch tun t phc tp hn so vi mch t hp. c th pht hin c li,
chng ta cn phi s dng chui cc vecto gi tr kim nghim v p ng ca mch tun t
s l hm i vi cc trng thi ban u ca mch. C th minh ha nh sau:
Gi thit T l chui cc vecto th nghim v R(q, T) l p ng ca mch tun t N
i vi chui T bt u t trng thi q. Gi thit rng khi trong mch N xut hin li f, mch
N tr thnh mch Nf v Rf(qf, T) l p ng ca mch cha li Nf i vi chui T bt u t
trng thi qf.
8.3 Cc phng php thut ton tng hp cc gi tr th nghim
1. Phng php da trn s kch hot ng truyn
Cc phng php to dy gi tr th nghim c chia lm hai nhm:
- Cc phng php tm cc vecto gi tr u vo c th pht hin mt li cho trc.
- Cc phng php tm cc li c th c pht hin s dng mt vecto gi tr kim
nghim cho trc. Cc phng php thuc nhm ny c gi l cc phng php m
hnh ha li.
Phng php m hnh ha li khng th gi l phng php thut ton v nu qu trnh
m hnh ha khng c thc hin vi mi kh nng c th c ca cc vecto gi tr
u vo, khng th m bo c vic tm ra cc vecto gi tr kim nghim cho tt c
cc li c th c pht hin.
Cc phng php thut ton to cc vecto gi tr th nghim pht hin li c s
dng hin nay u da trn khi nim kch hot ng truyn.
Kch hot ng truyn l phng php xc nh cc vecto gi tr th nghim da trn
vic tm ng m theo s khc bit gia cc gi tr tn hiu khi mch cha li v
khi mch khng cha li c truyn ra bn ngoi. Ni cch khc l chng phi xc
nh c cc ng dn mn cm vi li.
8.4 Phng php m hnh ho li
1. Bi ton m hnh ha li:
Vic to cc vecto th nghim tm li bng cc phng php thut ton cho php
ta thc hin i vi mi li c th pht hin c. Nh vy phng php thut ton l
phwong php to vecto gi tr th nghim tm li y . Khi phc tp ca mch tng,
thi gian to b gi tr pht hin li s tng nhanh. Theo l thuyt thi gian to b gi tr
th nghim s tng theo lut hm m i vi s lng phn t logic tham gia vo mch. i
vi nhng mch trong thc t, thi gian to b gi tr th nghim s t l bc hai bc ba so
vi s tng ln ca s lng cc phn t logic c bn trong mch.
Phng php m hnh ha li l nh sau: ta thc hin m hnh ha logic mch cha li
tng ng vi mt vecto gi tr u vo no . Nu nhn c cc gi tr u ra ca mch
trong trng hp xut hin li v trong trng hp khng b li khc nhau, nh vy vecto
gi tr u vo c coi l vecto gi tr th nghim pht hin li ang xt. Phng php xc
nh cc li l phng php xc nh cc li c th c pht hin s dng mt vecto gi tr
u vo cho trc.
Phng php m hnh ha li v c bn da trn qu trnh qu trnh m hnh ha
logic mch trong hai trng hp: cha li v khng cha li.
C 3 phng php m hnh ha li: Phng php m hnh ha li song song; phng php
m hnh ha li suy din; phng php m hnh ha li cnh trnh.
1. Phng php m hnh ha li song song:
Khi thc hin m hnh ha li, gi tr trn cc ng tn hiu c m t bng mt t
my. Do mt t my c cha n hang ch s nh phn, th chng ta c th thc hin
c qu trnh m hnh ha i vi n vecto gi tr u vo mt cch song song.
V d:
e:11110000 11110000
l:11110011 11111111
b:00110011
c:00001111
khng li
b li
J:00001110 00001110
K:00001100 00000000
Khi m hnh ha theo phng php trn, chng ta thy cc gi tr u vo tham gia
vo qu trnh m hnh ha mt cch ng thi trn tt c cc bit ca t my do
phng php ny gi l m hnh ha li vi u vo song song.
Vi mch trn, thc hin qu trnh m hnh ha mt cch ng thi vi cc li:
g/0, g/1, h/0, j/0, j/1, k/0, k/1, m/1;
tng ng vi b gi tr u vo: (a, b, c, d) = (1, 0, 1, 0).
a:11111111
e:00000000 i:01000000
m:01000001
b:00000000
f:00000000 j:11101111
n:10101011
c:11111111
g:01000000 k:10111011
p:11101011
Nu cc u vo nhn gi tr a = 0, b = 1, c = 1, u ra s nhn gi tr d = 0. Do
cc li hng s do vecto gi tr u vo (a, b, c) = (0, 1, 1) pht hin c s l: a/1,
d/1 . Nu cc u vo a = b = c = 1 ta c d = 1. Suy ra tp hp cc li hng s c
th pht hin c bng vecto gi tr u vo (a, b, c) = (1, 1, 1) s l {a0, b0, c0, d0}.
Chng ta c th nhn c tp hp ny theo nhng lut sau:
Lut suy din C: cc php tp hp i vi phn t A v cc gi tr u vo ca phn
t :
- ng tn hiu vo a ca phn t l ng vo t bn ngoi. Nu gi tr tn hiu
ny bng 1, ta c La = {a0}; nu gi tr ng tn hiu bng 0 th La = {a1};
- Hm ra ca phn t A c biu din di dng tng hoc tch. Nu gi tr ng
ca ng tn hiu a bng 0, th k hiu a trong biu thc s thay bng La , k hiu a s
t b sung v thc hin vic bin i s ca mch sao cho mch khng thay
i v chc nng. Bn canh , ta cn phi xc nh c mc ch chnh khi
nghin cu xy dng mch kim tra.
Nu xut pht im l s lng cc tiu cc b gi tr th nghim, nh vy chng
ta c th bin i mch in sao cho c th pht hin c li ch cn t nht l ba
b gi tr th nghim. S lng ny c a ra da vo nhn xt nh sau: c
th pht hin c li ca cc phn t AND v OR c hai u vo, ta cn t nht 3
b gi tr kim nghim. V vy c th ni 3 b gi tr th nghim l cn di theo
l thuyt.
pht hin li cho mch AND c 2 u vo, chng ta cn phi kim tra phn t
vi 3 b gi tr u vo: (0, 1), (1, 0), (1, 1). Do phn t AND c th c
kim tra bi bt k 2 trong s cc dy gi tr u vo sau:
SA = {011, 101, 110}
i vi phn t OR, vic kim tra c th c m bo bi bt k 2 trong s cc
dy gi tr u vo sau:
S0 = {001, 010, 100}
c th pht hin c li dng cc dy gi tr u vo nu trn th mch cn
phi c bin i nh sau:
1. Mch phi c chuyn i thnh mch ch cha cc phn t AND, OR,
NOT.
2. Phn t AND (hoc OR) c s lng u vo l 3 hoc hn s c trin khai
thnh t hp lim kt tun t ca cc phn t AND (hoc OR) c hai u vo.
3. Bt u t cc u vo, chng ta chn cc b gi tr th nghim t trong cc
chui SA v S0 tng ng vi dng ca phn t. Truyn cc gi tr ny ti u
ra ca mch.
4. Nu trong qu trnh truyn gi tr, khng nhn cc dy tn hiu t SA hoc S0,
chng ta cn phi thm vo ng tn hiu phn t AND hoc OR c 2 u
vo
5. Lp li bc 3 v bc 4 cho ti khi trn tt c cc phn t trong mch thit
lp c cc gi tr th nghim.
V d: