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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: johnnyluck

[求助] 时序调整问题

[复制链接]
发表于 2011-12-2 13:36:42 | 显示全部楼层
你同事写的没有问题!
发表于 2011-12-2 15:38:14 | 显示全部楼层
写得不错!就是少点comment!
发表于 2011-12-3 19:01:40 | 显示全部楼层
回复 6# johnnyluck


    所以怎么从一个好学生变成一个优秀的工程师。那就是多想少做,事半功倍。打几拍,什么信号的上升沿,哪两个信号与一起,都需要在动手敲代码之前想清楚。同样开发一个模块需要10天,清华的学生可能想8天,写2天;普通的学生会想5天,写5天;在校学生只混1天,写9天。哪个方法好,最终质量孰好,你可以在之后的项目中体会到。

p.s. 要做同步电路,切勿乱动时序块alway@()中的边沿触发信号。
发表于 2011-12-3 19:36:17 | 显示全部楼层
1. The first part should be only used by single bit retiming. Mostly used by sync Asynchronous signal. Never use it on Data Bus directly.

2. That the edge detection. It is the normal way to do it. If you use @(posedge xxx), the synthesis tool sometime would this that is another generated clock. Most time that is not what we want. You can try to synthesis it and check what's the difference between these two style.
发表于 2011-12-3 20:49:00 | 显示全部楼层
没有问题。
发表于 2011-12-4 21:14:20 | 显示全部楼层
延迟几个节拍可能有几种需要,在跨时钟域的时候,对于单BIT的控制信号可以使用这样的延迟消除亚稳态。在同步时钟域中如果是对边沿的检测也是通过延迟来实现,还有就是时序的需要。
从这个实例中可以看出代码规范及注释的重要性,写代码时一定需要规范及注释。
发表于 2011-12-5 12:06:53 | 显示全部楼层
还是学生的路过。受益匪浅,顶下帖子…
发表于 2011-12-5 13:42:06 | 显示全部楼层
这两个程序都没什么问题,
第一个程序是双跳技术,用于处理跨时钟控制信号,这么写主要是因为idata不属于iclk这个时钟域;而一般对于跨时钟数据处理可以用FIFO缓冲数据。
第二个程序也比较标准,而如果采用楼主的方案,属于异步处理,容易产生时序上的问题。
发表于 2011-12-7 17:22:51 | 显示全部楼层
回复 13# richardman0


    兄弟··清华的?清华的数字设计很强的吧?
发表于 2011-12-7 18:42:32 | 显示全部楼层
1、这种延时是可以的,而且比较准;
2、if(posedge idata)这种写法也不是不可以;不过假若idata不干净的话很容易误触发,他的写法里的时钟如路径如果用时钟树,会干净得多。常规的写法就是像他那样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

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

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