有效仿真与测试向量的准备:挑战与应对策略
在电路设计与验证的过程中,确保设计的正确性和功能性是至关重要的。本文将深入探讨有效仿真和测试向量的准备,分析其中面临的挑战,并介绍一些应对策略。
1. 属性与断言在仿真中的作用
属性嵌入在断言中,有助于确保综合代码在仿真期间按预期运行。属性还能为形式验证做出贡献,因为它们提供了关于设计如何工作以及应满足哪些属性的额外细节。不过,在综合过程中,属性会像断言语句一样被忽略。
需要注意的是,断言的有效性完全取决于施加到携带它们的被测单元(MUT)的刺激序列。以FIFO为例,在仿真期间必须完全填充和清空队列,否则断言语句将无法在不同使用条件下检查指针算术。检查满队列对写请求的反应以及空队列对读请求的反应是很重要的。
2. 详尽验证的局限性
确保设计没有任何潜在缺陷的唯一可靠方法是详细验证设计的功能行为。详尽验证要求通过在每个可能的状态 ( s \in S ) 下使用每个可能的输入条件 ( i \in I ) 来遍历设计状态图中的所有边。
设 ( w_i )、( w_s ) 和 ( w_o ) 分别表示输入、状态和输出向量的位数。可能的输入符号的最大数量 ( |I| ) 为 ( 2^{w_i} ),但需要扣除寄生(即未使用)的输入代码,对于 ( |S| ) 也是类似的情况。虽然通常无法准确确定 ( |I||S| ),但可以给出一个上界:
[ c_{exh} \geq |I||S| \leq 2^{w_i + w_s} ]
其中,当没有寄生状态和输入符号时,“小于或等于”运算符取等号。
以Intel 8080微处理器为例,假设没有寄生状态和输入符号
超级会员免费看
订阅专栏 解锁全文
1374

被折叠的 条评论
为什么被折叠?



