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

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