OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6393|回复: 4

第一个实验:点亮流水灯时间不精确

[复制链接]

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2018-11-20
在线时间
18 小时
发表于 2019-6-28 20:25:56 | 显示全部楼层 |阅读模式
3金钱
       尊敬的 正点原子团队 以及 论坛里的各位 大佬,小弟请教一个问题:
      在手把手教你学 FPGA 教程里,第一个实验 流水灯,每隔 0.2 秒 切换 下一个led 灯,可是仔细研究了代码,并做了仿真之后,发现led灯 切换的时间 不是0.2s,而是 0.2秒 再加 20ns
      1 :先贴出一段源码
      实验里里计数器部分源代码如下:
      //计数器对系统时钟计数,计时0.2秒
    always @(posedge sys_clk or negedge sys_rst_n) begin
    if (!sys_rst_n)
        counter <= 24'd0;
   else if (counter < 24'd1000_0000)
         counter <= counter + 1'b1;
    else
        counter <= 24'd0;
    end
    2: 对counter 的值 进行分析
   这样 counter 的值 不就是 从 0 变化到了 1000_0000,共 1000_0001 个时钟周期了吗?  (时钟频率是50MHZ,一个时钟周期 就是 20ns)   共 0.2秒 再加 20ns , 那流水灯 的切换间隔 不就多     了  20 ns 了吗?




    3: 仿真验证 一下 (图看不清的话,可以下载 在放大了看
      仿真验证 一下 ,这里把  if (counter < 24'd1000_0000) 改成  if (counter < 24'd10)    目的是便于仿真观察。
   
shangchuan.JPG

   4 : 问题来了   

       所以,是不是 应该把  if (counter < 24'd1000_0000) 改成  if (counter < 24'd1000_0000 — 1'b1)  更好呢 ?






































最佳答案

查看完整内容[请看2#楼]

对的,计数器从0开始计数,如果严格计算周期是应该减去1。这里是为了方便计算,没有减1,Modelsim仿真实验的视频是以流水灯为例的,有对这个作说明
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2019-6-28 20:25:57 | 显示全部楼层
对的,计数器从0开始计数,如果严格计算周期是应该减去1。这里是为了方便计算,没有减1,Modelsim仿真实验的视频是以流水灯为例的,有对这个作说明
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2019-6-29 02:43:30 | 显示全部楼层
帮顶
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-5-12
在线时间
2 小时
发表于 2019-7-3 22:36:06 | 显示全部楼层
学习了,谢谢!
我试了一下果然如此.
就是后面判断的时候也别忘了-1

if(count == 24'd10_000_000 - 1'b1)
   ...
回复

使用道具 举报

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2018-11-20
在线时间
18 小时
 楼主| 发表于 2019-7-4 09:42:47 | 显示全部楼层
snakeqx 发表于 2019-7-3 22:36
学习了,谢谢!
我试了一下果然如此.
就是后面判断的时候也别忘了-1

共同进步:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-3 07:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表