The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.38k stars 485 forks source link

Add rebuild button in GUI #5093

Open oharboe opened 2 weeks ago

oharboe commented 2 weeks ago

Description

When iterating on a stage in ORFS flow, it would be nice to simply hit "refresh" in the GUI to rebuild the requisite stage.

Current workflow:

  1. I run rm -f results/asap7/mock-array_Element/base/2_2_floorplan_io.odb && make DESIGN_CONFIG=designs/asap7/mock-array/Element/config.mk results/asap7/mock-array_Element/base/2_2_floorplan_io.odb && make DESIGN_CONFIG=designs/asap7/mock-array/Element/config.mk gui_2_2_floorplan_io.odb
  2. Modify IO pin constraints
  3. Rinse & repeat

Suggested Solution

Add "Rebuild" button in GUI that I can hit when having updated IO pin constraints.

I don't have the exact mechanics of this feature clear to me yet.

Additional Context

No response

rovinski commented 2 weeks ago

You could use create_toolbar_button to make your own, possibly

e.g.

create_toolbar_button -text "Run Floorplan" -script ./scripts/floorplan.tcl

I'm not sure if this pulls in the environment variables properly but I think it should.

oharboe commented 2 weeks ago

@maliberty That only works for one hardcoded case, I would like it to work for all ORFS scripts without configuration.

maliberty commented 2 weeks ago

I don't follow exactly what is requested here. Are you trying to rebuild a flow step externally and reload the result or do some change in a session and see the gui update? The later should happen automatically (we had the recent fix for ppl updating).

maliberty commented 2 weeks ago

An existing session of the openroad gui doesn't allow re-loading currently. That would be a larger request.

OR itself has no idea about ORFS steps so I think a custom button would be right. You can also create custom menus. The fastest solution is to have a button that runs the step, invokes a new gui session on the result and exits the current session.

oharboe commented 2 weeks ago

An existing session of the openroad gui doesn't allow re-loading currently. That would be a larger request.

Then, this feature request is this larger request.

OR itself has no idea about ORFS steps so I think a custom button would be right. You can also create custom menus. The fastest solution is to have a button that runs the step, invokes a new gui session on the result and exits the current session.

OR knows what script that was run initially.

So this larger request/feature idea is to add a button that:

This would work for several use-cases: