e_er的个人空间 https://blog.eetop.cn/42169 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

UVM方法学部分概念一

已有 6459 次阅读| 2014-3-26 21:14 |个人分类:验证

学习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的灵活性。





点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 1

    获赞
  • 0

    评论
  • 328

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-27 03:51 , Processed in 0.014985 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部