You are on page 1of 68

KIN THC C BN V VHDL

VHDL l vit tt ca cm t Very High Speed Intergrated Circuit Hardware De cripti!n Language " ng#n ng$ m# t% ph&n c'ng ch! c(c m)ch t*ch h+p t,c -. r/t ca!0 VHDL l ng#n ng$ m# t% ph&n c'ng -1+c ph(t tri2n d3ng ch! ch14ng tr5nh VHSIC 6Very High Speed Intergrated Circuit7 ca 8. 9u,c ph:ng ;<0 ;c ti=u ca vi>c ph(t tri2n VHDL l c? -1+c m.t ng#n ng$ m# t% ph&n c'ng ti=u chu@n v th,ng nh/t ch! phAp ph(t tri2n thB nghi>m c(c h> th,ng , nhanh h4n cCng nh1 ch! phAp dD dng -1a c(c h> th,ng -? v! 'ng dng tr!ng thEc t0 Fg#n ng$ VHDL -1+c 8a c#ng ty Intermetic G IH; v IeJa In trument 8t -&u nghi=n c'u ph(t tri2n v! KLMNOP0 Qhi=n 8%n -&u ti=n -1+c c#ng 8, v! OLMNOR0 Sau -? VHDL -1+c -S Ju/t -2 tT ch'c IUUU Jem JAt thnh m.t ti=u chu@n0 FVm MNOKG -W -1a ra ti=u chu@n vS VHDL X ti=u chu@n IUUU"MYKZ"MNOK0 VHDL -1+c ph(t tri2n -2 gi%i 9uyt c(c [h? [hVn tr!ng vi>c ph(t tri2nG thay -Ti v l\p ti li>u ch! c(c h> th,ng ,0 Fh1 ta -W 8itG m.t h> th,ng , c? r/t nhiSu ti li>u m# t%0 ]2 c? th2 v\n hnh 8%! tr5 Ba ch$a m.t h> th,ng ta c&n t5m hi2u ti li>u -? [< l1^ng0 V_i m.t ng#n ng$ m# t% ph&n c'ng th5 vi>c Jem JAt c(c ti li>u m# t% tr` n=n dD dng h4n v5 8. ti li>u -? c? th2 -1+c thEc thi -2 m# phang h!)t -.ng ca h> th,ng0 Fh1 th ta c? th2 Jem JAt t!n 8. c(c ph&n tB ca h> th,ng h!)t -.ng tr!ng m.t m# h5nh th,ng nh/t0 Ir1_c [hi VHDL ra -biG c? nhiSu ng#n ng$ m# t% ph&n c'ng -1+c B dng nh1ng [h#ng c? m.t ti=u chu@n th,ng nh/t0 V5 c(c ng#n ng$ m# phang ph&n c'ng -? -1+c c(c nh cung c/p thit 8c ph(t tri2nG n=n mang c(c -dc tr1ng gn v_i c(c thit 8c ca nh cung c/p -? v thu.c ` h$u ca nh cung c/p0 Ir!ng [hi -?G VHDL -1+c ph(t tri2n nh1 m.t ng#n ng$ -.c l\p [h#ng gn v_i 8/t [e m.t ph14ng ph(p thit [G 8. m# phang hay c#ng ngh> ph&n c'ng n!0 Fg1bi thit [ c? th2 tE d! lEa chfn c#ng ngh>G ph14ng ph(p thit [ tr!ng [hi vgn B dng m.t ng#n ng$ duy nh/t0 VHDL c? m.t , 1u -i2m h4n hhn c(c ng#n ng$ m# t% ph&n c'ng [h(c li Tnh cng cng: VHDL -1+c ph(t tri2n d1_i E 8%! tr+ ca ch*nh ph ;< v hi>n nay l m.t ti=u chu@n ca IUUUG VHDL [h#ng thu.c ` h$u ca 8/t [e c( nhjn hay tT ch'c n!0 D! -? VHDL -1+c hk tr+ ca nhiSu nh %n
M

Ju/t thit 8c cCng nh1 nhiSu nh cung c/p c#ng c thit [ m# phang h> th,ng0 ]jy l m.t 1u -i2m nTi 8\t ca VHDLG gilp VHDL tr` n=n ngy cng phT 8in0 Kh nng h tr nhiu cng ngh v phng php thit k: VHDL ch! phAp thit [ 8mng nhiSu ph14ng ph(p nh1 ph14ng ph(p thit [ t tr=n Ju,ngG hay t d1_i l=n dEa v! c(c th1 vi>n c? nn0 Fh1 v\y VHDL c? th2 phc v t,t ch! nhiSu mc -*ch thit [ [h(c nhauG t vi>c thit [ c(c ph&n tB phT 8in -n vi>c thit [ c(c IC 'ng dng -dc 8i>t 6opplicati!n Specipied IC70 c l p v!i cng ngh: VHDL h!n t!n -.c l\p v_i c#ng ngh> ch t)! ph&n c'ng0 ;.t m# t% h> th,ng d3ng VHDL thit [ ` m'c cTng c? th2 -1+c chuy2n thnh c(c 8%n tTng h+p m)ch [h(c nhau tue thu.c v! c#ng ngh> ch t)! ph&n c'ng n! -1+c B dng 6d3ng C;qSG n;qSG hay rao 70 ]jy cCng l m.t 1u -i2m 9uan trfng ca VHDL n? ch! phAp ng1bi thit [ [h#ng c&n 9uan tjm -n c#ng ngh> ph&n c'ng [hi thit [ h> th,ngG nh1 th [hi c? m.t c#ng ngh> ch t)! ph&n c'ng m_i ra -bi n? c? th2 -1+c (p dng ngay ch! c(c h> th,ng -W thit [0 Kh nng " t "# rng: VHDL ch! phAp m# t% h!)t -.ng ca ph&n c'ng t m'c h> th,ng , 6h.p -en7 ch! -n m'c cTng0 VHDL c? [h% nVng m# t% h!)t -.ng ca h> th,ng tr=n nhiSu m'c nh1ng chs B dng m.t cl ph(p chdt cht th,ng nh/t ch! mfi m'c0 Fh1 th ta c? th2 m# phang m.t 8%n thit [ 8a! gum c% c(c h> c!n -1+c m# t% ` m'c ca! v c(c h> c!n -1+c m# t% chi tit0 Kh nng tr$% &'i kt (u: V5 VHDL l m.t ti=u chu@n -1+c ch/p nh\nG n=n m.t m# h5nh VHDL c? th2 ch)y tr=n mfi 8. m# phang -(p 'ng -1+c ti=u chu@n VHDL v c(c [t 9u% m# t% h> th,ng c? th2 -1+c tra! -Ti gi$a c(c nh thit [ B dng c#ng c thit [ [h(c nhau nh1ng c3ng tujn the! chu@n VHDL0 H4n n$aG m.t nh?m thit [ c? th2 tra! -Ti m# t% m'c ca! ca c(c h> th,ng c!n tr!ng m.t h> th,ngv tr!ng [hi c(c h> c!n -? -1+c thit [ -.c l\p0 Kh nng h tr thit k ")c l!n v kh nng *+ ,-ng l.i cc thit k: VHDL -1+c ph(t tri2n nh1 m.t ng#n ng$ l\p tr5nh 8\c ca!G v5 v\y n? c? th2 B dng -2 thit [ m.t h> th,ng l_n v_i E tham gia ca m.t nh?m
w

nhiSu ng1bi0 H=n tr!ng ng#n ng$ VHDL c? nhiSu t*nh nVng hk tr+ vi>c 9u%n lxG thB nghi>m v chia y thit [0 VHDL cCng ch! phAp d3ng l)i c(c ph&n -W c? nn0

3.1. CC CU TRC C BN CA NGN NG VHDL


