1. 基本介绍
1.1 data setup: 为design plan创建基本设计单元
a. 载入必须的综合的数据: logic library, 约束, 门级网表
b. 载入必须的physical design数据: physical library, technology file, RC寄生参数模型文件
c. ICC1: 创建Milkway设计库和一个
后端设计
d. 使用对时序和优化的控制
e. 对libraries, RC寄生参数模型, 约束和时序进行检查
1.2 后端设计: floorplan, placement, CTS, routing
1.3 在后端设计中, ICC只提供referece script.
事实上,没有完美的golden script
1.4 简单的ICC流程
Data setup -> Design Planning -> Placement -> CTS -> Routing -> Chip Finishing
a. design plan:
直接影响到整个后端的收敛性
对整个design进行设计规划,确定芯片的大小,形状,hard macro的摆放,
power,ground的走向,规划,走哪些层,使用多大的线宽才能满足power的设计指标
power的设计指标: IR drop, EM
hard macro的planning
会有一个分叉点
如果design非常大,需要用到hierarchical design,把一个design切成小块,每个小块发给后端进行设计
如果design比较小,直接采用flattern design
b. placement
把所有的standard cell全部放在design grid上。牵涉到setup的优化,congestion, cell site
cell site是placement的最小设计单位,所有的standard cell必须全部放在cell site上,placement才可以算完成
c. CTS
设计指标:insertion_delay, skew
使得clock source到每个DFF的值尽可能一样,这个delay的值尽可能小
d. routing
CTS后的design的cell之间只有逻辑上的连接,没有物理上的连接
routing一定要满足工艺厂商的DRC的检查规则
e. chip finishing
天线的fix, metal fill
完全是为tapeout服务的
1.5 Data setup
a. ICC需要读入的综合数据: (没有physical信息
logic/timing library files: standard cell.db, macro cell.db, pad cell.db
db包含: 逻辑功能,时序库(setup的要求, cell的delay)
constraints file: constraint.sdc (和STA相关)
gate level netlist: pre
layout-gate-level-netlist.v
b. ICC需要读入的physical data
physical library directories: standcellls MW, macro cell MW, pad cell MW(IO)
Milkway:工艺厂直接提供Milkway数据库,有的工艺厂只提供LEF或GDS
如果只有LEF, GDS, 就需要用library compiler直接转换成Milkway的库,ICC才能使用
Milkway包含了物理信息:多少层metal, pin的位置,size,形状。提供给placement用
ICC1使用Milkway数据库
ICC2使用NLIB数据库
technology file: abc_66m.tf,工艺厂商提供给design house的工艺文件。其中包含了每一层metal的线宽,线间距,via的DRC规则...
大部分DRC规则是针对routing的
RC model files: TLU+,包含了RC寄生参数
做完placement,有一个setup的优化,需要这个文件才可以更精确地计算setup
2. logic library
为所有的标准单元(and, or, DFF, ...)提供了时序和逻辑功能的信息
为hard macro(IP, ROM, RAM, ...)提供时序信息
定义的驱动和负载的logical DRC: max_fanout, max_transition, max/min_capacitance
影响到cell的delay,从而影响到后面的timing的计算
和DC使用的logical library是一样的
DC和ICC用"target_library"和"link_library"这两个变量来定义
target_library: placement, clock和routing的优化所要使用的cell全部来自target_lirary
link_library: 其他的就使用link library
3. Physical Reference Library
Reference Library: 是Milkway数据库
记录了标准单元,macro和pad的physical信息,是placement和routing所必须的
记录了cell的pin的方向,layer和形状,dimension(bounding box), blockage, symentry(X, Y or 90 degree), reference point(通常是0, 0)
placement的unit tile,在floorplan时就需要使用
placement row的高度: 就是cell的高度
最小宽度的resolution:每个cell的宽度都是unit tile的宽度的整数倍,才能保证每个cell可以放在grid上,否则会有mismatch
有一种最小的cell -- filler cell,宽度和cell site的宽度是一样的,filler cell可以保证将placement填满
推荐的布线方向
routing track的pitch
所有的走线(metal)都必须在track上走。track的是根据technology file生成的,是工艺厂商的一些要求
4. physical libraries的Milkyway的结构
view: sub-directory,存储着每个physical/reference library的信息
FRAM: abstract view -- 在P&R中使用
LM(可选的):logic model view, 包含了logical library(db格式),可能有timing和power的信息
CEL: full layout view
5. 指定logical library, 使用.synopsys_dc.setup, ICC调用时会自动读入
也可以在ICC中重新设置
lappend_search_path [glob ./libs/*/LM] #glob是tcl命令,她会返回和pattern相匹配的文件和目录
set_app_var target_library "sc_max.db"
set_app_var link_library "* sc_max.db io_max.db macros_max.db"
set_min_library sc_max.db -min_version sc_min.db
set_min_library io_max.db -min_version io_min.db
set_min_library macros_max.db -min_version macros_min.db
set_app_var symbol_libbrary "sc.sdb io.sdb macros.sdbb"
ICC所使用的初始化文件
首先载入$SYNOPSYS/admin/setup下的.synopsys_dc.setup
其次载入用户home目录下的.synopsys_dc.setup
最后载入ICC启动目录下的.synopsys_dc.setup
6. create a "container": design library
6.1 创建design library
6.2 指定tech file和reference library
6.3 命令举例
create_mw_lib design_lib_orca -open \
-technology ./libs/abc_6m.tf \
-mw_reference_library "./libs/sc ./libs/macros ./libs/io"
结果是在当前目录下创建两个子目录: design_lib_orca和libs, 在libs下面还有三个子目录: sc, macros和io
7. 读入netlist并创建Design CEL
read_
verilog ./netlist/orca.v
current_design ORCA
uniquify #原始网表里同一个module可能会实例化多次,
#unique之后会copy module,给每一个module一个新名字,配给每一个instance, 以便ICC分别优化
link
save_mw_cel -as ORCA #在design_lib_orca/CEL下保存为ORCA:1
在ICC中,可以用“import_design ./netlis/orca. -format verilog -top ORCA"替换以上四句命令
-format的值可以是verilog, db或ddc
7. technolgy file的介绍,记录金属层的,供routing使用
工艺厂商的每种工艺都有唯一的technology file,其中包含了
metal layer的工艺参数:
每一个layer/via使用的数目和名字,physical和电学特性,DRC(最小线宽,线距...),单位,显示的颜色和pattern
DRC随着工艺的进步越来越复杂,例如多层mask会牵涉到double pattern,DRC就会非常复杂
有时候P&R工具没有检查到,但第三方DRC检查工具report,就要回去technology file搞明白这个DRC到底是什么样的