Path Group与 Critical Range 、 Weight

科技   教育   2024-03-14 08:30   广东  

本文选自知识星球,更多干货知识以及后端笔记、视频教程等,欢迎加入星球进行查看。

最新星球刚刚更新《星球精华推文分类整理合集(第4版)- 8.4万字,296页》,同时星球QQ群还有分享高达55万+字的个人数字后端设计笔记,欢迎加入。

Path Group与 Critical Range 、 Weight


01


主要内容

  • 自定义路径组(User-Defined Path Groups)
  • 如何定义Path Group
  • 如何查看/报告Path Group
    (全文2千多字,以下蓝色内容见知识星球,二维码见文末)
  • 关键范围(Critical Range)
  • Path Group + Critical Range优化Timing
  • Path Group和Critical Range的区别
  • 给Path Group设置权重(Weight)


02


Path Groups


自定义路径组(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)



03


如何定义Path Groups


# Avoid getting stuck on one path in the reg-reg group
group_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"组。工具以这种方式工作来防止由于命令次序的改变而使结果不同。


04


如何查看/报告Path Groups


用report_path_group命令可以查看/报告设计中定义的Path Group。
对于ICC2而言,默认它只报告当前mode的Path Group,如果想指定别的mode,可以加-modes选项:
NAME
report_path_groups
Reports path_group information.
Multicorner-Multimode Support
By 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.
产生自定义的路径组后,路径优化图就会由前面的图变为下图。此时,寄存器和寄存器之间的路径可以得到优化。


05


Critical Range


5及以下干货内容见知识星球(文末)



06


Path group+Critical Range优化Timing



07


Path group和Critical Range的区别



08


给Path group设置权重



09


星球简介


目前星球中一共分享了19本+系统性的、整理成册的笔记,高达55万字+,2024年星球将分享更多私人笔记,逐步完善整个IC设计生态。
以后知识星球也会陆续会开放:
《Timing/DRV修复的专题笔记》 《ICC2 flow教程》 《Makefile在IC设计中的应用》和 《RedHawk教程笔记》 等等。
目前已上传的笔记有:
  • 低功耗设计技术总结 - 3万字,129页
  • IR drop的分析与修复总结 - 4.3千字,20页
  • 数字后端理论及实践-ICC干货笔记 - 11万字,423页
  • 数字后端理论及实践-Innouvs教程(第4版)- 5.7万字,316页
  • ICC2教程-星球精编版 - 2万字,125页
  • 数字后端理论及实践-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页
  • 更多教程、笔记持续更新中。。。 

集成电路设计及EDA教程
知识 前端 后端 DFT 低功耗 验证 EDA 1rtl检查:LEDA 2仿真:VCS 3逻辑综合:DC 4形式验证:Formality 5布局布线:ICC 6STA:PT 7功耗分析:PTPX 8DRC LVS:Calibre
 最新文章