基于fpga的数字闹钟设计内容摘要:

ess(clk) begin if clk39。 event and clk=39。 139。 then if (sec1=0101 and sec2=1001)then sec1=0000。 else if sec2=1001then sec1=sec1+1。 end if。 end if。 end if。 end process s110。 秒个位 s220:process(clk) begin if clk39。 event and clk=39。 139。 then if sec2=1001 then sec2=0000。 else sec2=sec2+1。 end if。 end if。 end process s220。 时间设置小时部分 sethour1:process(clk,seth2) begin if clk39。 event and clk=39。 139。 then if seth1=0010and seth2=0011 then seth1=0000。 elsif seth2=1001 then seth1=seth1+1。 end if。 end if。 end process sethour1。 sethour2:process(clk,md1,md2,seth1) begin if clk39。 event and clk=39。 139。 then if (seth1=0010and seth2=0011)or seth2=1001then 选题背景 12 seth2=0000。 elsif md1=39。 139。 and md2=00 then seth2=seth2+1。 end if。 end if。 end process sethour2。 时间设置分钟部分 setmin1:process(clk,setm2) begin if clk39。 event and clk=39。 139。 then if setm1=0101and setm2=1001then setm1=0000。 elsif setm2=1001then setm1=setm1+1。 end if。 end if。 end process setmin1。 setmin2:process(clk,md1,md2) begin if clk39。 event and clk=39。 139。 then if setm2=1001then setm2=0000。 elsif md1=39。 139。 and md2=01then setm2=setm2+1。 end if。 end if。 end process setmin2。 闹铃 speaker:process(clk,hou1,hou2,min1,min2) begin if clk39。 event and clk=39。 139。 then if seth1=hou1 and seth2=hou2 and setm1=min1 and setm2=min2 then clken=39。 139。 else clken=39。 039。 end if。 end if。 end process speaker。 disp:process(md1,hou1,hou2,min1,min2,sec1,sec2,seth1,seth2,setm1,setm2) begin if md1=39。 039。 then计时时间显示和设置模式 h1=hou1。 h2=hou2。 m1=min1。 m2=min2。 s1=sec1。 s2=sec2。 else 闹铃时间现实和设置模式 h1=seth1。 h2=seth2。 m1=setm1。 m2=setm2。 s1=1111。 s2=1111。 end if。 end process disp。 end one。 第四 章 模块电路设计 13 3)乐曲演奏模块: LIBRARY IEEE。 USE。 USE。 ENTITY Speakera IS PORT ( clk : IN STD_LOGIC。 Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0)。 SpkS : OUT STD_LOGIC )。 END。 ARCHITECTURE one OF Speakera IS SIGNAL PreCLK, FullSpkS : STD_LOGIC。 BEGIN DivideCLK : PROCESS(clk) VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0)。 BEGIN PreCLK = 39。 039。 将 CLK 进行 16 分频, PreCLK 为 CLK 的 16 分频 IF Count411 THEN PreCLK = 39。 139。 Count4 := 0000。 ELSIF clk39。 EVENT AND clk = 39。 139。 THEN Count4 := Count4 + 1。 END IF。 END PROCESS。 GenSpkS : PROCESS(PreCLK, Tone) 11 位可预置计数器 VARIABLE Count11 : STD_LOGIC_VECTOR (10 DOWNTO 0)。 BEGIN IF PreCLK39。 EVENT AND PreCLK = 39。 139。 THEN IF Count11 = 167FF THEN Count11 := Tone。 FullSpkS = 39。 139。 ELSE Count11 := Count11 + 1。 FullSpkS = 39。 039。 END IF。 END IF。 END PROCESS。 DelaySpkS : PROCESS(FullSpkS)将输出再 2 分频,展宽脉冲,使扬声器有足够功率发音 VARIABLE Count2 : STD_LOGIC。 BEGIN IF FullSpkS39。 EVENT AND FullSpkS = 39。 139。 THEN Count2 := NOT Count2。 IF Count2 = 39。 139。 THEN SpkS = 39。 139。 ELSE SpkS = 39。 039。 END IF。 END IF。 END PROCESS。 END。 LIBRARY IEEE。 USE。 USE。 ENTITY NoteTabs IS PORT (clk : IN STD_LOGIC。 ToneIndex : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) )。 END。 ARCHITECTURE one OF NoteTabs IS COMPONENT MUSIC 音符数据 ROM PORT(address : IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 选题背景 14 inclock : IN STD_LOGIC。 q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 END COMPONENT。 SIGNAL Counter : STD_LOGIC_VECTOR (7 DOWNTO 0)。 BEGIN CNT8 : PROCESS(clk,Counter) BEGIN IF Counter=138 THEN Counter = 00000000。 ELSIF (clk39。 EVENT AND clk = 39。 139。 ) THEN Counter = Counter+1。 END IF。 END PROCESS。 u1 : MUSIC PORT MAP(address=Counter , q=ToneIndex, inclock=clk)。 END。 LIBRARY IEEE。 USE。 ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0)。 Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0)。 en : IN STD_LOGIC)。 END。 ARCHITECTURE one OF ToneTaba IS BEGIN PROCESS(Index,en) BEGIN IF en=39。 039。 THEN Tone=11111111111。 使能信号 ELSE CASE Index IS 译码电路,查表方式,控制音调的预置数 WHEN 0000 = Tone=11111111111。 WHEN 0001 = Tone=01100000101。 WHEN 0010 = Tone=01110010000。 WHEN 0011 = Tone=10000001100。 WHEN 0101 = Tone=10010101101。 WHEN 0110 = Tone=10100001010。 WHEN 0111 = Tone=10101011100。 WHEN 1000 = Tone=10110000010。 WHEN 1001 = Tone=10111001000。 WHEN 1010 = Tone=11000000110。 WHEN 1100 = Tone=11001010110。 WHEN 1101 = Tone=11010000100。 WHEN 1111 = Tone=11011000000。 WHEN OTHERS = NULL。 END CASE。 END IF。 END PROCESS。 END。 LIBRARY ieee。 USE。 LIBRARY altera_mf。 USE。 ENTITY music IS PORT 第四 章 模块电路设计 15 ( address : IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 inclock : IN STD_LOGIC。 q : OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 END music。 ARCHITECTURE SYN OF music IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (3 DOWNTO 0)。 COMPONENT altsyncram GENERIC (intended_device_family : STRING。 width_a : NATURAL。 widthad_a : NATURAL。 numwords_a : NATURAL。 operation_mode : STRING。 outdata_reg_a : STRING。 address_aclr_a : STRING。 outdata_aclr_a : STRING。 width_byteena_a : NATURAL。 init_file : STRING。 lpm_hint : STRING。 lpm_type : STRING)。 PORT ( clock0 : IN STD_LOGIC。 address_a : IN STD_LOGIC_VECTOR (7 DOWNTO 0)。 q_a : OUT STD_LOGIC_VECTOR (3 DOWNTO 0))。 END COMPONENT。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。