数字ic后端设计从入门到精通4(含fusion compiler, tcl教学)CMOS VLSI Design
Layout Design Rules
一、什么是 Layout Design Rules?
布局设计规则是一套用于指导芯片物理设计的几何约束条件,确保设计可以在特定制造工艺下被正确制造。这些规则通常由代工厂(foundry)提供,规定了最小线宽、间距、层间重叠等参数。
1. 基于微米(Micron-based)的设计规则
- 工业界常用以**微米(μm)**为单位的具体数值来表示设计规则。
- 比如一个0.18 μm工艺中,最小多晶硅宽度是0.18 μm。
- 缺点:不同工艺之间的规则不能直接迁移,因为不是所有规则都能按比例缩放。
二、Scalable Design Rules(可扩展设计规则)
为了便于在不同工艺之间迁移设计,学术界和一些原型设计服务提出了可扩展设计规则。
1. Mead & Conway 提出的 Lambda 规则
- 引入了一个基本单位 λ(Lambda) 或 Q,代表工艺分辨率的一半。
- Q = ½ × 最小晶体管沟道长度(即最小多晶硅宽度)
- 例如,在0.18 μm工艺中,Q = 0.09 μm。
2. 可扩展性的优势
- 所有尺寸都以 Q 的整数倍表示。
- 同一套布局可以适用于不同工艺,只需调整 Q 的值即可。
- 虽然不如实际微米规则紧凑,但易于理解、学习和迁移。
三、MOSIS 设计规则简介
MOSIS 是一个面向学术和研究用途的低成本芯片原型服务平台,它采用了一套基于 Q 的通用可扩展设计规则。
主要规则示例(适用于双金属层 n-well 工艺):
层级 | 最小宽度/间距 | 备注 |
---|---|---|
金属层 / 扩散层 | 4Q | 防止断路 |
接触孔(Contact) | 2Q × 2Q | 上下层需留出至少1Q的覆盖 |
多晶硅(Poly) | 2Q | 在晶体管区域需与扩散层重叠2Q |
Poly 与 Contact 间距 | 3Q | 确保不短路 |
N-well 包围 pMOS | 6Q | 并远离 nMOS 至少 6Q |
这些规则虽然保守,但非常适合教学和初学者使用。
四、晶体管尺寸表示法(W/L)
晶体管的尺寸通常用其宽度与长度之比 W/L 来表示。
示例:
- 图中展示了一个nMOS晶体管,W/L = 4/2。
- 若Q=0.3 μm,则实际尺寸为:
- 宽度 = 4 × Q = 1.2 μm
- 长度 = 2 × Q = 0.6 μm
- 这种尺寸被称为单元晶体管(unit transistor)。
pMOS vs nMOS
- pMOS晶体管通常更宽,因为空穴迁移率低于电子。
- 例如,pMOS可能是2×unit width,而nMOS是1×unit width。
五、数字电路中的常见做法
在数字电路中,通常选择最小沟道长度的晶体管,原因如下:
- 更快(短沟道晶体管响应更快)
- 更小(节省面积)
- 更省电(降低动态功耗)
因此,设计师常只标注晶体管的宽度倍数,默认使用最小长度。
六、总结
类型 | 单位 | 可扩展性 | 应用场景 |
---|---|---|---|
微米规则(Micron-based) | μm | ❌差 | 工业量产 |
Lambda/Q规则 | 整数倍Q | ✅强 | 学术、教学、快速原型设计 |
尽管随着工艺进入深亚微米(< 180 nm),工业规则变得极为复杂且不可扩展,但基于Q的简单规则仍然是理解复杂规则的基础。
芯片布局规划
物理设计始于芯片的布局规划,这一过程对主要单元的面积进行估算,并定义它们之间的相对位置。布局规划对于确定提议的设计是否符合预算的芯片面积以及估计连线长度和连线拥堵情况至关重要。
布局规划的重要性与迭代过程
- 初步布局规划 应在逻辑大致确定后立即准备。该过程涉及反馈循环:布局规划往往会建议对逻辑(及微架构)做出更改,这又反过来影响布局规划。
- 例如,假设微架构师认为某个缓存需要2周期的访问延迟。如果布局规划显示数据缓存可以放置在靠近执行单元的位置,则缓存访问时间可能减少到单个周期,从而允许微架构师在保持相同性能的同时减少缓存容量。一旦缓存缩小,就需要重新考虑布局规划以利用数据通路附近新获得的空间。
布局规划中的挑战与解决方案
- 布局规划的一大挑战在于估算每个单元的大小而不必经过详细的芯片设计(这取决于布局规划和连线长度)。此部分假设已经做出了良好的估算,并描述了布局规划的样子。
- 图1.62展示了包括垫框在内的MIPS处理器芯片布局规划。顶层块是控制器和数据通路。在这两个块之间留有一个布线通道,为控制信号提供通往数据通路的路由空间。数据通路进一步划分为字切片。垫框包含40个I/O垫,这些垫连接到芯片封装上的引脚。
特定于MIPS处理器的例子
- 布局规划按比例绘制并标注尺寸。该芯片采用0.6μm工艺,在一个1.5×1.5毫米的芯片上设计,因此芯片的一边为5000λ。每个垫为750λ×350λ,因此垫框内的最大可能核心区域为3500λ×3500λ=12.25百万λ²。
- 由于布线通道的存在,实际的核心区域为4.8百万λ²,大于各块面积之和。这种设计被称为“垫限制”,因为I/O垫决定了芯片面积。大多数商业芯片都是“核心限制”的,即芯片面积由除垫之外的逻辑决定。
芯片结构分类与布局策略
- 芯片上的结构可分为随机逻辑、数据通路、阵列、模拟电路和输入/输出(I/O)。不同的结构有不同的布局需求:
- 随机逻辑 和 数据通路 通常使用标准单元构建,如反相器、NAND门和触发器。标准单元提高了生产力,因为每个单元只需绘制和验证一次。
- 阵列 如RAMs、ROMs和PLAs,由二维重复的相同单元组成。自动布局生成器可用于内存阵列和随机逻辑,但对数据通路还不够成熟。
- 模拟电路 需要仔细设计和仿真,但由于其相对较少的晶体管数量,涉及的布局也相对较小。
- I/O单元 对每个制造工艺高度调优,通常由工艺供应商提供。
此外,在布局规划过程中选择金属方向也是一个重要的决策。例如,MIPS布局规划使用水平金属1线、垂直金属2线和水平金属3线。不同层之间交替的方向使得在不同层上交叉走线变得容易。这种安排有助于优化芯片内部的布线效率,减少潜在的信号干扰,并支持更紧凑的设计。通过这样的方法,设计师能够有效地规划芯片的各个组成部分,确保高效利用芯片面积,并达到预期的性能目标。
标准单元(Standard Cells)
在现代集成电路设计中,标准单元(Standard Cells) 是一种高度结构化的布局方法,广泛用于数字逻辑电路的自动化设计。它们是预先设计好的、具有固定高度但可变宽度的功能模块(如反相器、与非门、触发器等),可以在芯片上按行排列,并通过金属线进行互连。
一、标准单元的基本结构
根据文中描述的标准单元库(见书中内封面图示),其布局具有以下特点:
- 电源和地线(Power & Ground):使用 Metal1 层水平布线。
- 宽度为 8Q,以承载更大的电流。
- 中心间距为 90Q。
- 晶体管区域划分:
- nMOS 晶体管 放置在单元底部 40Q 的区域内。
- pMOS 晶体管 放置在顶部 50Q 的区域内。
- 阱接触与衬底接触:放置在电源/地线轨道下方,确保 n-well 和 p-substrate 正确偏置。
- 输入输出引脚:使用 Metal2 层垂直布线,便于跨行连接。
- 多晶硅(Polysilicon):垂直方向运行,形成晶体管栅极。
- 扩散层(Diffusion)和 Metal1:通常水平布线,但在必要时 Metal1 也可垂直走线以节省空间。
二、单元尺寸与对齐规则
- 所有单元的宽度都是 8Q 的整数倍,这样可以保证 Metal2 布线轨道的数量为整数。
- 单元按行排列(tiled in rows),每行之间至少保留 110Q 的垂直间距。
- 在双金属层工艺中,Metal1 水平布线 通常放置在行之间的布线通道中,布线通道的高度取决于需要布线的信号数量。
三、自动布局布线工具的应用
随着 EDA 工具的发展,现代 IC 设计越来越多地依赖于 自动布局布线(Place & Route, P&R)工具。
- 图1.64 展示了一个控制器的自动布局结果。虽然图中省略了 pMOS 晶体管周围的 n-well 区域,但仍可以看出单元的整齐排列。
- 使用这些工具可以快速将逻辑网表映射到标准单元库中,并完成布线任务。
四、多层金属对布线的影响
当工艺支持更多金属层时,布线方式也发生变化:
- 三金属层工艺(3-level metal process):
- Metal3 水平布线,间距为 10Q。
- 每个单元上方可容纳 11 条水平布线轨道。
- 如果这个数量足以满足所有水平连线需求,则可以省去传统的布线通道。
这种“Over-the-cell routing(OTC)”技术显著提高了布线效率,减少了芯片面积浪费。
五、从 RTL 到物理实现的全流程设计
- 现代自动综合工具和布局布线工具已经足够强大,能够将高级语言(如 VHDL 或 Verilog)描述的逻辑直接映射到标准单元。
- 图1.65 展示了一个完整的 8 位 MIPS 处理器从 VHDL 描述自动生成物理布局的结果,采用的是 130nm 工艺、7 层金属。
- 虽然合成后的设计缺乏明显的手工优化结构(如清晰的数据通路或控制单元边界),但可以看到约有 26 行标准单元 排列在布线之下。
- 总面积约 4 MQ²(即 4 百万 Q²)。
六、标准单元设计的优势与局限性
特性 | 优势 | 劣势 |
---|---|---|
设计效率 | 高,可完全自动化 | 面积利用率不如定制设计 |
性能 | 一般稍逊于定制设计 | 可预测性强,适合大规模设计 |
易用性 | 易于复用、验证 | 缺乏结构性,后期优化困难 |
成本 | 低设计成本,适合量产 | 不适用于高性能关键路径 |
小结
标准单元法是一种高效且结构化的设计方法,特别适合使用自动化工具进行大规模数字系统的设计。它简化了布局布线过程,使得设计师可以专注于功能实现而非物理细节。尽管其性能和面积可能略逊于手工优化的定制设计,但在大多数商业应用中,标准单元仍是首选方案,尤其是在时间紧迫、资源有限的情况下。
Pitch Matching(间距匹配)
在集成电路物理设计中,Pitch Matching(间距匹配) 是一种优化布局密度和互连效率的关键技术。它要求相邻单元在连接边界上具有相同的尺寸(即“对齐”),以便它们能够“无缝拼接”在一起。
一、间距匹配的背景与意义
在图1.64中展示的控制器布局中,芯片面积主要被**布线通道(routing channels)**占据。这些通道是为了让金属线穿过标准单元之间预留的空间,虽然便于布线,但会显著增加整体面积。
为了提高布局密度并减少长连线带来的延迟,可以采用一种更紧凑的设计方法:将互连线直接集成到单元内部,使单元之间能够无缝对接(snap together)。这种方法需要满足一个前提条件:相邻单元必须在连接边上的尺寸一致,也就是实现 pitch matching。
二、什么是 Pitch?
在标准单元设计中,“pitch” 指的是一个单元在某个方向上的总宽度或高度,包括其内容加上必要的空白空间(如供电轨道、布线空间等)。通常我们关注两个方向的 pitch:
- 水平方向 pitch:单元的宽度,决定它能否与其他单元横向对接。
- 垂直方向 pitch:单元的高度,决定了它能否与上下行中的其他单元纵向对接。
三、间距匹配的实际影响
- 如图1.66所示,如果单元 D 的宽度小于与其连接的单元 B 和 C,则无法完全对接,导致留下空隙,浪费面积。
- 如果增加单元 D 的宽度以匹配 B/C,虽然解决了对接问题,但也可能迫使 B 或 C 增大,从而影响整个模块的总面积。
因此,在进行 pitch 匹配设计时,需要从全局出发,协调各个模块的大小,以达到最优的整体面积和性能。
四、MIPS 数据通路中的实例(图1.67)
图1.67展示了 MIPS 处理器数据通路的详细布局结构,其中体现了多个 pitch-matched 单元的应用:
- 8个水平字切片(bitslices):清晰可见,每个 bitslice 处理一位数据,且它们在宽度上保持一致,确保了水平方向的 pitch 匹配。
- 顶部的 zipper 行:包含3行解码器电路,这些解码器在垂直方向上与寄存器文件(register file)实现了 pitch 匹配,使得它们可以直接堆叠在一起,无需额外布线通道。
- 控制信号布线:
- 使用 Metal2(第二层金属) 垂直布线,用于传输时钟、多路选择器控制信号、寄存器使能信号等。
- 数据路径布线:
- 使用 Metal3(第三层金属) 水平布线,位于单元上方,用于在同一 bitslice 内传输数据信号。
这种结构利用了多层金属的优势,实现了高效的数据传输和模块间的紧密集成。
五、数据通路单元的尺寸估算
- 单元高度(Height):
- 取决于晶体管宽度以及需要在上方布线的 Metal3 线条数量。
- 对于较简单的数据通路,典型高度为 60–100Q。
- 单元宽度(Width):
- 取决于单元内部逻辑的复杂度。例如,ALU bitslice 比加法器 bitslice 更宽。
- 所有 bitslice 应尽量统一宽度,以实现水平方向的 pitch 匹配。
六、总结
概念 | 描述 |
---|---|
Pitch Matching | 相邻单元在连接边上的尺寸一致,实现无缝拼接 |
Snap-together Cells | 集成布线的紧凑单元,减少布线通道,提升面积利用率 |
优势 | 减少芯片面积、缩短连线长度、提升性能 |
挑战 | 需要全局规划、协调各模块尺寸、增加设计复杂度 |
应用场景 | 数据通路、寄存器文件、高速关键路径等结构化模块 |
通过合理使用 pitch matching 技术,设计师可以在不牺牲功能性的前提下,大幅提升芯片的面积利用率和电气性能。它是现代高性能 ASIC 设计和 SoC 架构中不可或缺的一部分。
Slice Plans(切片规划)
在集成电路设计中,Slice Plan(切片规划) 是一种用于描述和分析数据通路(datapath)结构的高级布局抽象方法。它主要用于帮助设计师在实际进行物理布局之前,快速估算布线需求、面积开销以及潜在的布线拥堵情况。
一、什么是 Slice Plan?
一个 slice plan 展示了数据通路中各个“位切片”(bitslice)的排列顺序,以及每个 bitslice 内部布线轨道(wiring tracks)的分配情况。
- 每个 bitslice 对应于数据通路中处理一位数据的部分。
- 图中的点(dot)表示某条总线信号经过该单元,并且在该单元中被使用。
- 每个单元都标注了其类型和宽度(以 tracks 为单位),便于计算整体宽度。
例如:
在图1.68中,“pc”是程序计数器寄存器(PC flop)的输出,同时也作为 srcA 和地址多路复用器的输入。这表明这条信号线需要在多个 bitslice 中传递和使用。
二、Slice Plan 的作用
-
估算布线长度与拥堵情况
- Slice plan 可以清晰地展示哪些区域会有较多的信号线穿过或使用,从而提前识别出可能的布线瓶颈。
- 例如,在图中可以看到,寄存器文件上方有七条布线轨道被同时使用,是整个数据通路中最拥挤的地方。
-
面积估算
- 每个 bitslice 的宽度(tracks)可以从标准单元库中查得。
- 将所有 bitslice 的宽度相加,即可得到整个数据通路的总宽度(以 tracks 或 λ 表示)。
- 示例:319 tracks × 8λ/track = 2552λ 宽度
- 数据通路的高度由行数和每行的 pitch(间距)决定。
- 示例:共 12 行(8 个 bitslice + 1 个 zipper + 3 个地址解码器)
- 每行高度为 110λ → 总高度 = 12 × 110λ = 1320λ
-
空间利用率分析
- 地址解码器通常只占据其所在行的一小部分,其余空间可能未被利用。
- 在更紧凑的设计中,可以考虑让控制器或其他模块共享这些空闲区域,提高芯片面积利用率。
三、Slice Plan 的组成要素
元素 | 描述 |
---|---|
Bitslices | 每个 bitslice 处理一位数据,如 ALU、加法器、移位器等 |
Wires/Buses | 用线条表示信号线,点表示该信号在该单元中被使用 |
Tracks | 布线轨道数量,反映布线密度和复杂度 |
Width Annotation | 每个单元的宽度(以 tracks 数表示) |
Row Count | 整个数据通路包含多少行(bitslice + 控制逻辑) |
四、Slice Plan 的优势
- 快速评估设计可行性:无需完整布局即可预估面积和布线难度。
- 优化布局前的重要参考:可指导后续的 floorplan 和 place & route 工作。
- 促进模块化设计:通过 slice plan 明确各功能模块之间的连接关系。
- 节省时间成本:避免在不合理的架构上投入过多精力进行详细布局。
五、总结
概念 | 说明 |
---|---|
Slice Plan | 用于数据通路的高层次布局规划工具 |
用途 | 布线拥堵分析、面积估算、模块化设计支持 |
关键指标 | Bitslice 数量、布线轨道数、单元宽度、行数与行高 |
优点 | 快速、直观、实用,适用于早期设计阶段 |
Arrays(阵列结构)
在集成电路设计中,Arrays(阵列) 是一种高度规则化的布局结构,通常用于实现具有重复功能的模块,如存储器(RAM、ROM)、可编程逻辑阵列(PLA)、乘法器等。这类结构因其规则性而非常适合自动化布局和面积估算。
一、PLA(Programmable Logic Array)简介
图1.69 展示了一个用于控制有限状态机(FSM)的 可编程逻辑阵列(PLA),它实现了下一状态逻辑和输出逻辑的功能。
- AND 平面(左侧):用于生成输入变量的各种组合项(即“与项”或“最小项”)。
- OR 平面(右侧):将这些与项进行逻辑或操作,得到最终的输出函数。
PLA 可以实现任意一个以“积之和”(sum-of-products)形式表示的布尔函数,是一种非常灵活的组合逻辑实现方式。更多细节见第12.7节。
二、PLA 的布局与面积估算
PLA 的布局具有很强的规律性,因此其面积可以很容易地通过以下方式估算:
1. 垂直方向(宽度):
- 每个输入信号占用 2 个垂直轨道(vertical tracks)
- 每个输出信号占用 3 个垂直轨道
- 额外开销(如电源线、控制信号等)约需 6 个轨道
2. 水平方向(高度):
- 每个乘积项(product term / minterm)占用 1.5 个水平轨道
- 额外开销(如布线空间、控制电路)约需 14 个轨道
由此可以推算出整个 PLA 所需的轨道数量,并结合每个轨道的尺寸(通常为8λ),换算成实际面积。
三、PLA 实际面积计算示例
文中给出的具体数据如下:
- PLA 主体区域:500λ × 350λ
- 外部寄存器部分(四个 Flip-Flop):336λ × 220λ
这些 Flip-Flop 是 FSM 控制逻辑的一部分,但由于无法集成到 PLA 内部,所以作为额外模块放置在外围。
整个控制器的高度由 PLA 的高度加上一些布线通道决定。
四、PLA 与综合控制器的对比
特征 | PLA 控制器 | 综合控制器(图1.64) |
---|---|---|
设计方式 | 手工规划、结构化 | 自动综合、标准单元 |
面积 | 500λ × 350λ + 外围寄存器 | 1500λ × 400λ |
布局效率 | 高(规则性强) | 较低(布线浪费较多) |
性能 | 更快(固定结构,延迟可控) | 稍慢(路径不规则) |
设计难度 | 中高(需要手动优化) | 低(自动综合工具完成) |
从这个对比可以看出,虽然综合控制器的设计过程更加高效,但其面积利用率明显低于 PLA 结构。这主要是因为自动综合工具产生的布线通道占用了大量空间。
五、Array 结构的优势与适用场景
优势 | 应用场景 |
---|---|
高密度布局 | 存储器(RAM、ROM) |
易于面积估算 | 数据通路中的 ALU、移位器等 |
高性能 | 控制逻辑(如 PLA) |
易于复用 | IP 模块、FPGA 架构 |
小结
阵列结构(如 PLA)是数字 IC 设计中非常重要的一类结构,尤其适用于需要实现复杂组合逻辑、且对面积和性能有较高要求的场合。它们的规则性和可预测性使得手工设计和面积估算变得相对简单,同时也便于自动化工具生成。
尽管现代设计越来越依赖于标准单元库和自动综合工具,但在某些关键路径或核心控制模块中,采用 PLA 或其他阵列结构仍然能够显著提升芯片的整体效率和性能。
Area Estimation(面积估算)
一个优秀的布局规划依赖于合理的面积估算,而这种估测在逻辑设计最终确定之前可能是困难的。有经验的设计者可能通过比较过去类似模块的面积来估计当前模块的面积。如果没有这样的数据可供参考,表1.10提供了一些典型的数值用于面积估算。
面积估算中的关键因素:
- 大型布线通道:需要考虑以8 Q/轨道间距的大布线通道。
- 晶体管尺寸:较大的晶体管显然占用更大的面积,这可以通过宽度(W)和长度(L)作为函数纳入面积估算中。
- 存储器外围电路:对于存储器而言,不要忘了解码器和其他外围电路,它们通常占据与存储比特本身一样多的面积。
- 密度差异:数据通路和阵列通常比标准单元实现更高的密度。
图1.68展示了数据通路片计划(datapath slice plan),其中包含了各种基本逻辑组件如多路复用器、寄存器、加法器等。该图帮助设计师了解各功能块之间的连接关系以及如何有效地安排这些组件,以便优化面积使用。
表1.10 列出了不同元素的典型布局密度,例如随机逻辑、数据通路、SRAM、DRAM、ROM等的面积估算。这些数据为设计师提供了基础,使得他们可以根据项目的具体需求做出更准确的面积预测。
设计调整与保守估算
- 微调设计:只要有足够的时间,几乎总是可以在设计中削减几lambda的空间。然而,除非某个元素重复出现次数众多,占芯片总面积的主要部分,或者因为布局错误导致某区块空间不足需要缩小,否则进行这样的努力往往不是好的投资。
- 保守估算的重要性:在布局规划时采取保守的面积估算尤为重要,特别是当存在增加更多功能性的风险时。
PLA for Control FSM (控制FSM的PLA)
图1.69展示了一个用于控制有限状态机(FSM)的可编程逻辑阵列(PLA)。PLA可以计算任何以积之和形式表示的函数,它由AND平面和OR平面组成,分别用于生成输入变量的各种组合项,并将这些组合项进行逻辑或操作得到最终输出函数。PLA因其规则性结构,易于进行面积估算和布局设计。
表1.10 典型布局密度
元件 | 面积 |
---|---|
随机逻辑(双层金属工艺) | 1000 – 1500 Q² / 晶体管 |
数据通路 | 250 – 750 Q² / 晶体管 或 6WL + 360 Q² / 晶体管 |
SRAM | 1000 Q² / bit |
DRAM(在DRAM工艺中) | 100 Q² / bit |
ROM | 100 Q² / bit |
此外,一些单元库供应商会指定典型的标准单元布局密度,以kgates/mm²表示。一般情况下,一个门被定义为包含六个晶体管的三输入静态CMOS NAND或NOR。在具有八个金属层的65nm工艺中(Q约为0.03μm),对于随机逻辑,可以达到160–500 kgates/mm²的密度,相当于大约370–1160 Q²/晶体管。具有多个金属层的工艺由于不需要布线通道,因此能够获得高密度。
综上所述,有效的面积估算是集成电路设计流程中的重要环节,它直接影响到整个芯片的布局规划和性能表现。通过合理利用历史数据和典型值,结合具体的项目要求,设计师可以制定出更加精确和高效的布局方案。