本章主要对超大规模集成电路(Very Large Scale Integration Circuit,VLSI)布局 问题进行了描述,首先简单梳理一下超大规模集成电路设计流程、物理设计相关的知 识,接着对 MIA 感知的混合高度单元集成电路详细布局问题的求解目标、线长估算方 法、以及相关形式化定义进行介绍。
2.1 VLSI 设计流程
随着集成电路技术的成熟和工业化进程的推进,集成电路设计产业不断发展。如 今,集成电路设计技术已经成为各个领域中的重要应用领域。集成电路设计流程已经 逐渐趋于科学化和精细化,体现了分工的合理性和高效性。该流程主要包括前端设计 和后端设计两个部分,以实现更好的集成电路设计。
前端设计主要包括电路设计、逻辑设计和物理设计等方面,它们的目的是对电路 进行结构设计、功能分析和性能评估等。逻辑设计则是通过设计硬件描述语言 (Hardware Description Language,HDL)进行实现,通过仿真验证和逻辑合成等工具 对电路的行为进行验证。物理设计则是通过电路的物理信息,包括电路布局和布线等, 实现电路的功能。前端设计中的设计输出结果包括 RTL 设计、综合后的门级网表和布 局图等。
后端设计是集成电路设计的重要阶段,包括布局、布线、时钟树合成和物理验证 等方面,其中,布局和布线是后端设计中的两个重要环节。布局是指将电路元件进行 放置,确定它们之间的位置和相对关系;而布线则是将元件之间的连线进行规划和优 化,以达到最佳的电路性能和可靠性。时钟树合成则是用于产生时钟信号的电路设计, 在高速集成电路中非常重要。物理验证则是对电路的物理信息进行验证,以确保电路 的正确性和可靠性。
2.1.1 设计流程概述
超大规模集成电路设计与优化是半导体芯片生产过程中不可或缺的关键步骤。图 2-1 展示了经典 VLSI 设计流程,可以分为系统规范、功能设计、逻辑设计、电路设计、 物理设计、制造、封装与测试七个步骤[27]。
系统规范:其主要目的是确定待设计电路的整体功能,包括选择制造工艺和设计 模式,以确保电路满足要求的芯片大小、性能和功能,最终输出的结果应该包括芯片 的能耗(Power)、频率(Frequency)、尺寸(Size)以及其他方面的具体要求。
功能设计:用子电路模块间的关系图或时序图来表示系统的行为特性,并简化后 续设计步骤和整个设计过程。
逻辑设计:通过系统功能来设计出电路的逻辑结构,并反复测试以确保功能的正 确性,同时,需要进行大量的实验仿真来验证
电路设计:电路设计是一个非常复杂的过程,除了需要对性能、功耗做出考虑外, 电路中各类元器件的相关属性在逻辑电路设计也有着一定影响。
物理设计:电路单元和设计组件都被转化为几何形状,并进行布局和布线,连接 线也被表示为几何连线图形。这个阶段需要考虑电路的物理实现,包括尺寸、位置、 形状以及布线等方面,以满足设计要求,并最小化芯片的尺寸和功耗。
芯片制造:将经过设计规则检查(DRC)、逻辑与版图比较(LVS)和电气规则 检查(ERC)等验证步骤的最终版图,通过一系列复杂的工艺流程,在半导体材料上 制造出芯片的过程。
封装和测试:是整个芯片制造流程的最后一步,它的目标是将制造好的芯片放入 特定的外壳中,以便进行后续的使用。在封装过程中,常用的外壳类型包括球栅阵列 (BGA)、针栅阵列(PGA)和双列直插式封装(DIP)。完成封装后,芯片需要进 行测试,以确保其符合设计规格并能够正常工作。
在整个集成电路设计流程中,上述的各阶段不是线性操作,而是相互关联、相互 影响的过程。每个阶段都需要进行反馈和测试,以保证设计的有效性和正确性。如果 出现问题,需要返回前一阶段进行调整和修改,反复这样直到能够得到最优设计结果。 因此,整个设计流程需要不断地迭代和优化。
2.1.2 物理设计
在 VLSI 设计中,物理设计起着至关重要的作用,直接影响着电路时延、可靠性 和芯片面积等指标[8]。在物理设计过程中,输入的信息包括电路元件的基本属性和模 块之间的互连网络表相关信息,而输出则是经过布置的排版图[9]。VLSI 物理设计过程 通常包括五个步骤[27]:布图规划 (Floorplan)、布局 (Placement)、时钟树综合 (Clock tree synthesis)、布线 (Routing)和时序收敛 (Timing closure)。在整个设 计流程中,测试和反馈是不可或缺的,每个步骤都需要迭代操作,以确保最终得到最 佳的设计效果。
布图规划:是设计集成电路的关键环节之一,它涉及对芯片内部结构进行完整规 划和设计的过程。在这个过程中,设计师需要确定芯片大小、输入/输出单元的数量和 布局,以及大量硬核或模块的布局和规划等。在芯片设计中,布图规划具有重要的地 位,因为它是进行精确布线的前提,也是物理设计后续过程的基础。
布局:主要目标是将芯片上的各个电路模块放置在合适的位置上,以满足系统性 能要求并尽可能地减小互连线长、电路面积和功耗。
时钟树综合:主要目标是设计和构建一个能够在芯片上有效地传递时钟信号并减 小时钟路径上的延迟差异的时钟树。通过在时钟网络上插入缓冲器(Buffer)或逆变 器(Inverter)来平衡时钟路径的延迟,从而满足规定的延迟要求。
布线:是在满足电路的电性能要求和工艺规则的限制下,将各个单元和输入/输出 单元用互连线连接起来的过程。在这一过程中,需要考虑线宽、线间距限制等因素, 以确保布线的可靠性和稳定性。布线的主要目的是实现电路的正确连接和信号传输, 以满足电路设计的功能要求。
时序收敛:是指通过不断迭代的布局和布线过程中的优化,来满足电路设计中的 时序约束[8]。其目标是保证芯片能够正常工作在指定的时钟频率下,并满足时序要求。
物理设计是整个集成电路设计过程中,物理设计直接与产品制造和研发,对芯片 的生产成本、质量和设计周期起着至关重要的作用[6]。物理设计过程中,布局是至关 重要的一步,因为它的质量决定了后续的布线工作能否顺利完成[9]。在布局阶段,需 要利用前序阶段的结果来规划其他阶段,并考虑其他约束条件,如功耗、时序等[7]。
因此,布局阶段的完成质量对于整个物理设计过程的成功非常关键。 布局阶段的主要任务是确定每个电路模块单元在芯片上的位置及方向[7],以及它 们之间的布线方式。它的目标是在满足设计要求前提下,使电路单元之间的总连线长 最短或其他目标最优。同时,布局阶段需要考虑到其他一些因素,例如功耗和信号噪 声等,以确保芯片的可靠性和性能。布局阶段包含全局布局和详细布局[8]。
2.2 详细布局问题描述
VLSI物理设计中的布局阶段中的详细布局是一个关键的设计过程,它的任务是确 定所有电路模块在布局区域内的准确位置,并尽可能的使芯片面积最小、电路模块间 的连接线长总和最短,同时还需满足其他要求,如电学指标、工艺设计和电路单元间 的互连要求。在这个过程中,需要考虑到各种约束和目标,例如电路单元的大小、引 脚的位置、电路单元间的互连性等等。
VLSI布局问题的输入包括布局区域和每个电路单元的大小、引脚的位置、电路单 元间的互连性等,而输出则是电路单元在布局区域内满足网络(单元间)线长最短、 单元占据面积最小或芯片时序最优等目标的一个布局结果。其具体的描述为:
设 W 和 H 分别为布局区域的宽高; 设 𝑉 = {𝑣𝑙 , 𝑣𝑠 , 𝑣ℎ}表示不同阈值电压的标准单元的集合,其中𝑣𝑙 , 𝑣𝑠 , 𝑣ℎ分别表示具 有低阈值电压(LVT)的标准单元,具有标准阈值电压(SVT)的标准单元和具有高 阈值电压(HVT)的标准单元;
设𝐶 = {𝑐1, 𝑐2, ... , 𝑐𝑛}表示 n 个标准单元的集合,其中标准单元𝑐𝑖属于一个特定的阈 值电压标准单元,设(𝑥𝑐𝑖 , 𝑦𝑐𝑖 )表示标准单元𝑐𝑖的左下角坐标。𝑤𝑐𝑖和ℎ𝑐𝑖分别表示标准单 元的宽度和高度。 设𝑤表示最小注入宽度限制。
设𝐸 = {𝑒1,𝑒2, ... ,𝑒𝑚}表示 m 个单元间互连接网络的集合。 MIA 约束详细布局问题定义如下: 给定电路𝐿 = (𝐶, 𝐸)和最小注入宽度限制𝑤,求出标准单元的位置,以满足所有 MIA 约束和 VDD/VSS 轨道对齐约束,并且使得标准单元间的互连线长最小,可用以 下公式表示
同时满足所有布局约束,包含无重叠约束,MIA 约束及电源轨道约束等.
2.3 详细布局问题求解目标
集成电路物理设计中详细布局问题优化目标有拥塞、可路由性、互连线长度、时 序、功耗等。本文考虑的目标是详细布局过程中运行时间最短和总的线长最小,本节 对线长求解目标,以及几种常见线长的估算方法进行简要描述。
2.3.1 线长
在 VLSI 物理设计中,线长最小化是一种重要的设计思想,为了降低负载电容、 能耗和延迟,需要尽可能减少电路单元间互连线的长度。根据研究,带权重的网络互 连线长最小化能够综合考虑时延、密度、面积等多种目标[28]。如果为了减小其中一个 网络,让单元的位置发生变化,与此单元相连的其他所有网络的互连网络总线长会发 生相应的变化,这可能会导致总线长、时延、密度、面积等目标变差。因此,带权重 的网络互连总线长被广泛应用于解决实际布局问题中的目标函数优化。通过调整网络 权重,还可以优化其他目标函数,如各时钟树线长、拥塞、时序等[29]。
2.3.2 线长估算方法
在 VLSI 设计中,连接电路单元的线必须接到引脚上,引脚有输入/输出(I/O)引 脚、单元的引脚等,线长是网络中相互连接的引脚之间的连线长度之和,走线长度直 接影响延迟。然而在布局阶段不会执行芯片的实际布线,因此就要使用一种快速的、 简便的且与实际的真实布线长度非常接近的线长估计方法来评估布局结果的质量。若 电路网络中只有两个互连引脚,通常使用曼哈顿距离来近似的估算网络的布线长度从 而得出总的走线长度。
例如:网络中只需要将电路单元 𝑐𝑖上引脚(𝑥𝑖 , 𝑦𝑖 )和电路单元𝑐𝑗上引脚(𝑥𝑗 , 𝑦𝑗 )相互连 接情况下,该网络的线长可以由两个引脚之间的曼哈顿距离𝑑 = |𝑥𝑖 − 𝑥𝑗 | + |𝑦𝑖 − 𝑦𝑗 |表 示。然而,在具体的布局问题中一个网络通常是由多个电路单元组成,对于在多电路 单元组成的网络中,有多种估算走线的长度方法。 图 2-3 展示了一个连接有 4 个引脚的网络,列举出了比较常见的 4 种线长估算方 法,图中红色表示走线,蓝色圆圈表示单元的引脚,数字表示走线的长度。图 2-3 (a) 显示了网络中的引脚位置,图 2-3 (b)显示了一种可能的布线情况,其线长为 11,图 2- 3 (c)-(f)显示了以下 4 钟线长估算方法:
(1)半周长法:是一种常见、简单的线长估算方法。该方法针对每个网络找到 一个能将该网络中所有引脚都包含在内的最小矩形,然后计算该矩形周长的一半作为 网络的估算线长[7]。如图 2-3 (c)中,其线长为:10。
(2)最小生成树:这种方法其本质都是采用 Prim 算法,可以得到较好的结果, 但其时间复杂度在布局阶段相对较长。如图 2-3 (d)中,其线长为:12。
(3)最小斯坦纳树:使用斯坦纳树来估算实际走线长度,能够获得精确的线长 估算结果,但是由于计算量巨大,在布局阶段使用这种方法来估算线长效率及其低下。 如图 2-3 (e)中,其线长为:11
(4)最短连接法:就是用以根线将网络里的所有引脚用串连起来,其最大特点 是每个引脚最多连接两个引脚。如图 2-3 (f)中,线网的长度为:12。
本文讨论了在 VLSI 布局设计中的线长估算方法。在设计过程中,线长估算是一 个关键步骤,因为线长的长度直接影响芯片的速度和功耗。本文介绍了半周长法这一 常用的线长估算方法,并指出了不同的线长估算方法在精度和效率方面存在的优缺点。 虽然没有一种方法能够完全模拟实际走线,但是根据布局算法的特点和线长估算方法 的特点,选择最合适的线长估算方法可以提高布局的精度和效率。 除了上述的线长估计方法外,还有二次线长和边框图等线长估算方法[30]。二次线 长方法基于实际布局的坐标信息来计算线长,具有较高的精度,但是计算复杂度较高, 不适合用于大规模的芯片设计。边框图方法则将芯片的布局看作一个边框,计算线长 时只考虑边框上的距离,虽然简单易用,但是精度较低,只适合用于初步的布局设计。 总之,在选择线长估算方法时,需要综合考虑精度和效率等因素。不同的线长估 算方法在精度和效率方面有着不同的优缺点,没有一种方法能够完全模拟实际走线。 因此,在选择线长估算方法时,需要结合布局算法的特点和线长估算方法的特点,综 合考虑精度和效率等因素,以选择最合适的线长估算方法。半周长法计算简单,对 VLSI布局中线长度的计算非常适用,且大多数文献也都是采用半周长法来估算线网长 度的,因此在本文中,采用半周长法来计算每个网络的连线长度,因为半周长法计算 简单,对于 VLSI 布局中线长度的计算非常适用。
2.4 相关约束形式化定义
本节主要对详细布局相关信息进行形式化定义。
2.4. 1标准单元合法排布定义1
已知电路标准单元集合𝐶 = {𝑐1, 𝑐2, ... , 𝑐𝑛 },𝑤𝑐𝑖和ℎ𝑐𝑖分别表示单元的宽度和高度, 可布局区域的宽𝑊和高𝐻,标准单元𝑐𝑖 (1 ≤ 𝑖 ≤ 𝑛) 的坐标可用(𝑥𝑐𝑖 , 𝑦𝑐𝑖 )表示其左下角坐 标,单元所占用的平面可以矩阵[𝑥𝑐𝑖 + 𝑤𝑐𝑖 ] × [𝑦𝑐𝑖 + ℎ𝑐𝑖 ]来表示。合法的布局位置必须 满足以下条件: (
1)不超出边界约束:所有布局整个电路单元(矩形)都要被包含在布局区域 里面。即对任意单元𝑐𝑖 (1 ≤ 𝑖 ≤ 𝑛),都必须满足0 ≤ 𝑥𝑐𝑖 ≤ 𝑊 − 𝑤𝑐𝑖且0 ≤ 𝑦𝑐𝑖 ≤ 𝐻 − ℎ 𝑐𝑖 。
(2)零重叠约束:所有布局电路单元在布局区域内部对应的轴平行矩形不能有 重叠。即对任意的单元𝑐𝑖和𝑐𝑗 ( 𝑖 ≠ 𝑗,1 ≤ 𝑖,𝑗 ≤ 𝑛),都必须满足𝑥𝑐𝑗 ≥ 𝑥𝑐𝑖 + 𝑤𝑐𝑖或𝑥𝑐𝑗 ≤ 𝑥𝑐𝑖 − 𝑤𝑐𝑗,𝑦𝑐𝑗 ≥ 𝑦𝑐𝑖 + ℎ𝑐𝑖或𝑦𝑐𝑗 ≤ 𝑦𝑐𝑖 − ℎ𝑐𝑗。
(3)与行对齐约束:所有布局电路单元都的布局位置都应与行对齐。即对任意 单元𝑐𝑖(1 ≤ 𝑖 ≤ 𝑛),都满足𝑦𝑐𝑗 = N × 𝐻𝑟𝑜𝑤,其中 N 是一个非负的整数,𝐻𝑟𝑜𝑤是行高。
2.4.2 最小注入区域约束定义
最小注入限制区域(MIA)约束有两种,包括行内和行间离子注入宽度(IWs) [31], 具体如下:
(1)行内最小注入限制区域是单元的阈值电压类型(VT)被不同的 VT 类型 单 元夹在中间,中间的宽度不能小于最小注入宽度𝑤。 (2)行间最小注入限制 两个电路单元属于上下相邻的两行,若两个单元在水平方向上相交,则相交的宽 度不能小于最小注入宽度𝑤。
更多华数杯相关文章参考:
2024年华数杯全国大学生数学建模竞赛A题-考虑动力学和外部干扰的关节角路径优化问题4详细求解过程-CSDN博客
2024年华数杯全国大学生数学建模竞赛A题-在有障碍物的情况下优化机器臂底座移动路径和关节角路径问题3详细求解过程-CSDN博客 2024年华数杯全国大学生数学建模竞赛A题-关节角路径的优化设计以最小化末端误差和能耗问题2详细求解过程-CSDN博客
2024年华数杯全国大学生数学建模竞赛A题-六自由度机器臂的数学建模及关节角路径优化问题1详细求解过程-CSDN博客
2024年第五届"华数杯"全国大学生数学建模竞赛C赛题解析-CSDN博客
2024年第五届"华数杯"全国大学生数学建模竞赛B赛题解析-CSDN博客