OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

Meta: Top 3 Pain Points of the Toolchain

Open QuantamHD opened this issue 3 years ago • 16 comments

What are the top three pain points of OpenROAD for chip design?

@antonblanchard @arlpetergadfort @maliberty @proppy

QuantamHD avatar Apr 06 '22 16:04 QuantamHD

@donn

maliberty avatar Apr 07 '22 04:04 maliberty

Question is maybe better suited for our chip designers: @kareefardi

Me personally, I have no complaints, just would like a Python interface, which is a monumental effort.

donn avatar Apr 07 '22 16:04 donn

@QuantamHD

  1. Parasitic extraction, requiring a different tool to jumpstart the PDK bring up
  2. Yosys/ABC synthesis, generates a netlist that requires a lot of additional work to meet constraints.

I'm sure there are more, but these are the two that stand out the most to me at the moment.

gadfort avatar Apr 07 '22 19:04 gadfort

I am not sure what is the state of any of these today but mainly my struggles are:

  • automatic macro placement
  • signal routing with multiple macros
  • (multiple domain) power routing of multiple macros

kareefardi avatar Apr 07 '22 20:04 kareefardi

  • System Verilog support in Yosys. The generated netlist doesn't work (probably I am doing something wrong but it isn't an easy flow)
  • Power planning and routing
  • Timing results are really hard to understand (No hockey stick trend yet)

msaligane avatar Apr 08 '22 01:04 msaligane

@msaligane would you elaborate on your last point.

maliberty avatar Apr 08 '22 03:04 maliberty

@hzeller / @kgugala -- See @msaligane's comment about SystemVerilog above.

mithro avatar Apr 08 '22 14:04 mithro

Lack of timing model generator for hierarchical flows. LEF abstract generator improvements would then follow.

maliberty avatar Apr 08 '22 18:04 maliberty

  • +1 for "Lack of timing model generator for hierarchical flows". Even a basic (and pessimistic) liberty file generator would be very useful.
  • +1 for "ABC/synthesis". We don't pass FFs, manually instantiated standard cells or other black boxed things to ABC, so are missing a lot of optimisations including the ability to do register retiming. I've looked into this but tripped up on what looks like ABC issues.

antonblanchard avatar Apr 08 '22 23:04 antonblanchard

@msaligane would you elaborate on your last point.

@maliberty This is what I meant by the hokey stick (or knee). Below is the expected timing on a RISC-V core when I push the clock: image

This is a reference from [Ketkar, et al ICCAD02] with area instead of power but the two correlates: image

So, if I would like to optimize a design, I need to optimize sizing until the knee (sensitivity-based method) and then optimize Vth (out of scope here). I am currently unable to replicate this, but I am not updated on the latest development in yosys/abc.

msaligane avatar Apr 11 '22 18:04 msaligane

@msaligane what do you see if you construct a delay/area plot with OR? We do very little with power opt so I don't expect much of an optimal result there.

maliberty avatar Apr 11 '22 18:04 maliberty

  • lack of packaging and limited surface of the Python API (related to #1424 and #1659)
  • lack of machine-readable logs/parameters/metrics export (METRICS2.1?) outside of ORFS (related to #1669)
  • cross platform packages w/ gui enabled for OSX / Windows (related to https://github.com/hdl/conda-eda/issues/193)

proppy avatar Apr 18 '22 02:04 proppy

We wrote a paper on this. See sections 5 & 6: https://dl.acm.org/doi/pdf/10.1145/3400302.3415734

I still believe that most of the QoR gains need to be gained from synthesis (automatic clock gating, physical synthesis - let alone timing-based synthesis). Most of the usability gains need to be from improved documentation, although more automation would be nice too. I'll add another one to the list, which is runtime. I'm actively doing research with this, but a lot of tools could benefit from hardware acceleration and/or algorithm improvement.

rovinski avatar Apr 22 '22 05:04 rovinski

@QuantamHD what is the ultimate goal of this discussion?

maliberty avatar Apr 25 '22 03:04 maliberty

To gather issues from the community, and help me understand where I could allocate resources to improve the toolcahin.

People do a lot with the tool, and this thread was helpful to understand the current areas where the tool struggles.

QuantamHD avatar Apr 25 '22 03:04 QuantamHD

@QuantamHD do you have sufficient input to make that decision and allocate resources?

maliberty avatar Apr 25 '22 04:04 maliberty