Files
rtl_libs/axi/axi_if.sv
2026-05-29 15:30:24 +03:00

44 lines
1.4 KiB
Systemverilog

interface axi4_if #(
parameter int unsigned ADDR_W = 32,
parameter int unsigned DATA_W = 32,
parameter int unsigned ID_W = 4,
parameter int unsigned USER_W = 1
)(
input logic aclk,
input logic aresetn
);
import axi_pkg::*;
typedef logic [ADDR_W-1:0] addr_t;
typedef logic [DATA_W-1:0] data_t;
typedef logic [DATA_W/8-1:0] strb_t;
typedef logic [ID_W-1:0] id_t;
typedef logic [USER_W-1:0] user_t;
`AXI4_TYPEDEF_ALL(axi, addr_t, data_t, strb_t, id_t, user_t);
axi_req_t req;
axi_resp_t resp;
modport master (input aclk, aresetn, output req, input resp);
modport slave (input aclk, aresetn, input req, output resp);
modport monitor(input aclk, aresetn, input req, input resp);
endinterface : axi4_if
interface axi4l_if #(
parameter int unsigned ADDR_W = 32,
parameter int unsigned DATA_W = 32,
parameter int unsigned USER_W = 1
)(
input logic aclk,
input logic aresetn
);
import axi_pkg::*;
typedef logic [ADDR_W-1:0] addr_t;
typedef logic [DATA_W-1:0] data_t;
typedef logic [DATA_W/8-1:0] strb_t;
typedef logic [USER_W-1:0] user_t;
`AXI4L_TYPEDEF_ALL(axil, addr_t, data_t, strb_t, user_t);
axil_req_t req;
axil_resp_t resp;
modport master (input aclk, aresetn, output req, input resp);
modport slave (input aclk, aresetn, input req, output resp);
modport monitor(input aclk, aresetn, input req, input resp);
endinterface : axi4l_if