提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 前言
  • 一、接口interface
  • 二、模块间的连接
  • 三、虚接口
  • 四、接口中的断言



前言

接口是连接设计-验证平台、模块-模块的线网集合,可以看成是一组线网的封装。接口内置参数、常量、变量、结构、函数、任务、initial块、always块、连续赋值语句以及断言,可以定制化编辑用于不同连接、收集覆盖率等。使用interface连接可以将设计和测试分开。

提示:以下是本篇文章正文内容,下面案例可供参考

一、接口interface

将某个总线的所有信号绑定组成一个接口,通过接口连接比端口更灵活。当接口发生变化时,这些变化只在使用该接口的模块中反映出来,而无需更改每一个模块。
Interface不仅可以表示信号的绑定和互连。由于其中可以包含参数、常量、变量、结构、函数、任务、initial块、always块以及连续赋值语句,所以Interface还可以包含内建的协议检查以及被使用该接口的模块所共用的功能。

二、模块间的连接

PI system数据接口 system connector接口_PI system数据接口


两个模块之间采用端口连接与采用接口连接的区别:

PI system数据接口 system connector接口_PI system数据接口_02


模块之间采用接口连接,有4个步骤:

① 将端口封装在interface中;

PI system数据接口 system connector接口_PI system数据接口_03


将端口封装在interface中时,也可使用modport将接口中的信号分组、方向指定、建模时序行为。

PI system数据接口 system connector接口_硬件工程_04


此时,接口作为模块和测试平台的变量作相应改变:

PI system数据接口 system connector接口_PI system数据接口_05

② 将接口作为模块设计和测试平台的变量;

PI system数据接口 system connector接口_硬件工程_06


PI system数据接口 system connector接口_句柄_07

③ 在顶层做例化,并赋实参;

PI system数据接口 system connector接口_封装_08

④ 连接接口和端口。

PI system数据接口 system connector接口_硬件工程_09

三、虚接口

接口(interface)代表了实际的物理信号,是静态的,而验证平台需要动态的连接设计,比如一个driver类要连接DUT的不同接口,但你肯定不希望每个接口都写一个对应的driver类和DUT接口连接,而是通过例化传参的方式连接DUT。因此system verilog提出了一种虚接口(virtual interface)的概念,虚接口是物理接口的句柄,在仿真平台运行时,再决定要传入哪一个物理接口的句柄,并产生相应激励。因此,虚接口将物理DUT和仿真验证平台分开,将硬件和软件分开,把软件平台的激励送给了硬件。(虚接口是唯一一个桥接动态对象和静态模块、接口的一种机制)

PI system数据接口 system connector接口_句柄_10

PI system数据接口 system connector接口_PI system数据接口_11


PI system数据接口 system connector接口_PI system数据接口_12

四、接口中的断言

在接口中定义断言,收集断言覆盖率和功能覆盖率:

协议对时序是有要求,所以在接口中定义断言对协议的时序进行检查,来调试设计中遇到的问题。同时断言也可以触发功能覆盖率和断言覆盖率,所以也可以在接口中定义断言covergroup。

PI system数据接口 system connector接口_句柄_13


PI system数据接口 system connector接口_硬件工程_14