Skip to content

Add double_wide support and harden it with LibreLane 3 - #34

Merged
jdicorpo merged 5 commits into
mainfrom
double-wide-production-ready
Oct 28, 2026
Merged

jdicorpo merged 5 commits into
mainfrom
double-wide-production-ready

Conversation

@marwaneltoukhy

Copy link
Copy Markdown
Contributor

Branch double-wide-production-ready from the double-wide production-ready work. See chipfoundry/double-wide-env PR 1 for the full set.

double_wide ships its own flake.nix pinning LibreLane 3.1.0.dev2, whose
PDN generator (PDN_ENABLE_PINS) reaches the padframe-aligned power pins
directly, so no bridging 'connection' macro or cf-cli-managed OpenLane 2
install is needed for this project type.

- utils.py: add DOUBLE_WIDE_LIBRELANE_REV (pinned LibreLane 3 commit) and
  read_project_type() to detect the project type from .cf/project.json.
- librelane_run.py: add double_wide_flake_dir/double_wide_nix_available to
  resolve and validate the project's own flake, build_double_wide_librelane_command
  to invoke 'nix develop <flake> --command librelane ...', and
  get_double_wide_valid_from_steps to introspect --from step names via the
  same mechanism.
- main.py: add a self-contained _harden_double_wide() helper and dispatch
  to it from harden() right after config_file resolution (before the
  OpenLane-2 venv check, which double_wide has no use for). Handles
  --list-from-steps, --from validation, --tag resolution, --dry-run, GUI
  modes, and the same subprocess/signal-handling pattern as the existing
  OpenLane-2 path. --use-docker is explicitly rejected (double_wide has no
  Docker path). Every other project type (digital/analog/openframe/caravel)
  is completely unaffected and keeps using OpenLane 2/CI2511 via Nix or
  Docker as before.
- tests/test_double_wide.py: cover the new dispatch (successful run,
  --list-from-steps, --use-docker rejection, missing flake.nix, missing
  nix) and confirm other project types still hit the OpenLane 2 venv path.

Validated end-to-end: 'cf harden double_wide_openframe_project_wrapper'
against the real dw_openframe_user_project (project.type=double_wide)
completed with flow__errors__count=0, 0 DRC errors, and clean timing via
this new code path (not a manual nix invocation).
@jdicorpo
jdicorpo merged commit 182491f into main Oct 28, 2026
0 of 12 checks passed
@jdicorpo
jdicorpo deleted the double-wide-production-ready branch October 28, 2026 15:38
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.

3 participants