Skip to content

Preserve \src attributes through ABC9 synthesis#2

Draft
robtaylor wants to merge 44 commits intosrc_retention_abcfrom
src_retention_abc9
Draft

Preserve \src attributes through ABC9 synthesis#2
robtaylor wants to merge 44 commits intosrc_retention_abcfrom
src_retention_abc9

Conversation

@robtaylor
Copy link
Copy Markdown
Owner

Summary

  • Adds \src attribute preservation through the abc9 synthesis pass using node retention data from ABC
  • Implements side-channel file approach: Yosys writes src_map.txt (CI position -> \src), ABC writes output.retention (GIA retention data via &write_retention), Yosys joins them to recover \src on post-synthesis $lut cells
  • Builds on Phase 1 classic abc pass changes from Preserve \src attributes through classic abc pass #1 and ABC-side &write_retention command from robtaylor/abc#1

Changes

  • abc9_ops.cc: New write_src_map() function, reintegrate() extended with retention loading and \src application
  • abc9_exe.cc: Added &write_retention to ABC9 synthesis script
  • abc9.cc: Wired up write_src_map call and tempdir propagation to reintegrate
  • Tests: Basic sanity test and full manual test script

Dependencies

Test plan

  • Build yosys with retention-enabled ABC (ABCEXTERNAL)
  • Run tests/techmap/abc9_src_retention.ys sanity test
  • Run tests/techmap/abc9_src_retention_full.sh to verify \src attributes appear on post-synthesis cells
  • Verify circuit equivalence is preserved

@robtaylor robtaylor force-pushed the src_retention_abc9 branch 3 times, most recently from e021a1e to 7528518 Compare February 18, 2026 11:10
widlarizer and others added 7 commits February 20, 2026 10:49
…t-deletion

modtools: fix database sanity
…5684

Fix segfault from shift with 0-width signed arg.
Reduce complexity for adi brams by unconditionally providing the WIDTH and ABITS parameters.
abc9: verify post-mapping equivalence by default
CI: WASI - Applying YoWASP changes to script
KrystalDelusion and others added 10 commits February 22, 2026 09:00
…g-model-errors

equiv_induct: error on missing model
Use the node retention feature in ABC to propagate \src attributes
through the classic (non-ABC9) synthesis pipeline. When writing BLIF,
retained node IDs are emitted; when reading results back, \src
attributes are restored from the retention map.

This depends on YosysHQ/abc#41 for the ABC node retention support.

Co-developed-by: Claude Code v2.1.44 (claude-opus-4-6)
Use the node retention feature in ABC to propagate \src attributes
through the ABC9 synthesis pipeline. The &write_retention command
exports retained GIA node mappings, which are then used to restore
\src attributes on cells after ABC9 optimization.

Co-developed-by: Claude Code v2.1.44 (claude-opus-4-6)
Add tests validating that \src attributes survive ABC and ABC9
synthesis round-trips, plus sideband invariant tests checking
attribute preservation through the full PnR-like flow.

Test coverage:
- Classic ABC src retention (basic + full validation)
- ABC9 src retention (basic + full validation)
- Sideband invariant tests for \src through synthesis pipelines
- CI workflow for automated retention validation

Co-developed-by: Claude Code v2.1.44 (claude-opus-4-6)
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.

8 participants