Skip to content

Add SCMap standard-cell mapping with electrical cover refinement - #610

Open
HAHHHD wants to merge 2 commits into
berkeley-abc:masterfrom
HAHHHD:scmap
Open

HAHHHD wants to merge 2 commits into
berkeley-abc:masterfrom
HAHHHD:scmap

Conversation

@HAHHHD

@HAHHHD HAHHHD commented Nov 14, 2026

Copy link
Copy Markdown
Contributor

This adds &scmap, a separate Liberty-based mapper for GIA networks, including choice graphs. Transition-aware seed construction is followed by bounded shared-cover refinement using merged size/buffer delay and slew responses. The mapper accounts for shared implementations and changes in driver loads, then emits an ordinary mapped network for independent buffering and sizing. It does not call those downstream optimizers to select candidates.

The command has one fixed algorithm configuration and only diagnostic options (-v, -w, -h). Existing &nf, map, and their defaults are unchanged. The implementation has one public entry point, translation-unit-local helpers, Make/CMake and Windows source registration, documentation, and a portable regression script accepting an externally supplied Liberty library.

doc/scmap.md includes command usage, library setup, and the ABC evaluation flow for mapping, sizing-only, and buffering followed by sizing, with a matched gain-NF baseline.

Floating-point contraction is disabled locally in the mapper to preserve separately rounded near-tied costs from the evaluated implementation. Global compiler flags and existing ABC commands retain their normal arithmetic.

Validation on upstream 5c246cf:

  • Native ARM64 C build and C++ namespace syntax check; CMake configuration includes the source in normal and PIC libraries. Windows project source registration is checked; native Windows compilation remains for CI.
  • All 20 EPFL designs in ASAP7, Nangate45 and SKY130HD reproduce the evaluated implementation’s 60 mapped netlists, with passing migration CEC.
  • Twelve downstream cases (ctrl, cavlc, mem_ctrl and hyp in each library) reproduce 24 sizing-only and buffered/sized netlists, with passing stage CEC.
  • Nine independent timing-invariant cases, six unchanged stock NF/map controls, five choice-graph comparisons, and the portable regression pass.
  • The hyp sizing iteration counts match the evaluated implementation.
  • The documented flow was checked on ctrl with Nangate45, including equivalence.

The benchmark data and experiment logs remain external to this focused PR.

Introduce &scmap with transition-aware seed construction and bounded
shared-cover refinement using merged size/buffer delay and slew responses.
Keep existing mapping commands and global compiler options unchanged.

Preserve separately rounded timing costs locally, register the mapper in
Make/CMake and Windows builds, and add documentation and a portable
Liberty-based regression script.
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