首页 百科知识 验证平台中的模块

验证平台中的模块

时间:2022-10-16 百科知识 版权反馈
【摘要】:另外一种必须使用模块的情况是重用以前的总线功能模型,这些模型都是基于模块的。这些例子中,已存在的基于模块的验证组件与AVM新开发的基于类的验证组件混合使用能力,关系到项目的成败。本章讨论的是在AVM验证平台中如何使用模块,将从介绍一个非流水线型总线协议开始,它是本章所有例子的基础。我们的第二个例子基于第一个例子,并以此说明如何用基于class的AVM的验证组件和合法的可重用的基于模块的组件来搭建一个完整的验证环境。

第9章 验证平台中的模块

在前面的章节中,介绍了如何构造基于类的验证组件。其中经常会出现疑问:“使用类还是模块构造验证组件?”答案视情况而定。一般来说,由于类的继承特性,基于类的组件更易定制和维护,随机化更易实现,例化也更灵活。但有些情况依然需要基于模块的验证组件,而且事实证明,这些情况下使用模块是完全正确的。

一种情况就是构造由监测接口错误(DUT外部错误)和值得关注的功能点的断言组成的监视器。因为SystemVerilog的类中不能包含时序性的断言,所以更高层(接口)断言必须封装于模块中,然后将该基于模块的监视器集成到验证平台中(与基于类的验证组件一起)。

另外一种必须使用模块的情况是重用以前的总线功能模型(BFM),这些模型都是基于模块的。例如,为当前项目重用以前项目中已存在的甚至是从第三方直接购买的基于模块的BFM,或者是已存在的需要基于模块封装的PLI或DPI模型。这些例子中,已存在的基于模块的验证组件与AVM新开发的基于类的验证组件混合使用能力,关系到项目的成败。

本章讨论的是在AVM验证平台中如何使用模块,将从介绍一个非流水线型总线协议开始,它是本章所有例子的基础。本章的第一个例子是构造由一组断言组成的监视器用于验证该总线行为的正确性,并将其管脚级行为转化为事物级信息流,以便验证平台其他组件使用这些信息流(如覆盖率收集模块)。该例讨论了如何构建由基于模块的监视器和AVM中各种基于类的验证组件一起组成的验证平台。

我们的第二个例子基于第一个例子,并以此说明如何用基于class的AVM的验证组件和合法的可重用的基于模块的组件来搭建一个完整的验证环境。比如我们用基于模块的BFM和基于class的BFM的接口封装来代替基于class的driver(在第一个例子中使用过的)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