Closed oharboe closed 7 months ago
There are two parts here
1) When building a .lib abstract for a block we should record the clock tree delay. The exact property is to be provided by My unless someone knows it offhand
2) When building the clock tree at the top level the latency that is inside the macro should be taken in to account.
From https://www.eng.biu.ac.il/temanad/files/2017/02/Lecture-8-CTS.pdf
This shows the idea though we don't want this command but to automate it through .lib.
For the related .lib attributes:
max_clock_tree_path
Used in timing groups under a clock pin. Defines the maximum clock tree path constraint.
min_clock_tree_path
Used in timing groups under a clock pin. Defines the minimum clock tree path constraint.
@louiic to write a more detailed spec
@maliberty @tspyrou Is this more detailed spec in place?
My suggested that the necessary data can be carried in Liberty. We are working on enhancing sta to generate the necessary data. After that we can start on CTS.
We plan to enhance insertion delay support as follows: 1) Enhance H-Tree to pull macros with insertion delays ahead of FF leaves 2) Enhance OpenSTA to include insertion delay in report_clock_skew 3) Enhance clock tree viewer to include insertion delays (optional)
Thanks.
Cho
@oharboe, one way to improve skew in the presence of FFs and macro cells (or macro cells with different insertion delays) is to balance latency by inserting additional buffers. If there is a path from one clock buffer to a FF and another to a macro cell, some additional buffers can be added along the path from the clock buffer to the FF to match the macro cell insertion delay. This can produce better clock skew at the expense of area and power. Is this an acceptable solution?
Here's some intermediate update on the progress. Part 3: clock tree viewer enhancement is now complete. Macros sinks and register sinks are now colored differently and insertion delays are also included in macro cell pin arrival. Part 1: core HTree enhancement is about 60% complete. Even though the work of latency adjustment is incomplete, asap7 / mock-array shows promising results. Here's the current clock tree without the new enhancement. Red sinks are registers and dark cyan macros. The clock tree changes as follows with the new enhancement (without -balance_levels option. <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns="http://www.w3.org/TR/REC-html40">
Description
Otherwise, you can end up with a lot of skew
Suggested Solution
@maliberty You had some ideas?
Additional Context
No response