Replies: 6 comments 29 replies
-
You can mark your reset signals as multi cycle paths in the sdc. That often has a huge impact on buffering. |
Beta Was this translation helpful? Give feedback.
-
I'm looking at the fanout of the reset signal. As I understand it, this is the fanout is at each level. If that was for a perfectly balanced tree, then the fanout of reset would be the product of all those fanouts, which is on the order of 10^33, whereas I know from Quartus that the fanout of the reset signal is ca. 11000. Therefore, and unsurprisingly, the worst reset path is in a part of the tree that is highly unbalanced.
|
Beta Was this translation helpful? Give feedback.
-
Not the fairest of comparisons - ASIC toolchains require much more computation than FPGA toolchains.
That is strange indeed. If DRT is finishing without violations, it may be worth reducing some of the layer adjustments so that GRT doesn't have to work as hard.
This is actually not retiming, this is register cloning. Retiming means that logic in one pipeline stage is moved to another pipeline stage. For example, a multiply is moved from before a register to after: What you are describing is register cloning (more generally, gate cloning). This process splits the fanout of a register by creating a duplicate and increasing the fanout of the previous stage. There has been work on gate cloning, but unfortunately that person left the project and wasn't able to finish. |
Beta Was this translation helpful? Give feedback.
-
Some thoughts:
|
Beta Was this translation helpful? Give feedback.
-
I switched to building DigitalTop in MegaBoom. ChipTop won't build, there's some more work needed on the Chipyard side of things. At DigitalTop, the synchronous reset is still the critical path. Note that synthesis is still hierarchical, it may need to be flattened to for synthesis to "find" the register pipeline registers.
Interestingly, the clock skew seems to be highest in that neck of the woods(frontend/bpd/banked_predictors_*)...
|
Beta Was this translation helpful? Give feedback.
-
Hello, I'm currently using Chipyard to synthesize SmallBoom. The tech I used is ASAP7 and the tool is Yosys. But a problem occurs like the issue I mentioned in ucb-bar/chipyard#1936. Have you met this before? Or could you figure out what the matter is and how to solve it? |
Beta Was this translation helpful? Give feedback.
-
@maliberty @tspyrou @louiic @yupferris @vvbandeira @precisionmoon @hovind @jouthus
Just sharing some observations on running time for MegaBoom.
The https://github.com/The-OpenROAD-Project/megaboom project is using a wafer thin Bazel layer on top of ORFS to explore a practical workflow for exploring designs that have to run overnight.
Floorplan:
On running times:
CTS:
Timing after detailed routing:
On the longest timing path:
The longest path is on reset. This is expected, because Yosys does not do retiming. That BOOM relies on retiming in the way it is written is explicitly documented: https://docs.boom-core.org/en/latest/sections/physical-realization.html
The top level synchronous reset has many pipeline stages. However, BOOM is relying on global synthesis to distribute these pipeline stages in retiming. This is understandable: it is not an interesting aspect to study academically as it is a "solved problem". Either it is done manually with lots of effort, or it is done automatically by tools. There is something to be said for either approach for and against...
Here we see hold cells inserted due to clock skew:
I recall trying to use OpenROAD for larger designs in January 2023 without much luck.
Today, with a very limited effort to set up constraints & floorplan, I can quickly learn a lot about quite a large design in OpenROAD.
I'm looking forward to see the progress of OpenROAD in 2024!
Beta Was this translation helpful? Give feedback.
All reactions