当前位置: 首页 > 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物理设计中平衡面积、性能与约束的关键环节。

http://www.xdnf.cn/news/148627.html

相关文章:

  • 基于自然语言处理的文本生成模型设计
  • Canvas入门教程!!【Canvas篇二】
  • 基于vue框架的电信用户业务管理系统的设计与实现8ly70(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 2025年高校辅导员考试题库及答案
  • 【科研绘图系列】R语言绘制区间点图(dot plot)
  • 【Python】保持Selenium稳定爬取的方法(防检测策略)
  • C语言中操作字节的某一位
  • GoWASM、Kotlin(KT)、RustWASM 反编译难度对比
  • java网络原理3
  • 运维打铁:Mysql 分区监控以及管理
  • Lesar: 面向 Lustre/Scade 语言的形式化模型检测工具
  • @Transactional的一点理解
  • 【C语言】动态经典试题练习
  • 告别并发更新噩梦:MyBatis-Plus @Version 乐观锁实战指南
  • 深入详解人工智能数学基础——概率论中的马尔可夫链蒙特卡洛(MCMC)采样
  • CAPL编程_03
  • vue-lottie的使用和配置
  • 正大模型视角下的市场结构判断逻辑
  • 使用 SSE + WebFlux 推送日志信息到前端
  • 矫平机深度解析:操作实务、行业标准与智能化升级
  • 一款好的私有云产品推荐——优刻得私有云(UCloudStack Pro)产品白皮书
  • 示波器测试差分信号
  • cpu性能统计
  • 网络犯罪全球化,数字时代的跨国诈骗危机
  • Linux——线程(1)线程概念与控制
  • 12.thinkphp验证
  • 粒子群优化算法(Particle Swarm Optimization, PSO)的详细解读
  • PR第二课--混剪
  • 嵌入式通信技术实践与教学创新:从蓝牙协议到虚实融合的实验革命
  • 【Nacos-安全与限流机制健全06 】