[rtl] Make fetch FIFO clear dominate updates - #2470
Conversation
Avoid updating fetch FIFO payload and error registers while clear_i invalidates every entry. This removes unnecessary clear-cycle activity from the redirect control path. Signed-off-by: Srinidhi-Magesh <magesh.srinidhi@ufl.edu>
|
Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign the Contributor License Agreement before we can accept your contribution. The CLA ensures that all users of the project are granted rights to use the submission. Before signing the CLA, please ensure that you have the authority from your organisation to grant these rights. You will be asked to sign the CLA when you first contribute to each lowRISC repository, and will be asked to re-sign if the CLA changes. Each individual who has committed in this Pull Request should sign the CLA by posting a Pull Request Comment containing the text below. I have read the CLA Document. By submitting this pull request comment, I am hereby confirming my acceptance of the terms of the CLA Document and my agreement to be legally bound by its terms. You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
|
recheck |
Local synthesis identifies fetch FIFO payload/error updates on the taken-branch redirect path. Qualifying their enables with !clear_i improves arrival time from 2.89 ns to 2.77 ns at a measured 0.44% area cost.
The change has passed directed clear/push/pop testing, Ibex hello_test, and a standalone SymbiYosys/Z3 proof.
Would this timing/area tradeoff and implementation-level payload stability behavior be considered appropriate for an upstream RTL change?
I have read the CLA Document. By submitting this pull request comment, I am hereby confirming my acceptance of the terms of the CLA Document and my agreement to be legally bound by its terms.