OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

Add "Logic delay" column to Timing Report

Open oharboe opened this issue 1 year ago • 18 comments

Description

It is useful to see the logic delay of a path in the Timing Report when doing triage in architectural exploration.

Suggested Solution

Add "Logic delay" column to Timing Report

Additional Context

No response

oharboe avatar Apr 18 '24 17:04 oharboe

This new column would be the sum of the non-buffer gate delays without any wire delay.

maliberty avatar Apr 18 '24 17:04 maliberty

The idea is to give an indication of paths that have too much logic and probably need an RTL-modification solution.

maliberty avatar Apr 18 '24 17:04 maliberty

Replaces / simplifies https://github.com/The-OpenROAD-Project/OpenROAD/issues/4832

maliberty avatar Apr 18 '24 17:04 maliberty

Isn't this just logic depth?

rovinski avatar Apr 19 '24 01:04 rovinski

It is the sum of the delays. I think of logic depth as the number of gates.

maliberty avatar Apr 19 '24 01:04 maliberty

It does make me think that would also be a good column. I think we might need to implement column visibility to prevent this from become a super wide table (eg https://ux.stackexchange.com/questions/110077/best-practices-to-allow-user-to-hide-show-columns-in-a-data-table)

maliberty avatar Apr 19 '24 02:04 maliberty

Yeah, just pointing out that it's pretty much the same information. They're not completely equivalent, but logic depth is a more standard metric.

rovinski avatar Apr 19 '24 16:04 rovinski

@oharboe any preference on delay vs depth?

maliberty avatar Apr 19 '24 16:04 maliberty

@oharboe any preference on delay vs depth?

I would want to know both. I believe logic depth might be a bit less standard on ASAP7? Isn't ASAP7 missing some things like muxes as primitives? How does a mux count as "levels of logic"? I'm not sure if a mux primitive in the PDK would be enormously much faster than something that is built up of even smaller primitivies. Out of my depth here... Would appreciate some input and guidance...

oharboe avatar Apr 19 '24 16:04 oharboe

Logic depth generally just counts up every multi-input gate the path goes through. Inverters may or may not be counted as well if they are not back-to-back.

Logic depth does change after technology mapping in synthesis. If there is no mux cell and it has to be implemented in other gates, it will increase the logic depth.

"Logic delay" is not a standard metric as far as I know, but I agree it could definitely be useful because it gives more information.

rovinski avatar Apr 19 '24 16:04 rovinski

@rovinski Thanks! This makes sense. It sounds like this is complimentary information that helps to create a more fleshed out understanding of what is going on...

oharboe avatar Apr 19 '24 16:04 oharboe

What is the conclusion in terms of this request?

maliberty avatar Apr 20 '24 01:04 maliberty

Add both columns. Later on, if there are even more columns, maybe the userinterface should change to enable/disable columns.

today, startpoint is show, perhaps endpoint column?

oharboe avatar Apr 20 '24 03:04 oharboe

today, startpoint is show, perhaps endpoint column?

I don't know what this means

maliberty avatar Apr 20 '24 03:04 maliberty

today, startpoint is show, perhaps endpoint column?

I don't know what this means

There is a Start column today, and I've highlighted what would be the "End" column in Data Path Details:

image

oharboe avatar Apr 20 '24 04:04 oharboe

So this is a totally unrelated request?

maliberty avatar Apr 20 '24 18:04 maliberty

So this is a totally unrelated request?

Yes. I would leave it be for now.

It is just an example of why I think your consideration of what to do if many columns are added makes sense: https://github.com/The-OpenROAD-Project/OpenROAD/issues/4973#issuecomment-2065614093

oharboe avatar Apr 20 '24 18:04 oharboe

@maliberty Aha! The "End" column code was there already, there was just a gaffe that stopped it from working, fixed

oharboe avatar Apr 26 '24 08:04 oharboe

@maliberty @oharboe So to be clear, the request here is:

  1. Add "Logic Delay" column;
  2. Add "Logic Depth" column;
  3. Column Visibility.

Is that it?

AcKoucher avatar May 03 '24 14:05 AcKoucher

Yes

maliberty avatar May 03 '24 18:05 maliberty