Skip to content

Refine GetDeadAfterSynthesisNodes to give more accurate results.#4009

Merged
copybara-service[bot] merged 1 commit intomainfrom
test_889916202
Mar 27, 2026
Merged

Refine GetDeadAfterSynthesisNodes to give more accurate results.#4009
copybara-service[bot] merged 1 commit intomainfrom
test_889916202

Conversation

@copybara-service
Copy link
Copy Markdown

@copybara-service copybara-service bot commented Mar 26, 2026

Refine GetDeadAfterSynthesisNodes to give more accurate results.

For procs we would give a rather conservative analysis where we would consider Next and StateRead nodes always alive even if the Next feeds a StateRead which is only read by 'dead-after-synthesis' nodes. This extends the analysis to recognize these situations.

The SDC scheduler is updated to use ASAP scheduler to actually place dead-after-synthesis nodes. This ensures that any state elements present in this set will respect the II constraints (since that is observable in simulation). This ASAP schedule cannot fail because we can always worst case put everything in exactly one stage at the very end as a valid assignment because by definition since the states are dead after synthesis they cannot be blocked behind any outputs and so the stage is unobservable.

@copybara-service copybara-service bot force-pushed the test_889916202 branch 5 times, most recently from bbbfbab to d2dfc64 Compare March 27, 2026 16:03
For procs we would give a rather conservative analysis where we would consider `Next` and `StateRead` nodes always alive even if the `Next` feeds a `StateRead` which is only read by 'dead-after-synthesis' nodes. This extends the analysis to recognize these situations.

The SDC scheduler is updated to use ASAP scheduler to actually place dead-after-synthesis nodes. This ensures that any state elements present in this set will respect the II constraints (since that is observable in simulation). This ASAP schedule cannot fail because we can always worst case put everything in exactly one stage at the very end as a valid assignment because by definition since the states are dead after synthesis they cannot be blocked behind any outputs and so the stage is unobservable.

PiperOrigin-RevId: 890549884
@copybara-service copybara-service bot merged commit 98bae35 into main Mar 27, 2026
@copybara-service copybara-service bot deleted the test_889916202 branch March 27, 2026 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant