当前位置: 首页 > news >正文

【EDA】Floorplanning(布局规划)

第三章:Floorplanning(布局规划)

在VLSI物理设计中,布局规划(Floorplanning)的目标是确定芯片上模块(Blocks)的位置和尺寸,确保无重叠且优化面积、线长、时序等指标。第三章聚焦四种经典算法,涵盖切片布局(Slicing Floorplan)、非切片布局(Non-Slicing Floorplan)及优化方法,以下是详细介绍:

1. Stockmeyer算法(切片布局方向优化)

核心目标

给定切片布局(由递归横纵切割形成的树状结构),优化模块方向(旋转90度与否)以最小化总面积。

核心思想
  • 切片树表示:每个内部节点表示切割(Horizontal/Horizontal, Vertical/Vertical),叶子节点为模块。
  • 自底向上计算:对每个子树计算可能的尺寸组合(宽度-高度对),合并时考虑方向对面积的影响。
  • 自顶向下选择:根据最优子树尺寸,确定模块实际方向和位置。
关键步骤
  1. 构建切片树:如输入为模块集合及切割顺序,生成树结构(图3.1)。
  2. 底向上合并
    • 对每个切割节点,合并左右/上下子树的尺寸,考虑模块旋转(如垂直切割时按宽度递增、高度递减排序子树尺寸)。
    • 示例:合并子树尺寸 ((2,3)) 和 ((2,4)) 为 ((4,4))(垂直切割,宽度相加,高度取最大)。
  3. 顶向下确定方向:根据最优根节点尺寸,递归确定每个模块的旋转方向(图3.2)。
优势与应用
  • 仅优化切片布局的模块方向,不改变切割结构。
  • 时间复杂度 (O(n \cdot d)),适用于结构化布局(如标准单元行、硬核模块排列)。

2. 规范化波兰表达式(Normalized Polish Expression, NPE)

核心目标

高效表示切片布局,支持局部搜索优化(如模拟退火),通过三种移动操作生成相邻解。

核心思想
  • 表达式结构:形如 25V1H374VH6V8VH,其中数字为模块,H/V 表示切割方向,对应切片树的后序遍历。
  • 三种移动操作
    1. M1:交换相邻模块(如交换3和7,图3.4)。
    2. M2:反转连续切割序列(如将 VH 转为 HV,图3.5)。
    3. M3:交换模块与切割符(如交换6和V,图3.6)。
  • 评估与搜索:通过切割树计算布局尺寸和线长,结合模拟退火优化面积。
关键步骤
  1. 初始化表达式:随机生成合法切片布局的NPE(满足“投票属性”:操作数始终多于操作符)。
  2. 局部搜索:随机选择一种移动操作,生成新表达式,计算面积/线长,接受更优解或依概率接受差解(模拟退火)。
  3. 示例:通过M1/M2/M3操作调整表达式,逐步减少面积(图3.7)。
优势与应用
  • 简洁表示切片布局,支持高效邻域搜索,适用于启发式优化(如模拟退火)。
  • 局限:仅处理切片布局,非切片布局需其他方法(如Sequence Pair)。

3. 基于整数线性规划(ILP)的布局规划算法

核心目标

通过数学规划求解软模块(尺寸可变)和硬模块(尺寸固定)的布局,优化面积、线长或满足约束(如固定外形、模块旋转)。

核心思想
  • 变量定义
    • 连续变量:模块坐标 ((x_i, y_i))、尺寸 ((w_i, h_i))(软模块)。
    • 整数变量:模块旋转((z_i=1) 表示旋转90度)、相对位置关系(如 (x_{ij}=1) 表示模块i在j右侧)。
  • 约束条件
    1. 无重叠:通过相对位置变量确保 (x_i + w_i ≤ x_j) 或 (x_j + w_j ≤ x_i)(水平方向),同理垂直方向。
    2. 边界限制:模块位于芯片边界内,软模块尺寸满足宽高比约束(如 (0.5 ≤ w_i/h_i ≤ 2))。
  • 目标函数:最小化芯片面积(width × height),或加权线长。
关键步骤
  1. 建模:将布局问题转化为ILP,如最小化 (y^*)(芯片高度),约束模块坐标和尺寸(图3.8-3.11)。
  2. 求解:使用商业求解器(如GLPK)求解,处理固定模块旋转(图3.9)和软模块线性近似(图3.10)。
  3. 示例:四模块固定布局,通过ILP求解得到无重叠且面积最小的坐标(图3.8)。
优势与应用
  • 支持复杂约束(固定模块、旋转、软模块),数学上保证局部最优。
  • 局限:变量和约束数随模块数增长,适用于中小规模设计。

