【正文】
2:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 DI3:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 CLK2:IN STD_LOGIC。 SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)。 BT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0))。END SCAN_LED。ARCHITECTURE ONE OF SCAN_LED IS SIGNAL CNT4 :STD_LOGIC_VECTOR(1 DOWNTO 0)。SIGNAL A:STD_LOGIC_VECTOR(3 DOWNTO 0)。BEGINP1:PROCESS(CLK2)VARIABLE SQ :STD_LOGIC_VECTOR(1 DOWNTO 0)。 BEGIN IF CLK239。EVENT AND CLK2=39。139。 THEN IF SQ=10 THEN SQ:=00。 //位選信號,13位循環(huán) ELSE SQ:=SQ+1。 END IF。 END IF。 CNT4=SQ。END PROCESS P1。P2: PROCESS (CNT4) BEGIN CASE CNT4 IS WHEN 00 =BT=001。A=DI1。 WHEN 01=BT=010。A=DI2。 WHEN 10=BT=100。A=DI3。 WHEN 11=BT=100。A=1111。 WHEN OTHERS =NULL。 END CASE。END PROCESS P2。 P3:PROCESS(A) BEGIN CASE A IS //根據(jù)A的值,顯示0~9 WHEN 0000=SG=0111111。 //數(shù)碼管顯示數(shù)字0 WHEN 0001=SG=0000110。 //數(shù)碼管顯示數(shù)字1 WHEN 0010=SG=1011011。 //數(shù)碼管顯示數(shù)字2 WHEN 0011=SG=1001111。 //顯示數(shù)字3 WHEN 0100=SG=1100110。 //顯示數(shù)字4 WHEN 0101=SG=1101101。 //顯示數(shù)字5 WHEN 0110=SG=1111101。 //顯示數(shù)字6 WHEN 0111=SG=0000111。 //顯示數(shù)字7 WHEN 1000=SG=1111111。 //顯示數(shù)字8 WHEN 1001=SG=1101111。 //顯示數(shù)字9 WHEN OTHERS=NULL。 END CASE。END PROCESS P3。END ONE 。附錄6:模塊TAXI// 程序名稱:TAXI// 程序功能:該模塊為最終的頂層模塊。// 程序作者:金人佼// 最后修改日期:LIBRARY IEEE。LIBRARY IEEE。USE 。ENTITY TAXI IS PORT(T_CLK0:IN STD_LOGIC。 T_CLK1:IN STD_LOGIC。 T_CLK2:IN STD_LOGIC。 T_JS :IN STD_LOGIC。 T_ENABLE:IN STD_LOGIC。 T_CLR:IN STD_LOGIC。 T_STO:IN STD_LOGIC。 T_BT: OUT STD_LOGIC_VECTOR(2 DOWNTO 0)。 T_SG: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。END TAXI。ARCHITECTURE STRUC OF TAXI IS //頂層模塊設(shè)計 COMPONENT MSPORT(CK0:IN STD_LOGIC。 CK1:IN STD_LOGIC。 JS:IN STD_LOGIC。 CLK_OUT:OUT STD_LOGIC)。END COMPONENT。COMPONENT SOUTPORT(CLK:IN STD_LOGIC。 ENABLE:IN STD_LOGIC。 STO :IN STD_LOGIC。 CLR:IN STD_LOGIC。 ST:OUT STD_LOGIC_VECTOR(1 DOWNTO 0))。END COMPONENT。COMPONENT PULSEPORT(CLK0:IN STD_LOGIC。 FOUT:OUT STD_LOGIC)。END COMPONENT。COMPONENT COUNTERPORT(CLK_DIV:IN STD_LOGIC。 CLR1:IN STD_LOGIC。 SI:IN STD_LOGIC_VECTOR(1 DOWNTO 0)。 C1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 C2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 C3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。END COMPONENT。COMPONENT SCAN_LED PORT(DI1:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 DI2:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 DI3:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 CLK2:IN STD_LOGIC。 SG:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)。 BT:OUT STD_LOGIC_VECTOR(2 DOWNTO 0))。END COMPONENT。SIGNAL L_CLK: STD_LOGIC。SIGNAL L_FOUT:STD_LOGIC。SIGNAL L_ST:STD_LOGIC_VECTOR(1 DOWNTO 0)。SIGNAL L_C1:STD_LOGIC_VECTOR(3 DOWNTO 0)。SIGNAL L_C2:STD_LOGIC_VECTOR(3 DOWNTO 0)。SIGNAL L_C3:STD_LOGIC_VECTOR(3 DOWNTO 0)。BEGIN //元件例化 U0:MS PORT MAP(CK0=T_CLK0,CK1=T_CLK1,JS=T_JS,CLK_OUT=L_CLK)。 U1:SOUT PORT MAP(CLK=L_CLK,ENABLE=T_ENABLE,CLR=T_CLR,STO=T_STO,ST=L_ST)。 U2:PULSE PORT MAP(CLK0=L_CLK,FOUT=L_FOUT)。 U3:COUNTER PORT MAP(CLR1=T_CLR,SI=L_ST,CLK_DIV=L_FOUT,C3=L_C3,C2=L_C2,C1=L_C1)。 U4:SCAN_LED PORT MAP(CLK2=T_CLK2,DI3=L_C3,DI2=L_C2,DI1=L_C1,BT=T_BT,SG=T_SG)。END STRUC。END O