Replies: 9 comments 6 replies
-
I'm glad to have someone trying to use this functionality as we have developed it but need people to test and give feedback. UPF is a large standard (> 500 pages) and OR supports only a core set of functionality. OR is only concerned with the design creation aspects of UPF and not the functional behavior which it doesn't control. We are open to enhancing the set we support as the community needs but don't expect to reach 100% coverage anytime soon. We have worked off the 1801-2018 standard. Reporting commands are a hole. What would you like to see in this area? It shouldn't be hard to add some. You can query odb directly or use write_upf today. set_level_shifter takes -input_port -output_port. It looks like those should have been -input_supply/-output_supply. I'll fix that. Power nets either come in explicitly in the netlist or are created by pdn. You can look at set_voltage_domain in https://github.com/The-OpenROAD-Project/OpenROAD/blob/master/src/pdn/test/power_switch_upf_regions.tcl as an example. We could add commands to create them from UPF though you will still need to configure pdn for an actual implementation as UPF is quite logical and not physical in its description. |
Beta Was this translation helpful? Give feedback.
-
Great! I'm happy to help. I'll prepare a simplified upf of our design. I'll think about with my colleage about what could be added for reporting. In the meantime, I'll try querying odb. How can I do that? I don't see any command that accesses the database. The input netlist from synthesis does not have any power information in our flow & tools although the level shifters are inserted. And Yosys does not support upf anyway. We'd like to create power ports in upf to kept compatibility with other flows & tools so we use the same upf everywhere. Thanks! |
Beta Was this translation helpful? Give feedback.
-
Here is the simplified version with add_power_state: upf_version 2.1 create_supply_port VDDD1V2 create_supply_net VDDD connect_supply_net -ports VDDD VDDD create_supply_set ss_GNDD_VDDD1V2 -function {ground GNDD} -function {power VDDD1V2} create_power_domain PD1 -include_scope -supply {primary ss_GNDD_VDDD} One signal does not have the default power of its power domainset_port_attributes -ports out_signal_1v2 -receiver_supply ss_GNDD_VDDD1V2 add_power_state ss_GNDD_VDDD1V2 add_power_state ss_GNDD_VDDD add_power_state PD1 set_isolation iso_PD2_from_ss_GNDD_VDDD1V2_to_ss_GNDD_VDDD set_level_shifter ls_PD2_ss_GNDD_VDDD1V2_to_ss_GNDD_VDDD set_level_shifter ls_PD2_ss_GNDD_VDDD_to_ss_GNDD_VDDD1V2 |
Beta Was this translation helpful? Give feedback.
-
I tested and checked our upf with add_power_state with our design in our flow & tools and everything is fine. |
Beta Was this translation helpful? Give feedback.
-
Not sure it worth it to implement legacy 1.0 support but in case you implement it in a row, as it does the same thing, here is the old code: add_port_state VDDD add_port_state VDDD1V2 add_port_state GNDD create_pst USB_pst -supplies {VDDD VDDD1V2 GNDD} |
Beta Was this translation helpful? Give feedback.
-
Any news on this topic? |
Beta Was this translation helpful? Give feedback.
-
Note that if power ports are not created in upf, the associated pins cannot be imported from floorplan .def file with read_def. [WARNING ODB-0247] skipping undefined pin VDDD1V2 encountered in FLOORPLAN DEF |
Beta Was this translation helpful? Give feedback.
-
Any news of UPF support? |
Beta Was this translation helpful? Give feedback.
-
Sorry but I haven't been able to give this priority at the moment. Feel free to make a tracking issue. |
Beta Was this translation helpful? Give feedback.
-
I have problems reading the upf (2.1) for my design which is an hard IP.
I have read #3531. Since it's mark as answered, I open a new one.
Some command are missing:
And some commands have missing options:
I have also several questions.
What upf version openroad is supposed to support?
Same question for all examples in git?
Are there reporting command related to upf (power domains, supply ports, ...)? I searched but didn't find any.
set_level_shifter has 2 options -input_supply and -output_supply that take supply net. Where these nets are supposed to be defined?
Morover where do these options comes from? UPF 2.0 and 2.1 do no have them. They have -input_supply_set and -output_supply_set that take supply sets (and not nets).
How supply ports are supposed to be created in openroad since there are no command create_supply_port.
Thanks in advance
Beta Was this translation helpful? Give feedback.
All reactions