【正文】
下從仿真波形可知,當(dāng)計(jì)數(shù)到59時(shí),下一個(gè)時(shí)鐘上升沿到來(lái)時(shí)就清零了,并且產(chǎn)生進(jìn)位信號(hào),符合設(shè)計(jì)要求。 c=39。event and clk=39。 c:out std_logic)。end rtl。 end if。event and clk=39。 dout:out std_logic_vector(7 downto 0)。有靜音模式。 待改進(jìn)功能:1. 系統(tǒng)沒(méi)有萬(wàn)年歷功能,正在思考設(shè)計(jì)方法。 c:out std_logic)。139。 if clr=39。時(shí)計(jì)數(shù)器模塊仿真波形如下從仿真波形可知,當(dāng)計(jì)數(shù)到23時(shí),下一個(gè)時(shí)鐘上升沿到來(lái)時(shí)就清零了,符合設(shè)計(jì)要求。end t_s。139。139。分和秒計(jì)數(shù)模塊框圖如下3. 按鍵消抖動(dòng)模塊按鍵消抖動(dòng)有很多方案,這里選擇的是計(jì)數(shù)消抖,即只當(dāng)有效電平到來(lái)后開始計(jì)數(shù),當(dāng)計(jì)數(shù)值大于一定值后再輸出該有效電平,否則不輸出,從而達(dá)到消抖目的。139。 else dout=39。 end process。 beep:out std_logic)。n:=n+1。 end if。 SB: in std_logic。end entity clock。 ponent segmain is port(clk,reset_n:in std_logic。 clk1k:in std_logic。 sys_en,sys_rst:in std_logic。 signal reg_m_m:std_logic_vector(7 downto 0):=X59。 signal sys_clk1:std_logic。 signal sys_en:std_logic:=39。begin h:t_h port map(en=sys_en,clk=clk_h,clr=sys_rst,dout=reg_h)。 haoin4:haoin port map( SD,sys_clk64,SDc)。 then t1:=t1+1。 if t4=clki/8 then t4:=0。 end if。 and SDc=39。139。039。then sys_clk4_NL_m=sys_clk4。 dout(23 downto 16)=reg_h。begin if reg_m=X59 and (reg_s=X50 or reg_s=X52 or reg_s=X54 or reg_s=X56 or reg_s=X58) then clk_ring_t:=sys_clk500。 end if。 end if。end process p_ring。event and sys_clk1k=39。 else clk_ring_t:=39。 dout(15 downto 8)=NL_reg_m。039。 else clk_m=c_s。 else sys_clk4_NL_h=39。 then clk_h=sys_clk4。 sys_clk1k=not sys_clk1k。 end if。 t64:=t64+1。 beep=clk_ring and mh。 s:t_s port map(en=sys_en,clk=sys_clk1,clr=SCc,dout=reg_s,c=c_s)。 signal clk_ring,mh:std_logic。 signal sys_clk64:std_logic。 signal clk_h:std_logic。 beep:out std_logic)。 end ponent。 seg_data:out std_logic