Professional Documents
Culture Documents
❀的博客-CSDN博客_icc2
blog.csdn.net/qq_42759162/article/details/108461592
Preface
This article combines Chinese and English (learn some proper nouns), and mainly
introduces the main process of ICC II software for back-end design. Before reading, you
need to have a certain understanding of the digital IC design process.
For logic synthesis related knowledge, please check: Synopsys logic synthesis and the use
of DesignCompiler (if you want to know about logic synthesis, you can check this, but
there are more contents)
For the overall process of digital IC design, please check: Some basic concepts and
common sense about digital IC back-end design (if the foundation is not very solid, it is
recommended to read this first)
For the explanation of some terms used in ICC, please check: Full of dry goods – digital
back-end design and ICC tutorial arrangement (it is recommended to pay attention to the
official account, not to advertise, I also found it when I wrote this blog, it is really
comprehensive) (It is recommended to read my blog first to understand the general
process, and then read his to deepen understanding; or when you read my blog, there are
still some proper nouns that do not understand the meaning, you can go to him to find an
explanation, the effect is better good)
This article is similar to the form of notes, integrating some relevant information on the
Internet, and the reference materials are listed in the final Reference, respecting
intellectual property rights.
content
Article directory
Preface
content
Blocks and Design Libraries
Objects
IC Compiler II GUI
1/58
APR Flow - Placement & Optimization
APR Flow - CTS & Optimization
APR Flow - Routing & Optimization
APR Flow - Signoff
Customer Support
Solvnet
Regerence Flow
ICC II介绍
ICC使用步骤
Reference
Appendix
block是所有design数据的载体,给网表创建一个block
针对block的一些命令都是*_block来命名的,比如open_block, save_block
block 包括 design data
design library 包括 block、technology data
read_verilog
open_block save_block
1
2
3
门级网表文件(.v文件)
2/58
Objects
get_*
help_attributes
1
2
Attributes of Objects
Each object has attributes, and attributes have values
3/58
Application Options (App Options)
SPG : Synopsys Physical Guidence , when synthesizing, use the information of the
back-end physical floor plan to synthesize, highlight some problem information, and
use it for the back-end process
place_opt.flow.do_spg
category.sub_category.option_name
1
2
4/58
report_app_options get_app_options
1
2
3
4
IC Compiler II GUI
5/58
Design Setup
Overview
6/58
Design Library includes Block, Cell Libraries (ndm format), Technology Library
(ndm format)
Block includes Gate-Level Netlist (gate-level netlist) and some files of Design
constraints
NDM
Timing View can be understood as db, including timing information and power
consumption information
The design view is equivalent to doing design, such as block, the design itself has the
results of winding and place
frame view is the same as lef
7/58
lef file is place and route According to the file format of the cell geometric
information library used, the layout and routing tool will determine how to layout,
how to route, and how to generate vias based on the information in the LEF file.
LEF:
(Library exchange format), called the library exchange format, which describes the physical
properties of the library unit, including port location, layer definition and via definition. It
abstracts the underlying geometric details of the cell, providing enough information to allow
the router to make cell connections without revisions to internal cell constraints. It contains
the technical information of the process, such as the number of layers of wiring, the
minimum line width, the minimum distance between lines, and the size of each selected cell,
BLOCK, PAD and the actual position of the pin. The information of cell and PAD is given
by the LEF file provided by the manufacturer, and the LEF file description of the
customized BLOCK is generated after ABSTRACT, as long as the two LEF files are
integrated.
For other file format descriptions, please refer to: Common file format descriptions
in back-end design
block library
8/58
The abstract view is more important. It is a simplified version of the design view.
The abstract view is used when top is implemented, and the physical information of
the interface and the physical information on the clock tree are extracted.
9/58
Library Prep-icc2_lm_shell
a simple script
read_db read_lef
check_workspace
commit_workspace 保存ndm
1
2
3
4
10/58
automatic place and route :布局就是在版图上给单元、宏模块等分配物理位置,使
得单元、宏模块等部件互不重叠。该分配需要根据用户给出的特定约束来对代价函数
进行优化。布局之后,单元和引脚的确切位置己经确定,所需的互联也已经确定。为布
线预留的区域称为布线区。布线必须在布线区内进行,要遵循布线规则,不能引起布线
的规则违反。
中文名
自动布局布线
外文名
1
2
3
4
5
6
11/58
如今的集成电路(Integrated Circuit,IC)设计往往要求芯片包含多个工作模式,并
且在不同工艺角(corner)下能正常工作。工艺角和工作模式的增加,无疑使时序收
敛面临极大挑战。
MCMM(Multicorner-Multimode)技术: 多工艺角多工作模式
corner:
不同的晶片和不同的批次之间,MOSFETs参数的变化范围比较大。为减轻设计困难
度,需要将器件性能限制在某个范围内,并报废超出这个范围的芯片,来严格控制预
期的参数变化。工艺角即为这个性能范围。
5-corner model:
5-corner model有5个corners:TT,FF,SS,FS,SF。前后两个字符分别对应NMOS
和PMOS。其中TT是指typical corner。Typical表示晶体管饱和电流的平均值。单一器
件所测的结果是呈正态分布的。均值为TT,最小最大限制为SS和FF。饱和电流
(Isat)大的器件,阈值电压小(LVT),运行速度快(F)。饱和电流(Isat)小的
器件,阈值电压大(HVT),运行速度慢(S)。
不同的工艺不同的device对应的sigma值不同。如果NMOS和PMOS的性能与Typical的
偏差在3sigma时,也能满足设计需求,则此corner芯片为3SS或者3FF corner 芯片。
DEF:
DEF: (Design exchange format), called design exchange format, is a file in ASCII format,
which describes the actual design, lists the library units and their locations and connection
relationships, and uses DEF to communicate between different design systems Transfer
designs while keeping the content of the design intact. DEF is not the same as GDSII which
only conveys geometric information. It can pass the logical and physical information of the
design to the place and route tools. Logical information includes logical connection
relationships (represented by netlists), grouping information, and physical constraints.
Physical information includes layout planning, layout location and orientation, and routing
geometry data.
12/58
Create of design library:
Specify technology and some cell libraries (cell is ndm)
The default library is stored in memory
create_libs ORCA.dlib \
-use_technology_lib abc14_9m_tech.ndm \
-ref_libs {
abc14_9m_tech.ndm
abc14_srams.ndm abc14_ip.ndm
1
2
3
4
5
6
7
8
13/58
Read netlist to generate block
link_block
1
2
3
The current chip will operate in many modes and different corners
multiple modes
14/58
standby mode, test mode, low power mode, high performance mode, normal functional
mode
multiple corners
Hi-T Slow, Lo-T Slow, Lo-T Fast, Hi-T Fast, Max Leakage
Because of the different application scenarios, these modes and corners are
combined to form a scenario, that is, scenarios, scenarios
IC can optimize under different scenarios at the same time, improving each conflict
in one scenario, while trying not to cause/increase conflicts in another scenario
violation: illegal, violation
15/58
First define mode and corner, and then combine mode and corner to form scenarios
create_mode M1
create_mode M2
1
2
3
4
5
6
7
Loading Constraints
After getting the scenario, you need to read in some constraint files
populate: fill, migrate, emigrate, live in, live in
16/58
current_scenario M1_C1 current_scenario M2_C1
read_sdc M1_C1_scenario.sdc
read_sdc global_constraints.sdc
1
2
3
4
5
6
set_process_number 0.99
set_temperature 125
17/58
Bring in the model of parasitic parameter extraction
For each corner, read the TLUplus file corresponding to the corner
TLUplus can be read from the ndm in the previous tech library, or it can be specified
in the subsequent design library
#if the TLUplus models have not been loaded into a technology library, they can
1
2
3
4
5
6
7
18/58
tluplus file
Parasitic RC lookup table (a binary table format that stores RC coefficients), ICC uses the
network geometry and this file to calculate the interconnect resistance capacitance. TLUPlus
models enable accurate RC extraction results by including width, space, density and
temperature effects on resistivity.
If there is no tluplus file, it can be converted to tluplus by the .itf given by Foundry. The full
name of the .itf file is Interconnect Technology Format
The itf file is provided by foundry to generate tluplus files for use in the ICC process. Use
Synopsys' Star-RCXT, just use this command in the shell:
create_scenario
set_scenario_status
1
2
19/58
Floorplanning Overview
20/58
Defining
write floor
initialize_floorplan -shape U
21/58
coarse: rough
Put both macro and standard units in
Before running place opt, fix the placement of all macros
1
2
After placing the macro, you need to place the I/O Pins
Usually when the macro is placed, it will be placed next to the block, but sometimes
it will block the macro
When arranging pins, you need to pay attention. Sometimes there will be some
interactions between blocks, so there may be constraints on the placement of pin
blocks; or there are some special requirements for the placement of special pins,
such as signal pins, clocks, and differential signal pins. , if required, you need to
read it in before placing the pins, and use place_pins -self to place all the pins in the
correct position.
place_pins -self
1
2
3
22/58
Build a power network
topology: topology
no fixed coordinates: no fixed coordinates
coordinate: n: coordinate, set; v: collocation, coordination
First define a region for it
The structure of the define power grid: hierarchy, line width, distance between lines
把pattern放到PG region中,同时可也以apply到voltage area 或者是bounds,需要指
定打哪些net,比如VDD、VSS等;这样做的好处是,全程都不会有固定坐标的方
式,当floorplan后续有一些变化时,就很灵活,不需要手动改这些数值
compile power network
23/58
把floorplan信息写下来,如果需要重新跑一下ICC,可以引用之前存下来的信息
如果送到前端综合的话,是不需要包含标准单元的placement的,DC在综合的时候会
重新考虑macro的摆放
1
2
24/58
Key Steps of the Placement Phase
指定scenario去优化
选择是否打开SPG Flow,SPG就是之前DC-G综合之后产生一个初始位置信息,ICC
II可以直接使用这个信息做下面的优化
remove掉不需要的ideal networks
指定特定类型的library cell去使用
选择是否优化leakage或者dynamic或者leakage+dynamic的total优化
SPG:synopsys physical guidence
25/58
Congestion-Focused Setup Steps
density: 密度
QoR主要分为三部分:Congestion/Timing/Power
Congestion
跑完place_opt后先分析congestion和cell/pin density
如果有拥堵问题的话,可以使用以下方法去解决congestion
Timing
Power/Area
26/58
five stages : initial_place/initial_drc/initial_opto/final_place/final_opto
place_opt默认会直接跑完五个阶段
可以使用-from/-to控制阶段,可以提高效率
可以通过app options控制:congestion/timing等
Example Script
27/58
28/58
open_lib design.dlib
open_block floorplan
#Place setup
remove_ideal_network -all
place_opt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
29/58
The definition of CTS
在大规模集成电路中,大部分时序元件的数据传输是由时钟同步控制的时钟频率决定
了数据处理和传输的速度,时钟频率是电路性能的最主要的标志。在集成电路进入深
亚微米阶段,决定时钟频率的主要因素有两个,一是组合逻辑部分的 最长电路延
时 ,二是同步元件内的 时钟偏斜(clock skew) ,随着晶体管尺寸的减小,组合逻辑电路
的开关速度不断提高,时钟偏斜成为影响电路性能的制约因素。时钟树综合的主要目
的是减小时钟偏斜。
以一个时钟域为例,一个时钟源点(source )最终要扇出到很多寄存器的时钟端(sink),
从时钟源扇出很大,负载很大,时钟源是无法驱动后面如此之多的负载的。这样就需
要一个时钟树结构,通过一级一级的buffer去驱动最终的叶子结点(寄存器)。
30/58
CTS的目的:
建立时钟树缓冲结构
给时钟网络布线
优化数据路径逻辑以建立和保持时序以及DRC
支持两种CTS流
典型的CTS流:首先做CTS,然后数据路径优化
并行时钟、数据流:CTS和数据路径优化并行执行
建议用于时序关键型设计
31/58
Clock Tree Balancing Setup
set_clock_balance_points
# 指定期望的延时以及相互之间的偏差
set_clock_tree_options
# 控制CTS选择哪种cell
create_clock_balance_group
1
2
3
4
5
6
7
8
9
10
11
12
13
Non-Default Rules
32/58
Defining/Applying NDR
33/58
create_routing_rule 2xs_2xW_CLK_RULE -width {M1 0.11 M2 0.11 M3 0.14 M4 0.14 M5
0.14}\
-cuts {
... \
1
2
3
4
5
6
7
8
1
2
3
4
CTS Execution
34/58
clock_opt
#CCD enabled
clock_opt.flow.enable_ccd
1
2
3
4
5
6
7
35/58
report_clock_qor [-type area | balance_groups | drc_violators | latency |
local_skew \
1
2
3
4
1
2
3
Example Script
36/58
37/58
open_lib design.dlib
open_block place
#CTS setup
source clock_tree_balance.tcl
source clock_routing_tules.tcl
source clock_constraints.tcl
clock_opt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
38/58
Routing Phase Goal
routing阶段的目的是:
以最小的物理DRC违规路由所有信号网
优化定时、DRC和电源的数据路径逻辑
可选择执行后路CTO或CCD
39/58
route_auto
#Routing performs
route_opt
1
2
3
4
5
6
并行优化
时序和最大转换/最大电容(默认)
时钟树、电源(可选择)
可选地使用PrimeTime延迟计算和StarRC提取
40/58
check_routes
Example Script
41/58
open_lib design.dlib
open_block cts
#route setup
source antenna_rules.tcl
set_app_options -list {
route.global.timing_driven true
route.track.timing_driven true
route.detail.timing_driven true
route_auto
route_opt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
42/58
Signoff
43/58
1、什么是signoff?
signoff,签发。
后端所说的signoff,是指将设计数据交给芯片制造厂商生产之前,对设计数据进行复
检,确认设计数据达到交付标准,这些检查和确认统称为signoff。
2、signoff的主要方向
PV signoff 物理验证
RV signoff 可靠性验证
3、signoff要点
PA signoff:关注芯片功耗,静态和动态IR降,电荷迁移等;
PV signoff:关注芯片是否满足工艺设计规则,物理设计与逻辑网表的一致性;
RV signoff:关注ESD,latchup,ERC等检查;
FM signoff:关注最终输出的逻辑网表与最初输入的逻辑网表之间的一致性;
CLP signoff:关注在低功耗设计中引入的特殊单元,电源域划分及组成单元的正确
性;
4、通常设计人员所说的第一次signoff指的是代码的冻结freeze,freeze code后,后续
所有的代码修改均需提交patch进行审核。
Timing ECO
44/58
PrimeTime inputs:
Netlist(Verilog)
Timing constraints(SDC)
Power Intent(UDF)
Layout(NDM or DEF+Tcl)
RC Parasitics with coordinates(SPEF, GPD)
Standard cell spacing rules(Encrypted Tcl)
Logic dbs
Tech Info(CLIB or LEF)
Physical libraries(CLIB or LEF)
PrimeTime ouput:
时序约束文件(.sdc文件)
该文件可以由DC工具导出,并人工进行修改,以使其满足设计要求,约束要合理,
不能过约束,否则后端软件可能无法达到要求。
在design设计可能会出现bug,后仿时也会出现一些问题,我们要做一些修正,不会
从综合开始重新开始,经常使用ECO来解决
先比较,把改动的东西写出来;然后apply change,把eco cell摆放进去;最后做
一个eco route
45/58
#Perform ECO comparison
source ECO_changes.tcl
connect_pg_net
place_eco_cells -cel_changed_cells
-reroute modified_nets_first_then_others
route_opt
1
2
3
4
5
6
7
8
9
10
11
12
标准单元填充以及金属填充
46/58
Boundary cell insertion
place_opt
clock_opt
Initial Route(route_auto)
Post-route Opt(route_opt)
Filler cell Insertion
Add Metal Fill
connect_pg_net
remove_stdcell_fillers_with_violation
connect_pg_net
1
2
3
4
5
6
7
8
9
10
47/58
Filler cell removal
eliminate: 消除
不需要流式输出设计来运行DRC
48/58
Customer Support
Solvnet
Regerence Flow
49/58
ICC II介绍
IC Compiler,简称ICC,是Synopsys新一代布局布线系统(Astro是前一代布局布线系
统),通过将物理综合扩展到整个布局和布线过程以及Sign off驱动的设计收敛,来
保证卓越的质量并缩短设计时间。上一代解决方案由于布局、时钟树和布线独立运
行,有其局限性。IC Compiler的扩展物理综合(XPS)技术突破了这一局限,将物理综
合扩展到了整个布局和布线过程。IC Compiler采用基于TCL的统一架构,实现了创新
并利用了Synopsys的若干最为优秀的核心技术。作为一套完整的布局布线设计系统,
它包括了实现下一代设计所必需的一切功能,如物理综合、布局、布线、时序、信号
完整性(Signal Integrity, SI)优化、低功耗、可测性设计(Design For Test, DFT)和良率优
化。新版ICC运行时间更快、容量更大、多角/多模优化(MCMM)更加智能、而且具有
改进的可预测性,可显著提高设计人员的生产效率。同时,新版本还推出了支持45
nm、32 nm技术的物理设计。IC Compiler正成为越来越多市场领先的IC设计公司在各
种应用和广泛硅技术中的理想选择。新版的重大技术创新将为加速其广泛应用起到重
要作用。IC Compiler引入了用于快速运行模式的新技术,在保证原有质量的情况下使
运行时间缩短了35%。新版增加了集成的、层次化的设计规划的早期介入,有助于用
户高效处理一亿门级的设计。提高生产能效的另一个关键在于物理可行性流程,它能
够使用户迅速生成和分析多次试验布局,以确定具体实现的最佳起始值。
ICC命令集
请查看:ICC 命令集
==注:==该文只是总结了ICC的一些命令,但是没有对应的解释,各命令具体含义,请在
ICC命令行man一下进行查阅。
多级物理层次
50/58
不支持多级物理层次的话就得并行,支持的话就可以包含进去
可扩展Timer
51/58
Timer可进行时序运行
ICCII是基于mode而不是scenario,一个mode对应的库有不同的电压/温
度/process,这样就可以对不同的PVT进行插值,从而增加更多的灵活性
并行优化
preroute optimization
首先是place,place之后有一个early clock,即做一个早期的CTS,目的是在place阶
段考虑到clock对于绕线以及clock cell/clock buffer面积的影响;如果对IC进行优化的
话,因为无法知道ICG的slack,因为你没有做tree,即early clock就是做一个初期的
tree来预估ICG的timing,然后进行优化;故在place阶段需要把early clock进行使
能,使它在做完timing之后时间都很match
place之后的timing可以和cts之后的timing一致性做的非常好
主要特点
52/58
Fusion with redhawk
53/58
Fusion with ICV
other fusion
54/58
PT StarRC直接读取ICCII Database
ICC使用步骤
ICC使用----ICC 1 Lab Guide学习笔记
Reference
新思在线课程:IC Compiler
process corner工艺角什么是itf文件?什么是TLUplus文件?
55/58
后端signoff含义
关于数字IC后端设计的一些基础概念与常识
干货满满–数字后端设计及ICC教程整理
IC Compiler简介
ICC后端设计准备-1.数据准备
Appendix
Signoff (electronic design automation)
Check types
Signoff checks have become more complex as VLSI designs approach 22nm and below
process nodes, because of the increased impact of previously ignored (or more crudely
approximated) second-order effects. There are several categories of signoff checks.
Design rule checking (DRC) – Also sometimes known as geometric verification, this
involves verifying if the design can be reliably manufactured given current
photolithography limitations. In advanced process nodes, DFM rules are upgraded
from optional (for better yield) to required.
Layout Versus Schematic (LVS) – Also known as schematic verification, this is used
to verify that the placement and routing of the standard cells in the design has not
altered the functionality of the constructed circuit.
Formal verification – Here, the logical functionality of the post-layout netlist
(including any layout-driven optimization) is verified against the pre-layout, post-
synthesis netlist.
56/58
Voltage drop analysis – Also known as IR-drop analysis, this check verifies if the
power grid is strong enough to ensure that the voltage representing the binary high
value never dips lower than a set margin (below which the circuit will not function
correctly or reliably) due to the combined switching of millions of transistors.
Signal integrity analysis – Here, noise due to crosstalk and other issues is analyzed,
and its effect on circuit functionality is checked to ensure that capacitive glitches are
not large enough to cross the threshold voltage of gates along the data path.
Static timing analysis (STA) – Slowly being superseded by statistical static timing
analysis (SSTA), STA is used to verify if all the logic data paths in the design can
work at the intended clock frequency, especially under the effects of on-chip
variation. STA is run as a replacement for SPICE, because SPICE simulation’s
runtime makes it infeasible for full-chip analysis modern designs.
Electromigration lifetime checks – To ensure a minimum lifetime of operation at the
intended clock frequency without the circuit succumbing to electromigration.
Functional Static Sign-off checks – which use search and analysis techniques to
check for design failures under all possible test cases; functional static sign-off
domains include clock domain crossing, reset domain crossing and X-propagation.
Tools
While vendors often embellish the ease of end-to-end (typically RTL to GDS for ASICs,
and RTL to timing closure for FPGAs) execution through their respective tool suite, most
semiconductor design companies use a combination of tools from various vendors (often
called “best of breed” tools) in order to minimize correlation errors pre- and post-silicon.
[2] Since independent tool evaluation is expensive (single licenses for design tools from
major vendors like Synopsys and Cadence may cost tens or hundreds of thousands of
dollars) and a risky proposition (if the failed evaluation is done on a production design,
resulting in a time to market delay), it is feasible only for the largest design companies
(like Intel, IBM, Freescale, and TI). As a value add, several semiconductor foundries now
provide pre-evaluated reference/recommended methodologies (sometimes referred to as
“RM” flows) which includes a list of recommended tools, versions, and scripts to move
data from one tool to another and automate the entire process.[3]
This list of vendors and tools is meant to be representative and is not exhaustive:
57/58
Signal integrity analysis - Cadence CeltIC (crosstalk noise), Cadence Tempus Timing
Signoff Solution, Synopsys PrimeTime SI (crosstalk delay/noise), Extreme-DA
GoldTime SI (crosstalk delay/noise)
Static timing analysis - Synopsys PrimeTime , Magma Quartz SSTA , Cadence ETS ,
Cadence Tempus Timing Signoff Solution , Extreme-DA GoldTime
References
58/58