We've (<@U01AW5TSG9J> and I) noticed that TritonCT...
# openlane
m
We've (@User and I) noticed that TritonCTS produces clock trees with quite a bit of skew (~2ns or more). Looking at the command options, there isn't anything to actually guide it in terms of "effort" or a "skew goal". How can one go about making a better clock tree? In particular, this adds to hold violations on our chip. @User?
1
And, if there are options, these should be exposed in OpenLane...
All of the options seem very heuristic -- "cluster balance" "max diameter" etc.
m
This is 2ns after repair_clock_nets or just raw cts?
does the design have large macros? Sometimes they are hard to balance
m
It's in the final STA with parasitics. I didn't not ice a repair_clock_nets but I assume it was run in the flow. Yes, it has many large macros.
m
In general CTS is not iterative so there is no effort flag. A test case would be helpful if you can share it
m
(Note, half or more of my publications are on clock synthesis. 🙂 CTS definitely SHOULD be iterative
m
It should be a lot better... but it is what it is currently
We lost our CTS developer and are ramping up someone else
m
That's too bad. I proposed originally to do it but didn't get selected.
m
If you want to work on it we would be glad for the help
m
Not unless there's funding 🙂
Only so much time to work "for free"
m
Can you share your test case?
We have no spare funding so.....
m
What do you want for the test case? def/lef?
it packs all the needed files for a step
lef/def/sdc/lib
m
@User can you run this for the CTS step and specify that it produces a poor quality tree?
m
Please include what build you are using