UVM方法学部分概念一

上一篇 / 下一篇  2014-03-26 21:14:50 / 个人分类:验证

学习UVM基础知识,面向对象设计思想OOP,可以增加重用性,多态性,扩展性。对于OOP的概念需要花时间理解和实践。

UVM Overview。验证平台组建:testbench、component、env。验证方法论:function coverage、random env,满足全面、快速测试。在不修改testbench情况下,通过修改testcase的方式以提高测试灵活性和效率。分层测试的思想:分三级block level、IP level、Soc level。

UVM基本元素component(ovm_object、component、agent、test、sequencer等)、元素间链接communication、元素间传输数据data。

UVM规定元素运行顺序phase:build、connect、endif、startof、run、extract、check...。runtest是平台执行入口,用于找到工程中的test并执行。runtest执行时在工厂中找到想要运行的testcase,testcase要注册到工厂中。runtest执行可以通过+UVM_TESTNAME传递需要测试的test,test_name要提前注册到工厂中。runtest可以看到import进来的UVM_PKG的所有信息。phase执行顺序,是通过父子关系决定的,不是指类的父子关系,而是module包含关系,是引用与显性的定义。build时是自上而下的顺序,主要原因是,上层要替换底层组件,同时梳理出结构。run操作是并行执行的,其他phase从下而上运行,因为经过build阶段,上层清晰知道下层信息,所以可以自底而上运行。build时替换的操作与好处:上层执行set_inst_override_bytype宏,可以再顶层搜寻工厂中的组件,用于替换底层某组件。举个具体例子,设计时可以设计多个driver(正常或异常的处理),在某个testcase组件中,就可以调用异常driver实现测试异常用例,而不需要修改平台或env,灵活性重用性强。

UVM TLM:基于事务传输,通过fuction:get/put用于组件间通信。

Transaction class:这个类无phase概念,也需要注册到工厂。sequence:即sequence item。sequncer、driver、agent(passive仅打开monitor、active打开driver和monitor)、env、testclass。

UVM 中report/filter功能,开发时将打印加好,可以通过UVM_MEDIUM设置HIGH、LOW、DEBUG,选择过滤打印条件,确定打印信息层次。这是debug的灵活性。





TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2019-01-22  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 12498
  • 日志数: 12
  • 建立时间: 2014-02-09
  • 更新时间: 2014-03-31

RSS订阅

Open Toolbar
博聚网