【正文】
60。 ALM=39。039。 模塊LOCKB ELSIF CLK39。EVENT AND CLK=39。139。THEN Q1=D1。 Q2=D2。 Q3=D3。 Q4=D4。 ALM=39。139。 END IF。 END PROCESS。 END LOCK_ARC。4)、轉換模塊CH41A的VHDL源程序ch41a..vhd LIBRARY IEEE。 USE 。 ENTITY CH41A ISPORT(D1,D2,D3,D4:IN STD_LOGIC。 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 END CH41A。 ARCHITECTURE CH41_ARC OF CH41A IS 轉換模塊CH41ABEGIN PROCESS(D1,D2,D3,D4) VARIABLE TMP:STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGINTMP:=D1amp。D2amp。D3amp。D4。 CASE TMP ISWHEN 0111=Q=0001。WHEN 1011=Q=0010。WHEN 1101=Q=0011。WHEN 1110=Q=0100。WHEN OTHERS=Q=1111。 END CASE。 END PROCESS。 END CH41_ARC。5)、LIBRARY IEEE。 USE 。 ENTITY CH31A ISPORT(SEL:IN STD_LOGIC_VECTOR(2 DOWNTO 0)。 D1,D2,D3:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 END CH31A。 ARCHITECTURE CH31_ARC OF CH31A IS BEGINPROCESS(SEL,D1,D2,D3) BEGINCASE SEL IS WHEN 000=Q=D1。 WHEN 001=Q=D2。 WHEN 111=Q=D3。 WHEN OTHERS=Q=1111。END CASE。 END PROCESS。 END CH31_ARC。6)、倒計時模塊COUNT的VHDL源程序 倒計時模塊COUNT,該模塊實現(xiàn)答題時間的倒計時,在計滿100s后送出聲音提示。 LIBRARY IEEE。 USE 。 USE 。 ENTITY COUNT ISPORT(CLK,EN:IN STD_LOGIC。 倒計時模塊COUNT H,L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 SOUND:OUT STD_LOGIC)。 END COUNT。 ARCHITECTURE COUNT_ARC OF COUNT ISBEGINPROCESS(CLK,EN) VARIABLE HH,LL:STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGINIF CLK39。EVENT AND CLK=39。139。THENIF EN=39。139。THENIF LL=0 AND HH=0 THEN SOUND=39。139。 ELSIF LL=0 THEN LL:=1001。 HH:=HH1。 ELSE LL:=LL1。 END IF。 ELSE SOUND=39。039。 HH:=1001。 LL:=1001。END IF。 END IF。 H=HH。 L=LL。 END PROCESS。 END COUNT_ARC。 顯示譯碼模塊DISP的VHDL源程序LIBRARY IEEE。 USE 。 ENTITY DISP IS PORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 END DISP。 ARCHITECTURE DISP_ARC OF DISP IS BEGINPROCESS(D) BEGIN CASE D IS WHEN0000=Q=0111111。 WHEN0001=Q=0000110。 WHEN0010=Q=1011011。 WHEN0011=Q=1001111。 WHEN0100=Q=1100110。 WHEN0101=Q=1101101。 WHEN0110=Q=1111101。 WHEN0111=Q=0100111。 WHEN1000=Q=1111111。 WHEN1001=Q=1101111。 WHEN OTHERS=Q=0000000。END CASE。 END PROCESS。 END DISP_ARC。28