7-1 Verilog 计时器

使用工具:Xilinx ISE 14.7

使用Verilog实现秒表计时器

在设计秒表计时器中涉及到了计时器使能信号(start ,stop和inc(手动增加数位))以及计时器数据增大进位的设计

计时器的使能信号使用了状态机来控制方便从开始状态到暂停状态以及从暂停到继续状态的转换

计时器数据的操作使用了4个10进制计时器级联,低位数级会对高位数级产生影响,比如进位控制

具体设计如下:

7-1 Verilog 计时器_第1张图片7-1 Verilog 计时器_第2张图片

为了方便系统的设计,因此将两个图整合得到:

7-1 Verilog 计时器_第3张图片

在设计的时候需要注意的有:

1、对于时钟的控制,因为开发板的时间是1e-8秒每一个脉冲,而计时器是从1e-3秒开始计数的所以要对时钟进行分频

2、在进行计数器的设计时,使用低位数级的进位标志符一起控制高位数级的计数器的触发

3、这里使用到了小数点,对应开发板的DP,由于在Nexys3中,只要给DP一个使能信号,在当前时间点被使能的7段数码管对应位置都会显示小数点,因此,对于小数点的操作要只在对应位置使能。

4、在进行进位操作时,有两种实现组合逻辑实现和实现逻辑实现。用组合逻辑(wire)实现时,可以当当前位为9时再赋予进位,如果使用时序逻辑实现时必须要赋予提前量,也就是说当前位位8时就给进位标志赋值1,因为当前位为8时,将要显示的是9,这时候可以把进位标志存储到提前量中。如果在实现逻辑中当当前量为9时才给进位标志赋值,这时候因为硬件是并发执行的,下一位的获取的数据还是当前的进位标志而不是赋值后的进位标志也就是0,这是后就会出现进位标志慢了一个时钟沿,就会出现09到00再到11的情况。所以使用时序逻辑赋值进位标志时要赋予提前量。

工程代码量较大,下面给出对应的工程链接:点击打开链接



你可能感兴趣的:(Verilog成长记)