最佳实践的验证

最大化效率有几件事要记住当实现UVM方法。

受欢迎程度

由安Steffora Mutschler
先进的验证方法的出现如UVM及其前身VMM和OVM技术已经在许多方面改变了验证格局。设计和验证团队用来担心模拟器性能(即。,速度模拟器运行一个特定的测试用例),但引入constrained-random刺激和功能覆盖率和相关的工具和技术使得工程团队来衡量整体验证效率。

“用户早就明白,如果你可以创建一个新的测试,达到覆盖目标一半的时间上测试,你有效地增加一倍的速度模拟器。这使得更多的控制在用户的手中,“验证专员指出汤姆•菲茨帕特里克导师图形。“不管的方法,创建一个验证环境并非一项简单的任务,因为这些方法帮助用户通过提供部分中开发的基础设施来支持他们在这项努力。”

不从哪里开始
Janick Bergeron的第一件建议,验证研究员Synopsys对此,给工程团队是没有开始的地方:不从基类规范,因为UVM不仅仅是类库。“这不仅仅是把的源代码。必须使用正确的方法,基础库的方式设计。VMM也是如此。不是因为你使用UVM报告机制,你突然UVM用户。有更多的。”

同时,他告诉用户不要感到气馁,UVM最初的印象,他们可能会是非常复杂的。“这在一定程度上是正确的。然而,这些复杂性的存在是有原因的。的水果10或15年先进的验证项目的人以前去过那里。参与设计的人知道需要什么,知道需要投资现在,什么是必要的让你的生活更容易从长远来看。”

从哪里开始,Open-Silicon发现三件事是很好的实践实现UVM时,根据高级工程师约翰·斯泰尔斯。“首先是建立一个全公司范围内的基础库,可以从项目中重用。这个基地库将包含任何公司特定的扩展标准UVM库,并提供从项目的一致性。每个主要的UVM类应该延长。这个扩展允许公司变化改变日志信息的格式和共同特征添加到基类。即使目前没有希望改变一个类的功能还应扩展到给未来可能的特性的一个占位符。”

第二种做法是为新员工提供培训UVM,他解释说。“这个培训可以通过一个内部开发的类或由外部供应商。UVM是大型和复杂的所以它是重要的对新员工开始在一个坚实的基础。除了培训UVM方法、培训或文档应提供在任何公司具体更改UVM方法。”

最后,斯泰尔斯强调,testbench花时间创建一个完整的架构,应设计完全支持所有必需的特性的测试设计所需的序列和覆盖率。“从架构应该制订一个实施计划,包括几个步骤从基本testbench完整的实现全部testbench testbench架构。一些可能的措施包括基本骨架testbench所有所需的短波紫外线和其他组件连接,但是没有真正的功能;的一个版本testbench支持最初的RTL调出,将推动刺激,但可能不是自检;最后完全随机testbench覆盖关闭和随机模拟的支持。”

或者简单地说,“忠于方法测量您的测试效率,自动化调试,”亚当•谢尔提供产品管理总监节奏。

福利子系统验证
当涉及到知识产权,给定的子系统使用的增加,一个标准化的方法是利用重用IP供应商的关键。构建一个子系统验证环境或SoC验证环境与多个IP是一个任务,可以成为成本效益如果IP验证UVM基础设施、营销副总裁杰克。布朗说,在超音速。

“UVM提供了必要的钩子连接IP特定端口或接口,”布朗说。“被动监视器、记分板组件和功能覆盖率模块可重用SoC /子系统验证。UVM验证基础设施用于执行功能验证IP可重用的验证子系统和SoC水平,”他说。

UVM津贴
Fitzpatrick指出其前任UVM有两个相当大的优势,使其更有效的实现验证关闭。“首先,作为标准,支持所有主要的供应商。用户现在有能力编写testbenches一次,用一段代码来评估来自不同供应商的不同的验证平台和工具,而不是被锁定到一个特定的供应商通过其专有的方法。这迫使厂商投资开发工具和技术来改善验证流。”

他指出,这种强调竞合理论一直是努力的核心标准。

“UVM第二个优势是,在发展中UVM,我们能够从别人的错误中吸取教训,”他说。“因此,UVM包括特性的超集方法的早些时候,我们已经能够将它们集成在一个连贯的方式。因为所有组件UVM有类似的方法和使用模型,很容易组装的基本环境,更重要的是,能理解一个环境或组件,你可能从其他地方获得的。”

这意味着有很多功能在UVM Fitzpatrick承认。“然而,UVM的美妙之处在于它的模块化可以采用增量,而不必了解整个事情之前,你甚至可以开始。两个关键特性的方法是做constrained-random刺激的能力和功能覆盖率。虽然这些多年来一直在SystemVerilog语言特性,UVM提供了基础设施,使它们更容易利用,在一定程度上,通过支持事务级建模(TLM)的概念。TLM让验证工程师思考的活动系统的交易,这是一种更自然的方式来思考事情比针摆动。”

从哪里开始
与现有环境工程团队想移动UVM,尝试的第一件事就是添加功能覆盖率。这是通过将UVM监控组件附加到现有的总线和使用监视器将pin-level活动转化为交易,他解释说。UVM允许交易被送到一个覆盖收集器记录活动在公共汽车上看到这样的有效性刺激可以确定。

而用户经常意识到通过这一目标测量的功能覆盖他们的刺激并不像他们认为的那样有效,这是相对简单的运用UVM序列指定事务级constrained-random刺激驱动模拟,Fitzpatrick表示。“UVM的灵活性允许您创建许多不同的序列,可以在您的环境中运行,并使用你的功能覆盖率来确定最有效的序列。所有这些就都可以实现不用太深入研究使用面向对象的继承或UVM的更高级的功能配置和工厂。”

这些功能验证环境,允许结构的随机化testbench以及生成的数据,它可以被认为是一层在测试层的顶部添加现有UVM环境。

“有点采用第一个几块的深谋远虑UVM会给你添加这个额外的灵活性的基础你了解更多关于UVM,”他指出。“所以,UVM得到一个行业标准库,简化了创建模块化的任务,可重用,事务级环境中创建constrained-random刺激序列和衡量其有效性使用功能覆盖。你编写代码后,你现在有能力评估工具和技术从多个数据源,以充分利用您的投资发展环境的地方。”

社区是关键
节奏的谢尔说,把一个工程团队的指导原则的道路上更有效UVM验证,它是充满活力的社区,加强了这些原则。

他建议最好的地方与社区Accellera系统计划UVMWorld.org和它的行业领袖回答问题从基本的论坛指南通过复杂,特定于任务的的几个小时内。还有UVM视频在单独的商业论坛。

“所以,遵循的方法,测量你的效率,和自动化调试作为社区的一员UVM最大化效率,“他总结道。

资源:
www.accellera.org
www.uvmworld.org
www.verificationacademy.com



留下一个回复


(注意:这个名字会显示公开)

Baidu