Skip to content

asap7/coralnpu: fix detailed routing DRC violations at lower utilization - #4666

Open
bandhambalaji wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
bandhambalaji:fix-coralnpu-drt-drc
Open

bandhambalaji wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
bandhambalaji:fix-coralnpu-drt-drc

Conversation

@bandhambalaji

Copy link
Copy Markdown

Summary

This PR fixes Issue #4478 ("Asap7 coralnpu with lower CORE_UTILIZATION gets 'stuck' in DRT").

Root Cause

When CORE_UTILIZATION was set to 55 (or lower), PLACE_DENSITY was unconstrained in flow/designs/asap7/coralnpu/config.mk and fell back to the platform default 0.60. Because placement density (0.60) was higher than core utilization (0.55), standard cells were packed into dense clusters with 0 horizontal cell padding (CELL_PAD_IN_SITES = 0) adjacent to fakeram macro channels (RTLMP_MIN_CHANNEL_SIZE = 4 4).

During detailed routing, TritonRoute was unable to resolve pin access for standard cell pins on M1/M2 at core.score/regfile, resulting in persistent Metal 2 shorts and Metal 3 VDD spacing violations.

Fix

In flow/designs/asap7/coralnpu/config.mk:

  1. Added export PLACE_DENSITY_LB_ADDON = 0.20, allowing placement density to dynamically track lower-bound core utilization (consistent with asap7/ibex and asap7/swerv_wrapper).
  2. Added horizontal cell padding:
    • export CELL_PAD_IN_SITES_GLOBAL_PLACEMENT = 1
    • export CELL_PAD_IN_SITES_DETAIL_PLACEMENT = 1

Verification Results

Tested on asap7/coralnpu with CORE_UTILIZATION=55:

  • Placement (3_place.odb): Legalized cleanly with cell padding intact.
  • Clock Tree Synthesis (4_cts.odb): Passed formal logic equivalence check (4_rsz_lec clean).
  • Global Route (5_1_grt.odb): FastRoute completed with 0 overflow.
  • Detailed Route (5_2_route.odb): Converged cleanly in 11 optimization iterations to 0 DRC errors (detailedroute__route__drc_errors: 0).
  • Antenna Violations: 0 net violations, 0 pin violations.
  • DRC Report (5_route_drc.rpt): 0 violations (0 bytes).

Fixes #4478

When CORE_UTILIZATION is set to 55 or lower, the platform placement
density was unconstrained and defaulted to 0.60, causing local cell
congestion adjacent to fakeram macros and leading to unresolvable M2
shorts and M3 metal spacing violations in detailed routing.

Add PLACE_DENSITY_LB_ADDON = 0.20 and horizontal cell padding
(CELL_PAD_IN_SITES_GLOBAL_PLACEMENT = 1,
CELL_PAD_IN_SITES_DETAIL_PLACEMENT = 1) to ensure pin accessibility
and achieve 0 DRC violations.

Fixes The-OpenROAD-Project#4478

Signed-off-by: Bandham Balaji <bandhambalaji@gmail.com>

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the configuration for the coralnpu design on the asap7 platform by introducing three new environment variables: PLACE_DENSITY_LB_ADDON, CELL_PAD_IN_SITES_GLOBAL_PLACEMENT, and CELL_PAD_IN_SITES_DETAIL_PLACEMENT. These additions configure placement density and cell padding parameters. There are no review comments, and I have no feedback to provide.

@openroad-ci

Copy link
Copy Markdown
Member

🔍 QoR check

Metrics reflect the PR merge build — i.e. what will land on the target branch.

Commit 87790ee · Jenkins build #1 · Baseline: build · View build on dashboard

62 design(s) checked — 0 with regression(s), 0 without a comparable baseline.

@bandhambalaji

Copy link
Copy Markdown
Author

@eder-matheus This PR directly resolves issue #4478 by adding PLACE_DENSITY_LB_ADDON = 0.20 and horizontal cell padding (CELL_PAD_IN_SITES = 1) to �sap7/coralnpu, eliminating the pin-access shorts and achieving 0 DRC violations.

All Jenkins CI tests (Build #1) have passed cleanly across 62/62 designs with 0 regressions. The PR is clean and ready for review whenever convenient. Thanks!

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.

Asap7 coralnpu with lower CORE_UTILIZATION gets "stuck" in DRT

2 participants