关于virtual interface
来源:互联网 发布:海信电视mac是什么 编辑:程序博客网 时间:2024/06/05 08:32
关于VIF
张强书中如是将:
那么如何在driver中使用interface呢?一种想法是在driver中声明如下语句,然后再通过赋值的形式将top_tb中的input_if传递给它:代码清单 2-14class my_driver extends uvm_driver; my_if drv_if; …endclass读者可以试一下,这样的使用方式是会报语法错误的,因为my_driver是一个类,在类中不能使用上述方式声明一个interface,只有在类似top_tb这样的模块(module)中才可以。在类中使用的是virtual interface:代码清单 2-15文件:src/ch2/section2.2/2.2.4/my_driver.sv 3 class my_driver extends uvm_driver; 4 5 virtual my_if vif;在声明了vif后,就可以在main_phase中使用如下方式驱动其中的信号:代码清单 2-16文件:src/ch2/section2.2/2.2.4/my_driver.sv 23 task my_driver::main_phase(uvm_phase phase); 24 phase.raise_objection(this); 25 `uvm_info("my_driver", "main_phase is called", UVM_LOW); 26 vif.data <= 8'b0; 27 vif.valid <= 1'b0; 28 while(!vif.rst_n) 29 @(posedge vif.clk); 30 for(int i = 0; i < 256; i++)begin 31 @(posedge vif.clk); 32 vif.data <= $urandom_range(0, 255); 33 vif.valid <= 1'b1; 34 `uvm_info("my_driver", "data is drived", UVM_LOW); 35 end 36 @(posedge vif.clk); 37 vif.valid <= 1'b0; 38 phase.drop_objection(this); 39 endtask
从这段表述中只看出了,这是为了在类中使用IF,才使用VIF ,似乎类中无法直接调用硬件内容。
从绿皮书P284也有类似叙述,那么VIF 的作用只是为了在类中调用IF,才定义为virtual形吗?
我也还不知道啊
大约 也还有为了重复使用的目的吧
阅读全文
0 0
- 关于virtual interface
- interface abstract与virtual
- interface,abstract和virtual
- abstract virtual interface
- virtual、abstract和interface
- c#中的interface abstract virtual
- NVI(Non-Virtual Interface )
- C#中Abstract,Virtual,Interface
- 关于Virtual
- c#中的interface abstract与virtual
- c#中的interface abstract与virtual
- c#中的interface abstract与virtual
- c#中的interface abstract 与 virtual
- c#中的interface abstract 与 virtual
- C#中的interface abstract virtual异同
- c#中的interface、abstract与virtual
- C#中的interface,abstract和virtual
- C#中的interface,abstract和virtual
- JZOJ 1776. 经济编码 (Standard IO)
- 产生冠军 (快速AC代码)
- 淘淘商城系列(五)图片上传实现
- linux系统介绍
- 7.12-集体智慧编程-笔记-提供推荐--未完
- 关于virtual interface
- POJ 3165 Traveling Trio 笔记
- MySql-LIKE用法
- 创建一个简单的SVG动画实例
- 链表(一)
- js基础2
- leetcode217题解
- 利用putty实现文件在linux上传和下载
- ZOJ1074-To the Max(dp)