Add "Logic delay" column to Timing Report
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
This new column would be the sum of the non-buffer gate delays without any wire delay.
The idea is to give an indication of paths that have too much logic and probably need an RTL-modification solution.
Replaces / simplifies https://github.com/The-OpenROAD-Project/OpenROAD/issues/4832
Isn't this just logic depth?
It is the sum of the delays. I think of logic depth as the number of gates.
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)
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.
@oharboe any preference on delay vs depth?
@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...
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 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...
What is the conclusion in terms of this request?
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?
today, startpoint is show, perhaps endpoint column?
I don't know what this means
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:
So this is a totally unrelated request?
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
@maliberty Aha! The "End" column code was there already, there was just a gaffe that stopped it from working, fixed
@maliberty @oharboe So to be clear, the request here is:
- Add "Logic Delay" column;
- Add "Logic Depth" column;
- Column Visibility.
Is that it?
Yes