Verilog和SystemVerilog定义了4种描述信号状态

verilog和systemverilog定义了4种描述信号状态: 1, 0, x, and z。1和0无疑是真实存在的信号状态. 而z用来表示高阻态,x用来表示不确定的状态。
x信号可以有意或无意地被创建,最常见的x信号存在于未被初始化的memory register,这里x用来表示这些memory在reset之前的的未知状态 。其他一些可以产生x的场景包括了不同的driver驱动同一块逻辑到不同的逻辑值,或者是在low power中的关断信号,又或者是一些超过选择范围的多比特信号。 有些设计者会对design中那些dont care的信号设为x,让综合工具在做优化的时候来随机选择0或者1进行优化。也有些设计者为了debug的目的在设计中对那些不会用到的逻辑值设x,这样在做仿真的时候如果使用到这些逻辑,说明电路有问题,而仿真工具产生的x可以检查到这些逻辑。有意地设置一些x信号是比较有争议的做法。在做lint检查的时候也会被标识出来。但是有些x状态由于仿真器识别的原因(verilog x optimism)会产生错误的仿真结果。这就属于rtl的bug了。
第一个verilog x optimism的例子来自if...else语句:
1
2
3
4
5
6 always_ff@(posedge clk)begin
if(cond)
c <= a;
else
c x/z的处理。下面的这些状态转移都会被视为posedge:
0->1, 0->x, 0->z, x->1, z->1
0->x or x->1实际上不一定是posedge,但在仿真中,他们都会被当作posedge处理。

硅片价格上涨 引发Intel和TSMC供应风险
使用STM32生成多路的PWM信号
Linux和QNX操作系统在智能驾驶上的使用区别
Nature:当AI遇见量子计算,会引发科学革命吗?
高端对话║互联网设计如何服务制造业
Verilog和SystemVerilog定义了4种描述信号状态
5G/NB-IoT如何在燃气领域大展拳脚
NVIDIA为需要加速计算的企业客户运行测试服务器
技术已成手机行业升级敲门砖 存储变革正悄然发生
一加5什么时候上市最新消息:一加5旗舰即将发布,骁龙835+首部8G内存,秒小米6!
语音合成芯片的特点及选型
SKJ-II型数字随动系统中PWM功率变换控制系统
Omniverse 课程系列 7:使用 Isaac Sim 实现机器人仿真入门
一文详解HLS从C/C++到VHDL的转换
ARHT和伦敦商学院合作推出了实时全息讲师
全新结构开放数控系统的研究
c语言中的转义字符
3D面部模型实现一部智能手机就行了
小米王腾辟谣小米10 Pro海报 并称太丑了
如何选择超声波储罐液位传感器(一)