[SystemVerilog语法拾遗] systemverilog中各种延时方式详解

本文详细介绍了SystemVerilog中的阻塞赋值、非阻塞赋值和连续赋值三种赋值方式下的延时处理,以及#1延时的不同使用位置。同时纠正了一个关于无损delay的常见误解。

[SystemVerilog语法拾遗] systemverilog中各种延时方式详解

最近在做系统集成的时候经常会用到模块间信号连接的时候增加delay的操作,而systemverilog语法中支持各式各样的delay添加方法。
sv中有3种类型的赋值: 阻塞赋值、非阻塞赋值和连续赋值。
延时(#1)写的位置有2种:
当延时(#1)写在整个表达式最前面时,三种类型的赋值,延时结果一致是:等待_忽略中间变化再计算
当延时(= #1)写在等于号(=)后面时:
1.连续赋值语法错误排除。
2.阻塞赋值是:先计算后延时再赋值
3.非阻塞赋值是:直接跟随
这样组合下来总共有6中添加延时的方式,如下图所示:
在这里插入图片描述
延时分类图示

下文为转载文章,详细介绍各种delay方式的示例原理,最后补充说明文章中一处错误的讲解。

Verilog语法之延时

说明
LHS: Left-Hand-Side,左式;
RHS: Right-Hand-Side,右式;
`timescale 1ns/100ps;

连续赋值中的延时

LHS中加延时

assign #2 y = ~a;
描述:非门的延时为2ns,输入端信号变化到输出端体现出来需要2ns时间。即a发生变化后,经过2ns时间,y才发生变化。
注意:任意小于2ns的信号变化脉冲都被过滤掉。例如:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值