自动布局布线软件

Download Report

Transcript 自动布局布线软件

自动布局布线软件
2014年04月03日
[email protected]
浙大微电子
1/74
IC典型流程
数字VLSI 流程
模拟IC 流程
功能要求
Matlab
Modelsim,
Questasim,
Muxplus II
Design Compiler
Astro,
Encounter
Modelsim,
Questasim,
功 能 要 求
系统建模
Matlab
系统建模
行为设计
(Verilog /VHDL)
不满足
行为仿真
不满足
Spectre
电路仿真
满足
满足
综合、优化
网表
手工设计
版图
不满足
时序仿真
满足
Virtuoso,
不满足
后仿真
版图自动
布局、布线
laker
Spectre
满足
不满足
后仿真
Calibre
流片、封装、测试
满足
流片、封装、测试
Muxplus II
浙大微电子
2/74
主要内容





自动布局布线基本概念
自动布局布线工具介绍
Astro工具使用
后仿真
演示
浙大微电子
3/74
自动布局布线基本概念

版图,GDS,(Graphic Data System),用
来控制集成电路光掩膜绘制 。

自动布局+自动布线=画完版图
浙大微电子
4/74
浙大微电子
5/74
自动布局布线工具介绍
1.Synopsys的Astro。2002年以前叫Apollo,2007
年以后软件升级为IC Compiler(ICC) 。
2. Cadence的SOC Encounter
浙大微电子
6/74
两个工具比较




工艺库格式不同,Astro需要二进制db格式,
Encounter需要ASCII形式的.lef文件
Astro一个进程可以打开多个cell,命令行不占
用Terminal,而Encounter一个进程只能
打开一个cell,命令行占用Terminal。
Astro能读入GDS,支持CEL view,
Encounter不支持读入GDS。
Astro没有提供Calibre的接口,不能读入
Calibre DRC的结果,Encounter可以直接读入
Calibre的运行结果
浙大微电子
7/74
Astro自动布局布线流程
参考库
时序约束文件
IO管脚排列文件
工艺文件
门级网表
数据输入
布局规划
布线
布局
静态时序分析,后仿真
时钟综合
DRC、LVS
流片
浙大微电子
8/74
数据输入



工艺库文件--是Foundry或IP提供商提供的各
种库(标准单元库、IO库、SRAM库和IP库)
和工艺文件 --网站下载
设计文件—网表文件(.sv文件)和时序约束
文件(.sdc文件)--都是DC综合得到
管脚排列文件(.tdf文件)--手动编写,保存成
XXX.tdf到任意你能找到目录里。

课件中是在软件启动目录下创建了一个data目录来
保存tdf文件
浙大微电子
9/74
IO管脚排列文件


IO顺序
插入一些特殊的IO单元:



IO电源
IO地
Corner
浙大微电子
10/74
IO管脚排列文件--tdf
























;1.1V digital core power/ground
注意空格
insertPad "VDD" "PVDD1RN" "VDD" "VDD"
insertPad "VSS" "PVSS1RN" "VSS" "VSS"
;3.3V digital IO power/ground
dbCreateCellInst (geGetEditCell) "" "PVDD2RN" "VDD_IO" "0" "No" '(0 0) "fsk_0323"
dbCreateCellInst (geGetEditCell) "" "PVSS2RN" "VSS_IO" "0" "No" '(0 0) "fsk_0323"
;Corner cell
dbCreateCellInst (geGetEditCell) "" "PCORNERRN" "CORNER1" "0" "No" '(0 0) "fsk_0323"
dbCreateCellInst (geGetEditCell) "" "PCORNERRN" "CORNER2" "0" "No" '(0 0) "fsk_0323"
dbCreateCellInst (geGetEditCell) "" "PCORNERRN" "CORNER3" "0" "No" '(0 0) "fsk_0323"
dbCreateCellInst (geGetEditCell) "" "PCORNERRN" "CORNER4" "0" "No" '(0 0) "fsk_0323"
tdfPurgePadConstr
pad "CORNER1" "Bottom"
insertPad 使用方法:
pad "CORNER2" "Right"
insertPad netName padCellName padName connectPin
pad "CORNER3" "Top"
pad "CORNER4" "Left"
dbCreateCellInst 使用方法:
pad "VDD_IO" "left" 1
pad "VSS_IO" "left" 2
dbCreateCellInst cellId childLibName chlidCellName
pad "data_in_block" "top" 1
pad "fsk_out_block" "top" 2 chilidInstName rotationStr mirrorStr Points topCellName
pad "VDD" "right" 1
pad "VSS" "right" 2
pad "clk_block" "bottom" 2
pad "en_block" "bottom" 1
浙大微电子
11/74
工具启动





