提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、接口interface
- 二、模块间的连接
- 三、虚接口
- 四、接口中的断言
前言
接口是连接设计-验证平台、模块-模块的线网集合,可以看成是一组线网的封装。接口内置参数、常量、变量、结构、函数、任务、initial块、always块、连续赋值语句以及断言,可以定制化编辑用于不同连接、收集覆盖率等。使用interface连接可以将设计和测试分开。
提示:以下是本篇文章正文内容,下面案例可供参考
一、接口interface
将某个总线的所有信号绑定组成一个接口,通过接口连接比端口更灵活。当接口发生变化时,这些变化只在使用该接口的模块中反映出来,而无需更改每一个模块。
Interface不仅可以表示信号的绑定和互连。由于其中可以包含参数、常量、变量、结构、函数、任务、initial块、always块以及连续赋值语句,所以Interface还可以包含内建的协议检查以及被使用该接口的模块所共用的功能。
二、模块间的连接
两个模块之间采用端口连接与采用接口连接的区别:
模块之间采用接口连接,有4个步骤:
① 将端口封装在interface中;
将端口封装在interface中时,也可使用modport将接口中的信号分组、方向指定、建模时序行为。
此时,接口作为模块和测试平台的变量作相应改变:
② 将接口作为模块设计和测试平台的变量;
③ 在顶层做例化,并赋实参;
④ 连接接口和端口。
三、虚接口
接口(interface)代表了实际的物理信号,是静态的,而验证平台需要动态的连接设计,比如一个driver类要连接DUT的不同接口,但你肯定不希望每个接口都写一个对应的driver类和DUT接口连接,而是通过例化传参的方式连接DUT。因此system verilog提出了一种虚接口(virtual interface)的概念,虚接口是物理接口的句柄,在仿真平台运行时,再决定要传入哪一个物理接口的句柄,并产生相应激励。因此,虚接口将物理DUT和仿真验证平台分开,将硬件和软件分开,把软件平台的激励送给了硬件。(虚接口是唯一一个桥接动态对象和静态模块、接口的一种机制)
四、接口中的断言
在接口中定义断言,收集断言覆盖率和功能覆盖率:
协议对时序是有要求,所以在接口中定义断言对协议的时序进行检查,来调试设计中遇到的问题。同时断言也可以触发功能覆盖率和断言覆盖率,所以也可以在接口中定义断言covergroup。