• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 采用OVM实现可重用的验证平台

采用OVM实现可重用的验证平台

录入:edatop.com    点击:

测试作为验证的顶层

标准验证平台的结构中有一个顶层的模块(top),在顶层模块中例化了DUT(alu),DUT接口(alu_if)和一个顶层的类(test_env);顶层的类(test_env)即验证环境中包含了验证平台的所有组件,可以在这个架构中应用的SystemVerilog技术例如约束随机数的产生和功能覆盖率。

图1 标准验证平台的顶层结构
图1 标准验证平台的顶层结构

在标准的验证架构中,如图1所示,顶层的对象是一个环境类,其中嵌入了激励产生器。这限制了添加和修改测试的灵活性。

将激励生成算法从验证平台的结构中分离出来,这样可以让我们将一个测试的类(test)作为顶层的对象而不是一个环境的类(env)。

图2 测试作为验证的顶层
图2 测试作为验证的顶层

如图2所示,test_MAC是我们的测试,它是一个类,其中包含四个成员:

1.一个sequence(MAC_sequence),其可以生成一系列事务交易;在这个例子中,事务交易通过sequence生成,是一个实现了乘累加算法的激励序列。

2.一个验证环境(t_env),其例化包含了各种验证组件。

3.Factory的重写,可以为MAC的测试动态地创建一个验证环境。

4.配置信息,可以为MAC的测试动态地配置验证环境。

相对于标准的验证平台,测试作为验证的顶层在添加和修改测试上提供了很大的灵活性。每个测试可以定义它自己特定的配置信息,在编译完所有的测试和验证组件之后,每个测试可以不用重新编译就能运行,因为每个测试在它运行的时候可以动态的创建和配置验证架构。

采用了这种方法,上述例子可以根据不同的应用被配置到特定的测试中,包括选择特定的记分板,给测试指定一个合适的衡量机制,选择一个特殊的事务处理器或者配置一个可预测的结果。在某些情况下,整个层次化的模块可能被代替,例如激励生成模块,分析模块和监视模块。从而,同一个验证环境(test_env)能够被不同的测试(test)多次重用,动态创建和配置。

激励产生与验证架构分离

图3 标准的激励产生模块
图3 标准的激励产生模块

就如我们前面所说的激励产生、事务交易在验证平台中的验证组件――激励产生器中创建生成;如图3所示,在我们的例子中driver是一个事务处理器,可以接受ALU的事务交易,例如加、减操作,将其分解送入到ALU的管脚级的端口中。在DUT和事务处理器之间通过虚接口(virtual interface)来实现。

激励生成算法被嵌入在产生器的类中:stimulus_gen,这种接口限制了修改测试的灵活性。为了添加或者修改测试,产生器的对象需要被另外一个产生器代替,从而需要重新配置和重新编译。除了支持上述方法,OVM推荐了另外一种方法:把激励生成的算法模块从验证平台的结构中分离出来,从而在添加和修改测试上提供更大的灵活性。

图4 层次化的激励产生模块
图4 层次化的激励产生模块

在图4中,生成事务交易的算法包含在一个sequence对象中:MAC_sequence,这不是一个结构化的验证组件,而是存在于验证架构以外。OVM提供了sequence,在验证架构以外来生成事务交易。整个激励层次由一个sequence (MAC_sequence),一个sequencer和一个事务交易器driver组成。sequencer同步了MAC_sequence和driver之间的通信。

作者:钟文枫

  应用工程师

  Mentor Graphics

  ahan.mail@g mail.com

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:为什么需要进行WiMAX协议一致性测试?
下一篇:保护测试测量设备的隔离技巧

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图