View
362
Download
4
Category
Preview:
DESCRIPTION
模拟集成电路 版图自动布局布线技术. 2010 年 6 月 26 日. 版图基本数据结构. 链表结构( Linked List ) 占用空间小,适合存放静态数据 不显式表达空间区域,查找较慢 四叉树( Quad Tree ) 分区管理,查找时间快,适合实图形的查询和编辑 不适合推移、压缩等针对空区域的操作 角钩链( Corner Stitching ) 适合推移、压缩和通道生成等操作. 版图基本数据结构. 自动布局规划问题. 将若干电路模块放置在电路的适当位置上,并满足一定的目标函数和限制条件。 目标函数主要包括: 芯片面积 宽长比 线网长度 - PowerPoint PPT Presentation
Citation preview
模拟集成电路版图自动布局布线技术
2010 年 6 月 26日
- 2 -
版图基本数据结构
链表结构( Linked List)占用空间小,适合存放静态数据不显式表达空间区域,查找较慢
四叉树( Quad Tree)分区管理,查找时间快,适合实图形的查询和编辑不适合推移、压缩等针对空区域的操作
角钩链( Corner Stitching)适合推移、压缩和通道生成等操作
- 3 -
版图基本数据结构
- 4 -
自动布局规划问题
将若干电路模块放置在电路的适当位置上,并满足一定的目标函数和限制条件。目标函数主要包括:芯片面积宽长比线网长度布线拥挤度( Congestion)
目标函数可进行归一化加权处理
- 5 -
布局中的线长估计
边界框( Bounding-Box)包含线网内所有引脚( Pin)的最小矩形计算简单快速,但误差较大
Steiner最小树( SMT )线长最小,估计精确,但生成复杂,计算量大
单树干 Steiner树树干位置是所有引脚的 X(或者 Y)坐标的平均值,然后从所有引脚向树干做垂线兼顾精度和计算量
- 6 -
布局中的布线拥挤度问题
- 7 -
布局限制条件
限制条件主要有:相邻( Adjacency)对称( Symmetry)边界条件( Boundary)匹配(Matching)
更复杂的布局问题预设障碍布局多边形模块布局软模块布局
- 8 -
器件匹配(Matching)
CMOS器件的 random mismatch计算公式:
决定匹配质量的因素器件的尺寸两个器件之间的距离周围环境的相似程度均匀分布的位置
- 9 -
匹配模式( Interdigitate)
- 10 -
匹配模式( Common-Centroid)
- 11 -
布局问题实例(部分)
(a) no constraints(a) no constraints
(c) adjacent blocks(c) adjacent blocks
(b) boundary blocks(b) boundary blocks
(d) L/T shape blocks(d) L/T shape blocks
- 12 -
布局拓扑表示应考虑的因素
完备性–对每个布局方案都有相应的拓扑表示存在,确保搜索时不会漏掉最优解有效性–每个布局方案的拓扑表示应尽量少,避免浪费时间试探多个等价的拓扑结构独立性–拓扑表示应独立于模块的尺寸高效性–从拓扑表示到布局方案的转换效率高简洁性–拓扑表示应尽量占用较少的存储空间
- 13 -
布局方案的拓扑表示方法
Slicing结构数据表示方便计算复杂度低解决问题有局限性
Non-Slicing结构布局方案表示完整处理特殊问题方便数据结构复杂
- 14 -
Slicing结构
可以用二叉树和波兰表达式表示下图的波兰表达式为: FE+BA+C*+GH*D+*
由 + 、 *符号可以得到模块间的拓扑关系, +表示上下, *表示左右
- 15 -
Non-Slicing结构
序列对( Sequence Pair)模型由两组序列表 +(左上至右下)和 -(左下至右上)确定布局方案搜索空间 O(n!2) ,转换效率 O(n2)
- 16 -
Non-Slicing结构
O-Tree模型只能表示 LB-compact的布局精确的布图规划拓扑结构依赖于模块的形状搜索空间 O(n!22n-2/n1.5) ,转换效率 O(n)
- 17 -
Non-Slicing结构
角模块表( Corner Block List)模型由三个数据表构成
S:名字列表,记录模块名字和几何信息L:方向列表,以 0/1表示相对前一个模块,当前模块的相对位置, 0表示在上方,左边对齐; 1表示在右方,底边对齐。 T:修正列表,改变 L List 中所相对的模块,以数字(不小于 0)表示当前模块位置的修正次数。 L值为 0时,向左修正; L值为 1时,向下修正。
搜索空间 O(n!23n-3/n1.5) ,转换效率 O(n)
- 18 -
Non-Slicing结构
S = ( A , B , C)L = ( 0 , 1 , 0)T = ( 0 , 0 , 1)
S = ( A , B , C)L = ( 0 , 1 , 0)T = ( 0 , 0 , 1)
- 19 -
产生布局方案新解
以角模块表为例,可以使用的手段包括:交换 S 列表中任意两个模块的位置旋转 S 列表中某个模块的方向改变 L 列表中的某个位置的值( 0→1或者 1→0)改变 T 列表中的某个位置的值
- 20 -
布局优化算法(模拟退火)Algorithm SIMULATED_ANNEALING
begin
temp = INIT_TEMP;
place = INIT_PLACEMENT;
while (temp > FINAL_TEMP) do
while (inner_loop_criterion = FALSE) do
new_place = PERTURB(place);
C = COST(new_place) - COST(place);
if (C < 0) then
place = new_place;
else if (RANDOM(0, 1) < e-C/temp) then
place = new_place;
temp = SCHEDULE(temp);
end;
- 21 -
布局优化算法(模拟退火)
优化过程
目
标
函
数
一般迭代法
模拟退火法
来源于冶炼加工中的固体退火原理 可以从局部优化解中解脱出来在有限的时间内只能得到近似最优解求解质量受降温方案( Cooling Schedule)影响
- 22 -
版图自动布线
实现策略直接区域布线总体布线 + 详细布线
数据结构网格布线无网格布线
布线算法迷宫(Maze)算法线探索( Line-Search)算法
- 23 -
迷宫算法
- 24 -
线探索算法
- 25 -
布线中的限制条件
线网对称线网匹配若干条线网的长度相等满足时序( Timing)要求
线网保护( Shielding )与被保护线网平行走线屏蔽外来信号对关键线网的干扰
- 26 -
其他布线问题
多端线网布线求解多端线网的 Steiner树问题电子迁移( Electromigration)问题,线网中每段金属的宽度由通过的具体电流值决定
多层布线指定每层的走线方向采用三维网格,并对网格填数方向加权
布线顺序和拆线重布并行布线
- 27 -
Q & A
Recommended