VCS Xprop 

提高 X 相关仿真和调试的效率 

概述
Verilog 和 VHDL 常用于数字设计建模。 设计人员使用 RTL 构造描述硬件行为。 然而,某些 RTL 仿真语义不足以准确地为硬件行为建模。 因此,相比实际硬件行为,仿真结果要么太过乐观,要么太过悲观。

因为这些语义限制,Verilog 和 VHDL RTL 仿真器会忽略掉控制信号上的X不定态,在输出上会分配一个固定的数值。 这样造成的结果就是,由于缺少X的传播, RTL 仿真器往往无法检测到和 X态相关的设计问题。 然而,同样的设计问题可以在门级仿真中检测出来,因此许多时候必须运行大量的门级仿真,只是为了调试 X 相关问题。 现在VCS® 在RTL阶段提供了的全新 X 传播(X-propagation)支持,使用该技术,工程师可以节省大量用于调试RTL和门级仿真的X建模的差异上的时间和精力。

VCS Xprop 数据手册

VCS Xprop
VCS® Xprop 旨在帮助寻找 RTL 中的 X 相关问题,减少对冗长的门级仿真的需求。 两种 HDL 语言,Verilog 和 VHDL 的条件构造仿真语义都不足以精确地为未初始化的寄存器和上电复位值中固有的模糊性建模。 当建模为 'X' 值的不确定状态成为控制表达式时,这些问题格外棘手。

启用 VCS Xprop 时,突出的仿真差异最常见的来源之一就是不正确的初始化序列。 该行为通常因为复位/时钟信号从 0 转换至 X、从 1 转换至 X,或反之亦然。 如果触发器对时钟信号的上升沿敏感,X 到 1 的转换将触发触发器,当使用 Verilog 上升沿或传统 VHDL 触发器行为代码进行编码时,输入值传递至输出,代码为:clk’eventclk’1’。 相反,如果触发器使用 VHDL rising_edge(event) 构造编码,则触发器将不会加载新值。 实际上,Verilog 构造以及一种 VHDL 构造认为 X 到 1 的转换为真,而其他 VHDL 构造认为假。 然而,在 VCS Xprop 仿真中,同样的时钟转换将导致触发器合并输入和输出,从而可能导致未知的值。 因此,要想有效地将新值加载到触发器,您必须确保时钟信号的值有效且稳定,这样的情况将通过启用 VCS Xprop 的仿真显示在 RTL 运行中。

VCS Xprop
图 1: 有和没有 VCS Xprop 的 Verilog 语义

VCS Xprop 范围和支持
VCS Xprop 的范围可由用户控制,允许对于设计进行部分设置。 用户还可以配置 VCS Xprop,使用不同的合并算法(提供支持更多或更少的保守语义)。 VCS Xprop 适用于所有 VCS 支持的测试平台和高级描述语言(SystemVerilog、SystemC/ C++ 和 VHDL)。 VCS Xprop支持和VCS的技术进行一起仿真,包括:覆盖率,调试,原生的低功耗仿真等。同时也支持VCS AMS混合协同仿真

VCS Xprop
图 2: 启用和未启用 VCS Xprop 时的VCS 原生低功耗仿真

VCS Xprop 调试
当在启用 VCS Xprop 的仿真中发现错误时,用户依然可以存储波形。 在 RTL 中调试 X 相关仿真失配实际比在门级调试更容易,因为 RTL 描述更接近于电路的实际功能意图。 调试 RTL 仿真故障有不同的方法,但典型的情况是:,当启用 VCS Xprop时,运行回归测试,当发现一个回归或测试失败时,打开波形存储,然后重新运行错误测试,用户执行到测试故障的位置(通常可通过断言或监控故障识别),用户利用信号追踪以识别 X 的来源,寻找问题的根源。

VCS Xprop
图 3: 在 Verdi3™ 中 X 追踪启用 VCS Xprop 的仿真

VCS Xprop 提高 X 相关调试的效率
VCS Xprop 已经成功完成数十个商业设计,效果得到证明,自 2010 年来一直投入生产之中。 VCS Xprop 提供了一种在大型设计中快速调试 X 相关问题的方法,无需使用其他工具或重新编码。 要获得更多信息,请联系您的客户团队。

Synopsys 验证
要查看验证解决方案的完整列表,访问 http://www.synopsys.com/verification/

如需有关 Synopsys 产品、支持服务或培训的更多信息,请访问网站:www.synopsys.com、联系您当地的销售代表或致电 650.584.5000 。



NewsArticlesBlogsSuccess StoriesWhite PapersWebinarsVideosTraining Courses