【正文】
= ′0′ ) THEN ST = ′0′; ELSIF( clk′EVENT AND clk = ′1′ ) THEN IF( Q = 2 )THEN ST = ′1′; ELSE ST = ′0′; END IF; END IF; END PROCESS; END ARCHITECTURE arch; 控制器模塊( ): LIBRARY IEEE; USE ; USE ; ENTITY control IS PORT( reset ,clk ,ST ,Ca ,Cb : IN STDLOGIC; Ra ,Ya ,Ga ,Rb ,Yb ,Gb ,LD : OUT STDLOGIC; CNT : OUT INTEGER RANGE 0 TO 63 ); END ENTITY control; ARCHITECTURE arch OF control IS CONSTANT T1 : INTEGER : = 60; CONSTANT T2 : INTEGER : = 40; CONSTANT T3 : INTEGER : = 10; TYPE STATETYPE IS ( S0 ,S1 ,S2 ,S3 ); SIGNAL state : STATETYPE; SIGNAL RYG : STDLOGICVECTOR( 5 DOWNTO 0 ); BEGIN PROCESS( reset ,clk ) BEGIN IF( reset = ′0′ ) THEN state = S0; ELSIF( clk′EVENT AND clk = ′1′ ) THEN IF( ST = ′1′ ) THEN CASE state IS WHEN S0 = IF( Cb = ′0′) THEN state = S0; ELSE state = S1; END IF; WHEN S1 = state = S2; WHEN S2 = IF(Ca = ′0′) THEN state = S2; ELSE state=S3; END IF; WHEN S3 = state = S0; END CASE; END IF; END IF; END PROCESS。 Ra = RYG(5); Ya = RYG(4); Ga = RYG(3); Rb = RYG(2); Yb = RYG(1); Gb = RYG(0); PROCESS( state ) BEGIN CASE state IS WHEN S0 = RYG = 001100; WHEN S1 = RYG = 010100; WHEN S2 = RYG = 100001; WHEN S3 = RYG = 100010; END CASE; END PROCESS; LD=ST; 直接將 ST PROCESS( state ,Ca ,Cb ) 描述同步預置的定時值 BEGIN CASE state IS WHEN S0 = IF( Cb = ′0′) THEN CNT = T1; ELSE CNT = T3; END IF; WHEN S1 = CNT = T2; WHEN S2 = IF( Ca = ′0′) THEN CNT = T2; ELSE CNT = T3; END IF; WHEN S3 = CNT = T1; END CASE; END PROCESS; END ARCHITECTURE arch; 頂層文件( ): LIBRARY IEEE; USE ; USE ; PACKAGE trafficli