【正文】
WNTO 0)=1001。 END IF。 ELSE ATI(3 DOWNTO 0)=ATI(3 DOWNTO 0)1。 IF ATI/=X01 THEN —— A方向(東西方向)倒計時 IF ATI(3 DOWNTO 0)= 0000 THEN ATI(3 DOWNTO 0)=1001。 END CASE。 BTI=BRT。 WHEN 01=BTI=BYT。 THEN IF (ATI=X01) OR (BTI=X01) THEN CASE S IS —— 通過 S的變化控制各個狀態(tài),給倒計時顯示燈賦值 WHEN 00=ATI=ART。EVENT AND CLK=39。 BTI=BTI。139。 end process。 bf:=not bf。) then AT=ATI。 and bf=39。 elsif (M=39。 BT=11111111。039。039。 BT=BTI。139。139。 process begin wait until clk39。 BGT=X40。 AYT=X05。 BEGIN —— 設定各個紅綠黃的工作時間 ART=X45。 shared variable bf:std_logic:=39。 SIGNAL ART,AGT,AYT : STD_LOGIC_VECTOR(7 DOWNTO 0)。 ARCHITECTURE JTD_1 OF JTD_TIME IS SIGNAL ATI : STD_LOGIC_VECTOR(7 DOWNTO 0):=X01。 AT,BT :OUT STD_LOGIC_VECTOR(7 DOWNTO 0))。 M : IN STD_LOGIC。 USE 。倒計時模塊源文件程序如下: LIBRARY IEEE。 END JTD。 END PROCESS。 END IF。 THEN 圖 3 頂層文件的仿真波形 IF(AT =X01)OR (BT = X01) THEN Q=Q+1。EVENT AND CLK =39。 ARCHITECTURE JTD OF JTD_CTROL IS SIGNAL Q :STD_LOGIC_VECTOR (1 DOWNTO 0)。 S: OUT STD_LOGIC_VECTOR(1 DOWNTO 0))。 ENTITY JTD_CTROL IS PORT ( CLK :IN STD_LOGIC。 USE 。 狀態(tài)控制模塊( jtd ctrl) 狀態(tài)控制模塊根據(jù)倒計時模塊( jtd time)的輸出信號和 1hz 的時鐘信號,產(chǎn)生系統(tǒng)的狀態(tài)機,控制其他部分的協(xié)調(diào)工作。其頂層原理圖如圖 2 所示?!?1’表示亮,‘ 0’表示滅。 南北、東西方向的紅綠燈按表一表二變化。 M=“ 0” 時,經(jīng)過 40秒, S由 B100010變?yōu)?B100001,再經(jīng)過 5秒, S 變?yōu)?B01