一.field automation

二.virtual interface

1.UVM中使用virtual interface 来连接验证平台和DUT

module中实例化interface直接使用interface名即可,但在class中使用interface必须为virtual interface;

interface hello_if(input clk,input rst_n);logic [7:0] data;logic       valid;endinterface
class hello_driver extends uvm_driver #(hello transaction);virtual hello_if vif;
class hello_monitor extends uvm_monitor #(hello transaction);virtual hello_if vif;

2.使用config_db机制将top中的interface传给vif;

在top中set;

在mon和dri中get;

3.总结

1.使用field automation的好处是什么?常见的方法有哪些?

通过field automation实现UVM的一些内建方法,比如copy、compare、pack、print等。使用这些方法,UVM会自动帮忙用户做一些事情。用户可以自己选择打开或者关闭这些function。

例如,DUT信号只有addr和data,但是transaction中有额外的flag信号,此时在field automation中需要将flag的compare功能关闭。

        `uvm_field_*必须在`uvm_component_utils_begin(transaction)与`uvm_component_utils_end(transaction)中使用。

        如果某个成员未使用field automation机制,则内建函数不会生效;

copy

        仅对对象的句柄进行赋值,若目标对象包含了其他对象,不会调用该对象的copy;

clone

        深度复制,若目标对象包含了其他对象,则会调用该子对象的clone;

compare

        比较两实例是否一致,一致返回1,负责返回0;        A.compare(B)

pack/pack_bytes/pack_ints

将成员打包为bit/byte/int流

sprint/print

        按给定的格式打印对象的成员;前者返回的是一个字符串;

按照transaction格式依次对齐打印,会提高美观度;

2.如何关闭field automation中的某些方法?

UVM  field automation宏中,包含了一个标志位FLAG

标识符的本质是17bit向量,每一位都代表了一个开关,1使能0关闭,无特殊要求UVM_ALL_ON;

例如 `uvm_field_int(crc,UVM_ALL_ON | UVM_NOPACK) 即关闭crc的pack功能;pack为第九位,nopack为第10位,当检测第10位为1直接忽略第9位数字;

field automation,vif相关推荐

  1. UVM field automation

    field automation机制在UVM中非常重要,主要是牵扯到打印,比较,复制,打包以及解包等操作.看下面一段代码 package UVM_cmd;import uvm_pkg::*'`incl ...

  2. UVM field automation机制

    文章目录 前言 1.什么是 uvm field automation 2.uvm field automation的介绍 2.1 uvm field automation机制的处理方法 2.2 `uv ...

  3. NFC(Near Field Communication,近场通信)相关

    摘自<深入理解Android:WiFi模块 NFC和GPS卷 - 邓凡平> 以前的读书笔记贴一下,Android 版本演进,源码相关的一些内容可能有很大变化. NFC(Near Field ...

  4. Vue -- 基础语法指令(v-bind,v-if,v-else,v-else-if,v-for)

    文章目录 1. Vue--基础语法指令(v-bind,v-if,v-else,v-else-if,v-for) 1.1 v-bind 1.1.1 代码示例 1.1.2 运行结果 1.1.3 小结 1. ...

  5. MyBatisPlus查询时报错,Unknow column ‘id‘ in ‘field list‘,怎么解决?

    在使用MyBatisPlus的selectById()方法查询数据时,报出了一个错误: java.sql.SQLSyntaxErrorException Create breakpoint Unkno ...

  6. Vue3(撩课学院)笔记01-创建实例对象,v-for遍历,时间绑定,传参,时间修饰符,计算属性,v-if,v-show,深拷贝,v-model与各类表单的绑定

    1.创建vue实例对象 <!DOCTYPE html> <html lang="en"> <head><meta charset=&quo ...

  7. Vue遍历对象,数组,v-if、v-if-else、v-else

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>< ...

  8. Unity景深Depth of field优化,得到清晰边界

    Unity景深模拟的实现大都是, 1.先获取屏幕后期纹理,然后复制出来进行高斯等方式模糊. 2. 再根据场景物体的深度纹理, 在着色器中对景深需要清晰的目标为切割获取0-1的深度插值. 3.将屏幕后期 ...

  9. lucene底层数据结构——FST,针对field使用列存储,delta encode压缩doc ids数组,LZ4压缩算法...

    参考: http://www.slideshare.net/lucenerevolution/what-is-inaluceneagrandfinal http://www.slideshare.ne ...

  10. MySQL in 查询,并通过 FIELD 函数按照查询条件顺序返回结果

    我们都非常习惯通过 MySQL 的 IN 函数来查询特定集合的数据,比如为了在 books 表中找出李雷.韩梅梅和安华写的书,我们可以有如下的 SQL(可以通过 SQL Fiddle查看示例): SE ...

最新文章

  1. 宁‘内卷‘,勿‘躺平‘
  2. python语言的理解-初学Python语言者必须理解的下划线
  3. java数据结构之递归算法
  4. 关于代码运行时间Stopwatch的使用
  5. 关于go指针在方法or函数中这件事
  6. dy96 .pw cc 05.php,05.php · 熟悉的陌生/php - Gitee.com
  7. puppet 认证错误:Could not request certificate: unknown message digest algorithm
  8. 4月18日云栖精选夜读 | 阿里靠什么支撑 EB 级计算力?
  9. DOCKER容器内中文显示乱码
  10. winform的ftp方式上传
  11. 非常的好的协同过滤入门文章(ZZ)
  12. 大数据概念思维导图_【数据整理】一份思维导图,学完Tableau Prep(下)
  13. 软件工程——软件详细设计
  14. 【转载】acrobat 9安装教程
  15. 小明左右手分别拿两张纸牌:黑桃10和红心8,现在交换手中的牌。编写并输出互换后的结果,输出结果如图所示。
  16. 动图gif怎么制作?制作方法你学会了吗?
  17. NoteExpress基础使用
  18. 第四章创业者与创业团队
  19. 注册微信公众号需要哪些材料?
  20. 滚动距离置零,恢复到初始位置

热门文章

  1. 安全L2-1.4-安全术语介绍
  2. java一直显示载入中_java – 当类在包中时为GUI加载图像的问题
  3. Android 之 自动拨号
  4. 38年来,NBA最有价值球员|数据分析
  5. 华为智慧屏V55升级鸿蒙2,华为智慧屏s55和v55对比参数_华为智慧屏s55和v55哪个好...
  6. 台式计算机红外线端口,台式电脑的红外线端口在哪?
  7. iOS App Store 审核 other 处理、解决办法 The review of your app is taking longer than expected
  8. 苹果MAC AIR MACOS X 10.8安装notes提示OS版本过低
  9. Factor Graphs and GTSAM
  10. 蘑菇街大三Java后端暑期实习