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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8557|回复: 21

[讨论] 前仿加延迟是起什么作用?

[复制链接]
发表于 2013-11-5 16:49:21 | 显示全部楼层 |阅读模式

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

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

x
最近找工作,很多面试官都提问,“前仿加延迟起什么作用”?以前在opencorce上下载源代码的时候,也发现这个问题,一直没有深究,以为没有多大作用。最近感觉这个问题应该不是简简单单的为了使得波形好看,应该还有其他原因,特上论坛求助。
发表于 2013-11-5 17:00:12 | 显示全部楼层
1,看波形方便
2,更接近寄存器行为
发表于 2013-11-6 10:27:32 | 显示全部楼层
还有一个有实际作用的:
在clock rising edge 又读又写寄存器是有歧义的(究竟哪个在前面?)
verilog 有blocking / non-blocking assignment之分,靠这个来保证先后顺序。如果大家都按规矩写,就不用在RTL写delay。
但是pattern可能写的比较乱,在跟RTL接口的地方可能有读写先后顺序的歧义。
所以可以在RTL里面写个delay来消除读写先后顺序的歧义。
发表于 2013-11-7 13:33:43 | 显示全部楼层
这种玩意在实际中容易乱,感觉用处不大
发表于 2013-11-7 21:13:57 | 显示全部楼层
感觉以前比较强调,就是为了错开时钟沿和数据,让它们不要同时变化。否则,采样时钟是采到变化前还是变化后的数据取决于仿真器。错开的话,跟实际电路比较接近,仿真也不容易出错。
但现在好像只要阻塞和非组合赋值用得恰当,仿真是不会有问题的,也就不用加延迟了。不加延迟看波形时更方便。
发表于 2013-11-7 21:19:35 | 显示全部楼层
消除寄存器分频时钟和原时钟打出数据信号的竞争。
发表于 2013-11-8 22:13:46 | 显示全部楼层

RE: 前仿加延迟是起什么作用?

回复 6# Timme

如果分频时钟用阻塞复值描述,寄存器用非阻塞复值的话,用分频时钟采样原时钟打出的数据,应该不会有竞争
发表于 2013-11-8 23:13:14 | 显示全部楼层
回复 1# zhanglinlin0514


   为了方便看波形图,不过基本现在都不主张加延时语句了
发表于 2013-11-11 10:27:45 | 显示全部楼层
回复 6# Timme


    这个说的有道理
真正用过的才知道

不过我们一般不会这么用(感觉有点麻烦)
我们一般都是simulation_option的时候使用一个initial forever来生成一个blocking的分频时钟
synthesis_option的时候就是1个DFF来进行分频
不知道这样的话有什么潜在的问题么?
这样用的话感觉还好 尤其是分频时钟与原时钟域如果有数据交互的时候
在post-simulation的时候就用真正的电路了 功能仿真和pre-simulation的时候就用simulation_option来做
发表于 2013-11-11 10:42:09 | 显示全部楼层
看波形方便,尽量少加,只加1个仿真单位,可以消除一些多时钟关系带来的时序上的歧义。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 16:18 , Processed in 0.023279 second(s), 9 queries , Gzip On, Redis On.

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