1.OVM testbench 的层次

ovm_test定义在run_test(“ovm_test”)或者命令行参数中,通过ovm_root::run_test例化成ovm_test_top,具体过程是通过$value$plusargs获得test_name,然后通过factory.create_component_by_name例化ovm_test_top。env例化在ovm_test里面。

tb_top为module类型,例化dut和interface,并启动run_test。

2.Set_type_override_by_type和set_inst_override_by_type的区别

Set_type_override_by_type是指所有该类型的instance都将被替代。

Set_inst_override_by_type是指在特定hierarchy下的instance会被替代。

override的原理是每个class都将自己的type,name注册到ovm_object_wrapper[string]=type中,class通过create_object_by_name的方式来例化,所以只要修改哈希表中string对应的ovm_object_wrapper类型就可以实现override。

3. ovm_field_*的作用

class中的变量可以直接通过instance路径来赋值,而使用ovm_field_*的意义是:

1、    可以使用ovm_object内嵌的copy,compare, unpack, pack, print, sprint等function来处理对应的variable;

2、    在buildphase内可以自动更新值,即不需要显性地使用get_config_*来获取top层使用set_config_*设定的值。

3、    在environmentcreated之前,用 set_config_*给内部model设置variable,即在buildphase调用set_config_*。

4、    当environmentcreated之后,即在run phase时,可以直接通过model设值,如env0.master.monitor.active= 0。

4.define, parameter与localparam的区别

define 可以跨模块定义。

Localparam与parameter的区别在于模块实例化时localparam不能通过层次引用来进行重定义,而parameter可以。一般localparam用在模块内的状态定义。

即可以通过defparam重新定义其他模块内的parameter。

OVM学习--持续更新相关推荐

  1. IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流)

    IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流) 论文:Weighted Sum-Rate Maximization for Reconfigurable Intelligent Sur ...

  2. VBScript脚本语言学习(持续更新)

    这个语言非常简单...花了我几个小时就基本上掌握了.由于它比批处理强大很多,所以我很喜欢.用于日常管理我的Windows操作系统.下面是我的学习记录下来的重点和总结. A. 基础知识 1. Cbool ...

  3. 公众号资源方法,数据集,绘图学习持续更新记录~~~

    目录 方法: 数据集: 绘图: 方法: 1.CHANS模型N循环N通量:多元回归因素影响作用:主成分分析贡献率 中国县域农田氮素利用效率的驱动因素 knowledge:氮利用效率(NUE,定义为作为产 ...

  4. JS小型游戏框架coquette学习(持续更新)

    2019独角兽企业重金招聘Python工程师标准>>> coquette游戏框架学习 框架地址:https://github.com/maryrosecook/coquette 框架 ...

  5. linux系统的系统性学习 (持续更新)

    分类 系统启动过程 第一步:内核的引导. 第二步:运行 init 第三步:系统初始化 第四步:建立终端 第五步:用户登录系统 关机 查看系统基本信息 CPU相关 内存相关 查看网络信息 用户 服务 进 ...

  6. HTML、CSS、JavaScript学习笔记 图文并茂 案例详实(再次系统学习-持续更新)

    HTML学习笔记 2020/7/11 P1~P31 HTML基础知识点 2020/7/12 P31~P92 P31~P61 HTML基础 P62~P92 CSS基础 2020/7/13 P93~P11 ...

  7. Android开发学习持续更新中

    Android开发 单个Activity界面内的操作 控件1TextView控件使用 控件2Button控件使用 1首先对于android的按键格式 2对按键监听事件进行绑定 控件3EditText文 ...

  8. Node.js 学习(持续更新)

    JavaWeb前端 Node.js nodejs操作入门 //helloworldjs //类似于:System.out.printIn("Hello world") consol ...

  9. Flask框架学习(持续更新)

    文章目录 目录 文章目录 前言 一.Flask是什么 二.Flask基础 1.路由规则 2.Flask-Cors 解决跨域问题 3.Flask-Uploads 接受浏览器上传的文件 4.Flask蓝图 ...

  10. rabbitMQ的学习第一篇(持续更新)

    rabbitMQ的学习目标 需要带着目的去学习一项技术,在学习中深入思考感受, 1:mq的使用场景 2:几种mq什么时候选择rabbitMQ 3:MQ保存和消费消息的性能于其他MQ的对比 4:系统的q ...

最新文章

  1. 叛乱联机服务器未响应,叛乱沙漠风暴怎么开服 叛乱沙漠风暴开服操作指南详解 安装准备-游侠网...
  2. Mysql Explain 结果字段解释
  3. c++正则表达式_Python正则表达式教程-常用文本处理技巧
  4. 2018年最值得关注的15大技术趋势,区块链将得到更广泛的应用
  5. 性能优化篇(5):css 内部 or 外部,该如何选择?
  6. 40 WM配置-作业-确认(转储单TO确认)
  7. 半夜闲的真是蛋疼。。。决定写个小博文
  8. 【Markdown】新手快速入门基础教程
  9. JS 统计函数执行时间
  10. java的值传递和引用传递
  11. yum源中repodata目录下的各文件内容及作用-转载
  12. Linux系统可视化界面与Shell界面切换
  13. linux源代码安装apr,linux APR安装 APR-UTIL 安装 源码安装
  14. Python断言工具包assertP
  15. 机器学习笔记之二十一——基于统计的中文分词方法
  16. Python的线程如何理解
  17. ts版操作localStorage和sessionStorage工具
  18. 下载scikit_learn
  19. margin失效问题——嵌套块元素引起的外边距坍塌
  20. 【雕爷学编程】Arduino动手做(73)---TM1637四位数码管

热门文章

  1. 台式计算机显卡是哪个好,台式电脑显卡排行榜
  2. Reinitialized existing Git repository in xxx
  3. “手机到底是如何实现定位的?工作原理是什么?”
  4. thinkpade450装内存条_thinkpad e450可以加内存条吗
  5. CodeCraft-20 (Div. 2) E. Team Building(状压dp)
  6. VR全景视频、图片播放器
  7. CodeFroces gym 100781 A.Adjoin the Networks(贪心)
  8. python生成Excel透视表
  9. GRE词汇乱序版-夹生的词汇1
  10. 7-55 查询水果价格