`timescale 1ns/1ps `include “define_macro.sv” interface axi_inf #(
parameter IDSIZE = 1, parameter ASIZE = 32, parameter LSIZE = 1, parameter DSIZE = 32, `parameter_string MODE = "BOTH", //BOTH:0,ONLY_WRITE:1,ONLY_READ:2 parameter ADDR_STEP = 32'hFFFF_FFFF, // 1024 : 0 parameter real FreqM = 1
)(
input bit axi_aclk , input bit axi_aresetn
);
initial begin
if(MODE == "BOTH" || MODE == "ONLY_READ" || MODE == "ONLY_WRITE") #(1ps); else begin $error("$t,AXI INFTERFACE MODE PARAMETER ERROR >>%s<<",MODE); $finish; end
end
logic timeout;
localparam STSIZE = DSIZE/8+(DSIZE%8 != 0); //—>> addr write <<——- logic axi_awid ; logic axi_awaddr ; logic axi_awlen ; logic axi_awsize ; logic axi_awburst ; logic axi_awlock ; logic axi_awcache ; logic axi_awprot ; logic axi_awqos ; logic axi_awvalid ; logic axi_awready ; //—<< addr write >>——- //—>> addr read <<——– logic axi_arid ; logic axi_araddr ; logic axi_arlen ; logic axi_arsize ; logic axi_arburst ; logic axi_arlock ; logic axi_arcache ; logic axi_arprot ; logic axi_arqos ; logic axi_arvalid ; logic axi_arready ; //—<< addr read >>——– //—>> Response <<——— logic axi_bready ; logic axi_bid ; logic axi_bresp ; logic axi_bvalid ; //—<< Response >>——— //—>> data write <<——- logic axi_wdata ; logic axi_wstrb ; logic axi_wlast ; logic axi_wvalid ; logic axi_wready ; //—<< data write >>——- //—>> data read >>——– logic axi_rready ; logic axi_rid ; logic axi_rdata ; logic axi_rresp ; logic axi_rlast ; logic axi_rvalid ; //—<< data read >>——– //—>> error flag <<——- // logic axi_wevld ; // logic axi_weresp ; // logic axi_revld ; // logic axi_reresp ; //—<< error flag >>——-
//—>> TIME CTRL <<————— always@(posedge axi_aclk,negedge axi_aresetn)begin:TIME_BLOCK logic cen; logic crst; logic [23:0] tcnt;
if(~axi_aresetn)begin tcnt <= 24'd0; cen <= 1'b0; crst <= 1'b0; end else begin //-->> COUNT ENABLE if(axi_awready && axi_awvalid) cen <= 1'b1; else if(axi_arready && axi_arvalid) cen <= 1'b1; else if(axi_bready && axi_bvalid) cen <= 1'b0; else if(axi_rvalid && axi_rready) cen <= 1'b0; else cen <= cen; //-->> COUNT RST if(axi_awready && axi_awvalid) crst <= 1'b1; else if(axi_arready && axi_arvalid) crst <= 1'b1; else if(axi_wready && axi_wvalid) crst <= 1'b1; else if(axi_rready && axi_rvalid) crst <= 1'b1; else crst <= 1'b0; //-->> COUNT if(crst) tcnt <= 24'd0; else if(cen) tcnt <= tcnt + 1'b1; else tcnt <= tcnt; //-->> RESULT timeout <= &tcnt; end
end //—<< TIME CTRL >>————— //—>> AW_CNT <<—————– logic [LSIZE-1:0] axi_wcnt;
always@(posedge axi_aclk,negedge axi_aresetn)begin:WRITE_CNT
if(~axi_aresetn) axi_wcnt <= '0; else begin if(axi_wvalid && axi_wready && axi_wlast) axi_wcnt <= '0; else if(axi_wvalid && axi_wready) axi_wcnt <= axi_wcnt + 1'b1; else axi_wcnt <= axi_wcnt; end
end //—<< AW_CNT >>—————– //—>> AR_CNT <<—————– logic [LSIZE-1:0] axi_rcnt;
always@(posedge axi_aclk,negedge axi_aresetn)begin:READ_CNT
if(~axi_aresetn) axi_rcnt <= '0; else begin if(axi_rvalid && axi_rready && axi_rlast) axi_rcnt <= '0; else if(axi_rvalid && axi_rready) axi_rcnt <= axi_rcnt + 1'b1; else axi_rcnt <= axi_rcnt; end
end //—<< AR_CNT >>—————– //—>> MODE CTRL <<————— `ifdef VIVADO_ENV generate if(MODE==“ONLY_READ”)begin assign axi_awid = '0; assign axi_awaddr = '0; assign axi_awlen = '0; assign axi_awsize = '0; assign axi_awburst = '0; assign axi_awlock = '0; assign axi_awcache = '0; assign axi_awprot = '0; assign axi_awqos = '0; assign axi_awvalid = '0; assign axi_wdata = '0; assign axi_wstrb = '0; assign axi_wlast = '0; assign axi_wvalid = '0; assign axi_bready = '0; end endgenerate
generate if(MODE==“ONLY_WRITE”)begin assign axi_arid = '0; assign axi_araddr = '0; assign axi_arlen = '0; assign axi_arsize = '0; assign axi_arburst = '0; assign axi_arlock = '0; assign axi_arcache = '0; assign axi_arprot = '0; assign axi_arqos = '0; assign axi_arvalid = '0; assign axi_rready = '0; end endgenerate `endif
//—<< MODE CTRL >>————— modport slaver ( input axi_aclk , input axi_aresetn , input axi_awid , input axi_awaddr , input axi_awlen , input axi_awsize , input axi_awburst , input axi_awlock , input axi_awcache , input axi_awprot , input axi_awqos , input axi_awvalid , output axi_awready , input axi_wdata , input axi_wstrb , input axi_wlast , input axi_wvalid , output axi_wready , input axi_bready , output axi_bid , output axi_bresp , output axi_bvalid , input axi_arid , input axi_araddr , input axi_arlen , input axi_arsize , input axi_arburst , input axi_arlock , input axi_arcache , input axi_arprot , input axi_arqos , input axi_arvalid , output axi_arready , input axi_rready , output axi_rid , output axi_rdata , output axi_rresp , output axi_rlast , output axi_rvalid ,
input axi_wcnt, input axi_rcnt, // input axi_wevld , // input axi_weresp , // input axi_revld , // input axi_reresp , input timeout );
modport master ( input axi_aclk , input axi_aresetn , output axi_awid , output axi_awaddr , output axi_awlen , output axi_awsize , output axi_awburst , output axi_awlock , output axi_awcache , output axi_awprot , output axi_awqos , output axi_awvalid , input axi_awready , output axi_wdata , output axi_wstrb , output axi_wlast , output axi_wvalid , input axi_wready , output axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , output axi_arid , output axi_araddr , output axi_arlen , output axi_arsize , output axi_arburst , output axi_arlock , output axi_arcache , output axi_arprot , output axi_arqos , output axi_arvalid , input axi_arready , output axi_rready , input axi_rid , input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , input axi_wcnt, input axi_rcnt, // input axi_wevld , // input axi_weresp , // input axi_revld , // input axi_reresp , input timeout );
modport master_wr ( input axi_aclk , input axi_aresetn , output axi_awid , output axi_awaddr , output axi_awlen , output axi_awsize , output axi_awburst , output axi_awlock , output axi_awcache , output axi_awprot , output axi_awqos , output axi_awvalid , input axi_awready , output axi_wdata , output axi_wstrb , output axi_wlast , output axi_wvalid , input axi_wready , output axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , input axi_wcnt, // input axi_rcnt, input timeout );
modport master_rd ( input axi_aclk , input axi_aresetn , output axi_arid , output axi_araddr , output axi_arlen , output axi_arsize , output axi_arburst , output axi_arlock , output axi_arcache , output axi_arprot , output axi_arqos , output axi_arvalid , input axi_arready , output axi_rready , input axi_rid , input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , // input axi_wcnt, input axi_rcnt, input timeout );
modport slaver_wr ( input axi_aclk , input axi_aresetn , input axi_awid , input axi_awaddr , input axi_awlen , input axi_awsize , input axi_awburst , input axi_awlock , input axi_awcache , input axi_awprot , input axi_awqos , input axi_awvalid , output axi_awready , input axi_wdata , input axi_wstrb , input axi_wlast , input axi_wvalid , output axi_wready , input axi_bready , output axi_bid , output axi_bresp , output axi_bvalid , input axi_wcnt, // input axi_rcnt, input timeout );
modport slaver_rd ( input axi_aclk , input axi_aresetn , input axi_arid , input axi_araddr , input axi_arlen , input axi_arsize , input axi_arburst , input axi_arlock , input axi_arcache , input axi_arprot , input axi_arqos , input axi_arvalid , output axi_arready , input axi_rready , output axi_rid , output axi_rdata , output axi_rresp , output axi_rlast , output axi_rvalid , // input axi_wcnt, input axi_rcnt, input timeout );
modport master_wr_aux ( input axi_aclk , input axi_aresetn , output axi_awid , output axi_awaddr , output axi_awlen , output axi_awsize , output axi_awburst , output axi_awlock , output axi_awcache , output axi_awprot , output axi_awqos , output axi_awvalid , input axi_awready , // output axi_wdata , // output axi_wstrb , input axi_wlast , input axi_wvalid , input axi_wready , output axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , input axi_wcnt, input axi_rcnt, input timeout );
modport master_wr_aux_no_resp ( input axi_aclk , input axi_aresetn , output axi_awid , output axi_awaddr , output axi_awlen , output axi_awsize , output axi_awburst , output axi_awlock , output axi_awcache , output axi_awprot , output axi_awqos , output axi_awvalid , input axi_awready , // output axi_wdata , // output axi_wstrb , input axi_wlast , input axi_wvalid , input axi_wready , // input axi_bready , // input axi_bid , // input axi_bresp , // input axi_bvalid , input axi_wcnt, // input axi_rcnt, input timeout );
modport master_rd_aux ( input axi_aclk , input axi_aresetn , output axi_arid , output axi_araddr , output axi_arlen , output axi_arsize , output axi_arburst , output axi_arlock , output axi_arcache , output axi_arprot , output axi_arqos , output axi_arvalid , input axi_arready , input axi_rready , input axi_rid , // input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , // input axi_wcnt, input axi_rcnt, input timeout );
modport mirror ( input axi_aclk , input axi_aresetn , input axi_awid , input axi_awaddr , input axi_awlen , input axi_awsize , input axi_awburst , input axi_awlock , input axi_awcache , input axi_awprot , input axi_awqos , input axi_awvalid , input axi_awready , input axi_wdata , input axi_wstrb , input axi_wlast , input axi_wvalid , input axi_wready , input axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , input axi_arid , input axi_araddr , input axi_arlen , input axi_arsize , input axi_arburst , input axi_arlock , input axi_arcache , input axi_arprot , input axi_arqos , input axi_arvalid , input axi_arready , input axi_rready , input axi_rid , input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , input axi_wcnt, input axi_rcnt, // output axi_wevld , // output axi_weresp , // output axi_revld , // output axi_reresp , input timeout );
modport mirror_wr ( input axi_aclk , input axi_aresetn , input axi_awid , input axi_awaddr , input axi_awlen , input axi_awsize , input axi_awburst , input axi_awlock , input axi_awcache , input axi_awprot , input axi_awqos , input axi_awvalid , input axi_awready , input axi_wdata , input axi_wstrb , input axi_wlast , input axi_wvalid , input axi_wready , input axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , input axi_wcnt, // output axi_wevld , // output axi_weresp , // output axi_revld , // output axi_reresp , input timeout );
modport mirror_rd ( input axi_aclk , input axi_aresetn , input axi_arid , input axi_araddr , input axi_arlen , input axi_arsize , input axi_arburst , input axi_arlock , input axi_arcache , input axi_arprot , input axi_arqos , input axi_arvalid , input axi_arready , input axi_rready , input axi_rid , input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , input axi_rcnt, // output axi_wevld , // output axi_weresp , // output axi_revld , // output axi_reresp , input timeout );
modport lite_master( input axi_aclk , input axi_aresetn , output axi_awvalid , input axi_awready , output axi_awaddr , output axi_wvalid , input axi_wready , output axi_wdata , input axi_bresp , input axi_bvalid , output axi_bready , output axi_arvalid , input axi_arready , output axi_araddr , input axi_rvalid , output axi_rready , input axi_rdata , // input axi_rresp , input timeout );
modport lite_slaver( input axi_aclk , input axi_aresetn , input axi_awvalid , output axi_awready , input axi_awaddr , input axi_wvalid , output axi_wready , input axi_wdata , output axi_bresp , output axi_bvalid , input axi_bready , input axi_arvalid , output axi_arready , input axi_araddr , output axi_rvalid , input axi_rready , output axi_rdata , // output axi_rresp input timeout );
endinterface:axi_inf
interface axi_inf2 #(
parameter IDSIZE = 1, parameter ASIZE = 32, parameter LSIZE = 1, parameter DSIZE = 32, `parameter_string MODE = "BOTH", //BOTH:0,ONLY_WRITE:1,ONLY_READ:2 parameter ADDR_STEP = 32'hFFFF_FFFF // 1024 : 0
)(
input bit axi_aclk , input bit axi_aresetn
);
initial begin
if(MODE == "BOTH" || MODE == "ONLY_READ" || MODE == "ONLY_WRITE") #(1ps); else begin $error("$t,AXI INFTERFACE MODE PARAMETER ERROR >>%s<<",MODE); $finish; end
end
logic timeout;
localparam STSIZE = DSIZE/8+(DSIZE%8 != 0); //—>> addr write <<——- wire axi_awid ; wire axi_awaddr ; wire axi_awlen ; wire axi_awsize ; wire axi_awburst ; wire axi_awlock ; wire axi_awcache ; wire axi_awprot ; wire axi_awqos ; wire axi_awvalid ; wire axi_awready ; //—<< addr write >>——- //—>> addr read <<——– wire axi_arid ; wire axi_araddr ; wire axi_arlen ; wire axi_arsize ; wire axi_arburst ; wire axi_arlock ; wire axi_arcache ; wire axi_arprot ; wire axi_arqos ; wire axi_arvalid ; wire axi_arready ; //—<< addr read >>——– //—>> Response <<——— wire axi_bready ; wire axi_bid ; wire axi_bresp ; wire axi_bvalid ; //—<< Response >>——— //—>> data write <<——- wire axi_wdata ; wire axi_wstrb ; wire axi_wlast ; wire axi_wvalid ; wire axi_wready ; //—<< data write >>——- //—>> data read >>——– wire axi_rready ; wire axi_rid ; wire axi_rdata ; wire axi_rresp ; wire axi_rlast ; wire axi_rvalid ; //—<< data read >>——– //—>> error flag <<——- // logic axi_wevld ; // logic axi_weresp ; // logic axi_revld ; // logic axi_reresp ; //—<< error flag >>——-
//—>> TIME CTRL <<————— always@(posedge axi_aclk,negedge axi_aresetn)begin:TIME_BLOCK logic cen; logic crst; logic [23:0] tcnt;
if(~axi_aresetn)begin tcnt <= 24'd0; cen <= 1'b0; crst <= 1'b0; end else begin //-->> COUNT ENABLE if(axi_awready && axi_awvalid) cen <= 1'b1; else if(axi_arready && axi_arvalid) cen <= 1'b1; else if(axi_bready && axi_bvalid) cen <= 1'b0; else if(axi_rvalid && axi_rready) cen <= 1'b0; else cen <= cen; //-->> COUNT RST if(axi_awready && axi_awvalid) crst <= 1'b1; else if(axi_arready && axi_arvalid) crst <= 1'b1; else if(axi_wready && axi_wvalid) crst <= 1'b1; else if(axi_rready && axi_rvalid) crst <= 1'b1; else crst <= 1'b0; //-->> COUNT if(crst) tcnt <= 24'd0; else if(cen) tcnt <= tcnt + 1'b1; else tcnt <= tcnt; //-->> RESULT timeout <= &tcnt; end
end //—<< TIME CTRL >>————— //—>> AW_CNT <<—————– logic [LSIZE-1:0] axi_wcnt;
always@(posedge axi_aclk,negedge axi_aresetn)begin:WRITE_CNT
if(~axi_aresetn) axi_wcnt <= '0; else begin if(axi_wvalid && axi_wready && axi_wlast) axi_wcnt <= '0; else if(axi_wvalid && axi_wready) axi_wcnt <= axi_wcnt + 1'b1; else axi_wcnt <= axi_wcnt; end
end //—<< AW_CNT >>—————– //—>> AR_CNT <<—————– logic [LSIZE-1:0] axi_rcnt;
always@(posedge axi_aclk,negedge axi_aresetn)begin:READ_CNT
if(~axi_aresetn) axi_rcnt <= '0; else begin if(axi_rvalid && axi_rready && axi_rlast) axi_rcnt <= '0; else if(axi_rvalid && axi_rready) axi_rcnt <= axi_rcnt + 1'b1; else axi_rcnt <= axi_rcnt; end
end //—<< AR_CNT >>—————– //—>> MODE CTRL <<————— `ifdef VIVADO_ENV generate if(MODE==“ONLY_READ”)begin assign axi_awid = '0; assign axi_awaddr = '0; assign axi_awlen = '0; assign axi_awsize = '0; assign axi_awburst = '0; assign axi_awlock = '0; assign axi_awcache = '0; assign axi_awprot = '0; assign axi_awqos = '0; assign axi_awvalid = '0; assign axi_wdata = '0; assign axi_wstrb = '0; assign axi_wlast = '0; assign axi_wvalid = '0; assign axi_bready = '0; end endgenerate
generate if(MODE==“ONLY_WRITE”)begin assign axi_arid = '0; assign axi_araddr = '0; assign axi_arlen = '0; assign axi_arsize = '0; assign axi_arburst = '0; assign axi_arlock = '0; assign axi_arcache = '0; assign axi_arprot = '0; assign axi_arqos = '0; assign axi_arvalid = '0; assign axi_rready = '0; end endgenerate `endif
//—<< MODE CTRL >>————— modport slaver ( input axi_aclk , input axi_aresetn , input axi_awid , input axi_awaddr , input axi_awlen , input axi_awsize , input axi_awburst , input axi_awlock , input axi_awcache , input axi_awprot , input axi_awqos , input axi_awvalid , output axi_awready , input axi_wdata , input axi_wstrb , input axi_wlast , input axi_wvalid , output axi_wready , input axi_bready , output axi_bid , output axi_bresp , output axi_bvalid , input axi_arid , input axi_araddr , input axi_arlen , input axi_arsize , input axi_arburst , input axi_arlock , input axi_arcache , input axi_arprot , input axi_arqos , input axi_arvalid , output axi_arready , input axi_rready , output axi_rid , output axi_rdata , output axi_rresp , output axi_rlast , output axi_rvalid ,
input axi_wcnt, input axi_rcnt, // input axi_wevld , // input axi_weresp , // input axi_revld , // input axi_reresp , input timeout );
modport master ( input axi_aclk , input axi_aresetn , output axi_awid , output axi_awaddr , output axi_awlen , output axi_awsize , output axi_awburst , output axi_awlock , output axi_awcache , output axi_awprot , output axi_awqos , output axi_awvalid , input axi_awready , output axi_wdata , output axi_wstrb , output axi_wlast , output axi_wvalid , input axi_wready , output axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , output axi_arid , output axi_araddr , output axi_arlen , output axi_arsize , output axi_arburst , output axi_arlock , output axi_arcache , output axi_arprot , output axi_arqos , output axi_arvalid , input axi_arready , output axi_rready , input axi_rid , input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , input axi_wcnt, input axi_rcnt, // input axi_wevld , // input axi_weresp , // input axi_revld , // input axi_reresp , input timeout );
modport master_wr ( input axi_aclk , input axi_aresetn , output axi_awid , output axi_awaddr , output axi_awlen , output axi_awsize , output axi_awburst , output axi_awlock , output axi_awcache , output axi_awprot , output axi_awqos , output axi_awvalid , input axi_awready , output axi_wdata , output axi_wstrb , output axi_wlast , output axi_wvalid , input axi_wready , output axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , input axi_wcnt, // input axi_rcnt, input timeout );
modport master_rd ( input axi_aclk , input axi_aresetn , output axi_arid , output axi_araddr , output axi_arlen , output axi_arsize , output axi_arburst , output axi_arlock , output axi_arcache , output axi_arprot , output axi_arqos , output axi_arvalid , input axi_arready , output axi_rready , input axi_rid , input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , // input axi_wcnt, input axi_rcnt, input timeout );
modport slaver_wr ( input axi_aclk , input axi_aresetn , input axi_awid , input axi_awaddr , input axi_awlen , input axi_awsize , input axi_awburst , input axi_awlock , input axi_awcache , input axi_awprot , input axi_awqos , input axi_awvalid , output axi_awready , input axi_wdata , input axi_wstrb , input axi_wlast , input axi_wvalid , output axi_wready , input axi_bready , output axi_bid , output axi_bresp , output axi_bvalid , input axi_wcnt, // input axi_rcnt, input timeout );
modport slaver_rd ( input axi_aclk , input axi_aresetn , input axi_arid , input axi_araddr , input axi_arlen , input axi_arsize , input axi_arburst , input axi_arlock , input axi_arcache , input axi_arprot , input axi_arqos , input axi_arvalid , output axi_arready , input axi_rready , output axi_rid , output axi_rdata , output axi_rresp , output axi_rlast , output axi_rvalid , // input axi_wcnt, input axi_rcnt, input timeout );
modport master_wr_aux ( input axi_aclk , input axi_aresetn , output axi_awid , output axi_awaddr , output axi_awlen , output axi_awsize , output axi_awburst , output axi_awlock , output axi_awcache , output axi_awprot , output axi_awqos , output axi_awvalid , input axi_awready , // output axi_wdata , // output axi_wstrb , input axi_wlast , input axi_wvalid , input axi_wready , output axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , input axi_wcnt, input axi_rcnt, input timeout );
modport master_wr_aux_no_resp ( input axi_aclk , input axi_aresetn , output axi_awid , output axi_awaddr , output axi_awlen , output axi_awsize , output axi_awburst , output axi_awlock , output axi_awcache , output axi_awprot , output axi_awqos , output axi_awvalid , input axi_awready , // output axi_wdata , // output axi_wstrb , input axi_wlast , input axi_wvalid , input axi_wready , // input axi_bready , // input axi_bid , // input axi_bresp , // input axi_bvalid , input axi_wcnt, // input axi_rcnt, input timeout );
modport master_rd_aux ( input axi_aclk , input axi_aresetn , output axi_arid , output axi_araddr , output axi_arlen , output axi_arsize , output axi_arburst , output axi_arlock , output axi_arcache , output axi_arprot , output axi_arqos , output axi_arvalid , input axi_arready , input axi_rready , input axi_rid , // input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , // input axi_wcnt, input axi_rcnt, input timeout );
modport mirror ( input axi_aclk , input axi_aresetn , input axi_awid , input axi_awaddr , input axi_awlen , input axi_awsize , input axi_awburst , input axi_awlock , input axi_awcache , input axi_awprot , input axi_awqos , input axi_awvalid , input axi_awready , input axi_wdata , input axi_wstrb , input axi_wlast , input axi_wvalid , input axi_wready , input axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , input axi_arid , input axi_araddr , input axi_arlen , input axi_arsize , input axi_arburst , input axi_arlock , input axi_arcache , input axi_arprot , input axi_arqos , input axi_arvalid , input axi_arready , input axi_rready , input axi_rid , input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , input axi_wcnt, input axi_rcnt, // output axi_wevld , // output axi_weresp , // output axi_revld , // output axi_reresp , input timeout );
modport mirror_wr ( input axi_aclk , input axi_aresetn , input axi_awid , input axi_awaddr , input axi_awlen , input axi_awsize , input axi_awburst , input axi_awlock , input axi_awcache , input axi_awprot , input axi_awqos , input axi_awvalid , input axi_awready , input axi_wdata , input axi_wstrb , input axi_wlast , input axi_wvalid , input axi_wready , input axi_bready , input axi_bid , input axi_bresp , input axi_bvalid , input axi_wcnt, // output axi_wevld , // output axi_weresp , // output axi_revld , // output axi_reresp , input timeout );
modport mirror_rd ( input axi_aclk , input axi_aresetn , input axi_arid , input axi_araddr , input axi_arlen , input axi_arsize , input axi_arburst , input axi_arlock , input axi_arcache , input axi_arprot , input axi_arqos , input axi_arvalid , input axi_arready , input axi_rready , input axi_rid , input axi_rdata , input axi_rresp , input axi_rlast , input axi_rvalid , input axi_rcnt, // output axi_wevld , // output axi_weresp , // output axi_revld , // output axi_reresp , input timeout );
modport lite_master( input axi_aclk , input axi_aresetn , output axi_awvalid , input axi_awready , output axi_awaddr , output axi_wvalid , input axi_wready , output axi_wdata , input axi_bresp , input axi_bvalid , output axi_bready , output axi_arvalid , input axi_arready , output axi_araddr , input axi_rvalid , output axi_rready , input axi_rdata , // input axi_rresp , input timeout );
modport lite_slaver( input axi_aclk , input axi_aresetn , input axi_awvalid , output axi_awready , input axi_awaddr , input axi_wvalid , output axi_wready , input axi_wdata , output axi_bresp , output axi_bvalid , input axi_bready , input axi_arvalid , output axi_arready , input axi_araddr , output axi_rvalid , input axi_rready , output axi_rdata , // output axi_rresp input timeout );
endinterface:axi_inf2