Fix: Connect SIMD/FP free_list empty_o to pipeline stall#5
Open
AdeshDeshmukh wants to merge 1 commit into
Open
Fix: Connect SIMD/FP free_list empty_o to pipeline stall#5AdeshDeshmukh wants to merge 1 commit into
AdeshDeshmukh wants to merge 1 commit into
Conversation
The SIMD and FP free_list instances had their empty_o signals declared but left unconnected (datapath.sv:619,643). When these free lists are empty, new_register_o returns 'h0 (register v0/f0). Unlike scalar x0, v0 and f0 are not hardwired to zero, causing silent data corruption under heavy vector or floating-point register pressure. This patch wires the signals to the control unit to stall the IQ, matching the existing scalar free_list pattern.
AdeshDeshmukh
force-pushed
the
fix/simd-fp-free-list-empty-stall
branch
from
July 14, 2026 15:07
9c2afaf to
9dd1087
Compare
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3.
This PR wires the
simd_free_list_emptyandfp_free_list_emptysignals to the control unit to trigger an IQ stall when physical registers are exhausted.Changes:
simd_empty_free_listandfp_empty_free_listtoir_cu_tstruct indrac_pkg.sv.datapath.svand removed// TODO not connectedcomments.empty_free_listincontrol_unit.svstall/flush conditions (lines 424, 490).Verification:
empty_free_listpattern.make lintrequires Verilator which is not available in this environment. The changes are syntactically straightforward (struct fields + wiring + OR conditions), exactly mirroring the proven scalar implementation.Let me know if there is a specific testbench target I should run for SIMD register exhaustion.