基于PCI Express的设计是复杂验证问题的经典范例。采用一个符合性检查表可以马上开始验证计划。但你还需要一种良好规划的验证方法来解决以下问题:要验证哪些符合性条目?是否已覆盖所有的符合性情况?你是否可以向你的经理提交进度报告?
对验证工程师而言,这些挑战并不新鲜。不过复杂的验证项目需要更大的验证团队进行更多的规划,以免在符合性检查表的1300多个条目中迷失方向。
可以制定一份内容全面的检查表作为一个符合性验证计划,来确认如何使符合性条目和验证环境自动提供的数据互相关联。这涉及到把英文定义映射成一种机制。我们常常低估了这一工作量,并很容易在检查单独一个情况和证明所有情况中的某一特定任务之间发生混淆。
且让我们以PCI Express符合性检查表条目TXN.2.1#2为例进行说明。假定Fmt、Type的字段值分别为Fmt[1:0] 和 Type[4:0],如基础规范表2-3所示。所有其它编码都被保存。 Fmt和Type字段决定处理层数据包(TLP)的类型并相应地采用正确的解码技术。此时,必须编写一个断言语句来测试这些值的有效性。不过,若没有一个测量标准或指标来报告由被测设备(DUT)产生并发送的TLP类型,该断言语句就几乎没有任何意义。此外,可能取得的组合总数有128个值,其中只有25个是有效的。所以,若只依赖这个断言来判断符合性将会产生误导。
因此,必需跟踪这一断言语句涉及的所有可能情况。功能覆盖是实现方法之一。你可以定义功能覆盖来跟踪所有被发送的TLP的Fmt和Type值。
至此,你已建立起了必需的基础架构:断言语句和功能覆盖(用来检查字段值正确与否并跟踪DUT发送的所有TLP)。利用测量标准,该架构可以提供即时的且一致的反馈信息。
对于复杂的PCI Express问题,首先应该以一种很容易被转换为验证计划的方式提前做计划并编写规格。其次,分析验证计划所涉及的问题并构建断言、功能及代码覆盖的基础架构。最后,把计划条目映射到已建好的基础架构上。
这样,你便拥有了一个可跟踪、可预测的验证环境,能够对其行评估从而重新确定验证方向。
作者:Levent Caglar
高级验证应用专家
Cadence公司
京公网安备 11011202001138号
