From f98e26e0f2d39f0906ab693fec365d3025b79970 Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Sat, 11 Sep 2021 15:12:36 -0700 Subject: [PATCH] AXI interface update --- hw/rtl/Vortex_axi.v | 46 ++++++++++++++++++++++++++++--------- hw/rtl/afu/VX_avs_wrapper.v | 16 +++++-------- 2 files changed, 41 insertions(+), 21 deletions(-) diff --git a/hw/rtl/Vortex_axi.v b/hw/rtl/Vortex_axi.v index 48432203..06aa48b8 100644 --- a/hw/rtl/Vortex_axi.v +++ b/hw/rtl/Vortex_axi.v @@ -10,29 +10,40 @@ module Vortex_axi #( input wire clk, input wire reset, - // AXI write request - output wire m_axi_wvalid, + // AXI write address channel output wire m_axi_awvalid, output wire [AXI_TID_WIDTH-1:0] m_axi_awid, output wire [AXI_ADDR_WIDTH-1:0] m_axi_awaddr, output wire [7:0] m_axi_awlen, 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_STROBE_WIDTH-1:0] m_axi_wstrb, + output wire m_axi_wlast, input wire m_axi_wready, - input wire m_axi_awready, - // AXI read request + // AXI read address channel output wire m_axi_arvalid, output wire [AXI_TID_WIDTH-1:0] m_axi_arid, output wire [AXI_ADDR_WIDTH-1:0] m_axi_araddr, output wire [7:0] m_axi_arlen, 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, - // AXI read response + // AXI read data channel input wire m_axi_rvalid, input wire [AXI_TID_WIDTH-1:0] m_axi_rid, input wire [AXI_DATA_WIDTH-1:0] m_axi_rdata, @@ -62,6 +73,9 @@ module Vortex_axi #( .AXI_ADDR_WIDTH (AXI_ADDR_WIDTH), .AXI_TID_WIDTH (AXI_TID_WIDTH) ) axi_adapter ( + .clk (clk), + .reset (reset), + .mem_req_valid (mem_req_valid), .mem_req_rw (mem_req_rw), .mem_req_byteen (mem_req_byteen), @@ -75,24 +89,34 @@ module Vortex_axi #( .mem_rsp_tag (mem_rsp_tag), .mem_rsp_ready (mem_rsp_ready), - .m_axi_wvalid (m_axi_wvalid), .m_axi_awvalid (m_axi_awvalid), .m_axi_awid (m_axi_awid), .m_axi_awaddr (m_axi_awaddr), .m_axi_awlen (m_axi_awlen), .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_wstrb (m_axi_wstrb), + .m_axi_wlast (m_axi_wlast), .m_axi_wready (m_axi_wready), - .m_axi_awready (m_axi_awready), .m_axi_arvalid (m_axi_arvalid), .m_axi_arid (m_axi_arid), .m_axi_araddr (m_axi_araddr), .m_axi_arlen (m_axi_arlen), .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_rvalid (m_axi_rvalid), diff --git a/hw/rtl/afu/VX_avs_wrapper.v b/hw/rtl/afu/VX_avs_wrapper.v index 34431b91..fcfae197 100644 --- a/hw/rtl/afu/VX_avs_wrapper.v +++ b/hw/rtl/afu/VX_avs_wrapper.v @@ -42,7 +42,6 @@ module VX_avs_wrapper #( ); localparam BANK_ADDRW = `LOG2UP(AVS_BANKS); - localparam OUT_REG = (AVS_BANKS > 2); // Requests handling @@ -78,9 +77,8 @@ module VX_avs_wrapper #( `UNUSED_VAR (req_queue_size) VX_fifo_queue #( - .DATAW (REQ_TAG_WIDTH), - .SIZE (RD_QUEUE_SIZE), - .OUT_REG (!OUT_REG) + .DATAW (REQ_TAG_WIDTH), + .SIZE (RD_QUEUE_SIZE) ) rd_req_queue ( .clk (clk), .reset (reset), @@ -122,9 +120,8 @@ module VX_avs_wrapper #( for (genvar i = 0; i < AVS_BANKS; i++) begin VX_fifo_queue #( - .DATAW (AVS_DATA_WIDTH), - .SIZE (RD_QUEUE_SIZE), - .OUT_REG (!OUT_REG) + .DATAW (AVS_DATA_WIDTH), + .SIZE (RD_QUEUE_SIZE) ) rd_rsp_queue ( .clk (clk), .reset (reset), @@ -138,7 +135,7 @@ module VX_avs_wrapper #( `UNUSED_PIN (alm_full), `UNUSED_PIN (size) ); - end + end for (genvar i = 0; i < AVS_BANKS; i++) begin assign rsp_arb_valid_in[i] = !avs_rspq_empty[i]; @@ -149,8 +146,7 @@ module VX_avs_wrapper #( VX_stream_arbiter #( .NUM_REQS (AVS_BANKS), .DATAW (AVS_DATA_WIDTH + REQ_TAG_WIDTH), - .TYPE ("R"), - .BUFFERED (OUT_REG ? 1 : 0) + .TYPE ("R") ) rsp_arb ( .clk (clk), .reset (reset),