Systemverilog中使用interface连接testbench和dut的端口

1.dut的端口声明如下,文件名为top.v:

复制代码
module top
(
	input 				clk			,
	input 				rst_n		,
	
	input 				wr_n		,
	input 				rd_n		,
	input 				cs0_n		,
	input 				cs7_n		,
	input [15 : 0] 		bus_addr_in	,
	//UART淇″彿
	input 				rx0_d		,
	output 				tx0_d		,		
    );

2.定义interface接口,文件名为top_if.sv;

复制代码
interface  top_if(  input bit 				clk );


	logic 				rst_n		;
		                    
	logic 				wr_n		;
	logic 				rd_n		;
	logic 				cs0_n		;
	logic 				cs7_n		;
	logic [15 : 0] 		bus_addr_in	;
	//UART信号                      
	logic 				rx0_d		;
	logic 				tx0_d		;
   );

3.在testbench模块中连接interface接口与dut的端口,interface与dut的端口连接时,只能按照信号名称一个一个的绑定。接下来就可以在testbench中通过interface的实例引用信号名,来对其进行赋值。这里通过`include "top_if.sv"将接口引进来。

复制代码
`include "top_if.sv"
module tb;
	 bit 				clk			;

	 top_if topif(clk);    //实例化top_if对象,将clk传递给interface
	
	 top   top_inst( .clk(topif.clk),               //将topif接口对象与DUT端口绑定,这里直接按照位置绑定
	                                   .rst_n( topif.rst_n    ),
	                                   .wr_n(topif.wr_n),
                                        .rst_n(topif.rst_n)		,
	                                      .wr_n	(topif.wr_n	)	,
	                                    .rd_n(topif.rd_n)		,
                                        .cs0_n(topif.cs0_n)		,
	                                    .cs7_n	(topif.cs7_n)	,
	                                   . bus_addr_in(topif.bus_addr_in)	,
	                
	                                    .rx0_d (topif.rx0_d)		,
	                                    .tx0_d(topif.tx0_d)			
        );
	initial
		begin
			clk=0; 
			topif.rst_n=0;
			#100 topif.rst_n=1;
			
		end
	
	always #12.5 clk=~clk;
	
	endmodule
相关推荐
ChipCamp1 天前
零门槛上手的RISC-V项目:nerv(附Verilog-vs-SysVerilog)
risc-v·systemverilog·interface·nerv·modport
NamoAmitabha12811 天前
sequence.sv路科验证--deepseek
systemverilog·uvm
NamoAmitabha12818 天前
第2章:一个简单的UVM验证平台 —— 这是全书的精华!--deepseek
systemverilog·uvm
NamoAmitabha12818 天前
书中2.2.4virtual interface,config_db机制---deepseek
systemverilog·uvm
NamoAmitabha12824 天前
UVM在时间维度上也做了规范,phase机制----deepseek讲解
systemverilog·uvm
NamoAmitabha12824 天前
SystemVerilog 中的 :: 作用域解析运算符详解--deepseek讲解
systemverilog·uvm
NamoAmitabha1281 个月前
class基础+继承的专项训练
systemverilog
NamoAmitabha1281 个月前
rand/randc/constraint 练习
systemverilog
Salt & Light2 个月前
UVM 字段自动化 Field Automation:让打印、复制、比较自动化
学习·systemverilog·uvm
北方孤寂的灵魂3 个月前
关于AXI协议详解
verilog·systemverilog·sv·数字验证