Skip to content

dft: preserve fixed scan outputs and optimized chain metadata - #2

Open
wellitsabhinav wants to merge 5 commits into
mwsoli:dft/scan-chain-optimizerfrom
wellitsabhinav:fix/dft-scan-output-topology
Open

wellitsabhinav wants to merge 5 commits into
mwsoli:dft/scan-chain-optimizerfrom
wellitsabhinav:fix/dft-scan-output-topology

Conversation

@wellitsabhinav

@wellitsabhinav wellitsabhinav commented Oct 3, 2026 •

Copy link
Copy Markdown

Scan-chain optimization can leave a configured fixed scan-output port connected to the old tail while metadata points to the new tail ITerm. The resulting scan path does not reach the fixed output. Per-chain optimization also leaves dbScanList in its original order.

RestitchChain reconnects the existing fixed output load to the final tail's Q/SO net, preserves functional Q fanout and endpoint identity, and rebuilds the scan list from the final ordered vector using OpenDB's prepend convention. An implicitly reused functional output is rejected unless an explicit scan output is configured, since moving a functional output would change the circuit.

The updated src/dft/test/scan_opt_sky130.tcl supplies a dedicated scan_out_0, runs execute_dft_plan; scan_opt, traces all ten cells from the fixed SI to the fixed SO, checks that SO is the tail, verifies every original functional output remains on its Q net, and compares normalized metadata order with the physical path. The test remains registered in CMake and Bazel.

Validation: the OpenROAD build and the native scan_opt_sky130, place_sort_sky130, and one_cell_sky130 golden regressions pass. The fix changes reconstruction and metadata consistency; the scan optimizer's clustering, ordering, capacity and cost functions are unchanged.

This targets the branch behind OpenROAD's scan-chain optimizer PR. It includes the separate compile-only receiver prerequisite while that prerequisite is absent from the target branch. An independent input-port alias serialization defect is handled by OpenSTA PR 420; this PR contains no OpenSTA submodule update.

Signed-off-by: abhinav <abhinav24167@iiitd.ac.in>
Signed-off-by: abhinav <abhinav24167@iiitd.ac.in>
Signed-off-by: abhinav <abhinav24167@iiitd.ac.in>
Signed-off-by: abhinav <abhinav24167@iiitd.ac.in>
Signed-off-by: abhinav <abhinav24167@iiitd.ac.in>
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