资源描述:
《VHDL 交通灯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYJTDKZISPORT(CLK,SM,SB:INSTD_LOGIC;MR,MY,MG,BR,BY,BG:OUTSTD_LOGIC);ENDENTITYJTDKZ;ARCHITECTUREARTOFJTDKZISTYPESTATE_TYPEIS(A,B,C,D);SIGNALSTATE:STATE_TYPE;BEGINCNT:PROCESS(CLK)ISVARIABLES:INTEGERRANGE0TO45;VARIABLECLR,EN:BIT;BEGINIF(CLK
2、'EVENTANDCLK='1')THENIFCLR='0'THENS:=0;ELSIFEN='0'THENS:=S;ELSES:=S+1;ENDIF;CASESTATEISWHENA=>MR<='0';MY<='0';MG<='1';BR<='1';BY<='0';BG<='0';IF(SBANDSM)='1'THENIFS=45THENSTATE<=B;CLR:='0';EN:='0';ELSESTATE<=A;CLR:='1';EN:='1';ENDIF;ELSIF(SBAND(NOTSM))='1'THENSTATE<=B;CLR:='0';EN
3、:='0';ELSESTATE<=A;CLR:='1';EN:='1';ENDIF;WHENB=>MR<='0';MY<='1';MG<='0';BR<='1';BY<='0';BG<='0';IFS=5THENSTATE<=C;CLR:='0';EN:='0';ELSESTATE<=B;CLR:='1';EN:='1';ENDIF;WHENC=>MR<='1';MY<='0';MG<='0';BR<='0';BY<='0';BG<='1';IF(SMANDSB)='1'THENIFS=25THENSTATE<=D;CLR:='0';EN:='0';EL
4、SESTATE<=C;CLR:='1';EN:='1';ENDIF;ELSIFSB='0'THENSTATE<=D;CLR:='0';EN:='0';ELSESTATE<=C;CLR:='1';EN:='1';ENDIF;WHEND=>MR<='1';MY<='0';MG<='0';BR<='0';BY<='1';BG<='0';IFS=5THENSTATE<=A;CLR:='0';EN:='0';ELSESTATE<=D;CLR:='1';EN:='1';ENDIF;ENDCASE;ENDIF;ENDPROCESSCNT;ENDARCHITECTURE
5、ART;--CNT45S.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT45SISPORT(SB,CLK,EN45:INSTD_LOGIC;DOUT45M,DOUT45B:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDENTITYCNT45S;ARCHITECTUREARTOFCNT45SISSIGNALCNT6B:STD_LOGIC_VECTOR(5DOWNTO0);BEGINPROCESS(SB,CLK,EN45
6、)ISBEGINIFSB='0'THENCNT6B<=CNT6B-CNT6B-1;ELSIF(CLK'EVENTANDCLK='1')THENIFEN45='1'THENCNT6B<=CNT6B+1;ELSIFEN45='0'THENCNT6B<=CNT6B-CNT6B-1;ENDIF;ENDIF;ENDPROCESS;PROCESS(CNT6B)ISBEGINCASECNT6BISWHEN"000000"=>DOUT45M<="01000101";DOUT45B<="01010000";WHEN"000001"=>DOUT45M<="01000100"
7、;DOUT45B<="01001001";WHEN"000010"=>DOUT45M<="01000011";DOUT45B<="01001000";WHEN"000011"=>DOUT45M<="01000010";DOUT45B<="01000111";WHEN"000100"=>DOUT45M<="01000001";DOUT45B<="01000110";WHEN"000101"=>DOUT45M<="01000000";DOUT45B<="01000101";WHEN"000110"=>DOUT45M<="00111001";DOUT45B<=
8、"01000100";WHEN"000111"=>DOUT45M<="00111