微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于verilog语句中的延时

关于verilog语句中的延时

时间:10-02 整理:3721RD 点击:
verilog语句中是可以指定延时的,但我始终不能明白这个延时的意义所在。延时是由硬件决定的,怎么
能在硬件描述语言中指定呢。都说延时是不可以综合的,只能用于仿真,但是仿真的意义不就在于检验电
路设计的正确性吗,如果说延时对实际生成的硬件来说是没有影响的,那么延时岂不是失去了存在的意义

我起初认为verilog中的延时仅仅是为了描述testbench,但似乎这种观点并不是完全正确,希望过路人能
解释一下verilog语言中的延时的意义和用途。小弟在此不胜感激。

在一些大的设计中,由于仿真工具串行执行的局限性,有时候仿真会有问题,需要加入延时使仿真正确。
以前的书都说,综合时延时语句是不考虑的;但是,我听工程师说现在延时也可以综合了。who knows?

是呀,我以前也认为延时是不可综合的,但一篇英文文章中,详细的讲述了什么样的延时可以综合,什么样的延时不可以综合,搞得我更不明白了。

延时可以用模块代替,对模块比较了解!

真是比较高深啊

verilog中的延时是不可综合的 一般用于仿真
综合后的网表中会包含延时信息 这样可以在后仿真时正确描述实际电路的行为

仿真方面二楼说的没问题。
而综合方面肯定不可综合的。
在综合的时候,就是相当于一种注释。注意要用其他方式实现。如调实例化模块,设置时序约束等。
反正光靠编程写语言文件是没法综合的。

同问 对这个问题也不清楚 希望有高人解答

Gate level 起作用的, 插入buffer (Inverter)

不懂...

我怎么越看越不懂了

没听说 《= Delay 还能综合的;
只是给仿真用的。
要想综合延时,估计要用特定的module或语句告诉综合器,用buffer做出延时来。

delay is used only in testbench.

Any delay is simply ignored by design compiler.

你看的一定是学术方面的。商业化的不支持

望高人多多指点!

延时的作用有很多:
(1) Stimulus中时序的控制。例如时钟生成,等待,模拟input/output延迟, etc.
(2) 描述模块(模拟部分或者外部模块)的行为模型。例如PLL,POR,AD/DA,Memory等等。
(3) 控制事件的顺序,特别是在monitor和reporter里面。
(4) 带时序模型和RTL混仿时在interface处加延迟来解决setup/hold问题。

仿真用

不可综合的。只是simulation可用。

我在公司听到的两个说法:一是synopsis 的VCS跑仿真,不加延时的话,在某些时候会工作异常。不过,我没碰到过。二是模拟真实器件的setup time。
我的理解:如果不加延时,从波形上看,在clk的上升沿去采数据时,如果数据是从‘0’到‘1’的跳变(或者相反),此时clk上升沿是与数据的跳变沿对齐的。理论上采集的是‘0’,但这样比较费解,因为毕竟是数据的跳变沿,为什么采集的不是‘1’呢。如果加了延时,clk的上升沿会与数据的跳变沿错开,逻辑清晰。而且这样也确实类似于setup time。

插入反相器链就是最基本的延时的只不过这个延时不可能是任意值

对于Verilog中的延时,在做P&R后仿真还是很有用的,一般而言tb给的时钟和数据都是理想的,但是时钟是会插时钟树以保证到达各个寄存器的时钟边沿基本对齐,但是给入的数据确是理想无延迟的,此时做仿真就会出现setup vialotion那么这时人为加入延时就可以解决这个问题

你们想把偶搞蒙啊!呼呼!

真正的硬件和加上SDF的后仿真的波形都是有延迟的,时钟上升沿与信号的跳变通常会分开一段时间,这段时间就是setup time和hold time;如果在rtl设计中不加延迟,时钟边沿与信号的跳变没有时间差,波形看起来与真实的硬件行为不一样,为了在rtl设计中描述真实的硬件行为,才需要手动添加延迟。而这样添加延迟是不可综合的。

楼上说的不错

我也有点困惑,看看,学习学习

RTL可综合设计,一般是不需要在其中加入延时的,及时加入,通常综合工具也会忽略。
但延时在构造仿真用例时很有用。毕竟,实际电路是存在延时的。
BTW:因为verilog simulator工具对某些特殊RTL设计风格支持不好,仿真出错,所以在极特殊情况下,需要在RTL设计里加入一些延时来绕过simulator的问题。

要多理解下
时延只有综合仿真里考虑

先下些资料看看

用于仿真,不可综合。
在Xilinx的一些IP(如GTP)中,会自动地产生100ps左右的延迟供user进行行为级仿真。

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

网站地图

Top