秒表计时电路设计verilog解答.doc

电子科技大学通信学院 秒表计时电路实验报告 班 级 通信一班 学 生 学 号 教 师 秒表计时电路 秒表计时电路 一、设计思路概述 1.设计要求 秒表计时功能,显示分、秒、0.01秒 具有启动、暂停、停止和清空功能 增加有趣的流水灯 输入信号:4bit按键,50MHz时钟 输出信号:6位数码管 2.设计分析 本设计要求秒表计时功能,显示分、秒、0.01秒,而这可以由分频电路实现,将电路的输入时钟进行分频,得到1/60Hz,1Hz,和100Hz信号,就可以达到本设计要求的显示要求了。 本设计要求具有启动、暂停、停止和清空功能,而这个可以由状态机实现,通过合理的配置状态转换,就可以达到要求。 流水灯的实现说来简单,其实也可以做的复杂,漂亮的流水灯其观赏性还是很好地,这里我们只讨论简单流水灯的实现,即单个灯从左到右逐步发光。这实际是一个移位寄存器,我们可以通过不同的时钟来驱动它,实现不同的流水速度。这里,我们实现了一个1Hz,和一个10Hz的流水灯电路。 二、总体设计框图及详细说明 三、各部分代码设计 1、500000进制计数器(分频器)设计: always @(negedge clk or negedge rst10ms) begin if (~rst10ms) begin clk10ms=0; clk10msreg=0; end else if (clk10msreg == 249999) begin clk10ms=~clk10ms ; clk10msreg=clk10msreg+1; end else if (clk10msreg==499999) begin clk10ms=~clk10ms; clk10msreg=0; end else begin clk10msreg=clk10msreg+1; end end 2、状态机设计 always @(negedge clk or negedge clear) begin if (~clear) begin state = idlestate; rst = 0; rst10ms = 0; end else begin case (state) idlestate: begin if(~start) begin state= prestate; rst=0; rst10ms=0; end else state=idlestate; end prestate: begin state=runstate; rst=1; rst10ms=1; end holdstate: begin if(~stop) begin state=idlestate; rst=1; rst10ms=0; end else if(~start) begin state= runstate;

文档评论(0)

1亿VIP精品文档

相关文档