Skip to content

Commit 58bc552

Browse files
author
Maurus Item
committed
Improved synchronization in case of faults in division and prevented potential cases where a bitflip causes a stall due to
activating a division lane that does not exist.
1 parent e1caa72 commit 58bc552

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

src/fpnew_aux_fsm.sv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ module fpnew_aux_fsm #(
154154
assign in_ready[NUM_INP_REGS] = fsm_in_ready;
155155

156156
// Done when all active lanes are done
157-
assign fsm_ready = &(lane_fsm_ready_i | ~held_lane_active);
157+
assign fsm_ready = &lane_fsm_ready_i;
158158

159159
// FSM to safely apply and receive data from DIVSQRT unit
160160
always_comb begin : flag_fsm

src/fpnew_opgroup_multifmt_slice.sv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ or on 16b inputs producing 32b outputs");
477477
assign local_result = {(LANE_WIDTH){lane_ext_bit[0]}}; // sign-extend/nan box
478478
assign lane_status[lane] = '0;
479479
assign in_lane_active[lane] = 1'b0; // Lane does not exist, it can never be active
480-
assign lane_fsm_ready[lane] = 1'b0; // Lane does not exist, it can not be ready
480+
assign lane_fsm_ready[lane] = 1'b1; // Lane does not exist, it is always ready just in case erronous data gets to the FSM in this slot
481481
end
482482

483483
// Generate result packing depending on float format

0 commit comments

Comments
 (0)