关于Verilog 延时模型的学习笔记。
文章目录
1 连续赋值延时
给连续赋值的延时值指定了 赋值运算符右侧操作数数值改变 到 左侧操作数完成赋值 需要的时间。
变为上升沿、下降沿、高阻态的延时可以配置为不同值。
需要区分两种延时赋值:
- 为连续赋值语句指定延时值。延时是连续赋值的一部分。
- 在net声明时指定的Net delay,然后对net进行连续赋值。
1.1 Net类型声明中的定义延迟(Net delay)
IEEE Verilog 2005标准的 Net 类型定义语法:

每个net最多可以指定3个延时值,对于gate和net来说,当没有给定延时值,默认值default delay为0。其他情况:
- 当给定一个延时值,这个延时指定所有传播延时。
- 当给定两个延时值,第一个值指定上升沿延时,第二个值指定下降沿延时。信号变为高阻抗或未知时的延迟应为两个延迟值中较小的一个。
- 当给定三个延时值:
- 第一个延时值用于转变为1的情况(上升沿延时)
- 第二个延时值用于转变为0的情况(下降沿延时)
- 第三个延时值用于转变为高阻态的情况。
例子:
and #(10) a1 (out, in1, in2); // only one delay
and #(10,12) a2 (out, in1, in2); // rise and fall delays
bufif0 #(10,12,11) b3 (out, in

本文详细介绍了Verilog中的延时模型,包括Net类型声明中的Netdelay和连续赋值过程中的延时。Netdelay允许指定上升沿、下降沿和高阻态的延时,而连续赋值延时则涉及赋值操作的延迟时间。过程赋值延时分为语句前和语句中的延时控制,影响赋值执行的时间点。文章通过实例解析了各种延时情况及其在仿真中的表现,有助于理解Verilog中的延时机制。
最低0.47元/天 解锁文章
6064

被折叠的 条评论
为什么被折叠?



