接口概述
1.接口可以用作设计,也可以用作验证
2.与module的使用性质很像,可以定义端口,也可以定义双向信号;可以使用initial和always,也可以定义function和task。
3.TB和DUT是相互独立的,通过interface连接,下图的红线。
4.在interface的端口列表中只需要定义时钟、复位等公共信号,或者不定义任何端口信号。
5.interface中可以包含多个modport, 定义interface的不同视图view(DUT、Test program)
SystemVerilog则对Verilog的连接方式进行了改进补充,引入了接口interface。
接口的使用方式
绿皮书代码
`timescale 1ns/1ns
interface arb_if(input bit clk);
logic [1:0] grant,request;
logic rst;
clocking cb @(posedge clk);
output request;
input grant;
endclocking
modport TEST (clocking cb,
output rst);
modport DUT (input request,rst,
output grant);
endinterface
module arb(arb_if.DUT arbif);
initial begin
#7 arbif.grant <= 1;
#10 arbif.grant <= 2;
#