创建软件启动目录 mkdir astro
进入软件启动目录 cd astro
创建保存tdf文件的目录 data
source /opt/demo/synopsys.env
astro_shell &
浙大微电子
12/74
工具界面
命令输入 例如:help “insertPad” 查看insertPad 命令使用方法
浙大微电子
13/74
创建设计库
Technology File:
/home/smic/smic_40/SCC40NLL_HS_RVT_V0p1a/astro/tf/scc40nll_hs_7l
m_1tm.tf
浙大微电子
14/74
打开设计库
浙大微电子
15/74
设计文件导入1/3
任意名
逻辑综合后得
到的网表的顶
层模块名
浙大微电子
16/74
设计文件导入2/3
设置
电源线VDD
地线VSS

浙大微电子
17/74
设计文件导入3/3
/home/smic/smic_40/SCC40NLL_HS_RVT_V0p1a/astro/SCC40NLL_HS_RVT_V0p1
/home/smic/smic_40/SP40NLLD2RN_3P3V_V0p2/apollo/SP40NLLD2RN_3P3V_V0p
1_7MT_1TM/



添加两个参考库
一个是标准单元
一个是IO
浙大微电子
18/74
打开设计单元(Cell)
浙大微电子
19/74
布局规划





确定芯片的尺寸、
模块的位置、
标准单元的排列形式、
IO单元及宏单元的位置放置、
电源和地线的分布
浙大微电子
20/74
布局规划--流程
整体规划
电源/地线
规划
1.装载IO管脚排列文件
2.芯片面积、标准单元布局方式的选择
3.宏单元放置
1.将标准单元、IO单元和宏单元的电源、
地端口与电源线、地线相连。
2.在核(Core)和IO单元之间加入电源/地
环(ring)。
3.加Strap。
4.将芯片的Ring连接到电源/地IO的电
源、地端口。
加Pad
Filler
加布局障碍
浙大微电子
21/74
整体规划—装载IO管脚排列文件
浙大微电子
22/74
整体规划—标准单元布局
芯片面积受两方面因素决定:


pad限制的设计 (Pad Limited Design), IO数量
较多。
core限制的设计(Core Limited Design),标准单
元和宏单元(SRAM和IP)的数量较多。
浙大微电子
23/74
整体规划—标准单元布局
在设计窗口中选择
Design Setup->setup floorplan
浙大微电子
24/74
IO摆放
IO之间的间距
取决于封装厂封
装水平

浙大微电子
25/74
电源/地线规划

电源/地线网络分布在整个芯片,其作用:



为每一个单元提供稳定的电压
直接关系到芯片的性能
一个完整的电源/地网络的设计还应考虑:


电压降(lR Drop)
电迁移(EM,Electromigration)
浙大微电子
26/74
电源/地 环规划

在核(Core)和IO单元之间加入电源/地
环(ring)。



连接内部电源/地和电源/地IO的纽带。
电源/地环上的电流是最大的,因此它的线宽
也最大。(一般是1mA/um )
在 设 计 窗 口 中 选 择 PreRoute>Rectangular
浙大微电子
27/74
电源/地线规划


将标准单元和宏单元的电源、地端口与电源线、
地线进行逻辑相连。
在设计窗口中选择Pre Route->Connect
Ports to P/G
浙大微电子
28/74
电源/地线规划
VDD 的net type
是 Power
VSS 的net type
是 Ground
浙大微电子
29/74
电源/地 环 与电源/地Pad 连接
再连接VSS
浙大微电子
30/74
加Pad Filler



加Pad Filler是为了填充IO单元与IO单元之间
的间隙,使IO连在一起。在设计窗口中选择
PostPlace->Add Pad Fillers
在Filler栏填写Filler单元名称时要注意填写顺
序,要求宽度大的填在前面。
40nm 库中得pad filler 有以下几种:
PFILL20RN, PFILL10RN, PFILL5RN,
PFILL2RN, PFILL1RN, PFILL01RN,
PFILL001RN,
浙大微电子
31/74
创建电容查找表模型
浙大微电子
32/74
布局

布局(Placement)是确定每个标准单元位置的
过程。一个合理的布局要求:



每个标准单元都放在有效的位置上
单元间没有重叠
布局的好坏影响:




芯片的面积
芯片的性能
布通率
整个后端设计的时间
浙大微电子
33/74
布局流程
装载时序约束文件(Load SDC)
时序设置(Timing Setup)
布局选项设置(Set Placememt Optiom)
预布局(Pre Place )
布局(In Place)
布局后的第一次优化(Post Place)
浙大微电子
34/74
布局流程—装载时序约束文件