C(c thnh ph&n ch*nh Jjy dEng tr!ng ng#n ng$ VHDL -1+c chia ra thnh nVm nh?m c4 8%n nh1 aui " Untity " orchitecture " Qac[age " C!npigurati!n0 " Li8rary0 En ! "# Ir!ng m.t h> th,ng ,G th#ng th1bng -1+c thit [ the! m.t E Jp chung c(c ;!dulG m mki ;!dul ny t14ng 'ng v_i m.t thEc th2 thit [ 6-1+c gfi l Untity7 tr!ng VHDL0 ;ki m.t Untity 8a! gum hai ph&ni " zhai 8(! thEc th2 6 Untity70 " Ihjn [in trlc 6 orchitecture H!die 7 ;.t [hai 8(! Untity -1+c d3ng -2 m# t% gia! tip 8=n ng!i ca m.t ph&n tB 6c!mp!nent7G n? 8a! gum c(c [hai 8(! c(c cTng -&u v!G c(c cTng -&u ra ca ph&n tB -?0 Qh&n thjn ca [in trlc -1+c d3ng -2 m# t% E thEc hi>n 8=n tr!ng ca thEc th2 -?0 $%&'%()*# C(c -?ng g?i chs ra th#ng tin d3ng chungG m c(c th#ng tin ny -1+c B dng 8`i m.t vi Untity n! -?0 C+n,!(-.% !+n# {cnh c/u h5nhG n? ch! phAp gn [t c(c th2 hi>n ca ph&n tB c&n d3ng n! -? ca m.t thit [ n! -? c? d)ng m.t c/u trlc v -1a c(c th2 hi>n ny v! tr!ng cdp Untity v orchitecture0 F? ch! phAp ng1bi thit [ c? th2 thB nghi>m -2 thay -Ti c(c E thEc thi [h(c nhau tr!ng m.t thit [0 ;ki m.t thit [ d)ng VHDL 8a! gum m.t vi -4n vc th1 vi>nG m m.t tr!ng c(c th1 vi>n ny -1+c dcch nn v c/t tr!ng m.t th1 vi>n thit [0

3.1.1. K/%! 01+ En ! "


Fh1 tr=n -W -S c\pG ph&n [hai 8(! Untity chs -1a ra m.t c(i nh5n ph*a 8=n ng!i ca m.t ph&n tB m [h#ng cung c/p th#ng tin vS E thEc hi>n ca ph&n tB -? nh1 th n!0 Cl ph(p [hai 8(! ca m.t Untity nh1 aui Entity entity_name is [generic (generic_declaration);] [port (port_declaration);] {entity_declarative_item {constants, types, signals};} end [entity_name]; |} i D/u ng!dc vu#ng chs ra c(c tham , c? th2 lEa chfn0 ~ i D/u g)ch -'ng hi2n thc m.t E lEa chfn tr!ng , c(c lEa chfn [h(c0 i zhai 8(! m.t h!dc nhiSu c(c -,i t1+ngG m c(c -,i t1+ng ny c? th2 -1+c -cnh ngha 8`i ng1bi d3ng0 %. K/%! 01+ G)n).!&# D3ng -2 [hai 8(! c(c hmng m chlng c? th2 -1+c d3ng -2 -iSu [hi2n c/u trlc v E h!)t -.ng ca Untity0 Cl ph(p ca [hai 8(! ny nh1 aui generic ( constant_name : type [:=init_value] {;constant_name: type[:=init_value]}); -jy t=n hmng c!n tantname chs ra t=n ca m.t hmng d)ng generic 6hmng d3ng chung70 zi2u 6Iype7 -1+c d3ng -2 chs ra [i2u d$ li>u ca hmng0 Initvalue i chs ra gi( trc [h`i t)! ch! hmng0

0. K/%! 01+ &2n( 3 $+. 4# {1+c d3ng -2 [hai 8(! c(c cTng v!G ra ca Untity0 Cl ph(p ca [hai 8(! ny nh1 aui Port ( port_name : [mode] type [:= init_value] {; port_name:[mode] type [:=init_value]}); Q!rtname -1+c d3ng -2 chs ra t=n ca m.t cTngG m!de chs ra h1_ng v! ra ca t*n hi>u t)i cTng -?0 Iype chs ra [i2u d$ li>u ca m.t cTng v initvalue chs ra gi( trc [h`i t)! ch! cTng -?0 C/5 6 7 V_i VHDL [h#ng phjn 8i>t ch$ h!a v ch$ th1bngG chhng h)n nh1i Jy J 0 C? 8,n m!de -1+c B dng tr!ng [hai 8(! cTngi

" ini Chs c? th2 -1+c -fcG n? chs -1+c d3ng ch! c(c t*n hi>u -&u v! 6chs -1+c phAp nmm 8=n ph%i phAp g(n70 " !uti Chs -1+c d3ng -2 g(n gi( trcG n? chs -1+c d3ng ch! c(c cTng -&u ra 6n? chs -1+c nmm 8=n tr(i ca phAp g(n70 " in!uti C? th2 -1+c d3ng -2 -fc v g(n gi( trc0 F? c? th2 c? nhiSu h4n m.t h1_ng -iSu [hi2n 6c? th2 nmm ` 8=n tr(i h!dc 8=n ph%i phAp g(n70 " Hupperi C? th2 -1+c d3ng -2 -fc v g(n gi( trc 6c? th2 nmm ` 8=n tr(i h!dc 8=n ph%i phAp g(n70 In!ut l m.t cTng hai h1_ngG c:n Hupper l m.t cTng [h#ng c? h1_ng0 &. En ! "89)&:%.% !;)8! )< # {1+c d3ng -2 [hai 8(! c(c hmngG [i2u d$ li>uG h!dc t*n hi>u m n? c? th2 -1+c B dng tr!ng [hi thEc hi>n ca m.t Untity0 9. V= 9> # V* d vS [hai 8(! c(c cTng v! rai entity is port ( ! : in integer ; " : in integer ; # : out integer ; $ : inout integer ; E : %u&&er integer) ; end ; arc'itecture %'v o& is %egin process (!,") %egin # (= ! ; )) ( #*u l+n' ,-ng: ! ,./c g0n c'o # )1 ! (= " ; )) ( #*u l+n' sai: ! l2 m3t ,4u v2o )1 E (= $ 5 6; )) ( #*u l+n' ,-ng: $ 7 mode inout v8 v9y n: )) c: t'; ,./c g0n v2 ,<c ) $ (= # 5 6; )) ( #*u l+n' sai : # l2 c=ng ,4u ra n>n ?'@ng )) t'; ,<c ,./c c'o ,4u v2o )1 end process; end %'v; V* d vS [hai 8(! Untityi

H?n/ 3.1# IhEc th2 LLoDDU M8it0 H5nh P0M chs ra m.t gia! di>n ca m.t 8. c.ng m.t 8it0 I=n Untity ca ph&n tB ny l LLoDDU0 F? 8a! gum c(c cTng -&u v! oG H v CIF0 C(c cTng ny c? [i2u d$ li>u l [i2u HitG c:n c(c cTng -&u ra S; v CqI cCng mang [i2u d$ li>u l [i2u HII0 Fg#n ng$ VHDL d3ng -2 diDn t% gia! di>n ny nh1 aui Entity ABCC_!$$ED is port ( !, ", #EF : in "EG; HBI, #JBG : out "EG ); End ABCC_!$$ED ; Chlng ta c? th2 -iSu [hi2n c/u trlc cCng nh1 thbi gian ca m.t Untity 8`i vi>c B dng c(c hmng generic0 V* d au t chs ra vi>c -iSu [hi2n nyG tr!ng v* d ny hmng F -1+c d3ng -2 chs ra , 8*t ca m.t 8. c.ng0 Ir!ng 9u( tr5nh m# phang h!dc 9u( tr5nh tTng h+pG gi( trc thEc t ch! mki hmng d3ng chung generic c? th2 8c thay -Ti0 entity !$$ED is generic (F : EFGEKED := L); I : GEIE := 6Mns); port ( !, " : in "EG_NE#GJD (F )6 doOnto M ); #EF :in "EG; HBI : out "EG_NE#GJD (F)6 doOnto M); #JBG : out "EG ); end !$$ED;

ria! di>n m# t% 8. c.ng ny nh1 aui

H?n/ 3.@# IhEc th2 LLoDDU 8it0

3.1.@. C1& '!A- '!Bn .5& 3A&/! )& -.)4


;.t [in trlc -1a ra [t c/u 8=n tr!ng ca m.t Untity0 ;.t Untity c? th2 c? nhiSu h4n m.t [in trlcG n? chs ra 9uan h> gi$a c(c -&u v! v -&u ra ca m.t Untity m 9uan h> ny -1+c diDn t% the! c(c thu\t ng$ aui " zi2u hnh vi h!)t -.ng 6 Hehavi!ral 70 " zi2u h!)t -.ng ca c(c luung d$ li>u 6 Datapl!w 70 " zi2u c/u trlc 6 Structure 70 ;.t [in trlc J(c -cnh ch'c nVng ca m.t Untity0 F? 8a! gum c(c ph&ni zhai 8(! c(c c(c t*n hi>uG hmngG [hai 8(! c(c [i2uG c(c ph&n tBG tip the! l c(c ph(t 8i2u 6l>nh7 -ung thbi0 zhai 8(! m.t [in trlc B dng cl ph(p aui arc'itecture arc'itecture_name o& entity_name is { arc'itecture_declarative_part } "egin {concurrent_statement} ))(l+n' ,Png t'Qi) end [ arc'itecture_name ];

3.1.@.1. K!Bn .5& /)+ '!A- /Cn/ ;! /+D EFn( 3B)/%;!+.%:4


;.t [in trlc [i2u hnh vi h!)t -.ng chs ra c(c h!)t -.ng m m.t h> th,ng ri=ng 8i>t n! -? ph%i thEc hi>n tr!ng m.t ch14ng tr5nhG n? gi,ng nh1 vi>c diDn t% c(c 9u( tr5nh h!)t -.ngG nh1ng [h#ng cung c/p chi tit m thit [ -1+c thEc thi nh1 th n!0 Ihnh ph&n ch yu ca vi>c diDn t% the! [i2u hnh vi tr!ng VHDL l

pr!ce 0 D1_i -jy l v* d chs ra [i2u diDn t% the! [i2u hnh vi ca m.t 8. c.ng v_i t=n l LLoDDU0 arc'itecture "ER!NEJBD o& ABCC_!$$ED is %egin process (!,",#EF) %egin i& ( ! =SMS and " =SMS and #EF=SMS ) t'en HBI (= SMS; #JBG (= SMS ; elsi& (!=SMS and "=SMS and #EF=S6S) or (!=SMS and "=S6S and #EF=SMS) or (!=S6S and "=SMS and #EF=SMS) t'en HBI (= S6S; #JBG (= SMS ; elsi& (!=SMS and "=S6S and #EF=S6S) or (!=S6S and "=SMS and #EF=S6S) or (!=S6S and "=S6S and #EF=SMS) t'en HBI (= SMS; #JBG (= S6S; elsi& (!=S6S and "=S6S and #EF=S6S) t'en HBI (=S6S; #JBG (=S6S; end i&; end process; end "ER!NEJBD!C;

3.1.@.@. K!Bn .5& /)+ '!A- /+D EFn( &G% &1& :-Hn( 9I :!J- 3D% %,:+K4
;.t [in trlc [i2u luung d$ li>u chs ra m.t h> th,ng d1_i d)ng m# t% -ung thbi ca c(c luung -iSu [hi2n v dcch chuy2n ca d$ li>u0 F? B dng the! mgu th#ng tin h!dc mgu h!)t -.ng ca luung d$ li>u -?G h!dc mgu thbi gian ca c(c ch'c

nVng l!gic tT h+p0 Chhng h)n nh1 c(c 8. c.ngG 8. ! (nhG 8. gi%i mWG v c(c cTng l!gic nguy=n thy0 V= 9># arc'itecture $!G!ACJT o& ABCC_!$$ED is signal H : "EG; %egin H (= ! or " ; HBI (= H or #EF a&ter 6M ns; #JBG (= (! and " ) or (H and #EF) a&ter Uns; end $!G!ACJT;

3.1.@.@. K!Bn .5& /)+ '!A- &L- .5& 3M .-& -.)4


;.t [in trlc [i2u c/u trlc chs ra E thEc thi c/u trlc the! d)ng B dng c(c [hai 8(! ph&n tB v c(c th2 hi>n ca ph&n tB -?0 V* d d1_i -jy chs ra E diDn t% c/u trlc ca m.t 8. c.ng LLoDDU nh1 tr=n -W gi_i thi>u0 Hai [i2u ph&n tB -1+c B dng tr!ng v* d ny l HoLoDDU v qroIU0 arc'itecture HGDB#GBDE o& ABCC_!$$ED is component R!CA_!$$ED port (C6, CV : in "EG; #!DDW, HBI : out "EG); end component; component JD_K!GE port (C6, CV : in "EG; J: out "EG); end component; %egin R!6: R!CA_!$$ED port map (!,",F6,FV); R!V: R!CA_!$$ED port map (FV,#EF,FX,HBI); JD6 : JD_K!GE port map (F6, FX,#JBG); end HGDB#GBDE; v* d ny Untity ` m'c ca! nh/t t ch'a hai th2 hi>n ca HoLoDDU v m.t th2 hi>n ca qroIU0 Ih2 hi>n HoLoDDU c? th2 8c rmng 8u.c v_i

m.t Untity [h(cG m Untity ny 8a! gum m.t cTng q v m.t cTng oFD0 ria! tip ca m.t 8. c.ng HoLoDDU c? d)ng nh1 aui

H?n/ 3.3# ria! tip 8. c.ng HoLoDDU0 H. c.ng ny gum c? hai -&u v! LM v LwG -&u ra l S; v Co0 zi2u HII l [i2u tiSn -cnh ngha ca ng#n ng$ VHDLG n? c? [i2u li>t [= d)ng ch$ [x tE nh1 Y v M0

3.1.3. C1& ENn( (N! 3$%&'%()*4


;c -*ch ch*nh ca Qac[age l t\p h+p c(c ph&n tB c? th2 8c chia y 8`i hai hay nhiSu -4n vc thit [ 6hay c(c ph&n tB c? th2 d3ng chung -1+c70 F? c? ch'a c(c [i2u d$ li>uG c(c hmngG c(c ch14ng tr5nh c!n c? th2 d3ng chung gi$a c(c thit [0 ;.t Qac[age c? cha hai ph&n ch*nhi " Qh&n [hai 8(! Qac[age0 " Qh&n thjn Qac[age0

3.1.3.1. $/On '/%! 01+ $%&'%()


;.t [hai 8(! Qac[age -1+c d3ng -2 c/t gi$ hng l!)t c(c [hai 8(! d3ng chungG chhng h)n nh1 c(c ph&n tBG c(c [i2uG c(c th tcG c(c hm0 C(c [hai 8(! ny c? th2 nh\p v! c(c -4n vc thit [ [h(c 8`i vi>c B dng m.t m>nh -S u e0 V= 9># pac?age EY!IPCE_P!#Z is type HBIIED is ( I!W, [BF, [BC, !BK, HEP); component $_ACEP_ACJP port ($, #Z:in "EG; \, \"!D: out "EG) end component;

MY

constant PEFVPEF_$EC!W:GEIE:=6VUns; &unction EFV"EG_NE#(EFG_N!CBE:EFGEKED) return "EG_NE#GJD; end EY!IPCE_P!#Z; v* d ny t=n ca pac[age -1+c [hai 8(! l Uo;QLUQoCz0 F? c? ch'a c(c [hai 8(! [i2uG ph&n tBG hmngG v hm0 L1u x rmng h!)t -.ng ca hm IFIwHIIVUC [h#ng Ju/t hi>n ` tr!ng [hai 8(! g?iG m chs c? gia! tip ca hm Ju/t hi>n0 Vi>c -cnh nghaG hay thjn ca hm chs Ju/t hi>n tr!ng thjn ca -?ng g?i 6 H!dy Qac[age 70 ri% B rmng -?ng g?i ny -W -1+c dcch v t)! thnh m.t th1 vi>n thit [ v -1+c gfi l DUSIrF LIH0 em JAt vi>c d3ng m>nh -S use -2 B dng chlng d1_i -jyi li%rary $EHEKF_CE"; use $EHEKF_CE"1EY!IPCE_P!#Z1all Entity DY is111111111 ;>nh -S li8rary DUSIrFLIH ch! phAp th1 vi>n thit [ DUSIrFLIH -1+c phAp d3ng tr!ng ph&n m# t% nyG -iSu -? c? ngha l t=n DUSIrFLIH c? th2 -1+c B dng0 ;>nh -S use tip the! t l/y t/t c% c(c [hai 8(! c? tr!ng Qac[age Uo;QLUQoCz v! tr!ng [hai 8(! Untity ca 0 C? ngha l ta c? th2 chfn lEa c(c [hai 8(! t tr!ng m.t c(c [hai 8(! ca m.t -?ng g?i v! tr!ng m.t -4n vc thit [ [h(c0 V= 9> # li%rary $EHEKF_CE"; use $EHEKF_CE"1EY!IPCE_P!#Z1$_ACEP_ACJP; use $EHEKF_CE"1EY!IPCE_P!#Z1PEFVPEF_$EC!W; arc'itecture DY_HGDB#GBDE o& DY is111111111 Hai m>nh -S u e ` v* d ny nhmm t)! ra [hai 8(! ch! DLIQLqQ v [hai 8(! hmng ch! QIFwQIFDULo -1+c phAp B dng tr!ng thjn [in trlc0

3.1.3.1. $/On '/%! 01+ /Pn $%&'%()


SE [h(c 8i>t gi$a [hai 8(! Qac[age v thjn Qac[age c? c3ng mc -*ch nh1 [hai 8(! ca m.t Untity v ph&n thjn [in trlc orchitecture ca chlng0 Cl ph(p [hai 8(! ca Qac[age nh1 aui

MM

pac?age pac?age_name is {pac?age_declarative_item} end [pac?age_name ]; pac?age %ody pac?age_name is {pac?age_declarative_item} end [pac?age_name] ;.t thjn pac[age -1+c d3ng -2 l1u c(c -cnh ngha ca m.t hm v th tcG m c(c hm v th tc ny chlng -W -1+c [hai 8(! tr!ng ph&n [hai 8(! pac[age t14ng 'ng0 V5 v\y ph&n thjn pac[age lu#n -1+c [t h+p v_i ph&n [hai 8(! ca chlngG h4n n$a m.t ph&n [hai 8(! pac[age lu#n c? *t nh/t m.t ph&n thjn pac[age [t h+p v_i chlng0 V= 9># pac?age EY_PZK is su%type EFG] is integer range M to VUU; constant ^ero : EFG]:=M; procedure Encrementer (varia%le #ount : inout EFG]); end EY_PZK; pac?age %ody EY_PZK is procedure Encrementer (varia%le $ata : inout EFG]) is %egin i& (#ount _= I!Y ) t'en #ount:=`EDJ; else #ount:= #ount 56; end i&; end Encrementer; end EY_PZK;

3.1.Q. RSn/ &L- /?n/ 3C+n,!(-.% !+n*4


;ki m.t Untity 8a! gum nhiSu [in trlc [h(c nhau0 Ir!ng 9u( tr5nh thit [G ng1bi thit [ c? th2 mu,n thB nghi>m v_i c(c E 8in -Ti [h(c nhau ca thit [ 8mng vi>c chfn lEa c(c [i2u [in trlc [h(c nhau0 C!npigurati!n c? th2 -1+c B dng -2 cung c/p m.t E thay th nhanh c(c th2 hi>n ca c(c ph&n tB

Mw

6C!mp!nent7 tr!ng m.t thit [ d)ng c/u trlc0 Cl ph(p [hai 8(! ca C!npigurati!n ny nh1 aui #on&iguration con&iguration_name o& entity_name is {con&iguration_decalarative_part} Aor %loc?_speci&ication {use_cluse} {con&iguration_item} end &or; V_i m.t Untity ca 8. c.ng LLoDDU nh1 -W gi_i thi>u ` ph&n tr=nG ` v* d ny ta c? th2 B dng chlng tr!ng phAp -cnh c/u h5nh nh1 aui con&iguration A!$$_#JFAEK o& ABCC_!$$ED is Aor HGDB#GBDE &or R!6, R!V : R!CA_!$$ED use entity %urcin1R!CA_!$$ED(structure); &or JD6: JD_K!GE use Entity %urcin1JD_K!GE; end &or; end A!$$_#JFAEK; -jy t=n ca phAp -cnh c/u h5nh l tue xG ` v* d ny ta l/y t=n l oDDCqFIrG c:n v_i d:ng l>nh !r SICIU chs ra [in trlc -1+c -cnh c/u h5nh v -1+c B dng v_i thEc th2 Untity LLoDDU0 ri% B rmng chlng ta -W dcch hai thEc th2 HoLoDDU v qroIU thnh th1 vi>n v_i t=n l 8urcin v B dng chlng tr!ng v* d tr=n0

3.1.T. C1& /U ;!Jn /!B 'B


zt 9u% ca vi>c 8i=n dcch VHDL l chlng -1+c c/t gi$ 8=n tr!ng c(c th1 vi>n -2 d3ng ch! 81_c m# phang tip the!G -iSu ny gi,ng nh1 vi>c B dng m.t ph&n tB -W -1+c [hai 8(! tr!ng m.t thit [ [h(c0 ;.t th1 vi>n thit [ c? th2 ch'a c(c -4n vc th1 vi>n nh1 aui " C(c -?ng g?i 6QoCzorUS7 " C(c thEc th2 Untity " C(c [i2u [in trlc orchitecture " C(c phAp -cnh c/u h5nh C!npigurati!n 0

MP

C/5 67 VHDL [h#ng hk tr+ c(c th1 vi>n the! th' 8\c0 H)n c? th2 c? nhiSu th1 vi>n nh1 the! x mu,n nh1ng [h#ng -1+c [hai 8(! lung nhau {2 m` m.t th1 vi>n v truy c\p chlng nh1 m.t Untity -W -1+c 8i=n dcch tr!ng m.t thit [ VHDL m_iG -iSu -&u ti=n c&n lm l ph%i [hai 8(! t=n th1 vi>n0 Cl ph(p ca chlng nh1 aui Ci%rary li%rary_name : [pat'adirectory_name]; H)n c? th2 truy c\p c(c -4n vc -W -1+c 8i=n dcch t m.t th1 vi>n VHDL t_i 8a m'c nh1 aui li%rary_name1Pac?age_name1item_name V= 9># ri% B chlng ta t)! m.t -?ng g?i -2 c/t m.t hmng m hmng ny -1+c B dng tr!ng nhiSu thit [G au -? dcch n? v c/t v! tr!ng th1 vi>n v_i t=n l 8urcin 0 Pac?age my_p?g is constant delay: time:=6Mns; end my_p?g; Iip -n chlng ta gfi myp[g -2 B dng chlng tr!ng thit [ d1_i -jyi arc'itecture $!G!ACJT o& ABCC_!$$ED is signal H : "EG; %egin H (= ! or "; HBI (= H or #EF a&ter %urcin1my_p?g1delay; #JBG (= (! and " ) or (H and #EF) a&ter Uns; end $!G!ACJT;

3.@. CC RVI TWXNG D LIYU


;.t -,i t1+ng d$ li>u gi$ m.t gi( trc ca m.t [i2u nh/t -cnh0 Ir!ng VHDL c? 8a l_p -,i t1+ng d$ li>u i " C(c hmng 6C!n tant 70 " C(c 8in 6Varia8le 70 " C(c t*n hi>u 6Signal 70 L_p cu% m.t -,i t1+ng -1+c chs ra 8`i m.t t [h!( v n? -1+c chs ra ` -i2m 8t -&u ca m.t [hai 8(!0

3.@.1. C1& /Zn( 3C+n* %n *4


;.t hmng n? l m.t -,i t1+ng m n? -1+c [h`i t)! -2 chs ra m.t gi( trc c, -cnh v n? [h#ng 8c thay -Ti0 zhai 8(! hmng -1+c phAp [hai 8(! tr!ng c(c -?ng g?iG c(c UntityG c(c [in trlcG c(c ch14ng tr5nh c!nG c(c [h,iG v tr!ng ph(t 8i2u ca c(c 9u( tr5nh pr!ce e 0 Cl ph(p [hai 8(! chlng nh1 aui #onstant constant_name {,constant_name}: type [:= value]; V= 9># constant WEH : "JJCE!F:= GDBE; constant #R!Db: "EG_NE#GJD (L doOnto M ):=cMM666c; constant IH": EFGEKED:=U;

3.@.@. C1& 0!Bn 3V%.!%0:)*4


C(c 8in -1+c d3ng -2 l1u d$ li>u t)m thbiG chlng chs -+c phAp [hai 8(! tr!ng ph(t 8i2u Qr!ce h!dc c(c ch14ng tr5nh c!n0 V= 9># varia%le Y,W : "EG; varia%le GEIP: "EG_NE#GJD (] doOnto M) ; varia%le $EC!W: EFGEDKED range M to 6U:=U;

3.@.3. C1& '!A- =n /!J- 3M!(n%:*4


I*n hi>u -1+c d3ng -2 [t n,i c(c Untity ca thit [ l)i v_i nhau v tra! -Ti c(c gi( trc 8in -Ti ` tr!ng ph(t 8i2u pr!ce 0 Chlng c? th2 -1+c Jem nh1 c(c djy dgn hay c(c 8u n,i ` tr!ng m)ch thEc t0 I*n hi>u c? th2 -1+c [hai 8(! tr!ng c(c -?ng g?i 6Qac[age7G tr!ng c(c [hai 8(! UntityG tr!ng [hai 8(! [in trlc 6orchitecture7G tr!ng c(c [h,i 6Hl!c[70 V_i c(c t*n hi>u -1+c [hai 8(! tr!ng c(c pac[age th5 t*n hi>u ny -1+c gfi l t*n hi>u t!n cc 6c(c thit [ c? th2 B dng chlng 7G c(c t*n hi>u -1+c [hai 8(! tr!ng Untity l t*n hi>u t!n cc tr!ng m.t UntityG t14ng tE v_i t*n hi>u -1+c [hai 8(! tr!ng m.t [in trlcG n? l t*n hi>u d3ng chung tr!ng m.t [in trlc -?0 Cl ph(p ca chlng c? d)ng nh1 aui Hignal Hignal_name {,signal_name}: type [:=value]; V= 9>#

MR

signal "EEP : "EG:= SMS; signal GEIP: HG$_CJKE#_NE#GJD (] doOnto M); signal #JBFG: EFGEKED range M to 6MM :=U;

3.3. CC KI[U D LIYU


I/t c% c(c -,i t1+ng d$ li>u tr!ng VHDL c&n ph%i -1+c -cnh ngha v_i m.t [i2u d$ li>u0 ;.t [hai 8(! [i2u ph%i chs ra t=n v d%i ca [i2u -?0 zhai 8(! [i2u d$ li>u chlng -1+c phAp [hai 8(! tr!ng ph&n [hai 8(! c(c -?ng g?iG tr!ng ph&n [hai 8(! UntityG tr!ng ph&n [hai 8(! [in trlcG tr!ng ph&n [hai 8(! c(c ch14ng tr5nh c!n v tr!ng ph&n [hai 8(! c(c Qr!ce 0 C(c [i2u d$ li>u 8a! gum c(c [i2u aui " zi2u li>t [= " zi2u nguy=n0 " C(c [i2u d$ li>u tiSn -cnh ngha0 " zi2u m%ng0 " zi2u 8%n ghi0 " zi2u d$ li>u chu@n l!gic0 " zi2u d$ li>u c? d/u v [h#ng d/u0 " C(c [i2u ph0

3.3.1. C1& '!A- :!J '\ 3ENU]ERATI^N4


;.t [i2u li>t [= -1+c chs ra 8`i vi>c li>t [= c(c gi( trc ch! phAp ca [i2u -?0 I/t c% c(c gi( trc -1+c -cnh ngha 8`i ng1bi d3ng c? th2 l c(c t=n -cnh danhG h!dc c(c c(c [i2u ch$ [x tE0 I=n -cnh danh thEc ch/t l m.t t=n d! ng1bi d3ng -dt raG chhng h)n nh1 8lueG 8allG m!nday0 zi2u ch$ [x tE l [i2u ca c(c [x tE c? [m the! d/u nh(y -4nG chhng h)n nh1 JG Y000 Cl ph(p [hai 8(! ca chlng nh1 aui Gype type_name is (enumerattion_literal {, enumeration_literal}); V_i typename l m.t t=n -cnh danh v mki enumeratti!nliteral h!dc l m.t t=n -cnh danh h!dc l m.t ch$ [x tE0 V= 9># type #JCJD is (DE$, JD!FKE, WECCJT, KDEEF, "CBE, PBDPCE); type $!W is (IJF$!W, GBEH$!W,TE$FEH$!W,GRBD$!W,ADE$!W);

MZ

type HG$_CJKE# is (SBS,SYS,SMS,S6S,S`S,STS,SCS,SRS,S_S); ;ki m.t -cnh danh tr!ng m.t [i2u -Su c? m.t vc tr* nh/t -cnh tr!ng [i2uG chlng -1+c J(c -cnh 8`i th' tE Ju/t hi>n ca chlng tr!ng [i2u -?0 Ir!ng v* d tr=nG mdc -cnh UD c? vc tr* YG qoFrU t c? vc tr* M0000 Fu chlng ta [hai 8(! m.t -,i t1+ng d$ li>u v_i [i2u l CqLq v [h#ng -cnh ngha gi( trc [h`i t)! th5 -,i t1+ng d$ li>u t -1+c [h`i t)! mdc -cnh ` vc tr* -&u ti=n ca [i2u li>t [= 6vc tr* [h#ng7G tr!ng tr1bng h+p ny CqLq t nh\n gi( trc UD0

3.3.@. K!A- n(-"\n


zi2u nguy=n l c(c [i2u , nguy=nG chlng -1+c d3ng ch! c(c phAp t*nhG c(c chs ,G c(c -iSu [hi2n , v:ng ldp0 Ir!ng h&u ht c(c [i2u thEc thi tr!ng VHDL c? d%i t " wGMKGOPGZK -n wGMKGOPGZK0 Cl ph(p ca chlng -1+c [hai 8(! nh1 aui type type_name is range ) V,6Lb,L]X,dLb to 5 V, 6Lb, L]X,dLb; V= 9># type EFGEKED is range ) V,6Lb,L]X,dLb to 5 V, 6Lb, L]X,dLb; type #JBFG is range M to 6M;

3.3.3. C1& '!A- 9I :!J- !_n ESn/ n(/`% .+n( VHDL


IUUU -cnh ngha hai g?i d$ li>u SIoFDoD v IUIIq tr!ng th1 vi>n SID0 ;ki m.t g?i d$ li>u ny c? ch'a m.t l!)t c(c [i2u v c(c phAp t*nh chu@n 0 D1_i -jy l c(c [i2u d$ li>u -1+c -cnh ngha tr!ng g?i SIoFDoDi a B^^LEAN# ;.t [i2u li>t [= v_i hai gi( trc Irue v al eG c(c tha! t(c L!gic v c(c phAp t!(n 9uan h> t tr% vS gi( trc H!!lean0 a BIT# ;.t [i2u li>t [= v_i hai gi( trc Y v MG c(c phAp t*nh l!gic c? th2 l/y v tr% vS gi( trc [i2u HII0 a CHARACTER# zi2u li>t [= ca c(c mW oSCII0 a INTEGER# {1+c d3ng -2 mi=u t% c(c , jm v d4ng0 D%i h!)t -.ng ca chlng -1+c /n -cnh t " wGMKGPOGZK -n wGMKGPOGZK0 C(c hm t!(n hfc nh1 c.ngG trG nhjnG chia -1+c hk tr+ [i2u nguy=n0 a NATURE# C(c [i2u c!n ca [i2u nguy=n -1+c d3ng -2 mi=u t% c(c , [i2u tE nhi=n 6[h#ng jm70 a $^MITIVE# C(c [i2u c!n ca [i2u nguy=n -1+c d3ng -2 mi=u t% c(c , d14ng0

MK

a BIT8VECT^R# {1+c d3ng -2 mi=u t% m.t m%ng c(c gi( trc [i2u HII0 a MTRING# ;.t m%ng c(c [x tEG m.t gi( trc [i2u chuki -1+c -i [m 8`i d/u nh(y [Ap0 a REAL# {1+c d3ng -2 m# t% c(c [i2u , thEcG d%i h!)t -.ng t "M0YUPO -n M0YUPO0 a K!A- /b! (!%n ;c :6# ;# t% c(c gi( trc thbi gian -1+c d3ng tr!ng m# phang0 C? m.t vi [i2u d$ li>u -1+c -cnh ngha tr!ng g?i SIoFDoD nh1 aui Gype "JJCE!F is ( &ase, true); Gype "EG is ( SMS, S6S ); Gype HENEDEGW_CENEC is (note, Oarning, error, &ailure ); Gype EFGEKED is range )V,6Lb,L]X,dL] to V,6Lb,L]X,dL]; Gype DE!C is Dange )61MEX] to 61MEX]; Gype #R!D!#GED is (nul, so', st , eot, ene, ac?, %el,111111111111);

3.3.Q. K!A- <dn(


zi2u m%ng l [i2u ca nh?m c(c ph&n tB c? c3ng [i2u gi,ng nhau0 C? hai [i2u m%ng nh1 aui " zi2u m%ng -1+c g(n [i2u 0 " zi2u m%ng [h#ng 8c g(n [i2u0 zi2u m%ng 8c g(n [i2u l [i2u m c(c chs , m%ng ca chlng -1+c -cnh ngha t1bng minh0 Cl ph(p ca chlng nh1 aui type array_type_name is array (discrete_range) o& su%type_indication; -jy arraytypename l t=n ca [i2u m%ng -1+c Ap [i2uG di creterange [i2u ph ca [i2u nguy=n [h(c h!dc [i2u li>t [=G u8typeindicati!n ch*nh l [i2u ca mki ph&n tB ca m%ng0 zi2u m%ng [h#ng 8c g(n [i2u l [i2u m chs , m%ng ca chlng [h#ng 8c chs raG nh1ng c(c [i2u chs , ca chlng ph%i -1+c chs ra0 Cl ph(p ca chlng -1+c chs ra nh1 aui type array_type_name is array (type_name range (_) o& su%type_indication; V= 9># type !6 is array ( M to X6) o& EFGEKED;

MO

type "it_Nector is arrray (F!GBD!C range (_) o& "EG; type HGDEFK is array (PJHEGENE range (_) o& #R!D!#GED; oM l m.t m%ng gum 8a hai ph&n tB m tr!ng -? mki ph&n tB l m.t [i2u nguy=n0 ;.t v* d [h(c chs ra [i2u Hitvect!r v [i2u String -1+c t)! ra tr!ng chu@n c(c g?i SIoFDoD0 V= 9># su%type "6 is "EG_NE#GJD ( X doOnto M); varia%le "V : "EG_NE#GJD (M to 6M); D%i chs , J(c -cnh , ph&n tB tr!ng m%ng v h1_ng ca chlng 6loO to 'ig' f 'ig' to loO70 VHDL ch! phAp [hai 8(! c(c m%ng nhiSu chiSu -2 c? th2 d3ng -2 [hai 8(! c(c mgu o; v q;0 em v* d d1_i -jyi type Iat is array (M to b, M to X) o& "EG; constant DJI : I!G : = (( SMS, S6S, SMS, S6S), (S6S, S6S, SMS, S6S ), (SMS, S6S, S6S, S6S ), (SMS, S6S , SMS, SMS ), (SMS, SMS ,SMS , Y), (S6S, S6S , SMS, SMS ), (S6S, S6S , S6S, S6S ), (S6S, S6S , SMS, SMS )); Y := DJI (L,X); Hin t l/y gi( trc Y -1+c t# -\m [h#ng in nghi=ng0

3.3.T. K!A- R)&+.9


zi2u rec!rd l m.t nh?m c? nhiSu h4n m.t ph&n tB c? c(c [i2u [h(c nhau0 Qh&n tB ca ec!rd 8a! gum c(c ph&n tB ca 8/t c' [i2u n!G n? c? th2 l c(c [i2u m%ng h!dc [i2u ec!rd0 V= 9># type $!GE_GWPE is ( HBF, IJF, GBE , TE$ , GRD , ADE , H!G) ; type RJCE$!W is record

MN

WE!D : EFGEKED range 6gMM to 6ggg; IJFGR : EFGEKED range 6 to 6V ; $!W : EFGEKED range 6 to X6; $!GE : $!GE_GWPE; end record ; signal H : RJCE$!W; varia%le G6: integer range 6gMM to 6ggg; varia%le GV : $!GE_GWPE; G6: = H1WE!D; GV:= H1$!GE; H1$!W (= XM;

3.3.e. C1& '!A- MTD8L^GIC


{2 t)! mgu c(c -1bng t*n hi>u c? nhiSu h4n hai gi( trc 6 Y G M 7G VHDL -cnh ngha ch*n [h!%ng tr!ng g?i chu@n0 Ch*n gi( trc 8a! gumi type HG$_CJKE# is ( SBS )) ?'@ng ?'7i tho gi0 tri SYS )) Z'@ng 0c ,in' SMS )) Zi;u mjc t'kp S6S )) Zi;u mjc cao S`S )) Zi;u tr7 ?'0ng cao STS )) Z'@ng 0c ,in' 7 mjc ylu SCS )) Ijc t'kp ylu SRS )) Ijc cao ylu S_S )) Z'@ng euan t*m ,ln gi0 tri 1); I14ng tE nh1 [i2u HII v [i2u HIIVUCIqG VHDL cung c/p m.t [i2u [h(c gfi l SIDLqrICVUCIq0 {2 B dng c(c -cnh ngha v c(c hm tr!ng g?i chu@n l!gicG c(c ph(t 8i2u au -jy c&n -1+c ph%i [hai 8(! -*nh [m the! ch14ng tr5nh0 Ci%rary EEEE; BHE EEEE1HG$_CJKE#_66dL1all;

wY

3.3.f. C1& '!A- 9I :!J- &N 9L- ;C '/gn( 9LC(c [i2u d$ li>u c? d/u v [h#ng d/u chlng -1+c chs ra tr!ng c(c g?i chu@n F;UICHII v F;UICSID0 C(c -,i t1+ng v_i [i2u c? d/u v [h#ng d/u chlng -1+c hi2u nh1 l c(c , nguy=n 8inary [h#ng d/u v c(c -,i t1+ng v_i [i2u c? d/u v chlng -1+c dcch nh1 c(c nguy=n 83 hai0 Vi>c -cnh ngha ca c(c [i2u d$ li>u -1+c chs ra nh1 aui type signed is array (F!GBD!C range (_) o& "EGaHG$_CJKE#; C(c ph(t 8i2u d1_i -jy 8a! gum c(c [hai 8(! vi>c B dng ca c(c [i2u d$ [i>u c? d/u v [h#ng d/u0 Ci%rary EEEE; use EEEE1HG$_CJKE#_66dL1all; use EEEE1FBIEDE#_"EG1all; use EEEE1FBIEDE#_HG$1all;

3.3.h. C1& '!A- &+n


VHDL cung c/p c(c c(c [i2u c!n m c(c [i2u c!n ny chlng -1+c -cnh ngha tr!ng c(c nh1 c(c t\p ph tr!ng m.t [i2u [h(c0 H/t c' ` -ju c? m.t [hai 8(! [i2u th5 ` -? c? th2 Ju/t hi>n m.t -cnh ngha [i2u c!n0 zi2u FoIoL v [i2u QqSIIIVU l m.t [i2u ph hay [i2u c!n ca [i2u nguy=n v chlng c? th2 -1+c d3ng v_i 8/t [e m.t hm nguy=n n!0 V= 9># su%type EFGL is EFGEKED range M to 6U; su%type "EG_NE#GJDd is "EG_NE#GJD (U doOnto M)

3.Q. CC T^N Ti
VHDL cung c/p Z l_p t!(n tB G mki m.t t!(n tB c? m.t m'c 1u ti=n nh/t -cnh0 I/t c% c(c t!(n tB tr!ng c3ng m.t l_p th5 c? c3ng m.t m'c 1u ti=n0 ;'c 1u ti=n th/p nh/t C(c t!(n tB C(c t!(n h)ng

wM

0 0 0 0 0 0 0 0 0 0 elati!nal !perat!r L!gical!perat!r

and !r nand n!r J!r L C!ncatenati!n!perat!r arithmetic!perat!r arithmetic!perat!r arithmetic!perat!r " " L m!d rem a8

C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u C3ng [i2u H/t [e [i2u , n! H/t [e [i2u , n! C3ng [i2u C3ng [i2u integer integer zi2u mC integer H/t [e [i2u , n!

;'c 1u ti=n ca! nh/t

arithmetic!perat!r

L!gical!perat!r n!t C3ng [i2u Bdn( 3.1# C(c l!)i t!(n tB0

3.Q.1. C1& +1n j L+(!&%:


C(c t!(n h)ng c&n ph%i l c3ng [i2u v c3ng -. di0 V= 9># signal !," : "EG_NE#GJD (d doOnto M); signal #,$,E,A,K: "EG; ! (= " and # ; )) Z'@ng my ra v8 c0c to0n 'hng ?'@ng cnng ?i;u1
ww

$ (= (E or A) and (# or K);

3.Q.@. C1& +1n j k-%n /J


C(c t!(n tB 9uan h> ch! ta [t 9u% c? [i2u H!!leanG c(c t!(n h)ng c&n ph%i c? c3ng [i2u v c3ng -. di0 V= 9># signal !," : "EG_NE#GJD (d doOnto M); signal #: "JJCE!F; # (= " (= !; )) G.ong ,.ong n'. # (= ("(=!);

3.Q.3. C1& +1n j &Fn(


C(c t!(n tB c.ng 8a! gum G " G v G tr!ng -? t!(n tB l t!(n tB [t n,i chuki v c(c -,i t1+ng l m%ng c(c thanh ghi0 V_i , c? d/u v [h#ng d/u c? th2 -1+c d3ng v_i c(c , nguy=n v c(c [i2u HIIVUCIq0 V= 9># signal T: "EG_NE#GJD (X doOnto M); signal Y: EFGEKED range M to6U; signal W,` : BFHEKE$ (X doOnto M); ` (= Y 5 W 5 `; W (= ` (V doOnto M) p T(6); c!"#c p c y^c c'o ?lt eum l2 : c!"# y^c c6M6Mc p c6c c'o ?lt eum l2 : c6M6M6c

3.T. CC KI[U T^N HlNG


Ir!ng m.t 8i2u th'c c(c t!(n tB B dng c(c t!(n h)ng -2 t*nh t!(n c(c gi( trc ca chlng0 C(c t!(n h)ng tr!ng m.t 8i2u th'c 8a! gum i " zi2u ch$ " zi2u -cnh danh " C(c t=n -1+c -(nh the! chs , " I=n c(c Slice " I=n c(c -dc t*nh " C(c 8i2u th'c -iSu [i>n " C(c lbi gfi hm " C(c 8i2u th'c chuy2n -Ti
wP

3.T.1. K!A- &/I


C(c [i2u ch$ c? th2 chia ra thnh hai nh?m ch*nh i zi2u v# h1_ngi " zi2u ch$ [x tE " zi2u HII " zi2u chu@n SIDLqrIC " zi2u H!!lean " zi2u , thEc " zi2u nguy=n " zi2u thbi gian zi2u m%ngi " zi2u chuki " zi2u HIIVUCIq " SIDLqrICVUCIq

3.T.1.1. K!A- &/I '6 m


zi2u ch$ [x tE chs ra m.t gi( trc 8mng vi>c B dng m.t [x tE -4n v [m the! m.t d/u nh(y -4n0 Fh5n chung VHDL [h#ng 9uan tjm -n c(c tr1bng h+p ch$ th1bng v ch$ h!aG J!ng v_i [i2u ch$ [x tE c&n ph%i phjn 8i>t ch$ th1bng v ch$ h!a0 V* di a h!n t!n [h(c v_i [i2u o tr!ng [i2u ch$ [x tE0 zi2u ch$ [x tE c? th2 -1+c d3ng -2 -cnh ngha 8/t c' [i2u n! tr!ng c(c -?ng g?i chu@n v gi( trc mdc -cnh ca chlng l Full0 V* di o G a G 000000M 0 zi2u ch$ [x tE [h#ng ph%i l [i2u 8it [x tE nh1 M h!dc [i2u nguy=n MG v5 v\y [i2u ch$ [x tE c&n ph%i -1+c cung c/p m.t t=n [i2u n! -?0

3.T.1.@. K!A- &/-n!


;.t [i2u chuki [x tE thEc ch/t l m.t m%ng c(c [x tE0 ;.t chuki c(c [x tE -1+c -cnh ngha tr!ng m.t d/u nh(y [Ap 0 V= 9># o G h!ld time err!r G J 0000

3.T.1.3. K!A- BIT


zi2u 8it l [i2u m# t% hai gi( trc rbi r)c 8mng vi>c B dng c(c ch$ [x tE Y v M0 {#i [hi c(c [i2u Hit ny -1+c d3ng -2 t)! ra [i2u ch$ 8it m.t c(ch t1bng minh d3ng -2 phjn 8i>t chlng v_i c(c [i2u [x tE0 V= 9># M G Y G 8it6M7

3.T.1.Q. K!A- BIT8VECT^R


zi2u 8itvect!r l m.t m%ng c(c 8it m chlng -1+c -dt tr!ng d/u nh(y [Ap 0 V= 9># YMYYMMMMYYY G JYYY G 8MYYYMYMYM G !wKKKRZ000 Ir!ng v* d tr=n ch$ J -+c d3ng -2 diDn t% c(c gi( trc , heJaG c:n 8 -1+c d3ng -2 m# t% [i2u 8inaryG c:n ! -1+c d3ng ch! h> -m c4 , O0

3.T.1.T. K!A- &/I .+n( ENn( (N! &/-on MTD8L^GIC


zi2u ch$ l!gic chu@n l m.t tr!ng N gi( trc -1+c -cnh ngha tr!ng -?ng g?i chu@n v -1+c -1a ra d1_i d)ng c(c ch$ in h!a v -dt tr!ng d/u ng!dc -4n0 V= 9># S B S ?'@ng trnng vqi S u S SYS,SMS,S6S,S`S,STS,SCS,SRS,S_S

3.T.1.e. K!A- &/I MTD8L^GIC8VECT^R


;.t [i2u ch$ SIDLqrICVUCIq thEc ch/t l m.t m%ng 8a! gum c(c ph&n tB ca [i2u tdl!gic v -1+c -dt tr!ng d/u ng!dc [Ap0 V= 9># c 6M_6`c , c BBBBB c , signed(c6M66 c)11111

3.T.1.f. K!A- B++:)%n


zi2u H!!lean -1+c d3ng -2 m# t% hai gi( trc rbi r)cG -? l [i2u true v pal e0 V= 9># true , &alse , Grue , GDBE, A!CHE 111

3.T.1.h. K!A- *p /m&


zi2u , thEc l [i2u -1+c d3ng -2 diDn t% c(c , thEc nmm tr!ng [h!%ng t "M0YUPO -n M0YUPO0 ;.t [i2u , hfc c? th2 l [i2u d14ng h!dc jm nh1ng chlng ph%i c? d/u ch/m th\p phjn0 V= 9># 5 61M ?'@ng ,./c vilt S6S 'orc 6 'orc S 61M S
wR

M1M ?'@ng ,./c vilt M )61M , )61ME56M1

3.T.1.q. K!A- n(-"\n


;.t [i2u nguy=n -1+c d3ng -2 diDn t% c(c , nguy=n nmm tr!ng [h!%ng t "wGMKGPOGZK -n wGMKGPOGZK0 V= 9># MGOZwv " wRK v MwPv " RZ v MZ YY 0 Ir!ng -? c(c [x hi>u -1+c d3ng -2 -cnh ngha [i2u nh1 aui C4 , n , diDn t% tr!ng c4 , n -?G ` -jy n nmm tr!ng h> w -n MZ0

3.T.1.@. K!A- TI]E


;.t [i2u v\t lx duy nh/t -1+c -cnh ngha tr1_c tr!ng -?ng g?i chu@nG -? l thbi gian time0 V= 9># 6M ns , 6MM us , d1X ns 11111 Chl x ph&n , ph%i -1+c vit c(ch ph&n -4n vc -! 8`i m.t [h!%ng tr,ng0

3.T.@. C1& '!A- ESn/ 9%n/


zi2u -cnh danh -4n thu&n chs l m.t c(i t=n d! ng1bi d3ng -cnh nghaG n? c? th2 l t=n ca m.t hmngG m.t 8in hay m.t t*n hi>uG m.t UntityG m.t cTngG hay m.t ch14ng tr5nh c!nG hay c(c [hai 8(! tham 8in0 zhi [hai 8(! m.t t=n c&n ph%i [hai 8(! [x tE -&u ti=n ph%i [i2u ch$ [x tEG l1u x d/u g)ch d1_i [h#ng -1+c phAp -'ng au c3ngG c(c t [h!( ca VHDL [h#ng -1+c d3ng -2 lm [hai 8(! c(c [i2u -cnh danhG chhng h)n nh1 entityG p!rt 0000 V= 9># y^ = W` = YW` = Yy` H(X) p'4n ts t'j %a cta mmng H YX1

3.T.3. K!A- INDEr


zi2u IFDU -1+c B dng -2 chs ra m.t ph&n tB n! -? tr!ng m.t m%ng0 Cl ph(p B dng ca [hai 8(! ny nh1 aui array_name (e pression) V_i arrayname l m.t t=n ca m.t hmng hay m.t 8in n! -? nmm tr!ng m.t m%ng0 C:n eJpre i!n ph%i tr% vS gi( trc nmm tr!ng d%i chs , ca m%ng -?0 V= 9>#
wZ

type memory is array ( M to b ) o& EFGEKED range M to 6VX; varia%le $!G!_!DD!W : memory; varia%le !$$D : EFGEKED range M to b; varia%le $!G!: EFGEKED range M to 6VX; $!G!:= $!G!_!DD!W ( !$$D );

3.T.Q. K!A- M:!&) ;C ALIAM


;.t [hai 8(! Slice -1+c d3ng -2 chs ra m.t , ph&n tB ca m%ng0 H1_ng ca n? c&n ph%i ph3 h+p v_i h1_ng m%ng0 olia -1+c d3ng -2 t)! ra m.t t=n m_i ch! t/t c% c(c ph&n tB h!dc m.t , ph&n tB n! -? nmm tr!ng m.t m%ng0 V= 9># varia%le !6: "EG_NE#GJD ( b doOnto M ); !V: = !6(U doOnto V) ; !lias !X: "EG_NE#GJD (M to X) is !6(b doOnto L);
))#: ng'ua l2 !X(M)=!6(b), !X(6)=!6(d), !X(V)=!6(U), !X(X)= !6(L) !lias !L: "EG is !6(X);

3.T.T. K!A- /-F& =n/ ATTRIBUTE


L/y c(c thu.c t*nh cu% m.t 8in hay m.t t*n hi>u ca m.t [i2u ch! tr1_c n! -? v tr% vS m.t [i2u gi( trc0 D1_i -jy l c(c [i2u thu.c t*nh th1bng d3ng tr!ng ng#n ng$ VHDLi " Lepti Ir% vS chs , ca ph&n tB ` 8=n tr(i c3ng ca m.t [i2u d$ li>u0 " ighti Ir% vS chs , ca ph&n tB ` 8=n ph%i c3ng ca m.t [i2u d$ li>u0 " Highi Ir% vS chs , ca ph&n tB ca! nh/t ca m.t [i2u d$ li>u0 " L!wi Ir% vS chs , ca ph&n tB th/p nh/t ca m.t [i2u d$ li>u0 " angei {1+c d3ng -2 l/y vS d%i ca chs ,0 " ever erangei D3ng -2 J(c -cnh d%i chs , ng1+c l)i0 " Lengthi Ir% vS , ph&n tB ca [i2u HIIVUCIq0 " Uventi ;# t% E thay -Ti gi( trc ca t*n hi>u t)i thbi -i2m m# phang0 V= 9># varia%le !6 : "EG_NE#GJD ( 6M doOnto M ); !6S le&t )) Grm vv gi0 tri l2 6M1 !6S rig't )) Grm vv gi0 tri M1 !6S 'ig' )) Grm vv gi0 tri l2 6M1
wK

!6S loO )) Grm vv gi0 tri l2 M1 !6S range )) Grm vv l2 6M doOnto M1 !6S reverse_range )) Grm vv gi0 tri l2 M to 6M1 !6S lengt' )) Grm vv gi0 tri l2 661

3.T.e. K!A- cs /ts


zi2u t\p h+p c? th2 -1+c d3ng -2 g(n gi( trc ch! m.t -,i t1+ng thu.c [i2u m%ng h!dc [i2u ec!rd tr!ng [hi [h`i t)! [hai 8(! h!dc tr!ng c(c ph(t 8i2u g(n0 V= 9># type color_list ( red, orange, %lue, O'ite ); type color_array is array (color_list) o& "EG_NE#GJD ( 6 doOnto M ); varia%le Y : color_array; Y := (c MM c , c M6 c , c 6M c ,c 66 c ); Y := ( red =_ cMMc , %lue =_ cM6c , orange =_ c6Mc , O'ite =_ c66c ); Ir!ng d:ng th' haiG chlng ta -cnh ngha m.t m%ng m , c(c ph&n tB ca chlng 6d%i chs ,7 -1+c -1a ra 8`i c!l!rli t0 I c!l!rli t chlng ta c? m.t m%ng gum 8,n ph&n tB v m%ng c!l!rarray cCng t 8a! gum 8,n ph&n tBG m mki ph&n tB ny l)i -1+c -cnh ngha 8`i [i2u HitVect!r0 H4n n$aG chlng ta B dng d%i chs , ca m%ng c!l!rli t t c? d%i t Y -n PG v5 vi>c -cnh ngha ca m%ng ny chs chs ra d%i chs , ch' [h#ng chs ra [i2u ca ph&n tB tr!ng m%ng0

3.T.f. B!A- /u& (1n '!AHi2u th'c g(n [i2u -1+c d3ng -2 chs ra [i2u ca m.t t!(n h)ng n! -?0 Cl ph(p ca chlng nh1 aui type_nameS ( e pression ); V= 9># type color6 is (red, orange, %lue, O'ite); type colorV is (purple, green, red, %lac?); colorVS(red); Fh1 chlng ta th/y t!(n h)ng red c? c% tr!ng hai [i2u c!l!rM v c!l!rwG v5 v\y n? c&n ph%i -1+c g(n m.t [i2u d$ li>u r rng v -iSu ny -1+c thEc hi>n 8`i cju l>nh th' P0

wO

3.T.h. $/vs &/-"An E2! '!A- =n /!JQhAp chuy2n -Ti [i2u ch! phAp chuy2n -Ti c(c [i2u c? [i2u d$ li>u g&n gi,ng nhau0 V= 9># signal Y : HG$_CJKE#_NE#GJD ( X doOnto M ); signal W : HG$_BCJKE#_NE#GJD ( X doOnto M ); W (= HG$_BCJKE#_NE#GJD (Y); Sau cju l>nh th' 8a t nh\n [i2u SIDLqrICVUCIq0

3.e. CC $HT BI[U TUwN Tx


Qh(t 8i2u tu&n tE chs ra E thEc hi>n tng 81_c ca m.t 9u( tr5nh0 Chlng thEc hi>n t cju l>nh -&u ti=nG cju l>nh th' haiG 000 cju l>nh cu,i c3ng0 C(c ph(t 8i2u nmm tr!ng m.t ph(t 8i2u 9u( tr5nh 6ph(t 8i2u Qr!ce 7 -1+c gfi l ph(t 8i2u tu&n tE0 C(c ph(t 8i2u au -jy l c(c ph(t 8i2u tu&n tE -1+c -cnh ngha tr!ng VHDLi " C(c ph(t 8i2u g(n 8in Varia8le0 " C(c ph(t 8i2u g(n t*n hi>u Signal0 " C(c ph(t 8i2u Ip0 " C(c ph(t 8i2u Ca e0 " C(c ph(t 8i2u Full0 " C(c ph(t 8i2u J(c nh\n o erti!n0 " C(c ph(t 8i2u v:ng ldp L!!p0 " C(c ph(t 8i2u FeJt0 " C(c ph(t 8i2u UJit0 " C(c ph(t 8i2u ait0 " C(c ph(t 8i2u Qr!cedure0 " C(c ph(t 8i2u eturn0

3.e.1. $/1 0!A- (1n 0!Bn


D3ng -2 thay th gi( trc hi>n thbi ca 8in v_i m.t gi( trc m_iG gi( trc m_i ny -1+c chs ra 8`i m.t 8i2u th'c0 Hin c? th2 -1+c [hai 8(! v B dng 8=n tr!ng m.t ph(t 8i2u 9u( tr5nh hay c:n -1+c gfi l ph(t 8i2u Qr!ce 0 ;.t 8in -1+c g(n m.t gi( trc B dng th#ng 9ua ph(t 8i2u g(n 8inG m ph(t 8i2u ny c? h5nh th'c nh1 aui

wN

target_varia%le : = e pression; L1u xG c(c 8in -1+c [hai 8(! tr!ng m.t Qr!ce [h#ng th2 chuy2n gi( trc ra ng!i Qr!ce G -iSu -? c? ngha l chlng chs -1+c c/p ph(t tr!ng Qr!ce h!dc tr!ng ch14ng tr5nh c!n0 V* d vS phAp g(n 8in tr!ng m.t Qr!ce 0 process (#,$) varia%le !v, "v, Ev : integer := M; %egin !v := V; "v := !v 5 #; Ev := !v w V; ! (= !v; " (= "v; E (= #v; end process; !=X ! (= X !v = X "=X " (= X "v = X #=6 $=V E=d E=d Ev = d Hi2u th'c -1+c J(c -cnh gi( trc [hi ph(t 8i2u -1+c thEc thi v gi( trc -1+c t*nh t!(n t -1+c g(n ch! 8in m.t c(ch t'c thbi0 Hin -1+c t)! t)i thbi -i2m %n inh v duy tr5 gi( trc ca n? tr!ng u,t thbi gian ch)y ch14ng tr5nh0 D! v5 m.t 9u( tr5nh [h#ng 8a! gib -1+c th!(t ra tr!ng mki tr)ng th(i h!)t -.ng ca n?G ngha l chlng -1+c thEc thiG h!dc ` tr!ng m.t tr)ng th(i chb0 Fu ` tr)ng th(i chb th5 chlng ph%i chb ch! -n [hi m.t E [i>n [h(c chc chn J%y ra0 ;.t 9u( tr5nh 8t -&u thEc hi>n t)i -i2m [h`i -&u ca m.t 9u( tr5nh m# phangG t)i thbi -i2m ny n? -1+c thEc thi ch! -n [hi gdp m.t ph(t 8i2u wait h!dc gdp c(c thnh ph&n -1+c [hai 8(! tr!ng danh mc c&n -1+c JB lx [hai 8(! tr!ng Qr!ce 0 em th* d vS ph(t 8i2u Qr!ce nh1 aui V= 9> 1# process(!) varia%le ENEFG_JF_! : EFGEKED : = )6;

PY

%egin ENEFG_JF_! : = ENEFG_JF_! 56; end process; V= 9> @# Hu%type EFG6d is EFGEKED range M to dUUXd; Hignal H6, HV : EFG6d; Hignal KG : "JJCE!F; process (H6, HV) varia%le !, " : EFGd; constant # : EFG6d : = 6MM; "egin ! := H6 56 ; " : = HVwV ) #; KG (= ! _ "; End Process; I)i llc 8t -&u ca 9u( tr5nh m# phang0 u( tr5nh -1+c thEc thi m.t l&n0 Hin UVUFIqFo -1+c g(n gi( trc "M au -? tVng l=n M0 Sau -?G thbi -i2m 8/t [e J%y raG E [i>n tr=n t*n hi>u oG 9u( tr5nh c? hi>u lEc v ph(t 8i2u g(n 8in -4n -1+c thEc thi0 F? lm ch! 8in UVUFIqFo tVng l=n m.t0 I)i thbi -i2m [t thlc ca 9u( tr5nh m# phangG 8in UVUFIqFo ch'a tTng , E [i>n J%y ra tr=n t*n hi>u o0 ;.t th* d [h(c ca ph(t 8i2u 9u( tr5nh i signal !, `:EFGEKED; 111 P`: process(!); )) P` l2 n'xn cta eu0 tr8n' varia%le N6,NV : EFGEKED; %egin N6:=!)NV; )) statement 6 `(= )N6; )) statement V NV:= `5N6wV; )) statement X end process P`; ri% B m.t E [i>n J%y ra tr=n t*n hi>u o t)i thbi -i2m IM v 8in Vw -1+c g(n gi( trc l MYG tr!ng ph(t 8i2u th' PG au -? m.t E [i>n J%y ra tr=n t*n hi>u o t)i thbi

PM

-i2m IwG gi( trc ca Vw -1+c B dng tr!ng ph(t 8i2u M t cCng l MY0 ;.t 8in cCng c? th2 -1+c [hai 8(! 8=n ng!i m.t 9u( tr5nh h!dc m.t ch14ng tr5nh c!n0 ;.t 8in c? th2 -1+c -fc v c\p nh\t 8`i m.t h!dc c? th2 nhiSu 9u( tr5nhG nh$ng 8in ny -1+c gfi l hared varia8le 68in chia y70

3.e.@. $/1 0!A- (1n =n /!JQh(t 8i2u g(n t*n hi>u t thay th gi( trc hi>n t)i ca t*n hi>u v_i m.t gi( trc m_i 8`i vi>c B dng m.t 8i2u th'c0 I*n hi>u v [t 9u% ca 8i2u th'c c&n c? c3ng m.t [i2u d$ li>u0 Cl ph(p ca chlng nh1 aui target_signal (= [ Gransport] e pression [a&ter time_e pression] Qh(t 8i2u g(n t*n hi>u c? th2 Ju/t hi>n 8=n tr!ng h!dc 8=n ng!i m.t 9u( tr5nh0 Fu n? J%y ra 8=n ng!i ca m.t 9u( tr5nhG n? -1+c Jem l m.t ph(t 8i2u g(n t*n hi>u -ung thbi0 zhi ph(t 8i2u g(n t*n hi>u Ju/t hi>n 8=n tr!ng 9u( tr5nhG n? -1+c Jem nh1 l m.t ph(t 8i2u g(n t*n hi>u c? th' tE v n? -1+c thEc thi tu&n tE the! th' tE ca nh$ng ph(t 8i2u tu&n tE [h(c Ju/t hi>n 8=n tr!ng 9u( tr5nh0 V* d phAp g(n t*n hi>u tr!ng m.t Qr!ce 6V_i oGHGCGD l c(c t*n hi>u7i process (#,$) varia%le !v, "v, Ev : integer :=M; %egin !v := V; "v := !v 5 #; !v := $ 5 6; Ev := !v w V; ! (= !v; " (= "v; # (= #v; end process; !=X ! (= X !v = X "=X " (= X "v = X #=6 $=V E=d E (= d Ev = d

Pw

zhi m.t ph(t 8i2u g(n t*n hi>u -1+c thEc thiG gi( trc ca 8i2u th'c -1+c t*nh t!(n v gi( trc ny -1+c chu@n 8c -2 g(n ch! t*n hi>u au [hi delay0 L1u x rmng 8i2u th'c -1+c -cnh l1+ng t)i thbi -i2m ph(t 8i2u v [h#ng thEc thi ngay m n? t thEc thi au m.t thbi gian gi$ ch\m0 C? hai [i2u Delay -1+c cung c/p -2 chu@n 8c ch! vi>c thEc thi t*n hi>ui " Iran p!rt Delay0 " Inertial Delay0 %. T.%n*s+. D):%". F? t14ng tE nh1 E gi$ ch\m 8=n tr!ng ca m.t d:ng -i>n ch)y 9ua djy dgn0 Fu thbi gian gi$ ch\m ny -1+c Jem nh1 ti=u t,n v! thEc hi>n c#ng vi>c n! -? v tip au n? 6-lng thbi -i2m ca m.t c#ng vi>c tr1_c h!n thnh7 c&n ph%i thEc hi>n m.t c#ng vi>c [h(c th5 thbi gian thEc hi>n c(c c#ng vi>c tip the! t -1+c th=m v! cu,i ca c#ng vi>c tr1_c -?0 C:n nu [h!%ng thbi gian c&n thEc hi>n m.t c#ng vi>c tiSn -cnh 6thbi gian thEc hi>n ca m.t c#ng vi>c tip the! n! -? -'ng tr1_c thbi -i2m thEc hi>n m.t c#ng vi>c tr1_c7 th5 cju l>nh Iran p!rt t thEc hi>n chn v! v thEc hi>n c#ng vi>c tiSn -cnh ny0 em v* d aui ri% B ta c? m.t pr!ce v 8i2u -u nh1 aui

H?n/ 3.Q# Hi2u -u thbi gian Iran p!rt Delay V= 9># 1111111111 process (11111) "egin H (= transport 6 a&ter 6 ns, X a&ter X ns, U a&ter U ns; H (= transport L a&ter L ns; end process;
PP

Fh1 v* d v 8i2u -u tr=n ta th/y c#ng vi>c th' t1 c&n thEc hi>n tr1_c c#ng vi>c th' RG nh1ng tr!ng ph&n ch14ng tr5nh th5 ph(t 8i2u ca c#ng vi>c th' R l)i -1+c thEc hi>n tr1_c c#ng vi>c th' t10 H5nh vt d1_i -jy m# t% ph(t 8i2u Iran p!rtG au P -n t -1+c 8\t (ng v (ng tr!ng [h!%ng thbi gian -lng 8mng thbi gian 8\t c#ng tc0

H?n/ 3.T# ;# t% Iran p!rt Delay0 0. In). !%: D):%" Inertial Delay 6gi$ ch\m d! 9u(n t*nh7G l gi( trc mdc -cnh ca VHDL0 F? -1+c d3ng ch! c(c thit 8c m [h#ng c? ph%n 'ng ch! -n [hi -&u v! -1+c phAp tr!ng m.t [h!%ng thbi gian nh/t -cnh0 Ih1bng th5 v_i t*n hi>u c? [h!%ng thbi gian t(c -.ng [h#ng -Su v nha h4n thbi gian gi$ ch\m ca c(c cTng th5 t 8c 8a 9ua0 V_i v* d tr=nG m# t% h!)t -.ng ca -n v_i -. gi$ ch\m d! 'c 5 9u(n t*nh ca m)ch0 Fu thbi gian t(c -.ng ca c#ng tc nha h4n -. gi$ ch\m ca m)ch th5 -&u ra t [h#ng c? t(c -.ng hay -n t [h#ng -1+c 8\t (ng0 ri% B ta c? cju l>nh -n t -1+c 8\t (ng au P gijyG nh1ng c#ng tc chs t(c -.ng tr!ng thbi gian hai gijy th5 -n t [h#ng -1+c 8\t (ng0 em h5nh vt P0Z d1_i -jyi

H?n/ 3.e# ;# t% Inertial Delay 6thbi gian 8\t c#ng tc l w 70 ri% B ta c? cju l>nh 8\t -n au P 0 zhi 8\t c#ng tc tr!ng thbi gian au -? tt c#ng tcG th5 -n t -1+c (ng au [hi c#ng tc 8\t -1+c P v (ng tr!ng -lng 8mng thbi gian 8\t c#ng tc0 em h5nh P0K d1_i -jyi

H?n/ 3.f# ;# t% Inertial Delay 6thbi gian 8\t c#ng tc l 70 &. M+ *1n/ T.%n*s+. D):%" ;C In). !%: D):%"

PR

H?n/ 3.h# S! (nh Iran p!rt Delay v Inertial Delay0 Fh1 tr=n h5nh P0O ta th/y tr!ng tr1bng h+p Inertial DelayG t*n hi>u o c? t(c -.ng tr!ng [h!%ng MYn G nh1ng cju l>nh thEc hi>n -&u ra S au wYn G v5 v\y -&u ra S t [h#ng c? t(c -.ng0 C:n tr!ng tr1bng h+p Iran p!rt Delay t*n hi>u -&u ra t -1+c a! y t*n hi>u -&u v! au [hi 8t -&u 1bn l=n ca t*n hi>u v! c? t(c -.ng 6-lng 8mng [h!%ng wY n ca cju l>nh70

3.e.3. $/1 0!A- Iy


;.t ph(t 8i2u ip -1+c d3ng -2 chfn lEa nh$ng ph(t 8i2u tu&n tE ch! vi>c thEc thi dEa tr=n gi( trc ca 8i2u th'c -iSu [i>n0 Hi2u th'c -iSu [i>n ` -jy c? th2 l m.t 8i2u th'c 8/t [e m gi( trc ca chlng ph%i l [i2u lu\n lx0 D)ng th#ng th1bng ca ph(t 8i2u ip li i& %oolean)e pression t'en seeuential)statements {elsi& %oolean)e pression t'en seeuential )statement } {else seeuential)statement} end i&; V= 9> 1# i& sum (=6MM t'en ))y(=z is less)t'an)or)eeual)to operator1 HBI:=HBI56M; end i&; V= 9> @# signal EF6, EFV, JB : HG$_CJKE#; process (EF6, EFV) %egin
PZ

i& EF6 = SMS or EFV = SMS t'en JB (= SMS ; elsi& EF6 = SYS or EFV = SYS t'en JB (= S6S; else JB (= S6S ; end i&; end process; V= 9> 3# $_AA : process ($, #CZ) %egin i& rising_edge (#CZ) t'en \ (= $; end i&; end process $_AA;

H?n/ 3.q# IhEc th2 D0

3.e.Q. $/1 0!A- CAME


D)ng ca ph(t 8i2u ca e li case e pression is O'en c'oices =_ seeuential )statement )) %ranc' 6 O'en c'oices =_ seeuential )statement )) %ranc' V )) )) #: t'; c: n'ivu n'0n' {O'en ot'ers =_ seeuential)statement} )) last %ranc' end case; Qh(t 8i2u ca e lEa chfn m.t tr!ng nh$ng nh(nh ch! vi>c thEc thi dEa tr=n gi( trc ca 8i2u th'c0 ri( trc 8i2u th'c ph%i thu.c [i2u rbi r)c h!dc [i2u m%ng m.t chiSu0 C(c chfn lEa 6Ch!ice 7 c? th2 -1+c diDn t% nh1 m.t gi( trc -4nG h!dc m.t d%i gi(

PK

trc 8mng vi>c B dng d/u ~ h!dc B dng m>nh -S [h(c0 I/t c% c(c gi( trc c? th2 c? ca 8i2u th'c ph%i -1+c th2 hi>n tr!ng ph(t 8i2u ca e -lng m.t l&n0 C(c m>nh -S [h(c c? th2 -1+c B dng -2 8a! 9u(t t/t c% c(c gi( trcG v nu c?G ph%i l nh(nh cu,i c3ng tr!ng ph(t 8i2u ca e0 ;ki m.t chfn lEa ph%i c? c3ng [i2u v_i [i2u ca 8i2u th'c0 ;.t th* d ch! ph(t 8i2u ca ei V= 9> 1# type TEEZ_$!W is (IJF, GBE, TE$, GRB, ADE, H!G, HBF); type $JCC!DH is range M to 6M; varia%le $!W: TEEZ_$!W; varia%le PJ#ZEG_IJFEW: $JCC!DH; case $!W is O'en GBE =_ PJ#ZEG_IJFEW :=d; )) %ranc'6 O'en IJF f TE$ =_ PJ#ZEG_IJFEW :=V; )) %ranc'V O'en ADE to HBF =_ PJ#ZEG_IJFEW :=b; )) %ranc'X O'en ot'ers =_ PJ#ZEG_IJFEW :=M; )) %ranc'L end case; Fh(nh w -1+c chfn nu Do c? gi( trc l ;qF h!dc UD0 Fh(nh P 8a! gum c(c gi( trc IG SoI v SF0 Ir!ng [hi nh(nh gum c(c gi( trc c:n l)i l IH0 Qh(t 8i2u ca e cCng l ph(t 8i2u tu&n tEG tuy nhi=n n? cCng c? th2 -1+c ph(t 8i2u Jp lung nhau0 V= 9> @# ProgrKate: process (Iode, PrKEn6, PrKEnV) %egin case Iode is O'en yMMMz =_ PrKJut (= PrKEn6 and PrKEnV; O'en yMM6z =_ PrKJut (= PrKEn6 or PrKEnV; O'en yM6Mz =_ PrKJut (= PrKEn6 nand PrKEnV; O'en yM66z =_ PrKJut (= PrKEn6 nor PrKEnV; O'en y6MMz =_ PrKJut (= not PrKEn6; O'en y6M6z =_ PrKJut (= not PrKEnV; O'en ot'ers =_ PrKJut (= {M|; end case; end process ProgrKate;

PO

H?n/ 3.1z# IhEc th2 Qr!gramma8le rate0

3.e.T. $/1 0!A- NULL


Qh(t 8i2u null L m.t ph(t 8i2u tu&n tE [h#ng gjy ra 8/t [e hnh -.ng n!0 H> th,ng t 8a 9ua ph(t 8i2u FLL v tip tc thEc thi v_i ph(t 8i2u [ tip0 ;.t th* d ch! vi>c B dng ph(t 8i2u ny l tr!ng ph(t 8i2u ip h!dc tr!ng ph(t 8i2u ca e0 V= 9># Naria%le !, " : EFGEKED range M to X6 ; #ase ! is O'en M to 6V =_ ":= !; O'en ot'ers =_ Full; End #ase;

3.e.e. $/1 {1& n/cn AMMERTI^N


Qh(t 8i2u J(c nh\n r/t hay d3ng ch! vi>c [i2m tra thbi gian v c(c -iSu [i>n ng!i d%i0 V= 9># assert (Y _X ) report c Hetup violationc severity Oarning;

3.e.f. $/1 0!A- L++s


;.t ph(t 8i2u ldp -1+c B dng -2 ldp l)i m.t l!)t c(c cju l>nh tu&n tE0 Cl ph(p ca ph(t 8i2u ldp li [loop)la%el:] iteration)sc'eme loop
PN

seeuential)statements end loop [loop)le%el]; C? P [i2u 4 -u ldp0 {&u ti=n l 4 -u ldp c? d)ngi &or identi&ier in range V= 9> 1# V* d vS !r 000L!!p A!#GJD!C:=6; &or FBI"ED in V to F loop A!#GJD!C :=A!#GJD!CwFBI"ED; end loop; Ir!ng th* d nyG thjn ca v:ng ldp thEc thi F"M l&nG v_i -cnh danh ldp l F;HU v tVng l=n M au mki v:ng ldp0 {,i t1+ng F;HU -1+c [hai 8(! @n tr!ng v:ng ldp t3y thu.c v! [i2u integerG n? c? gi( trc t w -n F0 V5 v\y [hai 8(! [h#ng r rng ch! -cnh danh v:ng ldp l -iSu c&n thitG -cnh danh v:ng ldp cCng [h#ng th2 -1+c g(n ch! 8/t [e gi( trc n! tr!ng v:ng ldp p!r0 Fu m.t 8in [h(c c? c3ng t=n -1+c t)! 8=n ng!i v:ng ldp p!rG -? l hai l!)i 8in -1+c gi%i 9uyt ri=ng rt v 8in B dng tr!ng v:ng ldp p!r t chuy2n gia! ch! -cnh danh v:ng ldp0 V3ng ca v:ng ldp q cCng c? th2 l v3ng ca m.t [i2u li>t [=0 V= 9> @# type REY! is ({M|,|6|,|V|,|X|,|!|,|"|,|# |); 1 1 1 1 &or FBI in REY!|({V|) doOnto REY!|({M|) loop )) Fum s} lky n'~ng gi0 tri trong ?i;u REY! t V c'o ,ln M1 end loop; V= 9> 3# V* d vS hile 0000 l!!p process varia%le #ount : integer := M; %egin Oait until #l? = {6|; O'ile Cevel = {6| loop #ount := #ount 56; Oait until #l? = {M|; end loop; end process;

3.e.h. $/1 0!A- NErT


Qh(t 8i2u neJt cCng l ph(t 8i2u li=n tc cCng chs c? th2 B dng 8=n tr!ng v:ng ldp0 Cl ph(p t14ng tE nh1 ph(t 8i2u eJiti ne t [loop)la%el][O'en condition]; zt 9u% ca ph(t 8i2u neJt t 8a 9ua nh$ng ph(t 8i2u c:n l)i tr!ng l&n ldp hi>n t)i ca v:ng ldp v tip tc thEc thi v_i ph(t 8i2u -&u ti=n tr!ng v:ng ldp [ tip0 Fu tun t)i m.t l&n v nu nhWn v:ng ldp [h#ng r rng th5 t J%y ra hi>n t1+ng ldp -n v# c3ng0 {,i l\p v_i ph(t 8i2u eJitG n? l nguy=n nhjn ca v:ng ldp 8c gi_i h)n0 V= 9> 1# &or in 6M doOnto U loop i& HBI ( GJG!C_HBI t'en HBI:=HBI 5V; elsi& HBI = GJG!C_HBI t'en ne t; else null; end i&; Z:=Z56; end loop; zhi ph(t 8i2u neJt -1+c thEc thiG 9u( tr5nh thEc hi>n t nh%y -n ph&n cu,i ca v:ng ldp 6ph(t 8i2u cu,i c3ng z i zM7 au -? gi%m gi( trc ca -cnh danh v:ng ldp G v thEc hi>n l)i t -&u0 V= 9> @# signal $ata"us : %it_vector(X doOnto M); signal Jnes : integer; #ountJnes: process ($ata"us) varia%le FumJ&Jnes : integer := M; %egin &or #ntr in X doOnto M loop ne t O'en $ata"us(#ntr) = {M|; FumJ&Jnes := FumJ&Jnes 5 6; end loop;
M

Jnes (= FumJ&Jnes; end process #ountJnes;

3.e.q. $/1 0!A- ErIT


Qh(t 8i2u eJit l m.t ph(t 8i2u tu&n tE n? chs c? th2 B dng 8=n tr!ng v:ng ldp0 F? c? th2 lm ch! 9u( tr5nh thEc hi>n nh%y -n v:ng ldp tr!ng c3ng h!dc ra [hai v:ng -n vc tr* ca nhWn J(c -cnh n! -? [hi n? gdp nhWn ny tr!ng v:ng ldp0 Cl ph(p ca m.t ph(t 8i2u eJit li e it [loop)la%el][O'en condition] Fu nhWn v:ng ldp [h#ng -1+c chs ra th5 9u( tr5nh thEc hi>n t ldp -n v:ng ldp tr!ng c3ng0 Fu m>nh -S HUF -1+c B dng th5 vi>c tun t)i v:ng ldp chs J%y ra nu -iSu [i>n l -lng0 Fg1+c l)iG vi>c thEc hi>n t tip tc v_i ph(t 8i2u [ tip0 V= 9># HBI :=6; [:=M ; CX:loop [:=[5V6; HBI:=HBIw6M i& (HBI _6MM) t'en e it CX; )) G'c 'i+n e it ?'i CX nlu Hum_ 6MM en& i&; end loop CX;

3.e.1z. $/1 0!A- |AIT


Fh1 chlng ta -W th/yG m.t 9u( tr5nh m# phang c? th2 tr5 h!Wn 6hay tre! E thEc hi>n ca m.t ph(t 8i2u Qr!ce h!dc m.t ch14ng tr5nh c!n 7 ch! -n [hi gdp m.t -iSu [i>n ph3 h+p0 C? P h5nh th'c c4 8%n ca ph(t 8i2u wait0 Oait on sensitivity)list;

Oait until %oolean )e pression; Oait &or time)e pression; V= 9> 1# Oait on !," ; Oait until ! = "; Oait &or 6M ns; Oait on #CJ#Z &or VM ns ; Oait until HBI _6MM &or UM ms; SE hi>n di>n ca en itivity li t tr!ng m.t 9u( tr5nh tr3ng v_i tr1bng h+p m.t tr!ng 8a tr1bng h+p tr=n ca ph(t 8i2u wait0 ;.t ph(t 8i2u 9u( tr5nh c? wait !n ` cu,i ca Qr!ce t14ng -14ng v_i m.t ph(t 8i2u 9u( tr5nh c? [hai 8(! en itivity"li t0 em h5nh d1_i -jyi Hai pr!ce ny l t14ng -14ng nhau0 process %egin somestatements6; somestatementsV; somestatementsX; Oait on HomeHign; end process; ))))))))))))))))))) process (HomeHign) %egin somestatements6; somestatementsV; somestatementsX; end process; V= 9> @# process )) Z'@ng sensitivity list varia%le GEIP6, GEIPV:"EG; %egin GEIP6:=! and "; GEIPV:=# and $;

GEIP6:=GEIP6 or GEIPV; `(=not GEIP6; Oait on !, ", #, $; )) G'ay t'l c'o sensitivity)list 7 ,4u Process 1 End process1 V= 9> 3# Hai Qr!ce tr!ng v* d d1_i -jy chs ra hai pr!ce c? ph(t 8i2u ait !n0 Qr!ce 8=n tr(i t lm ch! Qr!ce tre! ngay au [hi Start v chb ch! -n [hi c? E [i>n Ju/t hi>n tr=n t*n hi>u Sigo0 C:n Qr!ce 8=n ph%i t thEc hi>n 8a cju l>nh v au -? r4i v! tr)ng th(i chb -n [hi Ju/t hi>n E [i>n tr=n t*n hi>u SigH0 process %egin Oait on Hig!; somestatements6; somestatementsV; somestatementsX; end process; )))))))))))))))))))))))))) process %egin somestatements6; somestatementsV; somestatementsX; Oait on Hig"; end process;

3.e.11. C1& :b! (}! &/U~n( .?n/ &+n


zhi m# t% thit [ the! [i2u h!)t -.ng hnh viG c(c ch14ng tr5nh c!n th1bng hay -1+c B dng v -1a ra c(ch th'c B dng thu\n ti>n0 C? hai l!)i ch14ng tr5nh c!n hay -1+c B dng l Hm v Ih tc0 " Ih tc 6 Qr!cedure7 tr% vS nhiSu gi( trc0 " Hm 6 uncti!n 7 tr% vS m.t gi( trc -4n0 C(c lbi gfi th tc t gfi th tc m n? c&n -1+c thEc hi>n tr!ng m.t 9u( tr5nh0 Qh(t 8i2u tr% vS 6 return 7 t l -i2m [t thlc m.t ch14ng tr5nh c!nG v n? chs -1+c B dng tr!ng m.t hm h!dc m.t th tc0 {,i v_i hm th5 n? c? 9ui -cnh v_i ph(t

8i2u tr% vS tr!ng thjn hmG nh1ng v_i th tc th5 c? th2 B dng tue x tr!ng thjn th tc0 Cl ph(p ca ph(t 8i2u tr% vS nh1 aui return [e pression]; -jy eJpre i!n t -1a ra c(c gi( trc tr% vS ca hmG ph(t 8i2u return tr!ng m.t hm c&n ph%i c? m.t 8i2u th'c v gi( trc tr% vS ca n?G nh1ng -,i v_i ph(t 8i2u tr% vS tr!ng th tc th5 [h#ng c&n ph%i c? mdt ca 8i2u th'c0 ;.t hm c? th2 c? nhiSu h4n m.t ph(t 8i2u tr% vSG nh1ng chs c? m.t ph(t 8i2u tr% vS -1+c B dng 8`i m.t lbi gfi hm0

3.f. CC $HT BI[U RNG THI


C(c ph(t 8i2u -ung thbi -1+c thEc hi>n !ng !ng tr!ng c3ng thbi -i2m m# phangG chlng [h#ng thEc hi>n the! th' tE m chlng -1+c vit ra tr!ng m.t [in trlc0 C(c ph(t 8i2u -ung thbi chuy2n th#ng tin th#ng 9ua c(c -1bng t*n hi>u0 D1_i -jy l c(c ph(t 8i2u -ung thbi -1+c -cnh ngha tr!ng VHDLi " C(c ph(t 8i2u g(n ca m.t 9u( tr5nh 6Qr!ce 70 " C(c ph(t 8i2u g(n t*n hi>u -ung thbi 0 " C(c ph(t 8i2u g(n t*n hi>u -iSu [i>n0 " C(c ph(t 8i2u g(n t*n hi>u -+c chfn lEa0 " C(c ph(t 8i2u Hl!c[0 " C(c lbi gfi th tc -ung thbi0 " C(c ph(t 8i2u J(c nh\n -ung thbi0

3.f.1. $/1 0!A- $.+&)**


Qh(t 8i2u pr!ce l ph(t 8i2u 8a! gum m.t t\p c(c ph(t 8i2u tu&n tE v ph(t 8i2u pr!ce l)i ch*nh l ph(t 8i2u -ung thbi0 C? ngha l t/t c% c(c ph(t 8i2u Qr!ce tr!ng m.t thit [ -1+c thEc hi>n m.t c(ch -ung thbi0 Iuy nhi=n t)i m.t thbi -i2m nh/t -cnh -1+c -1a ra chs c? m.t ph(t 8i2u tu&n tE -1+c thEc hi>n tr!ng mki pr!ce 0 ;.t Qr!ce -1+c [t n,i v_i ph&n c:n l)i ca thit [ 8`i vi>c -fc h!dc vit ra c(c gi( trc t c(c t*n hi>u v c(c cTng m chlng -W -1+c [hai 8(! ph*a ng!i Qr!ce 0 Cl ph(p ca chlng -1+c vit nh1 aui [la%el:] process [(sensitivity_list)] {process_declaration_part} %egin

{seeuential_statements} end process [la%el]; Qh&n [hai 8(! ca m.t pr!ce chs ra c(c -,i t1+ng m v3ng h!)t -.ng ca n? chs thu.c v3ng ca m.t pr!ce v chlng c? th2 l c(c -,i t1+ng au -jyi " zhai 8(! 8in 0 " zhai 8(! hmng 0 " zhai 8(! c(c [i2u0 " zhai 8(! c(c [i2u c!n0 " zhai 8(! c(c 8* danh olia 0 " C(c m>nh -S SU0 ;.t en itivity li t 6t\p c(c E [i>n thay -Ti tr)ng th(i c&n JB lx tr!ng m.t 9u( tr5nh7 c? c3ng x ngha v_i m.t Qr!ce c? ch'a ph(t 8i2u waitG m ph(t 8i2u wait ny l ph(t 8i2u cu,i c3ng tr!ng m.t pr!ce v chlng c? d)ng aui Tait on sensitivity list ; ;.t pr!ce c? ch'c nVng gi,ng nh1 m.t v:ng ldp v# h)n m tr!ng n? c? ch'a t!n 8. c(c ph(t 8i2u tu&n tE -1+c chs ra tr!ng v:ng ldp -?0 V5 v\y m.t ph(t 8i2u pr!ce c&n ph%i c? h!dc m.t en itivity li t h!dc m.t ph(t 8i2u wait !n h!dc c% hai0 V= 9> 1# arc'itecture !V o& e ample is signal i6, iV, iX, iL, and_out, or_out : %it; %egin pr6 : process (i6, iV, iX, iL) %egin and_out (= i6 and iV and iX and iL; end process pr6; prV : process (i6, iV, iX, iL) %egin or_out (= i6 or iV or iX or iL ; end process prV; end !V V= 9> @# name: process (sensitivity list)

declarations %egin seeuential statements; end process name; ))))))))))))))))))))) IBYVGJ6: process (!,",HEC) constant Rig' : "it := {6|; %egin W (= !; i& (HEC= {6|) t'en W (= "; end i&; end process IBYVGJ6;

3.f.@. C1& s/vs (1n =n /!J- EHn( /b!


;.t d)ng [h(c ca vi>c g(n t*n hi>u -ung thbi -? l c(c phAp g(n t*n hi>u -ung thbiG c(c phAp g(n ny -1+c d3ng ` 8=n ng!i ca m.t pr!ce nh1ng ph%i nmm tr!ng m.t [in trlc 6architecture70 Cl ph(p ca phAp g(n ny nh1 aui target_signal (= e pression [a&ter time_e pression ]; I14ng tE nh1 c(c phAp g(n t*n hi>u tu&n tEG m>nh -S apter t 8c 8a 9ua 8`i 8. tTng h+p0 V_i 8/t [e m.t t*n hi>u n! nmm 8=n ph%i ca m.t phAp g(n -Su mang x ngha t14ng tE nh1 m.t ph&n tB tr!ng en itivity li t 0 ;.t thjn architecture c? th2 ch'a , l1+ng 8/t [e ca nh$ng ph(t 8i2u g(n t*n hi>u -ung thbi0 V5 chlng l nh$ng ph(t 8i2u -ung thbi n=n th' tE ca nh$ng ph(t 8i2u l [h#ng 9uan trfng0 Fh$ng ph(t 8i2u g(n t*n hi>u -ung thbi -1+c thEc thi 8/t c' [hi n! c? E [i>n J%y ra tr!ng t*n hi>u -1+c B dng tr!ng 8i2u th'c0 V= 9>1 # arc'itecture !6 o& e ample is signal i6, iV, iX, iL, and_out, or_out : %it; %egin and_out (= i6 and iV and iX and iL; or_out (= i6 or iV or iX or iL; end !6; V= 9> @#

arc'itecture !V o& e ample is signal i6, iV, iX, iL, and_out, or_out : %it; %egin process (i6, iV, iX, iL) %egin and_out (= i6 and iV and iX and iL; end process ; process (i6, iV, iX, iL) %egin or_out (= i6 or iV or iX or iL ; end process ; end !V; V= 9> 3# arc'itecture !X o& e ample is signal i6, iV, iX, iL, and_out, or_out : %it; %egin process %egin and_out (= i6 and iV and iX and iL; or_out (= i6 or iV or iX or iL; Oait on i6, iV, iX, iL; end !X; Ha v* d tr=n -jy l t14ng -14ng nhau0

3.f.3. C1& s/vs (1n =n /!J- &N E!_- '!Jn ;C &1& s/vs (1n =n /!J- EUt& &/}n :m%
%. C1& s/vs (1n =n /!J- &N E!_- '!Jn. ;.t phAp g(n t*n hi>u c? -iSu [i>n ch*nh l m.t ph(t 8i2u -ung thbi v c? m.t -*ch g(n nh/t -cnhG tuy nhi=n phAp g(n ny c? th2 c? nhiSu h4n m.t 8i2u th'c ch! m.t -*ch0 Fg!)i tr 8i2u th'c cu,i c3ngG c(c 8i2u th'c c:n l)i ph%i c? m.t -iSu [i>n chc chnG c(c -iSu [i>n ny -1+c -(nh gi( the! th' tE0 Fu m.t -iSu [i>n -1+c -(nh gi( l IU th5 8i2u th'c t14ng 'ng -1+c B dngG ng1+c l)i c(c 8i2u

th'c c:n l)i t -1+c B dng0 Fh_ rmng chs m.t 8i2u th'c -1+c B dng t)i m.t thbi -i2m0 Cl ph(p ca cju l>nh ny nh1 aui target (= {e pression [ a&ter time_e pression ] O'en condition else} e pression [ a&ter time_e pression ]; ;.t ph(t 8i2u g(n t*n hi>u c? -iSu [i>n c? th2 -1+c m# t% 8`i m.t ph(t 8i2u pr!ce m pr!ce c? ch'a ph(t 8i2u I0 H)n c? th2 B dng ph(t 8i2u g(n t*n hi>u c? -iSu [i>n ` tr!ng m.t pr!ce 0 V= 9> 1# arc'itecture !6 o& e ample is signal a, %, c ,d : integer ; %egin a (= % O'en ( d _6M ) else c O'en ( d _U ) else d; end !6; V= 9> @# arc'itecture !V o& e ample is signal a, %, c ,d : integer ; %egin process (%, c, d) %egin i& ( d _ 6M) t'en a (= % elsi& ( d _U ) t'en a (= c; else a (= d; end i&; end process; end !V; V= 9> 3# SB dng c(c ph(t 8i2u c? -iSu [i>n0 E Proc: process (sensitivityCist) %egin i& #ond6 t'en 1

case #ondV is O'en Nal6 =_ O'en NalV =_ O'en ot'ers =_ &or E in 6 to L loop 1 end loop; end case; else O'ile #ondX loop 1 end loop 1 end i&; end process E Proc; 0. C1& s/vs (1n =n /!J- &N &/}n :m%. QhAp g(n t*n hi>u c? chfn lEa c? th2 chs m.t -*ch g(n v cCng chs c? m.t 8i2u th'c with0 ri( trc ny -1+c [i2m tra gi,ng nh1 ph(t 8i2u Ca e th#ng thbng0 F? t 9u%n lx 8/t c' E thay -Ti n! Ju/t hi>n t_i c(c t*n hi>u -1+c chfn lEa0 Cl ph(p ca chlng nh1 aui Oit' c'oice_e pression select target (= {e pression [a&ter time_e pression] O'en c'oices} e pression [ a&ter time_e pression] O'en c'oices; H/t [e phAp g(n t*n hi>u c? chfn lEa n! -Su c? th2 -1+c m# t% t14ng -14ng 8`i ph(t 8i2u pr!ce c? ch'a ph(t 8i2u ca e0 H)n [h#ng -1+c B dng ph(t 8i2u g(n t*n c? chfn lEa ` tr!ng m.t pr!ce 0 V= 9> 1# Oit' HEC select ` (= a O'en M f 6 f V, % O'en X to 6M, c O'en ot'ers;

RY

V= 9> @# process ( HEC, a, %, c ) case HEC is O'en M f 6 f Vf =_ ` (= a; O'en X to 6M =_ ` (= %; O'en ot'ers =_ ` (= c; end case; end process ; Hai v* d tr=n -jy l h!n t!n t14ng -14ng nhau0

3.f.Q. C1& s/1 0!A- B:+&'


C(c 8l!c[ ch! phAp ng1bi thit [ nh?m c(c ph&n the! tr\t tE l!gic ca c(c mgu -ung thbiG v_i -iSu [i>n l c(c ph&n ny [h#ng nmm tr!ng l1+c -u B dng ca c(c mgu [h(c 6c(c mgu m chlng -1+c B dng -2 thay th c(c thnh ph&n [h(c tr!ng m.t thit [70 C(c 8l!c[ -1+c B dng -2 tT ch'c c(c ph(t 8i2u g(n -ung thbi the! th' 8\c0 Cl ph(p ca chlng nh1 aui la%el : "loc? {%loc?_declarative_part} %egin {concurrent_statement} end %loc? [la%el]; Qh&n [hai 8(! 8l!c[ chs ra c(c -,i t1+ng thu.c miSn cc 8. ca 8l!c[ v c? th2 l c(c thnh ph&n au -jyi " zhai 8(! t*n hi>u0 " zhai 8(! hmng0 " zhai 8(! [i2u0 " zhai 8(! c(c [i2u c!n0 " Ihjn c(c ch14ng tr5nh c!n " zhai 8(! 8* danh oLIoS " C(c m>nh -S u e " zhai 8(! c(c thnh ph&n 6 C!mp!nent70 C(c -,i t1+ng -1+c [hai 8(! tr!ng m.t 8l!c[ chs -1+c phAp h!)t -.ng tr!ng 8l!c[ -? v c(c 8l!c[ v:ng tr!ng ca n?0 zhi m.t 8l!c[ c!n [hai 8(! m.t -,i t1+ng c?

RM

tr3ng t=n v_i -,i t1+ng tr!ng 8l!c[ cha th5 [hai 8(! ca 8l!c[ c!n t -cnh ngha l)i -,i t1+ng tr3ng t=n v_i 8l!c[ cha0 V= 9># arc'itecture "RN o& e ample is signal : out 6 : integer; signal : out V : %it; %egin "6 : %loc? signal H : %it; %egin "6)6 : %loc? signal H : integer; %egin out 6 (= H ; end %loc? "6)6; end %loc? "6; "V: %loc? %egin out V (= H ; end %loc? "V; end "RN; Ir!ng v* d ny ta th/y 8l!c[ HM"M l 8l!c[ c!n ca 8l!c[ HM0 C% HM v HM"M -Su [hai 8(! t*n hi>u S0 I*n hi>u S tr!ng HM"M t l [i2u integer v truySn ch! t*n hi>u !ut M cCng l [i2u integerG mdc d3 S -1+c [hai 8(! tr!ng HM l [i2u Hit0 I*n hi>u S tr!ng HM -1+c B dng tr!ng Hw l [i2u HitG tr3ng v_i [i2u t*n hi>u !ut w0

3.f.T. C1& :b! (}! /G >& EHn( /b!


;.t lbi gfi th tc -ung thbi ch*nh l m.t lbi gfi th tc m n? -1+c thEc thi ` 8=n ng!i m.t pr!ce G n? -'ng -.c l\p tr!ng m.t [in trlc architecture0 Lbi gfi th tc -ung thbi 8a! gumi " C? c(c tham , IFG qIG IFqI0 " C? th2 c? nhiSu h4n m.t gi( trc tr% vS " F? -1+c Jem nh1 m.t ph(t 8i2u0

Rw

" F? t14ng -14ng v_i m.t pr!ce c? ch'a m.t lbi gfi th tc -4n0 Hai v* d d1_i -jy l t14ng -14ng nhau0 V= 9> 1# arc'itecture 11111111111111111 %egin procedure_any (a,%) ; end1111111111; V= 9> @# arc'itecture 1111111111111111 %egin process %egin procedure_ any (a,%); Oait on a,%; end process ; end 1111111111111;

3.f.e. C1& &/U~n( .?n/ &+n


C(c ch14ng tr5nh c!n 8a! gum c(c th tc v c(c hm m n? c? th2 -1+c gfi -2 thEc hi>n c#ng vi>c n! -? ldp l)i t c(c vc tr* gfi [h(c nhau tr!ng VHDL0 Ir!ng VHDL cung c/p hai [i2u ch14ng tr5nh c!n [h(c nhau li " C(c th tc 6Qr!cedure70 " C(c hm 6 uncti!n 70 %. HC< ;C &1& E& .Un( &G% /C<. " Chlng -1+c gfi v thEc hi>n nh1 m.t 8i2u th'c0 " Lu#n tr% vS m.t -,i ,0 " I/t c% c(c tham , ca hm -Su ph%i l ch -. m!de IF0 " I/t c% c(c tham , ca hm ph%i thu.c l_p c(c t*n hi>u h!dc c(c hmng0 " Ht 8u.c ph%i [hai 8(! [i2u ca gi( trc tr% vS0 " zh#ng -1+c ch'a c(c ph(t 8i2u ait0 Cl ph(p ca hm -1+c [hai 8(! nh1 aui &unction identi&ier inter&ace_list return type_mar? is {su%program_declarative_item}

RP

"egin {seeuential_statement} end [identi&ier]; C(c -cnh danh identipier chs ra t=n ca m.t hmG c:n interpaceli t chs ra -cnh d)ng tham , ca m.t hm0 ;ki m.t tham , -1+c -cnh ngha the! cl ph(p aui [class] name_list [mode] type_name [:=e pression]; ` -jy cla ca tham , -,i t1+ng ph%i -1+c chs ra l t*n hi>u h!dc hmngG c:n m!de ca -,i t1+ng c&n ph%i l m!de in0 Fu [h#ng c? tham , m!de -1+c chs ra th5 -1+c hi2u nh1 l m!de IFG c:n nu [h#ng c? tham , cla -1+c chs ra th5 tham , -1+c hi2u nh1 l m.t hmng0 em v* d aui process &unction c_to_& ( c : real ) return real is varia%le & : real; %egin & := cwg1MaU1M 5 XV1M; return (&); end c_to_&; varia%le temp : real; %egin temp : = c_to_& (U1M) 5 VM1M; )) temp = d6 end process; Iham , chuy2n v! hm -1+c hi2u mdc -cnh l m.t hmng ,G v5 [h#ng c? [hai 8(! ca cla 0 0. T/G >& ;C &1& E& .Un( &G% &/5n(. " Chlng -1+c gfi nh1 m.t lbi ph(t 8i2u0 " C? th2 tr% vS [h#ng h!dc m.t h!dc nhiSu -,i ,0 " C(c tham , chuy2n gia! ch! th tc c? th2 l m!de inG !utG v in!ut0 " C(c tham , chuy2n gia! ch! th tc c? th2 l t*n hi>uG hmngG 8in0 " C? th2 c? ch'a ph(t 8i2u ait0 Cl ph(p [hai 8(! th tc nh1 aui procedure identi&ier inter&ace_list is

{su%program_declarative_item} %egin {seeuential_statement} end [identi&ier]; Identipier -1+c B dng -2 chs ra t=n ca pr!cedure v interpaceli t chs ra c(c tham , h5nh th'c ca pr!cedure0 ;ki tham , -1+c B dng the! -cnh ngha aui [class] name_list [mode] type_name [:=e pression]; Cla ca -,i t1+ng -1+c Jem nh1 hmngG 8in G h!dc l t*n hi>u v m!de ca -,i t1+ng c? th2 l inG !ut G in!ut0 Fu [h#ng c? m!de -1+c chs ra th5 tham , -1+c hi2u nh1 m!de inG nu [h#ng c? cla -1+c chs ra th5 c(c tham , m!de in -1+c hi2u nh1 l c(c hmngG c:n tham , m!de !ut v in!ut -1+c hi2u nh1 l c(c 8in0 C(c tham , c? th2 l c(c hmngG c(c 8inG h!dc c(c t*n hi>u v m!de ca chlng c? th2 l inG !utG h!dc in!ut0 Fu l_p ca c(c tham , [h#ng J(c -cnh r rng th5 mdc nhi=n n? l c!n tantG nu n? l m!de inG c:n n? l 8in nu m!de ca tham , -? l !ut h!dc in!ut0 ;.t v* d thjn pr!cedure m# t% hnh vi h!)t -.ng ca c(c -4n vc l!gic , hfc nh1 aui type JP_#J$E is ( !$$, HB", IBC, $EN, CG, CE, E\); procedure !DEGR_BFEG ( !, " : in EFGEKED ; JP : in JP_#J$E ; ` : out EFGEKED; `#JIP : out "JJCE!F ) is %egin case JP is O'en !$$ =_ ` := !5"; O'en HB" =_ ` := !)"; O'en IBC =_ ` := !w"; O'en $EN =_ ` := !a"; O'en CG =_ `#JIP := !("; O'en CE =_ `#JIP := !(="; O'en E\ =_ `#JIP := !="; end case ;

RR

end !DEGR_BFEG; Ia Jem m.t v* d [h(c ca thjn m.t pr!cedureG pr!cedure ny 9uay vAc t4 -1+c J(c -cnh v_i t=n l ooFo;UG 8t -&u t 8it SIoIHII t_i SIqQHIIG 8`i m.t gi( trc qIoIUH0 L_p -,i t1+ng ca tham ooFo;U -1+c J(c -cnh m.t c(ch t1bng minh0 Hin ILLVoLU -.ng -1+c [h`i t)! vS Y mki [hi pr!cedure -1+c gfi0 Procedure DJG!GE_CEAG (signal !DD!W_F!IE : inout "it_vector ; HG!DG_"EG, HGJP_"EG : in F!GB!C; DJG!GE_"W : in PJHEGENE ) is Naria%le AECC_N!CBE : "EG; %egin

-W 8it , tE

assert HGJP_"EG _ HG!DG_"EG report yHGJP_"EG is not greater t'an HG!DG_"EGz severity FJGE; &or I!#N!DX in 6 to DJG!GE_"W loop AECC_N!CBE := !DD!W_F!IE (HGJP_"EG); &or I!#N!D6 in HGJP_"EG doOnto (HG!DG_"EG 5 6) loop !DD!W_F!IE (I!#N!D6) (= !DD!W_F!IE (I!#N!D6 6); end loop; !DD!W_F!IE (HG!DG_"EG) (= AECC_N!CBE ; end loop; end procedure DJG!GE_CEAG; C(c pr!cedure -1+c gfi 8`i lbi gfi pr!cedure0 ;.t lbi gfi Qr!cedure c? th2 l m.t ph(t 8i2u tu&n tE h!dc m.t ph(t 8i2u -ung thbiG ph(t 8i2u ny ph thu.c v! n4i Ju/t hi>n lbi gfi th tc hi>n t)i0 Fu lbi gfi ny nmm 8=n tr!ng m.t ph(t 8i2u pr!ce h!dc m.t ch14ng tr5nh c!n [h(c th5 n? -1+c gfi l ph(t 8i2u gfi pr!cedure tu&n tEG ng1+c l)i n? -1+c gfi l ph(t 8i2u gfi pr!cedure gfi -ung thbi0 Cl ph(p ca ph(t 8i2u gfi pr!cedure nh1 au i [ la%el : ] procedure_name ( list_o&_actual ); IhEc t c(c 8i2u th'cG c(c 8inG c(c t*n hi>u h!dc c(c pileG -1+c chuy2n v! tr!ng th tc v c(c t=n ca -,i t1+ng v c(c t=n ny t -1+c d3ng -2 l/y c(c gi( trc t*nh

RZ

t!(n t tr!ng th tc0 Chlng -1+c chs ra m.t c(ch r rng 8`i vi>c B dng E [t h+p the! t=n v [t h+p the! vc tr* 0 V= 9># !DEGR_BFEG ($6, $V, !$$, HBI, #JIP ); )) H ?lt '/p t'eo vi tr1 !DEGR_BFEG ( ` =_ HBI, "=_ $V, !=_$6, JP=_!$$, `#JIP =_ #JIP); )) H ?lt '/p t'eo t>n1 ;.t ph(t 8i2u gfi th tc tu&n tE -1+c thEc thi tu&n tE c3ng v_i c(c ph(t 8i2u tu&n tE chung 9uanh n?0 ;.t ph(t 8i2u gfi th tc -ung thbi -1+c thEc thi 8/t c' llc n! [hi c? m.t E [i>n J%y ra tr=n m.t tr!ng c(c tham ,G m c(c tham , ny l m.t t*n hi>u ` ch -. in h!dc in!ut0 ;.t lbi gfi th tc -ung thbi c? ngha t14ng -14ng v_i m.t pr!ce c? ch'a m.t lbi gfi th tc tu&n tE v m.t ph(t 8i2u wait0 Qh(t 8i2u wait ny t lm ch! 9u( tr5nh chb ch! -n [hi c? m.t E [i>n Ju/t hi>n tr=n c(c tham , t*n hi>u ca m!de in h!dc in!ut0 Sau -jy l m.t v* d ca lbi gfi th tc -ung thbi v ph(t 8i2u pr!ce t14ng -14ng v_i n?i arc'itecture $BIIW_!D#R o& $BIIW is )) Gilp ,ln l2 t'*n cta t't tc procedure EFG_V_NE# ( signal $ : out "EG_NE#GJD ; HG!DG_"EG, HGJP_"EG : in F!GB!C ; signal N!CBE : in EFGEKED ) is %egin )) I@ tm 'oht ,3ng '2n' vi cta t't tc end EFG_V_NE#; %egin )) *y l2 v d cta m3t lQi g<i t't tc ,Png t'Qi1 EFG_V_NE# ($_!DD!W, HG!DG, HGJP, HEKF!C_N!CBE); end $BIIW_!D#R; Qh(t 8i2u pr!ce t14ng -14ng v_i lbi gfi m.t th tc -ung thbi nh1 aui process %egin EFG_V_NE# ($_!DD!W,HG!DG,HGJP,HEKF!C_N!CBE); )) P'4n t'; 'i+n cta c0c lQi g<i t't tc tu4n t Oait on HEKF!C_N!CBE;

RK

)) #'Q s ?i+n tr>n HEKF!C_N!CBE v2 em c'-ng n' m3t tn 'i+u )) v2o1 end process; ;.t pr!cedure c? th2 B dng h!dc l m.t ph(t 8i2u -ung thbi h!dc l ph(t 8i2u tu&n tE0 C(c lbi gfi -ung thbi th1bng Juy=n -1+c d3ng -2 m# t% ch*nh l c(c pr!ce 0 V* d ca th tc d3ng c? [hai 8(! p! tp!ne 6tr5 h!Wn70 postponend procedure EFG_V_NE# ( signal $:out "EG_NE#GJD ; HG!DG_"EG,HGJP_"EG : in F!GB!C; signal N!CBE :in EFGEKED) is %egin )) P'4n ?'ai %0o 'oht ,3ng cta t't tc end EFG_V_NE#; Fg$ ngha ca m.t lbi gfi th tc -ung thbi d3ng p! tp!ned l t14ng -14ng v_i ng$ ngha ca ph(t 8i2u pr!ce t14ng 'ng v_i n? v -1+c gfi l ph(t 8i2u pr!ce 8c tr5 h!Wn0 ;.t thjn pr!ce c? th2 c? ph(t 8i2u waitG tr!ng [hi m.t puncti!n th5 [h#ng -1+c phAp c?0 C(c puncti!n -1+c B dng -2 t*nh t!(n c(c gi( trc m.t c(ch t'c th50 V5 v\y m.t puncti!n [h#ng c&n c? ph(t 8i2u wait tr!ng -?0 ;.t puncti!n [h#ng th2 gfi m.t pr!cedure c? ph(t 8i2u wait tr!ng th tc -?0 ;.t pr!ce m c? ch'a lbi gfi m.t th tc m tr!ng th tc ny c? ch'a ph(t 8i2u waitG th5 pr!ce ny [h#ng -1+c [hai 8(! en itivity li t0 H4n n$a t thEc t chlng ta th/y m.t pr!ce [h#ng th2 nh\n 8it c(c t*n hi>u thu.c en itivity li t v5 nu c? pr!ce ny t r4i v! tr)ng th(i chb ngay l\p t'c0 V_i m.t th tc c? ch'a ph(t 8i2u wait th5 8/t c' 8in hay hmng n! -1+c [hai 8(! tr!ng th tc -? t gi$ nguy=n gi( trc ca chlng tr!ng u,t thbi gian thEc hi>n ph(t 8i2u wait v tun t)i chs [hi th tc -1+c [t thlc0

3.h. CC RNG GI
H)n c? th2 -?ng g?i -2 c/t c(c ch14ng tr5nh c!nG c(c [i2u d$ li>uG c(c hmng000 th1bng d3ng -2 B dng chlng tr!ng c(c thit [ [h(c0 ;.t pac[age 8a! gum hai ph&n ch*nhi Qh&n [hai 8(! v ph&n thjn pac[ageG ph&n [hai 8(! chs ra gia! tip ch! pac[age0

RO

Cl ph(p ca [hai 8(! pac[age nh1 aui pac?age pac?age _name is {pac?age _declarative_item} end [pac?age _name]; Qh&n pac[age declarativeitem c? th2 l 8/t [e [i2u n! au -jyi " zhai 8(! [i2u0 " zhai 8(! c(c [i2u c!n0 " zhai 8(! t*n hi>u0 " zhai 8(! c(c hmng0 " zhai 8(! 8* danh oLIoS0 " zhai 8(! c(c thnh ph&n0 " zhai 8(! c(c ch14ng tr5nh c!n0 " C(c m>nh -S SU0 C/5 6 7 zhai 8(! t*n hi>u tr!ng pac[age c? m.t , v/n -S c&n luu x tr!ng [hi tTng h+pG 8`i v5 m.t t*n hi>u [h#ng th2 -1+c chia y 8`i hai Untity0 V5 v\y nu mu,n d3ng chung [hai 8(! t*n hi>u 8)n ph%i [hai 8(! t*n hi>u ny l t*n hi>u t!n cc0 Qh&n thjn ca pac[age chs ra h!)t -.ng thEc t ca m.t pac[age0 Qh&n thjn ca pac[age ph%i lu#n c? t=n tr3ng v_i ph&n [hai 8(!0 Cl ph(p ca [hai 8(! ny nh1 aui pac?age %ody pac?age _name is {pac?age _%ody_declarative)item} end [pac?age _name] ; Qh&n pac[age 8!dydeclarative"item c? th2 8a! gumi " zhai 8(! [i2u0 " zhai 8(! c(c [i2u c!n0 " zhai 8(! c(c hmng " ;>nh -S u e0 " Ihjn c(c ch14ng tr5nh c!n0 V= 9># li%rary EEEE; use EEEE1FBIEDE#_"EG1all; pac?age PZK is su%type IJFGR_GWPE is integer range M to 6V;

RN

su%type $!W_GWPE is integer range M to X6; su%type "#$L_GWPE is unsigned ( X doOnto M); su%type "#$U_GWPE is unsigned ( L doOnto M) ; constant "#$U_6: "#$U_GWPE : = %cMMMM6c ; constant "#$U_b: "#$U_GWPE : = %cMM666c ; &unction "#$_EF# (C : in "#$L_GWPE) return "#$U_GWPE; end PZK; pac?age %ody PZK is &unction "#$_EF# (C :in "#$L_GWPE) return "#$U_GWPE is varia%le N,N6, NV : "#$U_GWPE; %egin N6 : = C 5 "#$U_6; NV : = C 5 "#$U_b; case NV(L) is O'en S M S =_ N : = N6; O'en S 6 S =_ N : = NV; end case; return (N); end "#$_EF#; end PZK;

3.q. ] HNH CU TRC


Ih#ng th1bng m.t h> th,ng , -1+c m# t% the! t\p h+p c? th' 8\c ca c(c thnh ph&n0 ;ki thnh ph&n 8a! gum m.t t\p c(c cTng -2 c? th2 gia! tip -1+c v_i c(c thnh ph&n [h(c0 zhi m# t% m.t thit [ tr!ng VHDL v m.t thit [ c? th' 8\c ch*nh l m.t thit [ -1a ra c(c [hai 8(! ca c(c thnh ph&n v c(c ph(t 8i2u th2 hi>n thnh ph&n -?0 ;.t -4n vc c4 ` -2 diDn t% hnh vi h!)t -.ng ch*nh l c(c ph(t 8i2u pr!ce G c:n -4n vc c4 ` -2 diDn t% the! [i2u c/u trlc ch*nh l c(c ph(t 8i2u th2 hi>n ca c(c -4n vc thnh ph&n0 C% hai l!)i ny -Su c? th2 c? mdt tr!ng m.t thjn ca m.t [in trlc 6architecture70

ZY

3.q.1. C1& '/%! 01+ /Cn/ s/On


;.t thjn [in trlc c? th2 B dng c(c Untity [h(c 6[h#ng tr!ng c3ng [hai 8(! ca architecture 7G c(c Untity ny -1+c m# t% t(ch 8i>t v -1+c -dt tr!ng th1 vi>n thit [0 {2 B dng chlngG ng1bi ta d3ng c(c [hai 8(! thnh ph&n v c(c ph(t 8i2u th2 hi>n ca chlng 0Ir!ng m# t% thit [G mki ph(t 8i2u [hai 8(! thnh ph&n ph%i t14ng 'ng v_i m.t Untity0 C(c ph(t 8i2u [hai 8(! thnh ph&n ph%i gi,ng v_i c(c ph(t 8i2u -1+c chs ra tr!ng Untity 6c(c ph(t 8i2u gia! tip v! ra ca thnh ph&n -?70 Cl ph(p [hai 8(! ca chlng nh1 aui component component _name [ port ( local_port_declaration ) ] end component ; Ir!ng -? c!mp!nent name m# t% t=n ca Untity v p!rtdeclarati!n l [hai 8(! c(c cTng ca c!mp!nent v ph%i tr3ng v_i ph&n [hai 8(! -W chs ra ca c!mp!nent nmm tr!ng ph&n [hai 8(! ca Untity0

3.q.@. C1& /A /!Jn &G% &+<s+n)n


;.t c!mp!nent -1+c -cnh ngha tr!ng m.t architecture c? th2 -1+c th2 hi>n th#ng 9ua vi>c B dng c(c ph(t 8i2u th2 hi>n ca chlng0 zhi th2 hi>n chs -1+c phAp th2 hi>n ph&n gia! tip ca c!mp!nent 68a! gum t=nG [i2uG h1_ng ca c(c cTng v! ra ca chlng7G c(c t*n hi>u 8=n tr!ng chlng [h#ng -1+c th2 hi>n0 Cl ph(p th2 hi>n c!mp!nent nh1 aui instantiation_la%el : component _name port map ( [ local_port_name =_] e pression { [local_port_name =_] e pression} ); ;.t ph(t 8i2u th2 hi>n c!mp!nent c&n ph%i [hai 8(! ph&n nhWn ca th2 hi>n tr1_c in tantiati!nla8el0 H5nh vt P0MM v P0Mw d1_i -jy m# t% ph&n gia! di>n v ph&n thEc thi 8=n tr!ng ca m.t 8. c.ng pullodder0

ZM

H?n/ 3.11# Qh&n gia! di>n c!mp!nent ca 8. c.ng ulladder

H?n/ 3.1@# C(c thnh ph&n 8=n tr!ng 8. ulladder0 Fh1 tr=n h5nh vt chlng ta th/y ph&n thEc thi c? 8a l!)i cTng [h(c nhau v chlng -1+c mang t=n nh1 aui qwgateG oFDwgateG qgateG chlng -1+c d3ng -2 Jjy dEng n=n 8. c.ng0 {2 m# t% v th2 hi>n chlng tr!ng thit [G ta c? th2 vit ch14ng tr5nh -2 thEc thi tng thnh ph&n ca chlng nh1 aui li%rary EEEE; use EEEE1HG$_CJKE#_66dL1all; Entity !F$V_gate is port ( EM, E6 : in HG$_CJKE# ; J : out HG$_CJKE# ); End !F$V_gate; !rc'itecture "RN o& !F$V_gate is "egin J (= EM and E6; End "RN; """"""""""" li%rary EEEE; use EEEE1HG$_CJKE#_66dL1all; Entity YJD_gate is port ( EM, E6 : in HG$_CJKE# ;

Zw

J : out HG$_CJKE# ); End YJD_gate; !rc'itecture "RN o& YJD_gate is "egin J (= EM or E6; End "RN; """"""""""""" li%rary EEEE; use EEEE1HG$_CJKE#_66dL1all; Entity JDV_gate is port ( EM, E6 : in HG$_CJKE# ; J : out HG$_CJKE# ); End JDV_gate; !rc'itecture "RN o& JDV_gate is "egin J (= EM or E6; End "RN; {2 th2 hi>n c(c c!mp!nent ny tr!ng m.t thit [G ta [hai 8(! chlng nh1 aui li%rary EEEE; use EEEE1HG$_CJKE#_66dL1all; Entity ABCC_!$$ED is port (!, ", #in : in HG$_CJKE#; Hum, #out : out HG$_CJKE#); End ABCC_!$$ED; !rc'itecture EIP o& ABCC_!$$ED is component YJD_gate port ( EM, E6 : in HG$_CJKE#; J : out HG$_CJKE# ); end component ; component !F$V_gate port ( EM, E6 : in HG$_CJKE#; J : out HG$_CJKE# ); end component; component JDV_gate port ( EM, E6 : in HG$_CJKE#; J : out HG$_CJKE# );

ZP

end component; signal F6, FV, FX: HG$_CJKE#; %egin B6 : YJD_gate port map (EM =_ !, E6=_ ", J=_F6); BV :!F$V_gate port map ( !, ", FV); BX :!F$V_gate port map ( #in, F6, FX); BL :YJD_gate port map ( #in, F6, Hum); BU :JDV_gate port map ( FX, FV, #out); end EIP;

3.q.3. C1& s/1 0!A- G)n).% )


Qh(t 8i2u generate l m.t ph(t 8i2u -ung thbi v n? -1+c -cnh ngha tr!ng ph&n architecture0 F? -1+c d3ng -2 m# t% c(c c/u trlc gi,ng nhauG hay t(i t)! l)i c(c c/u trlc [h(c gi,ng nh1 8%n g,c0 Cl ph(p ca chlng nh1 aui instantiation _la%el : generation_sc'eme generate {concurrent_statement} end generate [instantiation _la%el]; C? hai l!)i l1+c -u generati!n i L1+c -u p!r v l1+c -u ip0 L1+c -u p!r -1+c d3ng -2 diDn t% c/u trlc th#ng th1bngG n? -1+c d3ng -2 [hai 8(! m.t tham , generate v m.t d%i rbi r)c ca l1+c -u p!r 6chs ra tham , v:ng ldp v d%i rbi r)c tr!ng c(c ph(t 8i2u ldp tu&n tE70 C(c gi( trc tham , ca generate c? th2 -1+c -fc nh1ng [h#ng -1+c g(n hay chuy2n ra ng!i ph(t 8i2u generate0 %. Mj 9>n( :Ut& EH ,+.# V= 9># ri% B ta c? 8. c.ng 8it m tr!ng -? 8a! gum 8,n 8. c.ng ulladder nh1 -W -1+c m# t% ` tr=n0 em h5nh P0MP d1_i -jyi

H?n/ 3.13# H. c.ng 8it0 {2 m# t% 8. c.ng 8it ny v B dng ph(t 8i2u generateG B dng m# t% 8. c.ng ullodder nh1 tr=n ta -W m# t%0 Ia c? th2 vit chlng nh1 aui arc'itecture EIP o& ABCC_!$$EDL is signal Y, W, ` : HG$_CJKE#_NE#GJD ( X doOnto M ) ; signal #out : HG$_CJKE# ; signal GIP : HG$_CJKE#_NE#GJD ( L doOnto M ) ; component ABCC_!$$ED port ( !, ", #in : in HG$_CJKE# ; Hum, #out : out HG$_CJKE# ); end component ; %egin GIP (M) (= S M S; K : &or E in M to X generate A!: ABCC_!$$ED port map ( Y (E), W(E), GIP (E), ` (E),GIP ( E56 )); end generate ; #out (= GIP (L); end EIP; 0 Mj 9>n( :Ut& EH !,

ZR

H?n/ 3.1Q# S4 -u 8. c.ng 8,n 8it B dng m.t 8. c.ng HalpoDDU v 8a 8. c.ng ulloDDU0 ;.t , c/u trlc c? d)ng [h#ng the! 9ui lu\t chu@n n!G v_i tr1bng h+p ny ta c? th2 B dng l1+c -u ip0 ri% B ta m# t% 8. c.ng 8,n 8it nh1 tr=n h5nh P0M v B dng l1+c -u I generate -2 m# t% 8. c.ng ny0 Ch14ng tr5nh -1+c vit nh1 aui arc'itecture EIP o& ABCC_!$$EDL is signal Y, W, ` : HG$_CJKE#_NE#GJD ( X doOnto M ) ; signal #out : HG$_CJKE# ; signal GIP : HG$_CJKE#_NE#GJD ( L doOnto 6) ; component ABCC_!$$ED port ( !, ", #in : in HG$_CJKE# ; Hum, #out : out HG$_CJKE# ); end component ; component R!CA_!$$ED port ( !, " : in HG$_CJKE# ; Hum, #out : out HG$_CJKE# ); end component ; %egin KM : &or E in M to X generate K6: i& E = M generate R!: R!CA_!$$ED port map ( Y (E), W(E), ` (E), GIP ( E56 )); end generate ; KV: i& E _= 6 and E (= X generate
ZZ

A!: ABCC_!$$ED port map ( Y (E), W(E), GIP (E), ` (E),GIP ( E56 )); end generate ; end generate ; #out (= GIP ( L ); end EIP;

3.q.Q. C1& /gn( *p &G% ;!J& ESn/ &L- /?n/


Ir!ng m.t Untity c? th2 c? m.t vi c/u trlcG v5 v\y c(c chi tit ca vi>c -cnh c/u h5nh ch! phAp ng1bi thit [ chfn c(c Untity v [in trlc ca n?0 Cl ph(p [hai 8(! ca chlng nh1 aui &or instantiation _list : component _name use Entity li%rary_name1 Entity _name [( arc'itecture _name)] ; Fu chs c? m.t [in trlc architecture th5 t=n architecture c? th2 8a 9ua0 em th=m m.t v* d d1_i -jyi li%rary EEEE; use EEEE1HG$_CJKE#_66dL1all; Entity ABCC_!$$ED is port ( !, ", #in : in HG$_CJKE#; Hum, #out : out HG$_CJKE#); End ABCC_!$$ED; !rc'itecture EIP o& ABCC_!$$ED is component YJD_gate port ( EM, E6 : in HG$_CJKE#; J : out HG$_CJKE# ); end component ; component !F$V_gate port ( EM, E6 : in HG$_CJKE#; J : out HG$_CJKE# ); end component; component JDV_gate port ( EM, E6 : in HG$_CJKE#; J : out HG$_CJKE# ); end component; signal F6, FV, FX: HG$_CJKE#; &or B6 : YJD_gate use entity Oor?1YJD_gate ("RN);

ZK

&or ot'ers : YJD_gate use entity Oor?1YJD_gate ("RN); &or all : !F$V_gate use entity Oor?1!F$V_gate ("RN); &or BU : JDV_gate use entity Oor?1JDV_gate ("RN); %egin B6 : YJD_gate port map (EM =_ !, E6=_ ", J=_F6); BV :!F$V_gate port map ( !, ", FV); BX :!F$V_gate port map ( #in, F6, FX); BL :YJD_gate port map ( #in, F6, Hum); BU :JDV_gate port map ( FX, FV, #out); end EIP;

ZO

You might also like