微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 在always语句块时钟沿赋值时,是否应该加延时呢?

在always语句块时钟沿赋值时,是否应该加延时呢?

时间:10-02 整理:3721RD 点击:
本人初学,这个问题困扰了我好久。比如在下面的赋值语句中always@(posedge clk) output<=1;
在时钟沿赋值时,是否应该添加延迟呢?在李新兵的书的例程中,所有的这种赋值语句前面都加上了 `DELAY  (DELAY=1) 语句,我看有一份华为的编程规范中也说要加。就我个人认为,加上延迟之后,能给仿真器更明确的信息,仿真应该更准确。
但是在我看过的大部分书和资料里这种赋值语句都没有加延迟。请大神赐教,是不是需要加延迟呢?如果需要的话,一般加多少的延迟呢?

求大神指导。

加上延迟是个好习惯,仿真更加接近真实电路,模拟的是电路中tco的时间。
加多少没有明确规定,加个小的延迟就够了,低频电路简单点加1ns,高频电路小于1ns都可以



   非常感谢。

不用加,仿真器会加上delta delay

不用加

对仿真有点意义,对实现没意义

对仿真有点意义,对实现没意义



   哦  这样呀。你一般用那种仿真器呢?



   我觉得加上后仿真更快一点。综合的时候综合工具自动就把#xx 屏蔽了。

若所有的 registers 都用同一個 clock,  可不用加.
但若雖然是同一 clock source, 但某部份的 register 的 clock 有 gating, 有部份没有 clock gating
如此, 不同的 register間 就會有 racing 產生, 不容易 debug.


VCS

还是加上吧!这样仿真出来的结果更准确,不过这个对综合是没有任何作用的,一般延迟时钟周期的十分之一就可以啦!如 ·timescale 10ns/1ns        #1就可以啦!



   非常感谢。复制去Google翻译翻译结果

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top