什么是接口

•    接口可以用作设计, 也可以用作验证。
•    在验证环境中, 接口可以使得连接变得简洁而不易出错。
•    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. 【Qt】Qt再学习(十):鼠标拖拽(dragdrop)QGraphicsItem示例
  2. python3并发编程基础
  3. Android自定义View,滑动,事件传递小结
  4. pyqt5从子目录加载qrc文件_PyQt5快速上手基础篇10-QSettings用法
  5. Ubuntu 16.04- Package has no installation candidate解决方式,Ubuntu正确安装openssl-server的方法...
  6. JAVA多线程之UncaughtExceptionHandler——处理非正常的线程中止
  7. Swift - 推送之本地推送(UILocalNotification)添加Button的点击事件
  8. linux 新增文件夹记录_linux文件系统(基础概念)
  9. 0903 - Firebase Analytics PK Google Analytics
  10. 316.去除重复字母
  11. doors dxl 遍历object 查找
  12. 求最长公共子串,简单易懂
  13. python实战笔记之(4):刷博客浏览量
  14. Spark-Sql源码解析之三 Analyzer:Unresolved logical plan – analyzed logical plan
  15. java钟表动画_JavaFX实现简易时钟效果
  16. java根据word模板导出_java根据word模板导出word文件
  17. python提取关键词_【Python工具】30万关键词提取疑问词只需2秒,效率高到飞起!...
  18. csdn上面文章转发
  19. javax.mail实现收发邮件
  20. VOT-toolkit Python 版本使用教程--官方样例版

热门文章

  1. 《漫画机器学习入门》总结
  2. OpenCv图像处理之Mat类使用
  3. zabbix短信网关使用了中国网建SMS短信通
  4. webstorm打开项目不显示文件夹
  5. bat脚本设置系统环境变量即时生效
  6. 指纹识别综述(4): 指纹匹配
  7. 乐观锁 optimistic 和 悲观锁 pessimistic lock
  8. 【桶哥的问题——吃桶-简化版】【洛谷p2671】求和
  9. Greenplum小把戏 - ip地址表达方式转换函数
  10. 三角函数中的和差化积公式编辑方法