提高与 X 态相关的仿真和调试的效率
Verilog 和 VHDL 通常用于对数字设计进行建模。设计人员使用 RTL 构造来描述硬件行为。但是,某些 RTL 仿真语义不足以准确模拟硬件行为。因此,与实际的硬件行为相比,仿真结果要么过于乐观,要么过于悲观。
由于这些语义限制,Verilog 和 VHDL RTL 模拟器忽略了 X 值控制信号的不确定性,并分配了可预测的输出值。因此,RTL仿真通常无法检测到与缺乏X传播相关的设计问题。然而,这些相同的设计问题可以在门级仿真中检测到,并且通常必须运行许多栅极级仿真才能调试与X相关的问题。借助 VCS® 中 RTL 的新 X 传播支持,工程师现在可以节省时间和精力来调试 RTL 和门级仿真结果之间的 X 建模差异。
VCS Xprop
VCS® Xprop 旨在帮助在 RTL 中发现与 X 相关的问题,并减少对冗长的门级仿真的要求。在两种HDL语言Verilog和VHDL中,条件构造的仿真语义不足以准确模拟未初始化寄存器和复位值上电时固有的模糊性。当建模为"X"值的不确定状态成为控件表达式时,这些问题尤其成问题。
启用 VCS Xprop 时突出显示的最常见的仿真差异来源之一是不正确的初始化序列。该行为通常是由复位或时钟信号从 0 转换到 X、1 到 X 或反之亦然引起的。如果触发器对其时钟信号的上升沿敏感,则在使用Verilog姿势或传统的VHDL触发器行为代码(clk'event'和clk'1')进行编码时,X到1的转换将触发触发触发器并将值从输入传递到输出。相反,如果触发器是使用 VHDL rising_edge(event) 构造编码的,则触发器将不会加载新值。实际上,Verilog 构造以及其中一个 VHDL 构造将 X 到 1 的转换视为真,而另一个 VHDL 构造将其视为 false。但是,在VCS Xprop仿真中,相同的时钟转换将导致触发器合并输入和输出,从而可能导致未知值。因此,要有效地将新值加载到触发器上,必须确保时钟信号具有有效且稳定的值,这些值将在通过支持 VCS Xprop 的仿真的 RTL 运行中显示。