什么是接口

•    接口可以用作设计, 也可以用作验证。
•    在验证环境中, 接口可以使得连接变得简洁而不易出错。
•    interface和module的使用性质很像。它可以定义端口,也可以定义双相信号;它可是使用initial和always,也可以定义function和task。
•    interface可以在硬件环境和软件环境中传递, 例如作为module 的端口列表, 也可以作为软件方法的形式参数。
•    初学者可以将interface看做—个"插排", 而DUT与TB之间的数据驱动关系都可以使用interface这个插排来完成。

如果要测试Aribiter,现有的不采用接口的方法如下:

如果使用接口,会使测试与DUT的关系变得简单起来:

interface arb_if(inpuut bit clk);logic [1:0] grant, request;logic rst;
endinterface        //定义接口module arb(arb_if arbif);...always@(posedge arbif.clk or posedge arbif.rst)beginif(arbif.rst)arbif.grant<=2'b00;elsearbif.grant<=next_grant;...end
endmodule          //定义arbitermodule test(arb_if arbif);...initial begin@(posedge arbif.clk)arbif.request<=2'b01;$display("@%0t: drove req =01",$time);repest(2) @(posedge arbif.clk)if(arbif.grant!=2'b01)$display("@%0t: grant !=2'b01",$time);$finish;end
endmodule:test     //定义test module top;bit clk;always #5 clk=~clk;arb_if arbif(clk);//实例化interfacearb a1 (arbif);  //实例化arbitertest t1(arbif); //实例化test
endmodule:top      //定义顶层模块 

接口优势

•    将有关信号封装在同一个接口中, 对于设计和验证环境都便于维护和使用。 如果你需要新添加信号, 只需要在接口中定义这个信号, 便可在使用这个接口的模块或者验证环境中做出相应修改。

•    由于接口既可以在硬件世界(module)中使用,又可以在软件世界(class)中使用,interface作为SV中唯—的硬件和软件环境的媒介交互,它的地位不可取代,所以verifier一定要精通接口的使用。

•    接口由于可以例化的特性, 使得对于多组相同的急线, 在例化和使用时变得更加灵活,不仅使得代码变得简洁, 也更易于验证环境的管理和维护。

接口定义与使用

•    在interface的端口列表中只需要定义时钟复位等公共信号。或者不定义任何端口信号,转而在变量列表中定义各个需要跟DUT和TB连接的logic变量。为了简单易用,我们推荐使用logic来定义变量。

•    interface也可以依靠参数化方式提高复用性。

•    interface在例化时, 同module的例化方式一样;

•    对于有对应interface的DUT和TB组件(例如stimulator) , 在其例化时, 也只需要传递匹配的interface变量名即可完成interface的变量传递。

SV 接口(interface)相关推荐

  1. SV学习(3)——接口interface、modport、时钟块clocking

    SV学习(3)--接口interface.modport.时钟块clocking 1. 接口interface 2. modport 3. 时钟块clocking 3.1. 驱动和采用的竞争问题 3. ...

  2. go struct 静态函数_Go语言学习笔记(四)结构体struct 接口Interface 反射reflect...

    加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...

  3. System Verilog学习笔记—接口interface

    目录 0.interface的直观理解 1.使用端口的TB与DUT通信 2.使用接口的TB与DUT通信 3.使用modport将interface中的信号分组 4.接口中的clocking block ...

  4. Go 学习笔记(35)— Go 接口 interface (接口声明、接口初始化、接口方法调用、接口运算、类型断言、类型查询、空接口)

    1. 接口概念 接口是双方约定的一种合作协议.接口实现者不需要关心接口会被怎样使用,调用者也不需要关心接口的实现细节.接口是一种类型,也是一种抽象结构,不会暴露所含数据的格式.类型及结构. 接口内部存 ...

  5. php中的抽象类(abstract class)和接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  6. 接口(Interface)的深入理解

    接口(Interface)的深入理解 一:接口是规范(不展开) 二:接口可以看成是一个特殊的类 1: 接口可以定义"接口类型变量",就好像类可以定义类类型的变量(或者说是引用类型变 ...

  7. Java接口interface

    Java接口interface 1.多个无关的类可以实现同一个接口. 2.一个类可以实现多个无关的接口. 3.与继承关系类似,接口与实现类之间存在多态性. 接口(interface)是抽象方法和常量值 ...

  8. Java的类(class)、包(package)和接口(interface)

    在Java中,类(class)是用来代表对象的基本单元.对象(object)可以是现实世界中的任何一个实体,它具有若干区别于其它对象的属性和操作.而类则通过为对象定义属性和操作来概括一类实体.它封装了 ...

  9. Java接口(interface)的概念及使用

    在抽象类中,可以包含一个或多个抽象方法:但在接口(interface)中,所有的方法必须都是抽象的,不能有方法体,它比抽象类更加"抽象". 接口使用 interface 关键字来声 ...

  10. java 抽象接口类,Java接口(interface)和Java抽象类(abstract class)的区别(详诉版)

    1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架, 当代表业务逻辑的高层抽象层结构合理时,你底层的具体实现需要考虑的就仅仅是一些算法 ...

最新文章

  1. 3D打印「心脏」体外存活超6个月,心肌组织带有规律性搏动,来自中科院清华...
  2. 函数中参数有数组时注意的小问题(不一定要传递数组长度,不用返回数组,可以在函数中改变数组元素值)
  3. ITK:使用二进制阈值对图像阈值
  4. js 获取元素,同级元素下的子元素总结
  5. 控制台 - 网络管理之华为交换机 S系列端口限速
  6. 通过获取客户端Json数据字符串,反序列化为实体对象的一段代码
  7. 王爽 汇编语言第三版 第8章( 寻址方式 ) --- 数据处理的两个问题
  8. oracle+semijoin,Semi join 与anti join
  9. 【报告分享】中科院-地球大数据支撑可持续发展目标报告.pdf
  10. [导入]RSS商业应用和电子商务的结合
  11. SELECTION-SCREEN 加按钮
  12. android studio应用开发案例,Android应用开发案例教程(Android Studio版).pptx
  13. Eclipse主题插件之DevStyle
  14. 三维叉乘怎么算_奇技淫巧系列:向量叉乘
  15. 聊聊小世界网络和癌症
  16. c语言实现7段数码管显示,FPGA入门--七段数码管显示
  17. IDEA中的TODO使用和Debug史诗级详细使用说明
  18. Java多线程学习详细学习及扩展
  19. 重磅!Science发表西湖大学周强实验室关于“新冠”的最新研究成果
  20. 视频监控国标协议介绍

热门文章

  1. 电脑网络wifi图标消失,图标变成灰色的解决办法之一
  2. c语言26字母排序,C语言,26个字母的冒泡排序
  3. Java并发编程-4-百万流量的短信网关系统
  4. vue 数组 unshift push shift pop
  5. 【无2022年聚合工艺考试模拟100题模拟考试平台操作
  6. mysql自增列防止恢复初始_重置mysql的自增列 AUTO_INCREMENT初时值 | 瑕疵学院 – 学习无瑕疵,成就有保障...
  7. 情感分析textblob--英文分析
  8. 废物利用!电路板元器件焊拆必备姿势、焊接技巧、维修拆焊方法
  9. 【中间件系列】Nacos注册中心妙用
  10. phpstorm配置phpunit单元测试及PHPunit断言函数