2014-09-01 19 views
2

我正在使用Modelsim进行大型设计。我如何让Modelsim提醒我关于'X'信号?

我读过有关modelsim仿真的工作方式。我想知道,有没有一种方法可以在modelim在模拟阶段评​​估一个信号并发现它是一个红色信号(即'X')来警告我?

知道不可能列出设计的所有信号,并逐个查看它们。 另外,对所有信号进行断言命令都非常困难。

回答

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中以编程方式确定数组的边界并不清楚。

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