-
Notifications
You must be signed in to change notification settings - Fork 790
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ibex,fpga] Apply Ibex FPGA patches #25480
[ibex,fpga] Apply Ibex FPGA patches #25480
Conversation
This commit manually pulls over lowRISC/ibex#2224 to fix the register file for the FPGA configuration. As we do not want to include other Ibex changes, this is done using a patch file. Signed-off-by: Pascal Nasahl <[email protected]> (commit is original to earlgrey_1.0.0)
This commit fixes the reset logic of the Ibex counter module for the FPGA. Signed-off-by: Pascal Nasahl <[email protected]> (commit is original to earlgrey_1.0.0)
27ef4b1
to
89ea9f8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me, thanks @nasahlpa !
For awareness, I am also tagging @andreaskurth and @moidx . We need this FPGA-only RTL changes to enable using the lockstep core on the CW340 board which is required for SiVal. This change is unique to the earlgrey_1.0.0 branch and we will do a different fix (without patches) on the master branch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe we still don't have bitstream caching enabled for earlgrey_1.0.0
. @a-will can provide details on how to enable this.
Bitstreams are being cached, it looks like. The only thing to avoid would be using the |
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_counter.sv |
1 similar comment
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_counter.sv |
if (CounterWidth < 49) begin : g_dsp_counter | ||
// DSP output register requires synchronous reset. | ||
`define COUNTER_FLOP_RST posedge clk_i | ||
end else begin : g_no_dsp_counter | ||
`define COUNTER_FLOP_RST posedge clk_i or negedge rst_ni | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a note that this code relying on a pre-processor `define
isn't generally correct, because the pre-processor would resolve the `define
before elaboration resolves the parameterized if
-else
construct. However, this only affects Xilinx code (it's inside an `ifdef FPGA_XILINX
) and @nasahlpa tested that this works as intended in Vivado.
On master
a proper fix has been applied (#25458), but that would also modify ASIC RTL, which we don't allow on this branch.
CHANGE AUTHORIZED: hw/vendor/lowrisc_ibex/rtl/ibex_counter.sv This only changes FPGA logic; ASIC logic isn't affected. |
This PR applies two patches on top of Ibex that fix the following two FPGA related issues:
WordZeroVal
instead of0
for initializing the FPGA register fileA patch is needed because: