eda技术课程设计-彩灯控制器设计内容摘要:

end if。 end if。 7 end if。 end process。 process(clk,clr) variable c:std_logic_vector(1 downto 0)。 begin if clr=39。 139。 then clk3=39。 039。 else if clk39。 event and clk=39。 139。 then if c=01then c:=00。 clk3=39。 139。 else c:=c+1。 clk3=39。 039。 end if。 end if。 end if。 end process。 process(clk,clr) variable d:std_logic_vector(1 downto 0)。 begin if clr=39。 139。 then clk4=39。 039。 else if clk39。 event and clk=39。 139。 then if d=11then d:=00。 clk4=39。 039。 else d:=d+1。 clk4=39。 139。 end if。 end if。 end if。 end process。 clk1_1=clk1。 clk2_1=clk2。 clk3_1=clk3。 clk4_1=clk4。 end architecture caideng。 8 程序编译成功之后即可进行波形的仿真,为了方便观察显示结果,这里调节仿真时间为 1us ,脉冲频率 clk 的周期为 20ns,复位信号为 clr.。 保存之后,执行Quartus 软件中的 processing start simulation 选项,即可观察到波形仿真图像。 图 4— 1 时序电路波形仿真图 通过观察可以发现,时钟信号一直以 20ns 的频率输入,在复位信号 clr为高电平的时候,计数器中间变量 a、 b、 c、 d 被置为零。 当复位信号 clr 不为高电平时,变量 a、 b、 c、 d 开始计数,当 b 计够两个时钟周期的上升沿的时候,clk2_1 被置为高 电平,等待下一个时钟上升沿来临的时候,重新置为低电平,如此循环得到新的时钟周期。 Clk1_ clk3_ clk4_1 类似,在此重点解释一下clk1_1,由于显示模块要使用低频的时钟信号,所以 clk1_1 的中间变量被设为记满“ 1111100”才被置为高电平,用以降低频率,延长显示时间。 显示模块 library ieee。 use。 use。 entity XHKZ is port(clk:in std_logic。 clr:in std_logic。 LED7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。 end entity。 architecture caideng of XHKZ is signal n:std_logic_vector(9 downto 0)。 SIGNAL DISPLAY:STD_LOGIC_VECTOR(6 DOWNTO 0)。 9 begin process(clk,clr) is begin if clr=39。 139。 then —— 复位信号为高电平,中间量 n 清零 n=0000000000。 elsif clk39。 EVENT AND clk = 39。 139。 then —— 否则如遇到时钟上升沿,计数开始 if n=1111111111 then —— 计满“ 1111111111” ,将中间量清零 n=0000000000。 else n=n+1。 end if。 if n=0000000000 and n=0111010100 then DISPLAY=1110111。 elsif n=0111010100 and n=1010101000 then DISPLAY=1111111。 elsif n=1010101000 and n=1111111111then DISPLAY=0111001。 end if。 end if。 end process。 LED7=DISPLAY。 end architecture caideng。 图 4— 2 显示电路波形仿真图( 1) 10 图。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。