时序约束文件(top_pad.sdc是逻辑综合软件
DC产生的)主要定义了:


芯片的工作时钟频率,时钟偏差、抖动
输入输出延时以及输出负载
浙大微电子
35/74
布局流程—时序设置

在设计窗口中选择Timing-> Timing Setup,
在弹出的窗口中进行用于静态时序分析的选项
设置。
0.1
浙大微电子
36/74
布局流程—布局选项设置
在设计窗口中选择
InPlace>Placement
Common Options,
在弹出菜单的
“Optimiaztion
Mode”一栏中选择
“Congestion”和
“Timing”,表示
选用时序和拥塞共
同驱动的布局。其
他选项可以缺省。
浙大微电子
37/74
布局流程—预布局及时序分析

预布局阶段主要是对高扇出网线进行优化:
1.在设计窗口中选择InPlace->Auto Place,
2.在弹出窗口的“Stage”一栏选择“Pre-place”,并
点击菜单中的“Detail Options”按钮,
3.在“Pre-Place optimization”一栏中选择“Cell
Down Size”,其他选项缺省
浙大微电子
38/74
布局流程—预布局及时序分析
Slack 为负表示不满足,
需要再优化
浙大微电子
39/74
布局流程—布局及时序分析
浙大微电子
40/74
布局流程—布局后第一次优化
浙大微电子
41/74
时钟树综合


时钟树综合的主要目的是减小时钟偏差。
时钟偏差是指从时钟源点(Source)到各时
钟汇点(Sink)的最大延时时间的差值。
浙大微电子
42/74
时钟树综合






时钟树综合:在时钟网络中插入时钟缓冲器
(buffer) 。
在布局之后布线之前,这时:
每个单元的位置确定
电源/地已预布线,
关键时序路径上的单元已被优化,
不存在建立时间上的时序违反,
浙大微电子
43/74
时钟树综合—时钟选项

时钟树综合前,首先要设置时钟树选项。这些
选项包括:







环境 (最好、最坏及典型)、
时钟偏差类型 (全局时钟偏差、局部时钟偏差及有
用时钟偏差)、
优化程度、
时钟定义、
时钟缓冲器及倒相器定义、
时钟树结构和时钟树优化方式以及目标的设置。
在设计窗口中选择Clock->Clock Common
Options,在窗口中进行相关选项的设置 。
浙大微电子
44/74
时钟树综合—时钟选项
浙大微电子
45/74
时钟树综合—时钟树综合
浙大微电子
46/74
时钟树综合—时钟偏差分析

时钟树综合
后,分析时
钟偏差、最
小插入延时
是否符合设
计要求。在
设计窗口中
选择Clock>Skew
analysis。
浙大微电子
47/74
时钟树综合—重新时序分析


时钟树综合之前,所有的静态时序分析都是
基于一个理想的时钟网络(时钟偏差为0)来
分析的。
时钟树综合后,需要考虑Clock Skew后再次
进行静态时序分析,因此需要重新设置时序
选项。
(tcl “set_propagated_clock [all_clock]”)
浙大微电子
48/74
时钟综合后的布局优化及时序分析
做到这一步,setup slack 一定要为正,
hold slack最好也为正,不过如果slack
为-0.0X也可以,等布线完再优化。
浙大微电子
49/74
布线

布线工具根据单元的连接关系及时序约束进行
自动布线,使关键路径上的连线尽量短。布线
包括:



时钟布线
普通信号布线
布线主要分:




全局布线(Global Route)
布线通道分配(Track Assignment)
详细布线(Detail Route)
布线修补(Search & Refine)
浙大微电子
50/74
布线流程
1. 标准单元电源/地线连接
2. 装载天线效应约束文件
3.分布式布线设置
4.布线选项设置
5.布线高级选项设置
6.时钟线布线
7.普通信号线布线及时序分析
8.布线后的各项性能分析
浙大微电子
51/74
标准单元电源/地线连接
浙大微电子
52/74
装载天线效应约束文件



天线效应--在集成电路制造过程中的金属等离子刻蚀
阶段,接到器件栅极上的金属会收集电荷,如果电荷
积累到一定程度,栅极的薄氧层会被击穿,器件因此
失效 。
为了能让Astro在布线过程中避免出现天线效应,首
先要装载由Foundry提供的天线效应约束文件
(.clf)。命令为:
load “天线效应约束文件名”
有两种方法可以修复天线效应违反,一种方法是铝线
跳到顶层,另一种方法是在栅极附近增加二极管。
浙大微电子
53/74
分布式布线设置