4. 序列对表示法(Sequence Pair Representation)

核心目标

高效表示非切片布局,通过两个序列编码模块间的相对位置,支持灵活的布局生成与优化。

核心思想
  • 双序列编码:两个序列 (SP(S_1, S_2)),分别表示模块在水平和垂直方向的顺序。
    • (S_1) 中模块顺序决定左右关系:若模块i在j左侧,则i在(S_1)中出现在j前。
    • (S_2) 中模块顺序决定上下关系:若模块i在j下方,则i在(S_2)中出现在j前。
  • 约束图构建
    1. 水平约束图(HCG):节点为模块,边表示“左侧/右侧”关系,最长路径确定布局宽度。
    2. 垂直约束图(VCG):节点为模块,边表示“下方/上方”关系,最长路径确定布局高度。
关键步骤
  1. 序列生成:随机生成合法序列对(无冲突的相对顺序)。
  2. 布局计算
    • 从HCG计算每个模块的x坐标(源点到节点的最长路径),VCG计算y坐标(图3.14)。
    • 示例:序列对 (SP1=(17452638, 84725361)) 对应的HCG和VCG最长路径分别为11和15,确定布局宽度11、高度15(图3.15)。
  3. 局部搜索:交换序列中的模块对(如M1/M2操作),重新计算约束图,优化面积(图3.16-3.19)。
优势与应用
  • 唯一表示非切片布局,支持复杂模块排列,适用于模拟退火等全局优化。
  • 广泛用于现代布局工具(如Parquet),平衡灵活性与计算效率。

5. 算法对比与总结

算法布局类型优化目标模块支持关键技术典型示例
Stockmeyer切片布局面积(方向优化)硬模块(固定尺寸)切片树遍历、尺寸合并图3.1-3.2(旋转优化后面积117)
NPE切片布局面积/线长硬模块三种移动操作、模拟退火图3.7(M1/M2/M3调整布局)
ILP-based混合(软/硬模块)面积/约束满足软模块(可变尺寸)整数线性规划、松弛近似图3.8-3.11(含旋转和软模块)
Sequence Pair非切片布局面积/线长硬模块双序列约束图、最长路径计算图3.15-3.19(非切片布局)
核心价值
  • 切片布局:Stockmeyer和NPE适用于结构化切割,适合标准单元设计,面积优化高效。
  • 非切片布局:Sequence Pair提供灵活表示,支持任意模块排列,适合复杂芯片(如包含大硬核的设计)。
  • 约束处理:ILP算法通过数学建模处理复杂约束(旋转、软模块),但计算成本较高。

第三章的算法覆盖了从传统切片布局到现代非切片布局的核心方法,为后续布局(Placement)和布线(Routing)提供了基础的结构规划,是VLSI物理设计中平衡面积、性能与约束的关键环节。

相关文章:

  • Properties配置文件
  • .NET写的开源工业物联网网关(IoTGateway)
  • 《Pinia实战》8.核心概念 更真实的示例
  • 光谱相机如何提升目标检测与识别精度
  • Babylon.js 材质统一转换指南:将 AssetContainer 中的所有材质转换为 PBRMetallicRoughnessMaterial
  • 【Go语言】RPC 使用指南(初学者版)
  • Python-Agent调用多个Server-FastAPI版本
  • 常见缓存淘汰算法(LRU、LFU、FIFO)的区别与实现
  • 居然智家启动“2025北居奥森健跑活动“以运动诠释企业健康共生理念
  • shell命令一
  • KafkaSpark-Streaming
  • 【论文阅读】平滑量化:对大型语言模型进行准确高效的训练后量化
  • Git 进阶使用指南
  • POI从入门到上手(一)-轻松完成Apache POI使用,完成Excel导入导出.
  • AD盖白油(一面是板颜色,一面是白色丝印)
  • 自动清空 maven 项目临时文件,vue 的 node_modules 文件
  • K8S Service 原理、案例
  • 【AIGC】基础篇:VS Code 配置 Python 命令行参数调试debug超详细教程
  • MySQL日期函数的详细教程(包含常用函数及其示例)
  • JavaWeb:JavaScript
  • 精准滴灌“种企业”,苏南强县常熟新的进阶密码
  • 生于1984年,马玥已任辽宁锦州北镇市代市长
  • 嫦娥八号任务合作项目,这十个入选
  • 基辅响起密集爆炸声,乌方称俄军发动大规模导弹袭击
  • “2025未来地球:科学与应用大会”在江西景德镇开幕
  • 主动权益基金一季度重仓股出炉:腾讯跃升至第一,阿里、比亚迪、中芯国际新进前十