AHB_SRAM UVM验证(3)完善interface以及transaction

完善interface以及transaction

在上一节以及搭建好了整个uvm的验证环境,添加了base的test以及base的virtual sequence。

  • 完善lvc_ahb_if:定义的信号与dut的接口信号一致。下方的时钟块是为了与组件匹配,确定信号的传输方向。master与slave的驱动方向相反。是为了驱动和采集interface的信号。对于monitor而言,需要采集所有的信号。
`ifndef LVC_AHB_IF_SV
`define LVC_AHB_IF_SV
 
interface lvc_ahb_if;
`include "lvc_ahb_defines.svh"
import lvc_ahb_pkg::*;

	logic 									hclk;
	logic    								hresetn;	
	logic 									hgrant;	
	logic [(`LVC_AHB_MAX_DATA_WIDTH-1):0]	hrdata;
	logic 									hready;
	logic [1:0] 							hresp;
	logic [(`LVC_AHB_MAX_ADDR_WIDTH-1):0]	haddr;
	logic [2:0] 							hburst;
	logic 									hbusreq;
	logic 									hlock;
	logic [3:0] 							hprot;
	logic [2:0] 							hsize;
	logic [1:0] 							htrans;
	logic [(`LVC_AHB_MAX_DATA_WIDTH-1):0]	hwdata;
	logic 									hwrite;

	// debug 
	response_type_enum       debug_hresp;
	trans_type_enum          debug_htrans;
	burst_size_enum 		 debug_size;
	burst_type_enum 		 debug_hburst;
	xact_type_enum 			 debug_xact;
	status_enum 			 debug_status;


	// debug signals assignment
	assign debug_hresp    = response_type_enum'(hresp);
	assign debug_htrans   = trans_type_enum'(htrans);
	assign debug_hsize    = burst_size_enum'(hsize);
	assign debug_hburst   = burst_type_enum'(hburst);
	// the below signals to be assigned by monitor
	// debug_xact ..
	// debug_status ..


	// clk block
	clocking cb_mst @(posedge hclk);
	// USER: Add clocking block detail
		default input #1ps output #1ps;
		output haddr, hburst, hbusreq, hlock, hprot, hsize, htrans, hwdata, hwrite;
		input  hready, hgrant, hrdata, hresp;
	endclocking : cb_mst

	clocking cb_slv @(posedge hclk);
	// USER: Add clocking block detail
		default input #1ps output #1ps;
		input   haddr, hburst, hbusreq, hlock, hprot, hsize,<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值