From 5d0da83334b4d1f64a16440cc8a40ec071233c9d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20B=2E=20Preu=C3=9Fer?= <thomas.preusser@xilinx.com>
Date: Wed, 25 May 2022 13:27:43 +0100
Subject: [PATCH] axi_info read not to block upon out-of-bounds accesses.

---
 finn-rtllib/axi_info/hdl/axi_info.sv | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/finn-rtllib/axi_info/hdl/axi_info.sv b/finn-rtllib/axi_info/hdl/axi_info.sv
index d71877c46..293563293 100644
--- a/finn-rtllib/axi_info/hdl/axi_info.sv
+++ b/finn-rtllib/axi_info/hdl/axi_info.sv
@@ -98,29 +98,21 @@ module axi_info #(
 	if(1) begin : blkRead
 		logic                         RValid =  0;
 		logic [S_AXI_DATA_WIDTH-1:0]  RData;//  = 'x;
-		logic [                 1:0]  RResp;//  = 'x;
 		always_ff @(posedge clk) begin
 			if(rst) begin
 				RValid <=  0;
 				RData  <= 'x;
-				RResp  <= 'x;
 			end
 			else if(s_axi_ARREADY) begin
+				automatic logic [$left(s_axi_ARADDR):2]  addr_eff = s_axi_ARADDR[$left(s_axi_ARADDR):2];
 				RValid <= s_axi_ARVALID;
-				if(s_axi_ARADDR < N) begin
-					RData  <= DATA[s_axi_ARADDR[$left(s_axi_ARADDR):2]];
-					RResp  <= '0; // OKAY
-				end
-				else begin
-					RData  <= 'x;
-					RResp  <= '1; // DECERR
-				end
+				RData  <= (addr_eff < N)? DATA[addr_eff] : 32'hDEADDEAD;
 			end
 		end
 		assign	s_axi_ARREADY = !RValid || s_axi_RREADY;
 		assign	s_axi_RVALID  = RValid;
 		assign	s_axi_RDATA   = RData;
-		assign	s_axi_RRESP   = RResp;
+		assign	s_axi_RRESP   = '0; // OKAY
 
 	end : blkRead
 
-- 
GitLab