本文选自知识星球,更多干货知识以及后端笔记、视频教程等,欢迎加入星球进行查看。
最新星球刚刚更新《星球精华推文分类整理合集(第4版)- 8.4万字,296页》,同时星球QQ群还有分享高达55万+字的个人数字后端设计笔记,欢迎加入。
《Path Group与 Critical Range 、 Weight》- 自定义路径组(User-Defined Path Groups)
- (全文2千多字,以下蓝色内容见知识星球,二维码见文末)
- Path Group + Critical Range优化Timing
- Path Group和Critical Range的区别
自定义路径组(User-Defined Path Groups)
我们可以利用自定义路径组(User-Defined Path Groups)控制EDA软件对Timing path的优化做更多的控制。默认情况下,在DC/ICC工具做综合或者布局布线时,工具只对一个路径组(path group)中最Critical(延时最长)的路径做独立的优化,而在用户不自己创建Path group的时候,DC/ICC等工具默认整个Design中认为只有一个path group,如下图所示。这样便会导致一个问题,工具会尽可能地优化Critical path,可是工具发现它已经不能再优化的时候,sub-critical的所有paths都不会被优化。我们一般都会在in2reg和reg2out以及in2out路径上加上over-constraint(过约束),因此一旦它们是critical path的话,它们就会阻碍工具对reg2reg路径的优化,而我们最关注的其实就是reg2reg的path,它们没有被优化显然不是我们希望的!!!另外,reg2cg、reg2ram、ram2reg的路径也是如此。工具虽然默认只对一个path group内最critical的Path进行优化,但它并不阻碍其他path group的Timing path优化。因此这就是为什么我们需要定义Path Group。在分别对in2reg、reg2out、in2out、reg2reg、reg2cg、reg2ram、ram2reg等等Timing path定义Path Group之后,它们之间的Timing优化不会相互阻碍。定义Path Group之后,我们可以把路径都分离开,掌握各个Path Group的Timing状况(比如在clock非常多的情况下,针对各个clcok domain可以分别创建path group,工具会报告各个Path Group的Setup Hold情况),方便找到问题所在,方便各个击破。(下面的数据来自于ICC2官方Lab)
# Avoid getting stuck on one path in the reg-reg groupgroup_path -name INPUTS -from [all_inputs]group_path -name OUTPUTS -to [all_outputs]group_path -name COMBO -from [all_inputs] -to [ all_outputs]这些命令产生三个自定义的路径组,加上原有的路径组,即寄存器到寄存器的路径组,在下图中现有4 个路径组。一条Path只能在一个Path Group里面,但是根据前面的命令,组合逻辑路径都出现在INPUTS, OUTPUTS, COMBO里面,那么到底它属于哪个Path Group呢?组合电路的路径,属于"COMBO"组。由于该路径组的起点是输入端,在执行"group_path -name INPUTS -from [all_inputs] "命令后,命令中用了选项"-from [all_inuts] ",它们原先属于"INPUTS"组。在执行"group_path -name OUTPUTS -to [all_ outputs]"命令后,组合电路的路径不会被移到"OUTPUTS"组,因为开关选项" - from" 的优先级高于选项"- to",因此组合电路的路径还是留在"INPUTS"路径组。但是由于"group_path -name COMBO -from [all_inputs] -to [all_outputs]"命令中同时使用了开关选项"-from"和"-to",组合电路路径的起点和终点同时满足要求,因此它们最终归属于"COMBO"组。工具以这种方式工作来防止由于命令次序的改变而使结果不同。
用report_path_group命令可以查看/报告设计中定义的Path Group。对于ICC2而言,默认它只报告当前mode的Path Group,如果想指定别的mode,可以加-modes选项:Reports path_group information.Multicorner-Multimode SupportBy default, this command works on the current mode. To specify a different mode, use the -modes option.Question: Why is it not necessary to remove the clock input ports from the all_inputs collection?Answer: The group_path command identifies paths, and a clock input port is not a startpoint of a path (only a register clock pin), so the INPUTS path group will not contain any paths starting at the clock ports.产生自定义的路径组后,路径优化图就会由前面的图变为下图。此时,寄存器和寄存器之间的路径可以得到优化。
5及以下干货内容见知识星球(文末)
Path group+Critical Range优化Timing
Path group和Critical Range的区别
目前星球中一共分享了19本+系统性的、整理成册的笔记,高达55万字+,2024年星球将分享更多私人笔记,逐步完善整个IC设计生态。《Timing/DRV修复的专题笔记》 《ICC2 flow教程》 《Makefile在IC设计中的应用》和 《RedHawk教程笔记》 等等。- IR drop的分析与修复总结 - 4.3千字,20页
- 数字后端理论及实践-ICC干货笔记 - 11万字,423页
- 数字后端理论及实践-Innouvs教程(第4版)- 5.7万字,316页
- 数字后端理论及实践-Innouvs教程(第5版)- 11.8万字,635页
- 面试笔试题整理 面试笔试经验分享(第1版)- 1.6万字,48页
- 面试笔试题整理 面试笔试经验分享(第2版)- 2.3万字,87页
- ICC2 ICC与Innovus的命令对照(第1版)
- Tcl与DesignCompiler教程(第1版)- 6.1万字,183页
- DRC规则讲解、DRC的检查与修复(第1版)- 7.3千字,26页
- Congestion的分析与修复专题(第1版)- 1.2万字,41页
- Perl-Tk教程(第1版)- 1.6万字 73页
- 星球精华推文分类整理合集(第1版)- 1.8万字,75页
- 星球精华推文分类整理合集(第2版)- 4.4万字,160页
- 面试笔试题整理 面试笔试经验分享(第3版)- 2.7万字,96页
- 星球精华推文分类整理合集(第3版)- 6.6万字,240页
- 时序分析与sdc专题笔记(第1版) - 3.1万字,115页
- 星球精华推文分类整理合集(第4版)- 8.4万字,296页