AXI interface update
This commit is contained in:
@@ -10,29 +10,40 @@ module Vortex_axi #(
|
|||||||
input wire clk,
|
input wire clk,
|
||||||
input wire reset,
|
input wire reset,
|
||||||
|
|
||||||
// AXI write request
|
// AXI write address channel
|
||||||
output wire m_axi_wvalid,
|
|
||||||
output wire m_axi_awvalid,
|
output wire m_axi_awvalid,
|
||||||
output wire [AXI_TID_WIDTH-1:0] m_axi_awid,
|
output wire [AXI_TID_WIDTH-1:0] m_axi_awid,
|
||||||
output wire [AXI_ADDR_WIDTH-1:0] m_axi_awaddr,
|
output wire [AXI_ADDR_WIDTH-1:0] m_axi_awaddr,
|
||||||
output wire [7:0] m_axi_awlen,
|
output wire [7:0] m_axi_awlen,
|
||||||
output wire [2:0] m_axi_awsize,
|
output wire [2:0] m_axi_awsize,
|
||||||
output wire [1:0] m_axi_awburst,
|
output wire [1:0] m_axi_awburst,
|
||||||
|
output wire m_axi_awlock,
|
||||||
|
output wire [3:0] m_axi_awcache,
|
||||||
|
output wire [2:0] m_axi_awprot,
|
||||||
|
output wire [3:0] m_axi_awqos,
|
||||||
|
input wire m_axi_awready,
|
||||||
|
|
||||||
|
// AXI write data channel
|
||||||
|
output wire m_axi_wvalid,
|
||||||
output wire [AXI_DATA_WIDTH-1:0] m_axi_wdata,
|
output wire [AXI_DATA_WIDTH-1:0] m_axi_wdata,
|
||||||
output wire [AXI_STROBE_WIDTH-1:0] m_axi_wstrb,
|
output wire [AXI_STROBE_WIDTH-1:0] m_axi_wstrb,
|
||||||
|
output wire m_axi_wlast,
|
||||||
input wire m_axi_wready,
|
input wire m_axi_wready,
|
||||||
input wire m_axi_awready,
|
|
||||||
|
|
||||||
// AXI read request
|
// AXI read address channel
|
||||||
output wire m_axi_arvalid,
|
output wire m_axi_arvalid,
|
||||||
output wire [AXI_TID_WIDTH-1:0] m_axi_arid,
|
output wire [AXI_TID_WIDTH-1:0] m_axi_arid,
|
||||||
output wire [AXI_ADDR_WIDTH-1:0] m_axi_araddr,
|
output wire [AXI_ADDR_WIDTH-1:0] m_axi_araddr,
|
||||||
output wire [7:0] m_axi_arlen,
|
output wire [7:0] m_axi_arlen,
|
||||||
output wire [2:0] m_axi_arsize,
|
output wire [2:0] m_axi_arsize,
|
||||||
output wire [1:0] m_axi_arburst,
|
output wire [1:0] m_axi_arburst,
|
||||||
|
output wire m_axi_arlock,
|
||||||
|
output wire [3:0] m_axi_arcache,
|
||||||
|
output wire [2:0] m_axi_arprot,
|
||||||
|
output wire [3:0] m_axi_arqos,
|
||||||
input wire m_axi_arready,
|
input wire m_axi_arready,
|
||||||
|
|
||||||
// AXI read response
|
// AXI read data channel
|
||||||
input wire m_axi_rvalid,
|
input wire m_axi_rvalid,
|
||||||
input wire [AXI_TID_WIDTH-1:0] m_axi_rid,
|
input wire [AXI_TID_WIDTH-1:0] m_axi_rid,
|
||||||
input wire [AXI_DATA_WIDTH-1:0] m_axi_rdata,
|
input wire [AXI_DATA_WIDTH-1:0] m_axi_rdata,
|
||||||
@@ -62,6 +73,9 @@ module Vortex_axi #(
|
|||||||
.AXI_ADDR_WIDTH (AXI_ADDR_WIDTH),
|
.AXI_ADDR_WIDTH (AXI_ADDR_WIDTH),
|
||||||
.AXI_TID_WIDTH (AXI_TID_WIDTH)
|
.AXI_TID_WIDTH (AXI_TID_WIDTH)
|
||||||
) axi_adapter (
|
) axi_adapter (
|
||||||
|
.clk (clk),
|
||||||
|
.reset (reset),
|
||||||
|
|
||||||
.mem_req_valid (mem_req_valid),
|
.mem_req_valid (mem_req_valid),
|
||||||
.mem_req_rw (mem_req_rw),
|
.mem_req_rw (mem_req_rw),
|
||||||
.mem_req_byteen (mem_req_byteen),
|
.mem_req_byteen (mem_req_byteen),
|
||||||
@@ -75,24 +89,34 @@ module Vortex_axi #(
|
|||||||
.mem_rsp_tag (mem_rsp_tag),
|
.mem_rsp_tag (mem_rsp_tag),
|
||||||
.mem_rsp_ready (mem_rsp_ready),
|
.mem_rsp_ready (mem_rsp_ready),
|
||||||
|
|
||||||
.m_axi_wvalid (m_axi_wvalid),
|
|
||||||
.m_axi_awvalid (m_axi_awvalid),
|
.m_axi_awvalid (m_axi_awvalid),
|
||||||
.m_axi_awid (m_axi_awid),
|
.m_axi_awid (m_axi_awid),
|
||||||
.m_axi_awaddr (m_axi_awaddr),
|
.m_axi_awaddr (m_axi_awaddr),
|
||||||
.m_axi_awlen (m_axi_awlen),
|
.m_axi_awlen (m_axi_awlen),
|
||||||
.m_axi_awsize (m_axi_awsize),
|
.m_axi_awsize (m_axi_awsize),
|
||||||
.m_axi_awburst (m_axi_awburst),
|
.m_axi_awburst (m_axi_awburst),
|
||||||
|
.m_axi_awlock (m_axi_awlock),
|
||||||
|
.m_axi_awcache (m_axi_awcache),
|
||||||
|
.m_axi_awprot (m_axi_awprot),
|
||||||
|
.m_axi_awqos (m_axi_awqos),
|
||||||
|
.m_axi_awready (m_axi_awready),
|
||||||
|
|
||||||
|
.m_axi_wvalid (m_axi_wvalid),
|
||||||
.m_axi_wdata (m_axi_wdata),
|
.m_axi_wdata (m_axi_wdata),
|
||||||
.m_axi_wstrb (m_axi_wstrb),
|
.m_axi_wstrb (m_axi_wstrb),
|
||||||
|
.m_axi_wlast (m_axi_wlast),
|
||||||
.m_axi_wready (m_axi_wready),
|
.m_axi_wready (m_axi_wready),
|
||||||
.m_axi_awready (m_axi_awready),
|
|
||||||
|
|
||||||
.m_axi_arvalid (m_axi_arvalid),
|
.m_axi_arvalid (m_axi_arvalid),
|
||||||
.m_axi_arid (m_axi_arid),
|
.m_axi_arid (m_axi_arid),
|
||||||
.m_axi_araddr (m_axi_araddr),
|
.m_axi_araddr (m_axi_araddr),
|
||||||
.m_axi_arlen (m_axi_arlen),
|
.m_axi_arlen (m_axi_arlen),
|
||||||
.m_axi_arsize (m_axi_arsize),
|
.m_axi_arsize (m_axi_arsize),
|
||||||
.m_axi_arburst (m_axi_arburst),
|
.m_axi_arburst (m_axi_arburst),
|
||||||
|
.m_axi_arlock (m_axi_arlock),
|
||||||
|
.m_axi_arcache (m_axi_arcache),
|
||||||
|
.m_axi_arprot (m_axi_arprot),
|
||||||
|
.m_axi_arqos (m_axi_arqos),
|
||||||
.m_axi_arready (m_axi_arready),
|
.m_axi_arready (m_axi_arready),
|
||||||
|
|
||||||
.m_axi_rvalid (m_axi_rvalid),
|
.m_axi_rvalid (m_axi_rvalid),
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ module VX_avs_wrapper #(
|
|||||||
);
|
);
|
||||||
|
|
||||||
localparam BANK_ADDRW = `LOG2UP(AVS_BANKS);
|
localparam BANK_ADDRW = `LOG2UP(AVS_BANKS);
|
||||||
localparam OUT_REG = (AVS_BANKS > 2);
|
|
||||||
|
|
||||||
// Requests handling
|
// Requests handling
|
||||||
|
|
||||||
@@ -78,9 +77,8 @@ module VX_avs_wrapper #(
|
|||||||
`UNUSED_VAR (req_queue_size)
|
`UNUSED_VAR (req_queue_size)
|
||||||
|
|
||||||
VX_fifo_queue #(
|
VX_fifo_queue #(
|
||||||
.DATAW (REQ_TAG_WIDTH),
|
.DATAW (REQ_TAG_WIDTH),
|
||||||
.SIZE (RD_QUEUE_SIZE),
|
.SIZE (RD_QUEUE_SIZE)
|
||||||
.OUT_REG (!OUT_REG)
|
|
||||||
) rd_req_queue (
|
) rd_req_queue (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.reset (reset),
|
.reset (reset),
|
||||||
@@ -122,9 +120,8 @@ module VX_avs_wrapper #(
|
|||||||
|
|
||||||
for (genvar i = 0; i < AVS_BANKS; i++) begin
|
for (genvar i = 0; i < AVS_BANKS; i++) begin
|
||||||
VX_fifo_queue #(
|
VX_fifo_queue #(
|
||||||
.DATAW (AVS_DATA_WIDTH),
|
.DATAW (AVS_DATA_WIDTH),
|
||||||
.SIZE (RD_QUEUE_SIZE),
|
.SIZE (RD_QUEUE_SIZE)
|
||||||
.OUT_REG (!OUT_REG)
|
|
||||||
) rd_rsp_queue (
|
) rd_rsp_queue (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.reset (reset),
|
.reset (reset),
|
||||||
@@ -138,7 +135,7 @@ module VX_avs_wrapper #(
|
|||||||
`UNUSED_PIN (alm_full),
|
`UNUSED_PIN (alm_full),
|
||||||
`UNUSED_PIN (size)
|
`UNUSED_PIN (size)
|
||||||
);
|
);
|
||||||
end
|
end
|
||||||
|
|
||||||
for (genvar i = 0; i < AVS_BANKS; i++) begin
|
for (genvar i = 0; i < AVS_BANKS; i++) begin
|
||||||
assign rsp_arb_valid_in[i] = !avs_rspq_empty[i];
|
assign rsp_arb_valid_in[i] = !avs_rspq_empty[i];
|
||||||
@@ -149,8 +146,7 @@ module VX_avs_wrapper #(
|
|||||||
VX_stream_arbiter #(
|
VX_stream_arbiter #(
|
||||||
.NUM_REQS (AVS_BANKS),
|
.NUM_REQS (AVS_BANKS),
|
||||||
.DATAW (AVS_DATA_WIDTH + REQ_TAG_WIDTH),
|
.DATAW (AVS_DATA_WIDTH + REQ_TAG_WIDTH),
|
||||||
.TYPE ("R"),
|
.TYPE ("R")
|
||||||
.BUFFERED (OUT_REG ? 1 : 0)
|
|
||||||
) rsp_arb (
|
) rsp_arb (
|
||||||
.clk (clk),
|
.clk (clk),
|
||||||
.reset (reset),
|
.reset (reset),
|
||||||
|
|||||||
Reference in New Issue
Block a user