Files
rtl_libs/axi/axi_ram_wrapper.sv
2026-05-28 16:41:26 +03:00

146 lines
5.6 KiB
Systemverilog

module axi_ram_wrapper #(
parameter DATA_WIDTH = 32,
parameter ADDR_WIDTH = 16,
parameter ID_WIDTH = 8,
parameter PIPELINE_OUTPUT = 0
)(
input wire clk,
input wire rst,
axi4_if.slaver s_axi
);
wire [ID_WIDTH-1:0] ram_s_axi_awid;
wire [ADDR_WIDTH-1:0] ram_s_axi_awaddr;
wire [7:0] ram_s_axi_awlen;
wire [2:0] ram_s_axi_awsize;
wire [1:0] ram_s_axi_awburst;
wire ram_s_axi_awlock;
wire [3:0] ram_s_axi_awcache;
wire [2:0] ram_s_axi_awprot;
wire ram_s_axi_awvalid;
wire ram_s_axi_awready;
wire [DATA_WIDTH-1:0] ram_s_axi_wdata;
wire [STRB_WIDTH-1:0] ram_s_axi_wstrb;
wire ram_s_axi_wlast;
wire ram_s_axi_wvalid;
wire ram_s_axi_wready;
wire [ID_WIDTH-1:0] ram_s_axi_bid;
wire [1:0] ram_s_axi_bresp;
wire ram_s_axi_bvalid;
wire ram_s_axi_bready;
wire [ID_WIDTH-1:0] ram_s_axi_arid;
wire [ADDR_WIDTH-1:0] ram_s_axi_araddr;
wire [7:0] ram_s_axi_arlen;
wire [2:0] ram_s_axi_arsize;
wire [1:0] ram_s_axi_arburst;
wire ram_s_axi_arlock;
wire [3:0] ram_s_axi_arcache;
wire [2:0] ram_s_axi_arprot;
wire ram_s_axi_arvalid;
wire ram_s_axi_arready;
wire [ID_WIDTH-1:0] ram_s_axi_rid;
wire [DATA_WIDTH-1:0] ram_s_axi_rdata;
wire [1:0] ram_s_axi_rresp;
wire ram_s_axi_rlast;
wire ram_s_axi_rvalid;
wire ram_s_axi_rready;
axi4_if_to_flat #(
.ADDR_W (ADDR_WIDTH),
.DATA_W (DATA_WIDTH)
) i_axi4_if_to_flat (
.s_axi (s_axi),
.m_axi_awid (ram_s_axi_awid),
.m_axi_awaddr (ram_s_axi_awaddr),
.m_axi_awlen (ram_s_axi_awlen),
.m_axi_awsize (ram_s_axi_awsize),
.m_axi_awburst (ram_s_axi_awburst),
.m_axi_awlock (ram_s_axi_awlock),
.m_axi_awcache (ram_s_axi_awcache),
.m_axi_awprot (ram_s_axi_awprot),
.m_axi_awqos (ram_s_axi_awqos),
.m_axi_awregion (ram_s_axi_awregion),
.m_axi_awuser (ram_s_axi_awuser),
.m_axi_awvalid (ram_s_axi_awvalid),
.m_axi_awready (ram_s_axi_awready),
.m_axi_wdata (ram_s_axi_wdata),
.m_axi_wstrb (ram_s_axi_wstrb),
.m_axi_wlast (ram_s_axi_wlast),
.m_axi_wuser (ram_s_axi_wuser),
.m_axi_wvalid (ram_s_axi_wvalid),
.m_axi_wready (ram_s_axi_wready),
.m_axi_bid (ram_s_axi_bid),
.m_axi_bresp (ram_s_axi_bresp),
.m_axi_buser (ram_s_axi_buser),
.m_axi_bvalid (ram_s_axi_bvalid),
.m_axi_bready (ram_s_axi_bready),
.m_axi_arid (ram_s_axi_arid),
.m_axi_araddr (ram_s_axi_araddr),
.m_axi_arlen (ram_s_axi_arlen),
.m_axi_arsize (ram_s_axi_arsize),
.m_axi_arburst (ram_s_axi_arburst),
.m_axi_arlock (ram_s_axi_arlock),
.m_axi_arcache (ram_s_axi_arcache),
.m_axi_arprot (ram_s_axi_arprot),
.m_axi_arqos (ram_s_axi_arqos),
.m_axi_arregion (ram_s_axi_arregion),
.m_axi_aruser (ram_s_axi_aruser),
.m_axi_arvalid (ram_s_axi_arvalid),
.m_axi_arready (ram_s_axi_arready),
.m_axi_rid (ram_s_axi_rid),
.m_axi_rdata (ram_s_axi_rdata),
.m_axi_rresp (ram_s_axi_rresp),
.m_axi_rlast (ram_s_axi_rlast),
.m_axi_ruser (ram_s_axi_ruser),
.m_axi_rvalid (ram_s_axi_rvalid),
.m_axi_rready (ram_s_axi_rready)
);
axi_ram #
(
.DATA_WIDTH (DATA_WIDTH),
.ADDR_WIDTH (ADDR_WIDTH),
.ID_WIDTH (ID_WIDTH),
.PIPELINE_OUTPUT (PIPELINE_OUTPUT)
) i_axi_ram (
.clk (clk),
.rst (rst),
.s_axi_awid (ram_s_axi_awid),
.s_axi_awaddr (ram_s_axi_awaddr),
.s_axi_awlen (ram_s_axi_awlen),
.s_axi_awsize (ram_s_axi_awsize),
.s_axi_awburst (ram_s_axi_awburst),
.s_axi_awlock (ram_s_axi_awlock),
.s_axi_awcache (ram_s_axi_awcache),
.s_axi_awprot (ram_s_axi_awprot),
.s_axi_awvalid (ram_s_axi_awvalid),
.s_axi_awready (ram_s_axi_awready),
.s_axi_wdata (ram_s_axi_wdata),
.s_axi_wstrb (ram_s_axi_wstrb),
.s_axi_wlast (ram_s_axi_wlast),
.s_axi_wvalid (ram_s_axi_wvalid),
.s_axi_wready (ram_s_axi_wready),
.s_axi_bid (ram_s_axi_bid),
.s_axi_bresp (ram_s_axi_bresp),
.s_axi_bvalid (ram_s_axi_bvalid),
.s_axi_bready (ram_s_axi_bready),
.s_axi_arid (ram_s_axi_arid),
.s_axi_araddr (ram_s_axi_araddr),
.s_axi_arlen (ram_s_axi_arlen),
.s_axi_arsize (ram_s_axi_arsize),
.s_axi_arburst (ram_s_axi_arburst),
.s_axi_arlock (ram_s_axi_arlock),
.s_axi_arcache (ram_s_axi_arcache),
.s_axi_arprot (ram_s_axi_arprot),
.s_axi_arvalid (ram_s_axi_arvalid),
.s_axi_arready (ram_s_axi_arready),
.s_axi_rid (ram_s_axi_rid),
.s_axi_rdata (ram_s_axi_rdata),
.s_axi_rresp (ram_s_axi_rresp),
.s_axi_rlast (ram_s_axi_rlast),
.s_axi_rvalid (ram_s_axi_rvalid),
.s_axi_rready (ram_s_axi_rready)
);
endmodule