在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 15496|回复: 26

[求助] 时序调整问题

[复制链接]
发表于 2011-12-1 20:25:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
最近在接手维护离职同事的项目,FPGA控制的多信号采集存储系统。没想到他几万行的代码都没写注释,头都大!!看代码的时候发现他经常用下来的语句来调整时序:




  1. module example(iclk,idata,odata);
  2. input iclk;
  3. input idata;
  4. output odata;

  5. reg rdata1,rdata2,rdata3;
  6. always@(posedge iclk)
  7. begin
  8.     rdata1<=idata;
  9.     rdata2<=rdata1;
  10.     rdata3<=rdata2;
  11. end
  12. assign    odata = rdata3;
  13. endmodule


复制代码



请问这种这种延时靠谱吗,是他比较厉害规划出要设置几个reg来控制延时,还是这样写不好?


很多时候他的设计,嵌套在大模块底下的小模块的一些判断下降沿的语句:




  1. module example2(imainclk,idata,odata);
  2. input imainclk,idata;
  3. output odata;
  4. reg rdata1,rdata2;
  5. always@(posedge imainclk)
  6. begin
  7.     rdata1<=idata;
  8.     rdata2<=rdata1;
  9.     if(rdata2 == 1 && rdata1 == 0)
  10.         odata<=1;
  11.     else
  12.         odata <=0;
  13. end
  14. endmodule


复制代码



请问各位大大,这样的他为什么要这样写,改成if(posedge idata)会有什么区别啊?
发表于 2011-12-1 20:39:02 | 显示全部楼层
回复 1# johnnyluck

他那么判断下降沿是对的。因为实际沿检测电路就是那样的

你那个写法我没见过,你确定语法正确?
你可以自己试验下么
发表于 2011-12-1 20:56:32 | 显示全部楼层
1.用打拍方式调整时序是很常用的做法,用于多条通路同步数据。
2.这么判断下降沿没问题。你说的那种方法虽然方便,但是对时序来说很不好。
头像被屏蔽
发表于 2011-12-1 20:59:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2011-12-1 21:05:59 | 显示全部楼层
回复 2# marsfabio

谢谢,以前只在学校小打小闹,没有经验。
 楼主| 发表于 2011-12-1 21:11:43 | 显示全部楼层
回复 3# falloutmx


   谢谢,我还是学生,刚出来实习,没接触过大项目。很多不懂。谢谢!但是用这种打拍的方式的话,如果是大系统的话,我怎么知道应该打多少拍才能满足时序要求啊?是需要仿真仿出来吗?
 楼主| 发表于 2011-12-1 21:14:32 | 显示全部楼层
回复 4# addr


   谢谢!我上面举的例子只想说明这种打拍的方式,没写复位信号,谢谢提醒。我也很想多学习代码风格,苦于刚接触。
发表于 2011-12-1 22:30:39 | 显示全部楼层




   这个打拍,不需要你去仿真打几拍合适..大部分这个操作是在跨时钟域信号传递的IO处理部分的逻辑处理,避免亚稳态用的。。。。
你可以看看用到这个模块的地方的前后模块,是不是clk的频率不同.
发表于 2011-12-2 08:50:01 | 显示全部楼层
你需要先画出时序图,然后就知道延迟几拍了。

你同事做的比较标准,你要学他,别乱改。
发表于 2011-12-2 13:31:37 | 显示全部楼层
这个同事写的代码挺规范的,符合硬件描述语言的规则,楼主说的方法我是从来没见过的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-23 01:50 , Processed in 0.021131 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表