【正文】
STD_LOGIC)。 END jianbie。 ARCHITECTURE jianbie_mk OF jianbie IS BEGIN PROCESS(CLK,CLR) BEGIN IF CLR=39。039。THEN 利用 IF_THEN_ELSE 語句 Q=39。039。 ELSIF CLK39。EVENT AND CLK=39。039。THEN 邊緣檢測信號為低電平 Q=39。139。 END IF。 END PROCESS。 END jianbie_mk。 6 鎖存器模塊源代碼 LIBRARY IEEE。 USE 。 ENTITY suocunqi IS PORT(D1,D2,D3,D4:IN STD_LOGIC。 輸入端口定義 4 個變量 CLK,CLR:IN STD_LOGIC。 Q1,Q2,Q3,Q4,ALM:OUT STD_LOGIC)。 END suocunqi。 ARCHITECTURE suocunqi_mk OF suocunqi IS BEGIN PROCESS(CLK) BEGIN IF CLR=39。039。THEN Q1=39。039。 Q2=39。039。 Q3=39。039。 Q4=39。039。 ALM=39。039。 ELSIF CLK39。EVENT AND CLK=39。139。THEN 檢測為高電平,則有人搶答 Q1=D1。 Q2=D2。 Q3=D3。 Q4=D4。 ALM=39。139。 END IF。 END PROCESS。 END suocunqi_mk。 模塊源代碼 LIBRARY IEEE。 USE 。 ENTITY zhuanhuan IS PORT(D1,D2,D3,D4:IN STD_LOGIC。 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 END zhuanhuan。 ARCHITECTURE zhuanhuan_mk OF zhuanhuan IS BEGIN PROCESS(D1,D2,D3,D4) VARIABLE TMP:STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN TMP:=D1amp。D2amp。D3amp。D4。 7 CASE TMP IS 類似于真值表的 CASE 語句 WHEN 0111=Q=0001。 WHEN 1011=Q=0010。 WHEN 1101=Q=0011。 WHEN 1110=Q=0100。 WHEN OTHERS=Q=1111。 END CASE。 END PROCESS。 END zhuanhuan_mk。 三選一模塊源代碼 LIBRARY IEEE。 USE 。 ENTITY sanxuanyi IS PORT(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 sanxuanyi。 ARCHITECTURE sanxuanyi_mk OF sanxuanyi IS BEGIN PROCESS(SEL,D1,D2,D3) BEGIN CASE SEL IS WHEN 000=Q=D1。 WHEN 001=Q=D2。 WHEN 111=Q=D3。 WHEN OTHERS=Q=1111。 END CASE。 END PROCESS。 END sanxuanyi_mk。 倒計時模塊源代碼 LIBRARY IEEE。 USE 。 USE 。 ENTITY daojishi IS PORT(CLK,EN:IN STD_LOGIC。 H,L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 SOUND:OUT STD_LOGIC)。 END daojishi。 ARCHITECTURE daojishi_mk OF daojishi IS 8 BEGIN PROCESS(CLK,EN) VARIABLE HH,LL:STD_LOGIC_VECTOR(3 DOWNTO 0)。 BEGIN IF CLK39。EVENT AND CLK=39。139。THEN IF EN=39。139。THEN IF 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 daojishi_mk。 片選模塊源代碼 LIBRARY IEEE。 USE 。 ENTITY pianxuan IS PORT(CLK:IN STD_LOGIC。 A :OUT INTEGER RANGE 0 TO 7)。 END pianxuan。 ARCHITECTURE pianxuan_mk OF pianxuan IS BEGIN PROCESS(CLK) VARIABLE AA:INTEGER RANGE 0 TO 7。 定義標(biāo)準(zhǔn)邏輯位矢量類型 BEGIN IF CLK39。EVENT AND CLK=39。139。THEN 利用 IF_THEN 語句 AA:=AA+1。 END IF。 A=AA。 END PROCESS。 END pianxuan_mk。 9 顯示模塊源代碼 LIBRARY IEEE。 USE 。 ENTITY xianshi IS PORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 END xianshi。 ARCHITECTURE xianshi_mk OF xianshi IS BEGIN PROCESS(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=0000111。 WHEN1000=Q=1111111。 WHEN1001=Q=1101111。 WHEN OTHERS=Q=0000000。 END CASE。 END PROCESS。 END xianshi_mk。 頂層文件源代碼 LIBRARY IEEE。 USE 。 USE 。 ENTITY QDQ IS PORT(CLK,CLR:IN STD_LOGIC。 D1,D2,D3,D4:IN STD_LOGIC。 SOUND: OUT STD_LOGIC。 SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0)。 Q: OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 END QDQ。 ARCHITECTURE DCWJ OF QDQ IS COMPONENT jianbie PORT(CLK,CLR:IN STD_LOGIC。 10 Q :OUT STD_LOGIC)。 END COMPONENT。 COMPONENT pianxuan PORT(CLK:IN STD_LOGIC。 A:OUT STD_LOGIC_VECTOR(2 DOWNTO 0))。 END COMPONENT。 COMPONENT suocunqi PORT(D1,D2,D3,D4:IN STD_LOGIC。 CLK,CLR:IN STD_LOGIC。 Q1,Q2,Q3,Q4,ALM:OUT STD_LOGIC)。 END COMPONENT。 COMPONENT zhuanhuan PORT(D1,D2,D3,D4:IN STD_LOGIC。 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 END COMPONENT。 COMPONENT sanxuanyi PORT(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 COMPONENT。 COMPONENT daojishi PORT(CLK,EN:IN STD_LOGIC。 H,L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 SOUND:OUT STD_LOGIC)。 END COMPONENT。 COMPONENT xianshi PORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 Q:OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 END COMPONENT。 SIGNAL C,D,A1,A2,A3,A4:STD_LOGIC。 SIGNAL B1,B2,E,F:STD_LOGIC_VECTOR(3 DOWNTO 0)。 SIGNAL M:STD_LOGIC_VECTOR(2 DOWNTO 0)。 BEGIN U1:suocunqi PORT MAP (D1=D1,D2=D2,D3=D3,D4=D4,CLK=C,CLR=CLR, Q1=A1,Q2=A2,Q3=A3,Q4=A4,AlM=D)。 U2:pianxuan PORT MAP( CLK=CLK,A=SEL)。 U3:jianbie PORT MAP ( CLK=CLK,CLR=CLR,Q=C)。 U4:daojishi PORT MAP (CLK=CLK,L=B1,H=B2,SOUND=SOUND,EN=D)。 U5:zhuanhuan PORT MAP(D1=A1,D2=A2,D3=A3,D4=A4,Q