随着芯片规模的增加,连线数越来越多,因此
布线是个非常费时的过程。如果存在多个CPU,
为加快布线,可以采用分布式布线的方式。在
设计窗口中选Route Setup->Distributed
Routing Setup。在弹出的窗口中选择
“Connect”选项。
浙大微电子
54/74
布线选项设置



设置的原则是根据设计的需要,在设计的时序、
DRC规则和CPU 的运行时间上作出平衡。
这些选项设置会影响以下操作:部分连线布线、
全局布线、布线通道分配、详细布线、布线修
复、区域布线、布线的优化等。
在设计窗口中选Route Setup->Route
Common Options
浙大微电子
55/74
布线高级选项设置


这部分选项设置主要是为了避免布线时出现的天线效
应。
在设计窗口中选Route Setup->HPO Signal Route
Options。
浙大微电子
56/74
时钟线布线


在普通信号布线前,先对部分特殊的互连线进行布线,比如时钟
信号线或关键时序路径连线,布完这些线后,先进行时序分析看
是否满足要求然后再布其它连线。
在设计窗口中选择Route->Net Route Group,选择窗口中的
“All clock nets”和“Trim antenna of user's wire”选项,其余
选项缺省。相应的脚本为:
浙大微电子
57/74
普通信号线布线及时序分析


在设计窗口中选Route->Auto Route,
弹出对话框中对“Search & Repair Loop”的
次数进行设置,一般设为5,若布线修复的次
数设的过多,会比较费时。
浙大微电子
58/74
普通信号线布线及时序分析




布线完成后要求不能存在设计规则和天线效应
的违反。查看如下日志文件即可判断是否存在
设计规则和天线效应的违反。
DRC-SUMMARY:
@@@@@@@ TOTAL VIOLATIONS =
0 (0) //表示不存在设计规则违反
@@@@ Total nets not meeting
constraints =
0 //表示不存在天线效应
违反
浙大微电子
59/74
布线完 的时序报告
Slack 都要为正
浙大微电子
60/74
布局布线完版图—修改显示层次前
浙大微电子
61/74
布局布线完版图
修改显示层次
浙大微电子
62/74
布线后的各项性能分析

布线完成后需要进行各项性能分析,包括:
1.静态时序分析--要求时序上(建立时间、维
持时间、最大跳变时间和最大负载电容)不能
有任何违反。
2.串扰分析--深亚微米工艺下,连线间的耦合
电容在不断增加,而设计的时序要求却不断提
高,因此串扰问题将变得越来越严重。
3.功耗、压降和电迁移分析
浙大微电子
63/74
版图验证
1.设计规则检查(DRC)
Astro内嵌有设计规则检查工具,但这只是门级的设
计规则检查,版图数据并不完整,因此检查结果并
不准确。
2.版图与原理图的一致性验证(LVS)
将从版图中提取的电路网表和设计的网表进行比较,
确保两者一致。同样这只是门级的LVS检查。在设
计窗口中选Verify-> LVS。要求不能存在短路、开路
的违反。
浙大微电子
64/74
LVS报告
浙大微电子
65/74
LVS错误查看
有错误,就
需要查看错
误类型
浙大微电子
66/74
LVS错误查看
浙大微电子
67/74
数据输出 --.SDF文件
输出用于反标的延时文件
(后仿真用)

浙大微电子
68/74
数据输出--.sv网表文件

输出Verilog网表文件(后仿真用和LVS用)
浙大微电子
69/74
数据输出--.gds文件

输出GDS文件(Calibre 做DRC)
浙大微电子
70/74
后仿

与逻辑综合完时序仿真步骤一样:










1.将布局布线完导出的SDF文件添加到Testbench中
2.创建新的工程
3.添加布局布线完导出的网表文件fsk_layout.sv
4.添加标准单元的Verilog模型文件
/home/smic/smic_40/SCC40NLL_HS_RVT_V0
p1a/verilog/SCC40NLL_HS_RVT_V0p1.v
5.添加输入输出IO的Verilog模型文件
/home/smic/smic_40/SP40NLLD2RN_3P3V_V
0p2/verilog/SP40NLLD2RNP_3P3V_V0p1.v
6.编译及仿真
浙大微电子
71/74
后仿真波形
整体功能波形:
延迟信息:
浙大微电子
72/74
作业要求




布线结束后的时序报告(60页)
版图(62页)
LVS报告(66,67页)
后仿真 (72页)
浙大微电子
73/74

演示
浙大微电子
74/74