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_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相关推荐
- ICC2 user guide(二)Placement and Optimization
目录 一 Specifying Coarse Placement Constraints and Settings 1 Defining Keepout Margins 2 Defining Area ...
- PR-Place-performing Placement and Optimization-2
一.Area recovery place_opt -area_recovery 把这个打开,在不影响timing的情况下,工具优化面积. Action: (1)size down :把大驱动cell ...
- g++的英文版使用说明和选项
使用g++ -v --help可以列出g++的所有可选项 当然脚本最香了 g++ -v --help >> lionel.txt Usage: g++ [options] file... ...
- ICC2 user guide(三)Clock Tree Synthesis
目录 一 Prerequisites for Clock Tree Synthesis 二 Defining the Clock Trees 1 Deriving the Clock Trees 1. ...
- 图论为什么这么难_图论是什么,为什么要关心?
图论为什么这么难 Graph theory might sound like an intimidating and abstract topic to you, so why should you ...
- 喜欢就争取,得到就珍惜,错过就忘记—dbGet(二)
通过前面一篇对dbGet基本用法的介绍,大家应该对它有一定了解了吧.那接来下,我们就要学习一下进阶的dbGet用法了. dbGet是由它基本的语法加上各种object的attribute的组合构成的. ...
- Halide学习笔记----Halide tutorial源码阅读3
Halide入门教程03 // Halide tutorial lesson 3: Inspecting the generated code // Halide入门第三课:检测生成代码// This ...
- Toad 所有 菜单说明(太多)
菜单说明 新版本 toad 软件中, 比较有用的菜单 session 菜单 Session Information: 显示当前session的用户的情况, 比如权限, 授权等 Database ...
- 数字后端面试问答No.10-12(每日三问)
数字后端面试问答No.10-12(每日三问) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 周末了,今天继续为大家分享三道数字后端面试题目.这三道题,其中 ...
- 在SAP GUI中玩扫雷小游戏
在GUI中玩扫雷小游戏 ABAP代码: *&---------------------------------------------------------------------* *&a ...
最新文章
- 8 .3 .6 发送邮件
- Spring MVC全局异常后返回JSON异常数据
- linux top命令查看内存及多核CPU的使用讲述【转】
- 限制页面只能在框架页中
- ios 设置属性的center_ios-坐标系统(详解UIView的frame、bounds跟center属性[图])
- Machine Learning week 11 quiz: Application: Photo OCR
- Hyperledger Fabric 智能合约实战 (0) 整体步骤
- android开发桌面源码,android launcher 源码 自己开发启动桌面
- 看看如何解决“SQL Server只能使用Windows身份登录,不能使用sa等Sql server身份进行登录”的问题...
- 设计模式C#实现(十六)——中介者模式
- vim 正则非贪婪模式
- [转]在C#中使用MSHTML的高级支持接口
- android pdf阅读器推荐,Android最强PDF阅读器 十款软件大PK
- 机器学习平台的简单调研
- Puppet erb模板介绍(三十二)
- dell服务器面板不显示,戴尔服务器控制提示面板没有安装怎么处理
- 谷粒商城 高级篇 (十四) ---------- 商品详情
- 罗晨:梦想照进现实,一个独立开发者的田园诗
- 国外聊天工具下载网址
- 微信小程序开发的四种文件
热门文章
- 您的计算机无法加入域,Win7系统电脑无法加入域提示找不到网络路径的应对方案...
- [NOI 2014]起床困难综合症
- Excel基础学习笔记
- Oracle身份证校验函数
- 搭建机器人电控系统——PWM原理——舵机和TMOTOR电机
- 关于实习4个月的一些总结
- 从苏宁电器到卡巴斯基(第二部)第08篇:我在卡巴的日子 VIII
- 《Java程序设计》在线课程使用说明-2021版
- 已安装pywinrm,仍报错winrm or requests is not installed: No module named winrm
- Matlab更改工作路径的方法及思考