我如何让Modelsim警告我“X”信号?

时间:2014-09-01 12:29:58

标签: modelsim

我正在使用Modelsim进行大型设计。

我已经了解了modelsim仿真的工作方式。我想知道,有没有一种方法,当modelsim在模拟阶段评​​估一个信号时,它发现它是一个红色信号,即'X',以警告我它?

知道无法列出设计的所有信号并逐一查看。 此外,很难为所有信号设置断言命令。

1 个答案:

答案 0 :(得分:2)

您可以使用when命令在满足条件时执行所需的操作。 find命令可以从设计层次结构中提取信号。查看Modelsim命令参考文档以查看其所有选项。 examine命令用于确定数组和标量类型信号的长度。此示例不适用于记录类型。

proc whenx {sig action} {
  when -label $sig "$sig = [string repeat X [string length [examine $sig]]]" $action
}

foreach s [find signals -r /*] {whenx $s "echo \"$s is an X at \$now\""}

此示例不处理仅部分为X的数组。虽然您可以在when表达式中使用数组索引来测试单个位,但不清楚如何在Modelsim tcl中以编程方式确定数组的边界。

您可以使用when取消所有nowhen *条件。