The-OpenROAD-Project / The-OpenROAD-Project/OpenROAD

Missing UPF commands and options

Open
#5,617 6 comments 0 reactions 1 assignee View on GitHub

@LucasYuki is already working on this.

Since Feb 21, 2025.

upf
Dominant language
Verilog
Stars
3.1k
Forks
1k
Avg merge
2d 23h
Merged PRs (30d)
136

Description

Describe the bug

Missing commands:

  • upf_version
  • create_supply_port
  • create_supply_net
  • connect_supply_net
  • create_supply_set
  • set_port_attributes
  • add_port_state
  • create_pst
  • add_pst_state

Missing options in existing commands:

create_power_domain:

  • include_scope
  • -supply

set_isolation:

  • -isolation_supply
  • -sink
  • -source
Expected Behavior

Have this commands and options

Environment
Latest openroad
To Reproduce

upf_version 2.1

create_supply_port VDDD1V2
create_supply_port -direction inout VDDD

create_supply_net VDDD
create_supply_net VDDD1V2
create_supply_net GNDD

connect_supply_net -ports VDDD VDDD
connect_supply_net -ports VDDD1V2 VDDD1V2
connect_supply_net -ports GNDD GNDD

create_supply_set ss_GNDD_VDDD1V2 -function {ground GNDD} -function {power VDDD1V2}
create_supply_set ss_GNDD_VDDD -function {ground GNDD} -function {power VDDD}

create_power_domain PD1 -include_scope -supply {primary ss_GNDD_VDDD}
create_power_domain PD2 -elements pd1v2 -supply {primary ss_GNDD_VDDD1V2}

set_port_attributes -ports out_signal_1v2 -receiver_supply ss_GNDD_VDDD1V2

add_power_state ss_GNDD_VDDD1V2
-state {on_1v2 -supply_expr {(power == {FULL_ON 1.08}) && (ground == {FULL_ON 0})}}
-state {off_1v2 -supply_expr {(power == {OFF})}}

add_power_state ss_GNDD_VDDD
-state {on_std -supply_expr {(power == {FULL_ON 2.25}) && (ground == {FULL_ON 0})}}

add_power_state PD1
-state {dig_on -logic_expr {
(ss_GNDD_VDDD1V2 == on_1v2) &&
(ss_GNDD_VDDD == on_std)}}
-state {dig_off -logic_expr {
(ss_GNDD_VDDD1V2 == off_1v2) &&
(ss_GNDD_VDDD == on_std)}}

set_isolation iso_PD2_from_ss_GNDD_VDDD1V2_to_ss_GNDD_VDDD
-clamp_value 0
-domain PD2
-isolation_sense low
-isolation_signal pd1v2/i_isolation
-isolation_supply ss_GNDD_VDDD
-sink ss_GNDD_VDDD
-source ss_GNDD_VDDD1V2

set_level_shifter ls_PD2_ss_GNDD_VDDD1V2_to_ss_GNDD_VDDD
-domain PD2
-sink ss_GNDD_VDDD
-source ss_GNDD_VDDD1V2

set_level_shifter ls_PD2_ss_GNDD_VDDD_to_ss_GNDD_VDDD1V2
-domain PD2
-sink ss_GNDD_VDDD1V2
-source ss_GNDD_VDDD

Relevant log output

No response

Screenshots

No response

Additional Context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.