docs(upf): document known limitations in UPF module#9855
docs(upf): document known limitations in UPF module#9855shuvro-git wants to merge 1 commit intoThe-OpenROAD-Project:masterfrom
Conversation
There was a problem hiding this comment.
Code Review
This PR adds a comprehensive 'Limitations' section to the UPF module's README.md, which was previously empty. It also includes minor formatting fixes by removing trailing whitespace. My review focuses on improving the clarity and professionalism of the new documentation section by suggesting removal of implementation-specific verification notes and refining the language to be more user-friendly. The changes are a valuable addition to the project's documentation.
| ### Unsupported UPF standard commands | ||
| | ||
| The following standard commands are not implemented | ||
| (verified by grep returning no output and runtime | ||
| returning "invalid command name"): | ||
| | ||
| - `upf_version` — UPF version declaration | ||
| - `create_supply_net` — named supply net creation | ||
| - `create_supply_port` — supply port creation | ||
| - `connect_supply_net` — supply net connectivity | ||
| - `add_power_state` — power state definition | ||
| - `create_pst` — power state table creation | ||
| - `add_pst_state` — power state table entries | ||
| | ||
| ### Partially supported commands | ||
| | ||
| - `set_isolation` — missing options: `-isolation_supply_set`, | ||
| `-source`, `-sink` (verified: absent from both | ||
| upf.tcl keys list and upf.cpp function signature) | ||
| - `set_level_shifter` — fully implemented in code but | ||
| all option descriptions in this README are empty | ||
| (marked "Options coming soon") | ||
| - `set_level_shifter_cell` — all four options | ||
| (`-level_shifter`, `-cell_name`, `-input_port`, | ||
| `-output_port`) are undocumented (marked KIV) | ||
| | ||
| ### Missing infrastructure | ||
| | ||
| - No validation framework for UPF rule compliance | ||
| (verified: no files matching "valid*" or "check*" | ||
| exist in src/upf/) | ||
| - No power state table verification | ||
| - No cross-domain signal integrity checks | ||
| |
There was a problem hiding this comment.
Good work on documenting these limitations. For better readability in the final README.md, I suggest removing the parenthetical verification details (which are already well-covered in the PR description) and making the language more formal and consistent. Here's a suggested revision for the whole section:
### Unsupported UPF standard commands The following standard UPF commands are not implemented: - `upf_version` — UPF version declaration - `create_supply_net` — named supply net creation - `create_supply_port` — supply port creation - `connect_supply_net` — supply net connectivity - `add_power_state` — power state definition - `create_pst` — power state table creation - `add_pst_state` — power state table entries ### Partially supported commands - `set_isolation` — The following options are not supported: `-isolation_supply_set`, `-source`, `-sink`. - `set_level_shifter` — While the command is implemented, its option descriptions are not yet documented in this README. - `set_level_shifter_cell` — The options (`-level_shifter`, `-cell_name`, `-input_port`, `-output_port`) are not documented. ### Missing infrastructure - No validation framework for UPF rule compliance. - No power state table verification. - No cross-domain signal integrity checks.
Summary
This PR documents the known limitations of the UPF module
in the README.md file, which previously had an empty
Limitations section.
What was verified
All limitations listed were verified directly from the
codebase using the following methods:
grepsearches returning zero output confirming absent commandsinvalid command nameerrorsfindcommand confirming no validation framework existsLimitations documented
Unsupported UPF standard commands
upf_versioncreate_supply_netcreate_supply_portconnect_supply_netadd_power_statecreate_pstadd_pst_statePartially supported commands
set_isolation— missing options:-isolation_supply_set,-source,-sinkset_level_shifter— implemented but option descriptionsare empty in README
set_level_shifter_cell— all options undocumented (KIV)Missing infrastructure
Related
This work is preparatory research for a GSoC 2026 proposal
to implement full UPF standard support in OpenROAD.