diff --git a/src/frontend/frontend.sv b/src/frontend/frontend.sv index 018573b4d5044e8bdfb83cd4497a42c9628367a7..d0f7b5ca4e9119c53da0d7442e4e0fb8610487a0 100644 --- a/src/frontend/frontend.sv +++ b/src/frontend/frontend.sv @@ -380,15 +380,14 @@ module frontend import ariane_pkg::*; #( ) i_ras ( .clk_i, .rst_ni, - .flush_i ( flush_bp_i ), - .push_i ( ras_push ), - .pop_i ( ras_pop ), - .data_i ( ras_update ), - .begin_spec_i ( begin_spec_o ), - .valid_spec_i ( is_correct_predict ), - .bad_spec_i ( is_mispredict ), - .resolved_type_i ( resolved_branch_i.cf_type ), - .data_o ( ras_predict ) + .flush_i ( flush_bp_i ), + .push_i ( ras_push ), + .pop_i ( ras_pop ), + .data_i ( ras_update ), + .begin_spec_i ( begin_spec_o ), + .valid_spec_i ( is_correct_predict ), + .bad_spec_i ( is_mispredict ), + .data_o ( ras_predict ) ); btb #( diff --git a/src/frontend/sras.sv b/src/frontend/sras.sv index a1ca55878e698bdb36b491a1bbc9cda3f22767db..e5f7f8b618f1cc61f31af7e8ea53113b84e6c0db 100644 --- a/src/frontend/sras.sv +++ b/src/frontend/sras.sv @@ -28,7 +28,6 @@ module sras #( input logic begin_spec_i, input logic valid_spec_i, input logic bad_spec_i, - input ariane_pkg::cf_t resolved_type_i, output ariane_pkg::ras_t data_o ); @@ -69,16 +68,12 @@ module sras #( 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] = '0; // ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q]; - end else 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 (begin_spec_i) begin ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q]; end - end else if (bad_spec_i && resolved_type_i == ariane_pkg::Return && ovf_counter_q[ptr_spec_q] != '0) begin - ovf_counter_d[ptr_spec_d] = ovf_counter_q[ptr_spec_q] - 1'b1; end end