PR-Place-performing Placement and Optimization-1

一、Place and optimization command

place_opt(集成好的命令)、分步(把命令拆分,一步一步执行)

place_opt执行:

1.coarse placement(cells are not changed)

根据netlist大致摆放,cell可以重叠,也可以不在site row。

2.scan chain reording

综合时出一个scan def文件包含cell的连接关系,综合时根据cell name连接,因为综合没有物理信息,cell没有实际的物理位置。在place时,根据coarse place的物理位置去调整scan chain的连接关系。

3.high-fanout net synthesis

插BUF Tree,工具自动。

4.Optimization

解决DRC问题,优化timing。

5.legalization

解决重叠的,不在site row的cell。

二、Flow control

1.place_opt

2.create_placement

place_opt_skip_initial_placement

Place_optcreate_placement
[-effor low/medium/high][-effor low/medium/high]
[-area recovery][-quick]
[-optimization_dft][-timing_driven]
[-congestion][-congestion[-congestion_effor low/medium/high]]
[-power][-check_only]
[-cts][-mpc]h很少用
[-spg]看成def文件,记录cell的物理信息
[-skip_initial_placement](coarse place)
[-optimize_icgs]需不需要优化icgs

[continue_on_missing_scandef]没有scan def需要设置

三、Coarse Placement

1.Description

(1) corse place 是第一步placement

(2) 是一种粗略大致的摆放,同时也考虑timing/congestion/multivoltage constraint

(3) 允许place cell overlap

(4) 大的cell,例如RAM/IP,这些hard macro在floorplan手动摆放完之后是fixed,在place的时候把这些hard macro看成placement blockage,就像一块砖不搭理它了。(工具行为)

(5) coarse placement 速度快,精准度并不高。

2.Coarse placement type

(1) Timing_Driven Placement(TDP)

优化timing,工具看2个指标:

TNS:Total Negative Slack(所有violation的path加起来)

WNS:Worst Negative Slack(最差的timing violation path)

command:create_placement -timing_driven

(2) Congestion_Driven Placement

command:create_placement -congestion -congestion -effor low/medium/high

3.Coarse placement Tips

在coarse place工具根据netlist大致摆放cell.如果low utilization,工具会把cell 均匀分布在core区域。cell分布较远,net较长,所以有时候需要手动调,以得到更好的timing,可以用placer_max_cell_density_threshold命令,控制局部cell desity高一点。

四、Scan chain reordeing 

scan def得到连接关系(一个初始的,没有物理位置,是根据命名规则把cell串起来),place之后,有具体的物理信息,再把cell连在一起,可以降低绕线长度,节省绕线资源,提高timing。 

-continue_on_missing_scandef 

 

 

 

 

 五、high fanout net Synthesis

 创建buffer tree,增加驱动,解决congestion,不会牵一发而动全身,解决DRC问题。

六、Optimization

目的:1.优化timing。2.Fix logic DRC Violations 3.Power 优化 4. Area 

Action: 1.size cell(小驱动变大驱动) 2.Insert buffer 3.Delete buffer 4. Minor(少量的) remap/ restruction根据逻辑功能把一个std cell拆分成多个std cell,比如一个反向的AND,拆分成AND+INV,这一步主要在综合去用。

1.Timing optimization

工具优化:place_opt -effor low/medium/high

人为优化:

(1)Create more path groups

TNS/WNS是根据path group看,如果path group越多,在看WNS指标时,需要看到越多的timing,需要越多的时间。根据path group分别去优化,工具默认一个Clock是一个path group。一般path group分成R2R、DFF to Hard Macro、From Hard Macro,优化力度更大,更加细致,更准确。

(2)Adjust path group weights(0-100)

优化path group的力度,可以设置,一般不会太大。

(3)Bounds

把想要的cell聚集在一起,net比较短,主要作用是防止cell 太分散,优化timing,power。

(4)Balance timing,congestion

(5)Balance timing,power

(6)Adjust macro position (也会优化绕线)

2.Performing Multibit Banking

一般综合会用。把2个或者多个reg组合成1个reg,作用优化空间大,面积和power利好,一般由foundry厂提供。

Debanking 拆分,如2个reg比较远,工具硬要banking,会导致timing和congestion问题,用debanking可拆分。

 

3.Performing Power Optimization 

(1)Dynamic Power

=Internal Power + Switching Power

Internal Power:根据lib库查表input transition 和output load

switching power:与负载相关

tog rate:每个cell 翻转的频率

(2)Static Power(Leakage)

VT相关


1.Setup for Dynamic Power:

read_saif,saif文件记录cell和net的switching activity翻转活动,即翻转率。

set_scenario_options -dynamic -power true

把优化动态Power的功能打开。根据saif文件调整翻转率较高的net或cell,降低翻转率高的驱动,翻转率越高,动态power越大。

 

 2.Setup for Leakage Power optimization

set_scenario_options -leakage_power true

set_multi_vth_constraint

eg. set_multi_vth_constraint -lvth_groups{lvt svt}

3.Perfoming Low-Power Placement

        set_optimize_pre_cts_power_options -low_power_placement true

        place_opt

4.Performing Leakage-Power Optimization

place_opt -power         

5.Permance(驱动力):LVT>SVT>HVT

leakage:LVT>SVT>HVT

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值