Skip to content

Example: two power domains (second timer on vccd2/vssd2) - #17

Draft
marwaneltoukhy wants to merge 1 commit into
cursor/openframe-pdn-5655from
cursor/openframe-pdn-2domain-5655
Draft

marwaneltoukhy wants to merge 1 commit into
cursor/openframe-pdn-5655from
cursor/openframe-pdn-2domain-5655

Conversation

@marwaneltoukhy

Copy link
Copy Markdown
Contributor

Why

The native PDN claims multi-domain support, and it needs a signed-off example that exercises a second domain end to end: spec → power.json → rings → pad straps → macro connection → LVS. This branch is that example and the reference for users who add a vccd2 macro. It may stay as an example branch rather than merge into the default template; reviewers should decide.

What

  • Second macro: mprj2, a second user_proj_timer instance on vccd2/vssd2. mprj stays on vccd1/vssd1 and drives pads 2-12; mprj2 drives pads 24-34.
  • Spec: .cf/openframe_default.json enables domains [vccd1, vccd2] and maps mprj2 to vccd2 with pins vccd1/vssd1. The macro is the same hardened timer, so its own pin names are unchanged.
  • Regenerated files: openframe_gpio.v and power.json are regenerated with cf openframe import. power.json now contains VDD_NETS [vccd1, vccd2], GND_NETS [vssd1, vssd2] and PDN_MACRO_CONNECTIONS for both macros.
  • Wrapper: the wrapper RTL instantiates and wires mprj2, and the config places it (MACROS).
  • LVS lists: both LVS abstract/subcut lists name the timer master.
  • Views: the wrapper is re-hardened.

Testing

  • LibreLane 3.0.14: Magic DRC 0, KLayout DRC 0, LVS 0, XOR 0, PDN violations 0, route DRC 0. All 12 padframe pins of the four nets are tied, and PSM reports every net connected.
  • cf precheck (--magic-drc): 13/13 PASS, with LVS "Circuits match uniquely".
  • Substrate-merge regression: vssd1 and vssd2 stay separate nets in LibreLane and cf-precheck LVS. Before the isolation fix in the PDN PR, they merged through the substrate.

Follow-ups

  • vdda1/vdda2 example: the analog domains still need a signed-off example (see the PDN PR).
  • Per-macro lists: MACROS, MAGIC_EXT_ABSTRACT_CELLS and EXTRACT_CREATE_SUBCUT are maintained by hand for each added macro (see the PDN PR).

mprj stays on vccd1/vssd1 and drives pads 2-12. mprj2 is a second
user_proj_timer on vccd2/vssd2 that drives pads 24-34. openframe_gpio.v
and power.json are generated by `cf openframe import` from
.cf/openframe_default.json. Signoff on LibreLane 3.0.14: Magic/KLayout DRC 0,
LVS 0, XOR 0, PDN violations 0. cf precheck (--magic-drc): all 13 checks
pass.
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.

2 participants