一、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_opt create_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

PR-Place-performing Placement and Optimization-1相关推荐

  1. ICC2 user guide(二)Placement and Optimization

    目录 一 Specifying Coarse Placement Constraints and Settings 1 Defining Keepout Margins 2 Defining Area ...

  2. PR-Place-performing Placement and Optimization-2

    一.Area recovery place_opt -area_recovery 把这个打开,在不影响timing的情况下,工具优化面积. Action: (1)size down :把大驱动cell ...

  3. g++的英文版使用说明和选项

    使用g++ -v --help可以列出g++的所有可选项 当然脚本最香了 g++ -v --help >> lionel.txt Usage: g++ [options] file... ...

  4. ICC2 user guide(三)Clock Tree Synthesis

    目录 一 Prerequisites for Clock Tree Synthesis 二 Defining the Clock Trees 1 Deriving the Clock Trees 1. ...

  5. 图论为什么这么难_图论是什么,为什么要关心?

    图论为什么这么难 Graph theory might sound like an intimidating and abstract topic to you, so why should you ...

  6. 喜欢就争取,得到就珍惜,错过就忘记—dbGet(二)

    通过前面一篇对dbGet基本用法的介绍,大家应该对它有一定了解了吧.那接来下,我们就要学习一下进阶的dbGet用法了. dbGet是由它基本的语法加上各种object的attribute的组合构成的. ...

  7. Halide学习笔记----Halide tutorial源码阅读3

    Halide入门教程03 // Halide tutorial lesson 3: Inspecting the generated code // Halide入门第三课:检测生成代码// This ...

  8. Toad 所有 菜单说明(太多)

    菜单说明 新版本 toad 软件中, 比较有用的菜单 session 菜单     Session Information: 显示当前session的用户的情况, 比如权限, 授权等 Database ...

  9. 数字后端面试问答No.10-12(每日三问)

    数字后端面试问答No.10-12(每日三问) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 周末了,今天继续为大家分享三道数字后端面试题目.这三道题,其中 ...

  10. 在SAP GUI中玩扫雷小游戏

    在GUI中玩扫雷小游戏 ABAP代码: *&---------------------------------------------------------------------* *&a ...

最新文章

  1. 8 .3 .6 发送邮件
  2. Spring MVC全局异常后返回JSON异常数据
  3. linux top命令查看内存及多核CPU的使用讲述【转】
  4. 限制页面只能在框架页中
  5. ios 设置属性的center_ios-坐标系统(详解UIView的frame、bounds跟center属性[图])
  6. Machine Learning week 11 quiz: Application: Photo OCR
  7. Hyperledger Fabric 智能合约实战 (0) 整体步骤
  8. android开发桌面源码,android launcher 源码 自己开发启动桌面
  9. 看看如何解决“SQL Server只能使用Windows身份登录,不能使用sa等Sql server身份进行登录”的问题...
  10. 设计模式C#实现(十六)——中介者模式
  11. vim 正则非贪婪模式
  12. [转]在C#中使用MSHTML的高级支持接口
  13. android pdf阅读器推荐,Android最强PDF阅读器 十款软件大PK
  14. 机器学习平台的简单调研
  15. Puppet erb模板介绍(三十二)
  16. dell服务器面板不显示,戴尔服务器控制提示面板没有安装怎么处理
  17. 谷粒商城 高级篇 (十四) ---------- 商品详情
  18. 罗晨:梦想照进现实,一个独立开发者的田园诗
  19. 国外聊天工具下载网址
  20. 微信小程序开发的四种文件

热门文章

  1. 您的计算机无法加入域,Win7系统电脑无法加入域提示找不到网络路径的应对方案...
  2. [NOI 2014]起床困难综合症
  3. Excel基础学习笔记
  4. Oracle身份证校验函数
  5. 搭建机器人电控系统——PWM原理——舵机和TMOTOR电机
  6. 关于实习4个月的一些总结
  7. 从苏宁电器到卡巴斯基(第二部)第08篇:我在卡巴的日子 VIII
  8. 《Java程序设计》在线课程使用说明-2021版
  9. 已安装pywinrm,仍报错winrm or requests is not installed: No module named winrm
  10. Matlab更改工作路径的方法及思考