System Verilog学习笔记(七)——接口

System Verilog学习笔记(七)——接口

接口(interface)

  • 接口提供了一种新型的对抽象级建模的方式,可以简化建模和验证大型复杂的设计。
  • 使用Verilog的方式实现下图的连接需要:对每个子模块进行端口声明;在上层环境需要声明非常多的网线;将上层环境的网线在各个模块之间进行连接。这样会使常用的总线端口和通信协议在多个模块中重复声明和定义,在不同模块之间的连接会出现不匹配的信号声明和连接,一个设计发生变化也可能会影响多个模块的端口声明和连接。

接口的优势

  • interface允许多个信号被整合到一起用来表示一个单一的抽象端口
  • 多个模块可以使用同一个interface,避免分散的多个端口信号连接

接口的内容

  • 接口不仅可以包含变量或线网,还可以封装模块之间的通信协议
  • 还可以嵌入与协议有关的断言检查、功能覆盖率收集等模块
  • 接口不允许包含设计层次,即接口无法例化module,但是接口可以例化接口
  • 接口中可以进一步声明modport来约束不同模块连接时的信号方向

接口的声明

interface 接口名 (参数);

endinterface
  • 接口可以有端口,接口内部可以声明所有变量或者线网类型。

接口的例化

  • 接口的例化方式同模块例化一致
  • 模块的端口如果声明为input、output或者inout,那么在例化时可以不连接
  • 模块的端口如果声明为interface,那么在例化时必须连接一个接口实例或者另外一个接口端口
  • 利用“.”来索引interface里的端口号

modport

  • 接口中的变量或者线网信号,对于连接到该端口的不同模块则可能具备不同的连接方向
  • 接口引入modport来作为module port的缩写,表示不同的模块看到同一组信号时的视角(连接方向)
  • 在接口中声明modport,需要指明modport中各个信号的方向,不需要指明宽度
  • 当一个模块在例化时,可以选择连接到interface端口中具体的某个modport

验证中的应用

利用接口,可以将测试平台同DUT连接在一起

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值