SystemVerilog数字集成电路功能验证课件 (5).pdf
SystemVerilog芯片验证
第4章接口
2024年3月12日
SystemVerilog芯片验证2024年3月12日1/21
接口的定义和使用使用接口简化连接
接口(interface)的定义和使用
1统一管理一组信号,简化测试模块与DUT的连接。
2接口主要为测试平台服务,不能被逻辑综合。
3接口是静态类型DUT与自动类型对象的通信桥梁(虚接口)。
测试模块接口加法器
时钟和复位顶层模块
SystemVerilog芯片验证2024年3月12日2/21
接口的定义和使用使用接口简化连接
1接口使用关键字interface定义。
2接口中可以使用连续赋值语句assign、过程块initial和always,也可以定
义函数和任务。
3接口封装了接口信号和与其相关的常用电平或时序操作。
4接口信号通常定义为logic类型,带有多驱动的接口信号定义为wire类型。
5接口是独立定义的,接口信号不需要给出信号方向。
4interfaceintf#(parameterWIDTH=4)(inputclk,inputrst_n);
5logic[WIDTH-1:0]a;
6logic[WIDTH-1:0]b;
7logic[WIDTH:0]sum;
8
9taskwait_reset_done();//等待异步复位结束
10@(posedgerst_n);
11endtask
12endinterface
SystemVerilog芯片验证2024年3月12日3/21
接口的定义和使用使用接口简化连接
1接口主要在测试模块中使用。
4moduleautomatictest#(parameterWIDTH=4)(intfi_intf);
5initialbegin
6$monitor(@%0t,a=%0d,b=%0d,sum=%0d,$time,i_intf.a,i_intf.b,i_intf
.sum);
7//输出初始值
8i_intf.a=4h0;
9i_intf.b=4h0;
10//等待复位结束
11i_intf.wait_reset_done();
12//发送激励并采集响应
13repeat(5)begin
14@(posedgei_intf.clk);
15i_intf.a=$urandom_range(0,4hf);
16i_intf.b=$urandom_range(0,4hf);
17end
18$finish();
19end
endmodule
SystemVerilog芯片验证2024年3月12日4/21
接口的定义和使用使用接口简化连接
1