长文 - ICC2教程 - CCD/Useful Skew

科技   教育   2024-03-22 08:30   北京  


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

最新星球刚刚上线基于GPT4和个人IC设计知识库的IC设计机器人 ,星球成员可以免费使用!!机器人24小时随时随地都能立刻回答用户的提问哦,效果非常棒!

基于GPT4和个人IC设计知识库的IC设计机器人v1.0正式上线

同时星球QQ群还有分享高达55万+字的个人数字后端设计笔记,欢迎加入。

长文 - ICC2教程 - CCD/Useful Skew


本文选自知识星球,原文2.1千字

星球链接:https://t.zsxq.com/173INqAA6

内容列表:

  • 什么是CCD?如何在Place阶段使能CCD?

  • 在Place阶段并没有做时钟树那么工具是如何用CCD优化的呢?

  • 如何查看工具做的Useful skew变化

  • Flow上如何设置

  • 如何在CTS和Route阶段使能CCD?

  • 如何限制CCD可以调整的Latency范围

  • 如何禁止/选择性地对IO Path做CCD优化

  • 如何选择性的对一些IO Path做CCD优化?
  • 如何不对某些指定的path group做CCD?


什么是CCD?如何在Place阶段使能CCD?

CCD的英文全称:Concurrent Clock and Data Optimization,翻译成中文是时钟和数据的并行优化。

在Datapath优化阶段利用Useful Skew技术可以提高Timing QoR,这被称为CCD技术,主要方法是根据路径上的正的Slack来调整endpoint寄存器的clock arrival time来修复Timing。

默认工具会在place_opt的final optimization阶段执行CCD。可以将place_opt.flow.enable_ccd设置为False来禁止在place阶段执行CCD优化。


经常遇到有人会问下面的问题:

在Place阶段并没有做时钟树那么工具是如何用CCD优化的呢?

我们可以基于理想的时钟在Place阶段来使能CCD的优化,除此之外,也可以来启用Early CTS同时使能CCD优化。

工具会根据前后级Timing的slack情况去优化,如果需要做early或者late skew,工具把这些信息记录到内部的DB中留给CTS阶段Build Tree用。我们也可以导出工具做Early/Late skew的文件来查看工具动了哪些Sink,是做了Early还是Late,借了多少Margin。


如何查看工具做的Useful skew变化

工具对时钟树所做的clock latency的调整以下面两种命令来存储:

set_clock_latency -offset #记录clock latency的调整

set_clock_balance_point -offset #记录Useful Skew

可以通过命令write_script -format icc2导出Tcl脚本,里面可以找到它们。

同时对于后者,可以通过report_clock_balance_point来查看sink pin的调整情况。

更多内容可以看:如何查看工具通过Useful skew借了多少margin?


Flow上如何设置

1. 需要保证在后续CTS阶段激活的scenario在Place阶段同样被激活;

2. 有下面两个选择:

2.1 使用Early CTS flow。

...(完整内容见知识星球)...


2.2 不使用Early CTS,基于理想的时钟网络去做CCD。

...(完整内容见知识星球)...


如何在CTS和Route阶段使能CCD?

如何在clock_opt期间使能CCD优化呢?

命令:

icc2_shell> set_app_options -name clock_opt.flow.enable_ccd \

-value true

icc2_shell> clock_opt


如何在route_opt期间使能CCD优化呢?

命令:

icc2_shell> set_app_options -name route_opt.flow.enable_ccd \

-value true

icc2_shell> route_opt


如何限制CCD可以调整的Latency范围

...(完整内容见知识星球)...


如何禁止/选择性地对IO Path做CCD优化

...(完整内容见知识星球)...


如何选择性的对一些IO Path做CCD优化?

...(完整内容见知识星球)...


如何不对某些指定的path group做CCD?

...(完整内容见知识星球)...


同时知识星球还有更多相关推文:
长文 - ICC2 CCD教程 - Enable CCD/Useful Skew (本推文的完整版)
https://t.zsxq.com/173INqAA6
ICC2教程-如何手工做Early Late skew(将某些Sink的Tree做长或者做短指定的长度) 
https://t.zsxq.com/17n029Zyo 
ICC软件教程 – 如何做Early/Late Skew 
https://t.zsxq.com/175lDiYQj 
长文 - 如何手工做early/late skew,即如何按要求减小/增大某些Sink的insertion delay? 
https://t.zsxq.com/18L1rfX8n




星球简介


目前星球中一共分享了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
 最新文章