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.59k stars 551 forks source link

Meta: Top 3 Pain Points of the Toolchain #1759

Open QuantamHD opened 2 years ago

QuantamHD commented 2 years ago

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

@antonblanchard @arlpetergadfort @maliberty @proppy

maliberty commented 2 years ago

@donn

donn commented 2 years ago

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.

gadfort commented 2 years ago

@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.

kareefardi commented 2 years ago

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

msaligane commented 2 years ago
maliberty commented 2 years ago

@msaligane would you elaborate on your last point.

mithro commented 2 years ago

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

maliberty commented 2 years ago

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

antonblanchard commented 2 years ago
msaligane commented 2 years ago

@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.

maliberty commented 2 years ago

@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.

proppy commented 2 years ago
rovinski commented 2 years ago

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.

maliberty commented 2 years ago

@QuantamHD what is the ultimate goal of this discussion?

QuantamHD commented 2 years ago

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.

maliberty commented 2 years ago

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