From fa209d0aaf85538a7408d5e4fe5f8c70f106f729 Mon Sep 17 00:00:00 2001 From: Alban Gruin <alban.gruin@irit.fr> Date: Mon, 9 May 2022 11:21:36 +0200 Subject: [PATCH] Revert "fixup! sras: size improvements" This reverts commit 4aa205870c0c396b48f515f80f5b73b256538292. --- src/frontend/sras.sv | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/src/frontend/sras.sv b/src/frontend/sras.sv index accec65b..1bd7ed8e 100644 --- a/src/frontend/sras.sv +++ b/src/frontend/sras.sv @@ -60,17 +60,16 @@ module sras #( ovf_counter_d = '0; end else if (!bad_spec_i) begin if (push_i && !pop_i) begin - if (overflow || prev_plus_one == '0 || pp_plus_one == '0) begin + if (overflow) begin ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] + 1'b1; + end else if (prev_plus_one == '0 || pp_plus_one == '0) begin + ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] + 1'b1; + if (begin_spec_i) begin + ovf_counter_d[ptr_spec_q] = ovf_counter_q[ptr_spec_q] + 1'b1; + end end - - if ((prev_plus_one == '0 || pp_plus_one == '0) && begin_spec_i) begin - ovf_counter_d[ptr_spec_q] = ovf_counter_q[ptr_spec_q] + 1'b1; - end - end else if (!push_i && pop_i) begin - if (ovf_counter_q[ptr_spec_q] != '0) begin - ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] - 1'b1; - end + end else if (!push_i && pop_i && ovf_counter_q[ptr_spec_q] != '0) begin + ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] - 1'b1; end else if (!bad_spec_i && begin_spec_i) begin ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q]; end @@ -83,17 +82,14 @@ module sras #( if (flush_i) begin tos_d = '0; end else if (!bad_spec_i) begin - if (push_i && !pop_i) begin - if (!overflow && prev_plus_one != '0 && pp_plus_one != '0) begin - tos_d[ptr_spec_d] = prev_plus_one; - if (begin_spec_i) begin - tos_d[ptr_spec_q] = pp_plus_one; - end - end - end else if (!push_i && pop_i) begin - if (ovf_counter_q[ptr_spec_q] == '0) begin - tos_d[ptr_spec_d] = prev_minus_one; + if (push_i && !pop_i && !overflow && prev_plus_one != '0 && pp_plus_one != '0) begin + tos_d[ptr_spec_d] = prev_plus_one; + + if (begin_spec_i) begin + tos_d[ptr_spec_q] = pp_plus_one; end + end else if (!push_i && pop_i && ovf_counter_q[ptr_spec_q] == '0) begin + tos_d[ptr_spec_d] = prev_minus_one; end else if (!bad_spec_i && begin_spec_i) begin tos_d[ptr_spec_d] = tos_q[ptr_spec_q]; end -- GitLab