注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

东田的个人空间 http://home.eeworld.com.cn/space-uid-800745.html [收藏] [复制] [分享] [RSS]

日志

user skew & something in CCopt

已有 273 次阅读2017-8-30 15:58 |个人分类:后端| 时钟树综合, CCopt

Useful skew

Useful Skew称为“有用偏差”。我们都知道skew会恶化timing,那这种skew它有用在哪里呢?

一般用来balance的cell有buffer(如BUFX2数字表示fanout)、inverter、delay cell

使用useful skew可以调整clock信号到达时序器件的时间,从而起到提高data path timing的目的。如何去修?我们来看下图:

上面例子左图中Path:F2->F3存在-100psslack, 而前一级Path:F1-> F2存在200psslack,后一级Path:F3->F4存在50psslack。所以,对CCOPT来说,它会从前一级F1->F2中,“偷取”150psslackPath:F2->F3,相当于将F2提前150ps。这样三条pathslack都变成50ps,恰好meettiming

Advance Vs Delay

CCOPT就是通过提前或者延后clock信号到达时序器件的时间(专业术语叫做AdvanceDelay),达到合理利用skew的目的。

 

CCOPT会根据clock skew target以及insertion delay等其他约束,给每个clock sink计算出可以advance或者delay的范围。Useful skew就作用在这个范围之内,就像一扇窗一样,我们称之为Constraint window,或者叫做Delay window。就像下图中,上下两条虚线代表着Delay window的上限和下限,第一张图显示clock sink已经到达最小的arrival timeCCOPT没法再做advance操作,因此只能做delay操作;第二张图显示clock sinkDelay window中间,因此CCOPT既可以做advance操作,又可以做delay操作。第三张图显示clock sink已经到达最大的arrival timeCCOPT没法再做delay操作,因此只能做advance操作。

我们来看一个useful skew中通过delay来实现timing meet的示意图,下图中,F1->F2存在-100psslack,我们可以通过advance F1或者delay F2fix timing。但由于有Delay  window的限制,F1没法再继续advance, 因此,我们只能采取delay F2的操作。

Chain

CCOPTdata pathflop链接成chain,在这个chain上面,我们可以前后shift slacktiming constraint 不再局限于flopflop之间做优化,而可以将slack在一个chain之间一级一级的shift。当然,chain不能一直延伸下去,当它碰到自己本身或者inputoutput端口时,chain就会停止。如下图所示:

在众多chain中,worst chain表示timing最差的一条。我们可以通过report_ccopt_worst_chain来报出这条chain,下图是一个worst chainreport文件

具体每个参数的意思:

 

 

Useful skew engine

Innovus有两种不同的useful skew, CCOPTuseful skewGigaOpt本身的useful skew. CCOPTuseful skew前面介绍过,它既可以做advance,也可以做delay. GigaOptuseful skew则有很多限制,在PreCTS模式下,它只能对path起点做advance,而且起点必须是个寄存器;在PostCTS模式下,它只能对path终点做Delay,而且终点必须是个寄存器。

可以说,两种useful skew engine各有自己的优缺点,GigaOpt限制太多,使用手段并不多;相反,CCOPT较为灵活,不过太灵活也不好,无法智能地判断究竟是advance好还是delay好。举个例子:

在上面这种例子中,一个memory连出了1200sink,在PreCTS的时候,如果path存在较大的timing violation。为了修timingCCOPT会选择delay sink以及advance memory操作,但它无法判断出这个阶段究竟哪种手段更好,它会更偏向delay sink,因此delay大量的sink会极大地增加clock面积。但是在GigaOpt中,由于它只能对path起点做advance,这样就不会对clock area带来过多的影响。


来看在Innovus中,在哪些地方用到了useful skew

 

preCTS useful skew

PreCTS阶段,place_opt_design会借助useful skew来修正timing。并且产生两个文件:latency_file.sdc

schedule_file.cts

分别给timing analysisCTS使用。这两个文件必须一一对应。

latency_file.sdcsdc文件,里面记录了clock sinkadvance后的latency信息,是一个绝对的值。记住它是一个sdc文件,主要用于timing analysis

schedule_file.ctsMacroModel的形式,记录了clock sink上应该advance的值,这是一个相对的值,主要用来balance tree

需要注意的是,对CCOPT来说,PreCTSuseful skew是虚假的,因为此时没有buildtree,工具并不会真的通过buffering或者resizing去做delay或者advance。但是CCOPThonor这个setting。在CCOPT看来,它始终是在做balance,如下左图所示;但是在实际看来,由于做了advancetree已经产生了skew。你可以认为“你欺骗了CCOPT,但它是心甘情愿的被你骗”

 

postCTS useful skew

PostCTSuseful skew是真实的,因为这时候clock tree已经build好,我们可以通过bufferingresizingadvance或者delay timing point

 

Medium/High effort CCOPT

简单介绍下medium/high effortCCOPT.

 

CCOPT全称叫Clock Concurrent Optimization. MediumHigh effort就完全体现了concurrent这个字样。前面文章介绍过,LowMedium/High effort的区别在于修timing的手段不一样。

 

Low effort会先build clock tree,然后调用optDesignfix timing,这里会用到Giga Optuseful skew

 

Medium/High effort则在build clock tree的时候就已经开始修timing了,它会同时调用optDesign去修data path以及ccopt useful skew去修clock path。注意的是,Medium/High effort都是只调用ccopt useful skew engine.

 

下面是简单的Medium/High effort ccopt flow. mediumhigh effort的区别在于high effortmedium effort iteration次数更多)

1. Initial Clustering...

2. Global OPT...

Begin: GigaOpt Global Optimization...

3. Clustering again...(high effort有,medium effort没有)

4. Timing path OPT with useful skew (high effort path group only)

CCOptHook: Starting main GigaOpt + CCOpt optimization...

5. Clustering(if needed)...

6. Timing path OPT with useful skew (high effort path group only)

7. Implementation...

8. Timing path OPT (all path groups, with GigaOpt)

Begin: GigaOpt Optimization in WNS mode


评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2017-9-26 02:35 , Processed in 0.189535 second(s), 11 queries , Redis On.

Powered by EEWORLD电子工程世界

© 2017 http://bbs.eeworld.com.cn/

返回顶部