Professional Documents
Culture Documents
Kien Thuc Co Ban VHDL
Kien Thuc Co Ban 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
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;
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;
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
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
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;
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 ∨ 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 ∨ 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
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;
MR
signal "EEP : "EG:= SMS; signal GEIP: HG$_CJKE#_NE#GJD (] doOnto M); signal #JBFG: EFGEKED range M to 6MM :=U;
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
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);
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
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;
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.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
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!
arithmetic!perat!r
L!gical!perat!r n!t C3ng [i2u Bdn( 3.1# C(c l!)i t!(n tB0
$ (= (E or A) and (# or K);
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 );
!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.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
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
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;
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
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;
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;
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
{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;
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
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
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;
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;
ZY
ZM
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;
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;
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