我正在使用Modelsim进行大型设计。
我已经了解了modelsim仿真的工作方式。我想知道,有没有一种方法,当modelsim在模拟阶段评估一个信号时,它发现它是一个红色信号,即'X',以警告我它?
知道无法列出设计的所有信号并逐一查看。 此外,很难为所有信号设置断言命令。
答案 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 *
条件。