FPGA定时器的计数设置,是否要减1?(精密计数)
来源:互联网 发布:linux 赋值 命令结果 编辑:程序博客网 时间:2024/05/19 05:06
parameter T1US = 5'd20; //时钟晶振为20MHz
/*******************************/
reg [4:0]Count_1US;
reg is1US;
always @ ( posedge CLK or negedge RSTn )
if( !RSTn )
begin Count_1US <= 5'd0; is1US <= 1'b0; end
else if( Count_1US == T1US )
begin Count_1US <= 5'd0; is1US <= 1'b1; end
else
begin Count_1US <= Count_1US + 1'b1; is1US = 1'b0; end
仿真结果如下:
可以看到,第一次计数是正确的,然而在第二次计数则出现了问题。
原因是第二次开始时将1us的指示信号也包括进去了,导致多走了一个时钟。
因此,此种方式称之为精密计数,开始触发点要在将is1US寄存器置位0的时刻开始。
实现连续精密计时需要如下设置:
parameter T1US = 5'd20 - 1; //时钟晶振为20MHz
0 0
- FPGA定时器的计数设置,是否要减1?(精密计数)
- 51单片机计数/定时器设置
- FPGA定时计数的问题(新手上路)
- FPGA数码管计数功能
- 简单定时器及中断的应用(9999倒计数)
- 定时器/计数器的定时或计数范围
- 单片机在中断函数里定时器是否还计数问题
- ZIGBEE CC2430 使用Timer2定时器进行计数中断设置
- 计数
- 计数
- 计数
- 计数
- 计数
- 计数
- 计数
- 计数
- 82C54可编程计数定时器
- 002_设置使用计数的目的
- NOJ1143 字母转换
- 推荐一个设置鼠标cursor图标的网站、将PNG转换成ICO
- mysql int转换成string时类型要用char
- CODEFORCES630D-Hexagons!
- JavaScript学习 - 数组
- FPGA定时器的计数设置,是否要减1?(精密计数)
- IntelliJ-Idea工具的常用快捷键和在html里的常用快捷键
- 我的2015
- LEETCODE 125
- 630A. Again Twenty Five!
- 146.Evaluate the following SQL statement:
- IOS网络支持库AFNetworking(1)
- Spark的TaskScheduler和DagScheduler
- Jenkins + Git + fir 构建并分发 iOS 项目