[vcs] x-propagation flow

本文介绍了VCS仿真器在RTL仿真阶段支持的X-Propagation功能,旨在提前发现由X态传播引起的bug,遵循Shift-Left验证理念。X-Propagation有三种模式:tmerge、xmerge和nomerge,通过配置文件启用该功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

Verilog提供了四种状态来模拟实际电路的电平状态,1,0,x,z

在整个设计流程,包含了Simulation,综合,LEC等不同阶段对X态的解释不尽相同。
对于验证来说,在Simulation阶段进行RTL功能仿真时,X态表示unkown高低电平不确定的状态。 Verilog对于X态的propagate传播处理,是偏乐观的。而一些由于X态的传播导致的bug无法在正常的RTL仿真阶段发现,但是在Gate-level仿真时会被捕获到。有过经验的人都知道调试Gate-level仿真会比RTL仿真麻烦N倍。

在这个背景下,VCS仿真器对于RTL仿真提供了支持X-Propagation的功能,能够在RTL阶段就排除掉X态传播的影响。对于项目而言,越早的发现bug,消耗的成本也越低,这也正是Shift-Left验证左移的理念实践。

工作模式

目前X-propagation支持三种模式:

vmerge mode: 就是Verilog规定的X态处理行为,比较乐观;
tmerge mode: 更接近Gate-level仿真,也就是实际硬件行为,算法为当所有的可能值不同时,即认定为X;
xmerge mode: 比tmerge mode更悲观,无条件求值为X;

举例来说:

always @(*) begin
	if(cond)
		out = a;
	else
		out = b;
end

得到真值表为:

cond a b tmerge xmerge
x 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值