2
我正在使用Modelsim进行大型设计。我如何让Modelsim提醒我关于'X'信号?
我读过有关modelsim仿真的工作方式。我想知道,有没有一种方法可以在modelim在模拟阶段评估一个信号并发现它是一个红色信号(即'X')来警告我?
知道不可能列出设计的所有信号,并逐个查看它们。 另外,对所有信号进行断言命令都非常困难。
我正在使用Modelsim进行大型设计。我如何让Modelsim提醒我关于'X'信号?
我读过有关modelsim仿真的工作方式。我想知道,有没有一种方法可以在modelim在模拟阶段评估一个信号并发现它是一个红色信号(即'X')来警告我?
知道不可能列出设计的所有信号,并逐个查看它们。 另外,对所有信号进行断言命令都非常困难。
当条件满足时,您可以使用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中以编程方式确定数组的边界并不清楚。
您可以用nowhen *
取消所有when
条件。