【正文】
當(dāng)小路20s過后再經(jīng)過5s的黃燈跳轉(zhuǎn)到D狀態(tài),大路變?yōu)榫G燈小路變?yōu)榧t燈,采用賦值的方法來計(jì)數(shù),當(dāng)計(jì)數(shù)到想要值得時(shí)候在令CLR清零,狀態(tài)也是采用賦值的方法實(shí)現(xiàn)不同狀態(tài)的變化。各輸入端口和輸出端口及變量信號(hào)的說明:輸入端CLKXLB意義時(shí)鐘信號(hào)小路是否有車輸出端GSRGSYGSGXLRXLYXLG意義高速紅燈高速黃燈高速綠燈小路紅燈小路黃燈小路綠燈變量或信號(hào)CLRS意義清零變量計(jì)時(shí)變量五,源程序的設(shè)計(jì)LIBRARY IEEE。 USE 。USE 。ENTITY JTDKZ IS PORT(CLK:IN STD_LOGIC。 XLB:IN STD_LOGIC。 GSR,GSY,GSG,XLR,XLY,XLG:OUT STD_LOGIC)。 END ENTITY JTDKZ。ARCHITECTURE ART OF JTDKZ IS TYPE STATE_TYPE IS(A,B,C,D)。 SIGNAL STATE:STATE_TYPE。 BEGIN CNT:PROCESS(CLK) IS VARIABLE CLR:BIT。 在進(jìn)程中定義變量CLR(CLR=0:計(jì)時(shí)清零) VARIABLE S:STD_LOGIC_VECTOR(0 TO 5)。 在進(jìn)程中定義變量S(S為時(shí)鐘計(jì)時(shí)器) BEGIN IF(CLK39。EVENT AND CLK=39。139。)THEN判斷時(shí)鐘信號(hào)上升沿 IF CLR=39。039。THEN當(dāng)CLR=0時(shí)計(jì)時(shí)變量清零 S:=000000。 ELSE S:=S+1。 END IF。 CA