From 34be2a08a36dd55c2a3b9c2933e7eec3e7e0b9ee Mon Sep 17 00:00:00 2001 From: Luca Zulberti Date: Sat, 30 Jan 2021 19:27:54 +0100 Subject: [PATCH 1/3] axi_dw_upsizer: Remove forward reference Signed-off-by: Luca Zulberti --- src/axi_dw_upsizer.sv | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/axi_dw_upsizer.sv b/src/axi_dw_upsizer.sv index e62d688e1..1d39ff8a3 100644 --- a/src/axi_dw_upsizer.sv +++ b/src/axi_dw_upsizer.sv @@ -241,6 +241,19 @@ module axi_dw_upsizer #( R_INCR_UPSIZE } r_state_e; + // Write-related type, but w_req_q is referenced from Read logic + typedef struct packed { + aw_chan_t aw ; + logic aw_valid ; + logic aw_throw_error ; + mst_w_chan_t w ; + logic w_valid ; + axi_pkg::len_t burst_len ; + axi_pkg::size_t orig_aw_size; + } w_req_t; + + w_req_t w_req_d, w_req_q; + // Decide which upsizer will handle the incoming AXI transaction logic [AxiMaxReads-1:0] idle_read_upsizer; tran_id_t idx_ar_upsizer ; @@ -529,18 +542,7 @@ module axi_dw_upsizer #( W_INCR_UPSIZE } w_state_e; - typedef struct packed { - aw_chan_t aw ; - logic aw_valid ; - logic aw_throw_error ; - mst_w_chan_t w ; - logic w_valid ; - axi_pkg::len_t burst_len ; - axi_pkg::size_t orig_aw_size; - } w_req_t; - w_state_e w_state_d, w_state_q; - w_req_t w_req_d , w_req_q ; always_comb begin inject_aw_into_ar_req = 1'b0; From 3804f255f9874d904f3cd8d99009be0e342c36c8 Mon Sep 17 00:00:00 2001 From: Luca Zulberti Date: Sat, 30 Jan 2021 19:27:54 +0100 Subject: [PATCH 2/3] axi_dw_downsizer: Remove forward reference Signed-off-by: Luca Zulberti --- src/axi_dw_downsizer.sv | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/axi_dw_downsizer.sv b/src/axi_dw_downsizer.sv index 7c370bc08..8000ba4f5 100644 --- a/src/axi_dw_downsizer.sv +++ b/src/axi_dw_downsizer.sv @@ -256,6 +256,20 @@ module axi_dw_downsizer #( logic injected_aw ; } r_req_t; + // Write-related type, but w_req_q is referenced from Read logic + typedef struct packed { + aw_chan_t aw ; + logic aw_valid ; + logic aw_throw_error ; + burst_len_t burst_len ; + axi_pkg::len_t orig_aw_len ; + axi_pkg::burst_t orig_aw_burst; + axi_pkg::resp_t burst_resp ; + axi_pkg::size_t orig_aw_size ; + } w_req_t; + + w_req_t w_req_d, w_req_q; + // Decide which downsizer will handle the incoming AXI transaction logic [AxiMaxReads-1:0] idle_read_downsizer; tran_id_t idx_ar_downsizer; @@ -614,19 +628,7 @@ module axi_dw_downsizer #( W_SPLIT_INCR_DOWNSIZE } w_state_e; - typedef struct packed { - aw_chan_t aw ; - logic aw_valid ; - logic aw_throw_error ; - burst_len_t burst_len ; - axi_pkg::len_t orig_aw_len ; - axi_pkg::burst_t orig_aw_burst; - axi_pkg::resp_t burst_resp ; - axi_pkg::size_t orig_aw_size ; - } w_req_t; - w_state_e w_state_d, w_state_q; - w_req_t w_req_d, w_req_q; // This FIFO holds the number of bursts generated by each write transactions handled by this downsizer. // This is used to forward only the correct B beats to the slave. From a250c367a9c52648a7c95e5a15e7cee23439c005 Mon Sep 17 00:00:00 2001 From: Andreas Kurth Date: Mon, 1 Feb 2021 10:34:33 +0100 Subject: [PATCH 3/3] Changelog: Add fix from #163 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dbad8cdcf..2ddab0cad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Changed ### Fixed +- `axi_dw_downsizer` and `axi_dw_upsizer` (part of `axi_dw_converter`): Fix declaration order of + `w_req_t`, `w_req_d`, and `w_req_q` to remove problematic forward references. - FuseSoC: Fix version of `common_cells` (`1.21.0`).