Closed linuxbest closed 2 months ago
The onehot encoder looks wrong to me.
When N==1, the encoder output data should be always 0.
Thanks.
diff --git a/hw/rtl/libs/VX_onehot_encoder.sv b/hw/rtl/libs/VX_onehot_encoder.sv
index 92c7d1ea..adaa4183 100644
--- a/hw/rtl/libs/VX_onehot_encoder.sv
+++ b/hw/rtl/libs/VX_onehot_encoder.sv
@@ -29,7 +29,7 @@ module VX_onehot_encoder #(
);
if (N == 1) begin
- assign data_out = data_in;
+ assign data_out = 0;
assign valid_out = data_in;
end else if (N == 2) begin
Good catch! We would love to have you join our development effort, we are looking for hardware developers who can contribute to this open-source effort. Please join our discussion mailing list, we host monthly dev meetings https://vortex.cc.gatech.edu/community
With the default setting, the NUM_WAYS of icache is 1, so the way_idx should always be 0, but it will change to 1. This behavior is acceptable with Verilator but fails with other simulators.
Verilator:
VCS: