芯片设计交流论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 182|回复: 0

[转贴] 数字后端整体流程(Physical Design)

[复制链接]

13

主题

0

回帖

39

积分

新手上路

积分
39
发表于 2024-4-30 13:56:33 | 显示全部楼层 |阅读模式
数字集成电路(IC)设计流程可以被分为前端设计(Front-End Design)和后端设计(Back-End Design)。在完成前端设计、逻辑综合和时序分析后,后端设计阶段开始。以下是数字后端设计的主要流程和详细步骤:
1. Floorplanning(布局规划)


Floorplanning
Floorplanning 是集成电路(IC)设计中的一个关键步骤,负责定义芯片的物理结构和各个模块(或宏块)的大致位置。这个阶段对于整体设计效率、性能和质量都至关重要。下面是 Floorplanning 阶段的具体内容:
Main Content:
  • 确定核心和外围区域:定义芯片的核心逻辑区和外围接口区。
  • 确定IP Blocks的位置:IP(Intellectual Property)模块的大致位置和尺寸。
  • 初步Power Planning:设计初步的电源网格和地网。
  • I/O Planning:规划输入/输出引脚的位置。
  • 设置约束:设置时序、面积和功耗的约束。
Detail Content:
1. 定义核心区域和外围区域
  • 核心区域:这是用于放置逻辑门、触发器等基础元件的区域。
  • 外围区域:这里通常用于放置I/O pads,电源和地引脚。
2. 确定 IP (Intellectual Property) Blocks 的位置
  • 硬宏(Hard Macros):例如存储器、模数转换器(ADCs)等,通常有固定的大小和形状。
  • 软宏(Soft Macros):通常是可以重新合成的逻辑模块,如处理器核心、DSP单元等。
3. 初步 Power Planning
  • 电源网格设计:创建电源和地网格来提供电流和参考电压。
  • 电源环(Power Rings):在芯片外围设计电源环,用于电源和地的分发。
  • 电源铺垫(Power Pads):确定用于外部电源连接的电源和地铺垫的位置。
4. I/O Planning
  • 引脚位置:根据接口要求(如 GPIO、DDR 接口等)确定 I/O 引脚的位置。
  • 引脚电特性:确定每个 I/O 引脚的电性能需求,如驱动能力、接受阈值等。
5. 设置设计约束
  • 时序约束:定义时钟域、时钟频率和时序要求。
  • 面积约束:如果有面积限制,需要明确这一点。
  • 功耗约束:设定功耗上限或优化目标。
6. 优化和调整
  • 模块间连通性:根据模块间的逻辑关系优化它们的相对位置,以减少布线长度。
  • 模块旋转和翻转:在满足设计规则的前提下,进行模块的旋转和翻转以获得最优布局。
7. 预布线和资源分配
  • 全局布线预览:根据初步的 floorplan 进行全局布线的预览,以便对资源(如金属层)进行初步分配。
这些任务可能会有多次迭代和调整,特别是在更后续的设计阶段(如布局和布线)提供反馈后。Floorplanning 是一个需要多方面考量的复杂任务,包括但不限于性能、功耗、面积和生产成本。
2. Placement(布局)
Placement(也称为“布局”)是集成电路设计流程中的一个关键步骤,它紧跟在Floorplanning阶段之后。在这一阶段,设计的所有逻辑元件(例如标准单元、触发器、门等)和预定义的IP块(例如硬宏)被物理地放置在芯片的核心区域内。以下是Placement阶段的具体内容:
Main Content:
  • 全局布局:进行粗略的布局优化。
  • 详细布局:进一步优化每个标准单元和宏单元的位置。
  • 优化:针对时序、功耗等进行局部优化。
Detail Content:
1. 读取和解析逻辑网表
  • 输入网表:在这一步中,通常会读入一个包含了设计逻辑的网表(通常是门级或更高级别)。
2. 读取和应用设计约束
  • 读取时序和面积约束:这包括设计的时钟频率、设置和保持时间等。
  • 读取位置约束:一些元件或IP块可能有预定义的位置(这通常在Floorplanning阶段确定)。
3. 全局布局(Global Placement)
  • 草图生成:使用不同的算法(例如模拟退火、遗传算法等)来生成一个初步的元件布局草图。
  • 优化目标:主要考虑的是最小化布线长度、改善功耗和满足时序约束。
4. 详细布局(Detailed Placement)
  • 局部优化:在全局布局的基础上进行更细致的调整。
  • 对齐和间距检查:确保所有元件都符合工艺规则,包括对齐、间距和其他布局规则。
5. 硬宏和大型IP块的布局
  • 硬宏布局:这些通常在Floorplanning阶段已经有预定位置,但可能需要进行微调。
  • 与标准单元的互操作:确保硬宏与标准单元之间的逻辑和物理连通性。
6. 优化
  • Timing Driven Placement:根据时序需求进行局部或全局优化。
  • 功耗优化:通过智能地布局来减少功耗(例如,通过聚集功耗高的单元)。
  • Power Planning:尽管大部分电源规划可能已在Floorplanning阶段完成,但在Placement阶段也可能需要进行一些细致的调整。例如,为了满足特定模块或逻辑块的电流需求,可能需要添加额外的电源或地连接。
7. 验证
  • 设计规则检查(DRC):确保布局满足所有工艺和设计规则。
  • 电气规则检查(ERC):确保布局不会导致电气问题(例如,电流密度过高)。
8. 输出和存档
  • 生成布局文件:将完成的布局存储为一个或多个文件格式(例如,GDSII或LEF/DEF),以供后续步骤(如Routing和Physical Verification)使用。
通常,在进行到后续的设计步骤(如Clock Tree Synthesis和Routing)之前,会多次迭代和优化Placement。
3. Clock Tree Synthesis (CTS)(时钟树综合)
Clock Tree Synthesis (CTS) 是集成电路设计中的一个重要步骤,主要目的是生成一个有效的时钟分布网络。这个网络负责将时钟信号从一个或多个时钟源(Clock Source)传送到芯片内所有需要时钟的元件(如触发器和存储器元件)。在这一过程中,设计师需要权衡多个因素,包括但不限于时序、功耗、面积和可靠性。以下是 Clock Tree Synthesis 的具体内容:
Main Content:
  • 创建时钟树:构建用于分发时钟信号的时钟树。
  • 时钟缓冲:添加缓冲器来减少时钟偏斜。
  • 优化:优化时钟树以满足时序和功耗需求。
Detail Content:
1. 读取和理解时序需求
  • 读取约束文件:这些文件通常包含时钟定义、时钟域、时序需求等信息。
  • 理解多时钟域:如果设计有多个时钟域,需要明确这些域之间的关系。
2. 选择和定位时钟根
  • 单一或多时钟源:根据设计需求,选择一个或多个时钟源。
  • 时钟根位置:时钟源(或Buffer)的物理位置需要仔细选定,以优化整个时钟网络。
3. 生成初步的 Clock Tree
  • 选用时钟Buffer和分频器:选择合适的Buffer和分频器类型。
  • 构建Clock Tree:运用不同算法和工具生成一个初步的 Clock Tree。
4. 时钟网的平衡
  • Skew优化:优化时钟路径,以最小化不同路径上的延迟差异(即Skew)。
  • 插入延迟单元:在必要的路径上插入延迟单元,以进一步平衡Skew。
5. 电源和地规划
  • 优化电源连接:确保Clock Tree中所有的Buffer和分频器都有稳定和合适的电源和地连接。
  • 考虑电源噪声:电源噪声可能影响时钟信号的质量,需要进行相应的优化。
6. 验证和优化
  • 时序分析:运行时序分析工具,以确保Clock Tree满足所有时序需求。
  • 功耗和面积考量:对Clock Tree进行优化,以满足功耗和面积的约束。
7. 生成和输出结果
  • 生成Clock Tree文件:将最终的Clock Tree结构输出为相应的文件格式,供后续的物理实现和验证使用。
这只是Clock Tree Synthesis步骤的大致概述,具体实现可能因不同的工具和设计需求而有所不同。优秀的Clock Tree设计是实现高性能、低功耗和高可靠性芯片设计的关键因素之一。
4. Routing(布线)
Routing(布线)是集成电路设计流程中的一个关键步骤,它负责实现逻辑元件之间的物理连接。Routing通常紧跟在Placement和Clock Tree Synthesis(CTS)阶段之后。以下是Routing阶段的具体内容:
Main Content:
  • 全局布线:确定大致的连线路径。
  • 详细布线:在全局布线指导下,进行精确的连线。
  • 修复布线冲突:解决任何布线冲突或溢出。
Detail Content:
1. 准备工作
  • 读取已有的设计:包括已放置的标准单元、硬宏、时钟树等。
  • 读取设计规则和约束:这些可能包括工艺规则、电源网格、时序约束等。
2. 全局布线 (Global Routing)
Main Content:
  • 路径规划:在这一步骤中,算法会大致规划出每一条互联线(net)应该走的路径。
  • 资源分配:为了确保所有的互联线都能被合适地布置,需要进行资源分配。
Detail Content:
a. 初始化
  • 读取设计数据:加载已经完成 Placement 的设计,包括各种逻辑单元、硬宏、约束等。
  • 定义布线网格:在设计平面上划分一个布线网格,该网格用于规划互连路径。
b. 约束与规则处理
  • 读取布线约束和规则:这包括最小和最大线宽、线距、过孔约束等。
  • 读取电气和时序约束:这有助于确保全局布线不仅符合物理约束,而且满足电气和时序要求。
c. 网络分解与排序
  • 网络分解:对复杂的多点网络进行分解,以简化布线任务。
  • 网络排序:根据不同的标准(如网络复杂性、关键性等)对待布线的网络进行排序。
d. 全局路径规划
  • 路径搜索:使用各种搜索算法(如 A*、Maze Routing 等)为每个网络找到一条或多条全局路径。
  • 资源分配:在布线网格上为每条路径分配必要的资源,如布线轨和过孔。
e. 调整与优化
  • 处理冲突:当两个或更多的路径有冲突时(如共用相同的网格或资源),进行调整以解决冲突。
  • Skew 和延迟优化:对关键网络(如时钟网络)进行特殊处理,以最小化 skew 和信号延迟。
f. 验证与输出
  • 全局布线验证:使用特定的工具和方法(如电气规则检查、时序分析等)对全局布线结果进行初步验证。
  • 生成中间结果:输出全局布线的结果,通常以某种可解析的格式(如 DEF、SPEF 等),以供后续的详细布线阶段使用。
3. 详细布线 (Detailed Routing)
Main Content:
  • 实际布线:依据全局布线的结果,进行实际的布线操作。
  • 处理冲突和过载:如果在布线过程中出现资源冲突或过载,需要进行相应的调整。
Detail Content:
a. 准备阶段
  • 读取全局布线结果:加载全局布线提供的路径规划和资源分配信息。
  • 读取设计和工艺规则:这包括布线规则、电源网格、过孔规则等。
b. 预布线处理
  • 预分配关键信号:手动或自动分配时序关键或电气关键的网络。
  • 处理固定元素:识别和处理与硬宏、墙或其他固定元素相关的特殊布线要求。
c. 路径生成
  • 生成实际路径:根据全局布线结果和约束,生成每一条互联的实际路径。
  • 过孔插入:在需要变换金属层时,插入过孔(vias)。
d. 优化
  • 优化布线质量:这可能包括减少布线长度、提高布线密度、减少过孔数量、优化角度等。
  • 电气优化:根据电气规则(如阻抗、电流密度等)进行优化。
e. 冲突解决和调整
  • 处理冲突:解决资源冲突,可能涉及重新布线或路径调整。
  • 处理过载:如果某一区域的资源使用过多,可能需要进行局部或全局的重新布线。
f. 验证
  • 设计规则检查(DRC):确保所有的布线都符合工艺规则。
  • 电气规则检查(ERC):进行电气验证,以确保布线没有电流过载或其他电气问题。
  • 时序分析:进行时序验证以确认设计满足所有时序约束。
g. 输出和文档
  • 生成布线数据:通常以GDSII或其他工艺相关的格式输出布线数据。
  • 更新约束和文档:记录布线过程中的任何特殊处理和约束。
详细布线是一个高度复杂和资源密集的任务,通常需要使用专门的EDA(Electronic Design Automation)工具进行。由于它直接影响到IC性能和制造成本,因此通常需要多轮迭代和优化。
4. 特殊信号布线
  • 时钟信号:通常,时钟信号的布线会被单独处理,因为它们对延迟和电噪声非常敏感。
  • 电源和地网:这些通常在电源规划阶段已经被部分处理,但在布线阶段还需进行进一步的优化和调整。
5. 优化
  • 布线质量优化:包括减少布线长度、提高布线密度、减少过孔(via)数量等。
  • 电气特性优化:比如降低电阻和电感,减少电噪声等。
6. 验证
  • 设计规则检查(DRC):确保布线满足所有的工艺规则。
  • 电气规则检查(ERC):确保布线不会引起电气问题,如电流过载或电磁干扰。
  • 时序分析:确保所有的时序约束(如设置和保持时间)都得到满足。
7. 输出结果
  • 生成最终的布线文件:这通常是一个包含所有物理信息的GDSII文件或其他类似格式的文件。
这个流程可能会因特定的项目需求、工具和流程而有所不同。Routing是一个迭代过程,可能需要多次修订和优化以达到最佳的设计结果。
Addtional. Global Routing 和 Detail Routing的主要区别:
a. 目标和抽象级别
  • 全局布线:主要目标是规划逻辑元素(或电路网)之间的连接路径。这通常在一个高级的抽象层面上进行,一般不考虑过于详细的设计规则,比如具体的线宽和距离。
  • 详细布线:主要目标是实现全局布线阶段规划的每一条路径。这在一个更低级的抽象层面上进行,必须遵守所有相关的设计和工艺规则。
b. 输入和输出
  • 全局布线:输入通常是经过 Placement(布局)阶段的设计,输出是每个电路网的布线路径和资源分配的粗略规划。
  • 详细布线:输入是全局布线的结果以及更多的设计和工艺约束,输出是最终的布线几何形状和数据。
c. 算法和工具
  • 全局布线:通常使用路径搜索算法(如 A* 算法)和网络流算法等。
  • 详细布线:通常使用基于网格的搜索算法,必须更精细地处理如线宽、线距、过孔等具体工艺规则。
d. 处理的问题和约束
  • 全局布线:更注重拓扑结构、资源分配和基本的电气约束。
  • 详细布线:必须详细处理工艺规则(如 DRC, ERC)、电气性能(如 RC 延迟)和其他细节(如过孔优化)。
e. 迭代和优化
  • 全局布线:通常是一个相对独立的阶段,一旦完成,就进入详细布线。
  • 详细布线:通常是一个高度迭代的过程,可能需要反复修改和优化以满足所有约束和目标。
简而言之,全局布线更像是“规划”,而详细布线更像是“执行”。两者需要密切协作,以生成符合所有约束和性能要求的最终设计。
5. Post-Route Optimization(布线后优化)
在集成电路(IC)设计流程中,布线完成后通常会进行后续优化,也就是所谓的 Post-Route Optimization。这个阶段是为了改进已经完成布线的设计,以满足或优化各种性能指标和规则约束。在Post-Route Optimization(布线后优化)阶段,一般来说,主要布线任务已经完成。这个阶段主要集中在对现有布线进行各种优化,以改善电气性能、时序、功耗和满足其他设计要求。这包括可能的局部布线调整、添加或移除缓冲器、驱动器调整、电源和地网的微调等。以下是 Post-Route Optimization 阶段的一些具体内容:
Main Content:
  • 时序优化:使用更精确的寄存器到寄存器路径信息来解决任何布线后的时序问题。
  • 功耗优化:通过门级重组或调整Vth(阈值电压)来降低功耗。
Detail Content:
1. 电气优化
  • RC 提取和优化:提取布线后的电阻(R)和电容(C)值,并进行相关优化,以改善信号完整性和时序。
  • 电源网络分析:确保电源和地网的电气性能,如电压降和电流密度等。
2. 时序优化
  • 时序分析:重新进行静态时序分析(STA),检查是否有新的时序问题。
  • 时序调整:针对时序瓶颈进行路径优化,例如通过缓冲器或驱动器的添加、更改或移除。
3. 规则检查和修正
  • 设计规则检查(DRC):对布线结果进行详细的设计规则检查,并修正任何不符合工艺规定的地方。
  • 电气规则检查(ERC):检查电气约束和条件是否都满足,如阻抗控制、信号交叉等。
4. 冗余和可靠性
  • 添加冗余过孔:在关键路径或电源路径上添加冗余的过孔以提高可靠性。
  • 热点消除:通过重新布线或调整布线密度来消除电流或热量过度集中的地方。
5. 布线密度平衡
  • 填充单元(Filler Cells)的添加或移除:根据需要,添加或删除填充单元以平衡布线密度。
  • 金属填充:在空白区域添加金属填充以满足工艺要求,并平衡电性能。
6. 验证和文档
  • 功能和时序验证:使用仿真工具确保所有优化后仍满足功能和时序需求。
  • 更新文档和约束:记录所有更改和优化,以备后续步骤或者审核使用。
Post-Route Optimization 是一个迭代和多角度的过程,通常涉及到多种工具和技术。这个阶段的目标是确保设计不仅满足初步的功能和性能要求,而且达到优化和高效的最终状态。然而,这并不意味着布线任务完全结束。在优化过程中,可能会发现某些局部区域需要重新布线以满足特定的优化目标。例如:
  • 如果发现某些信号路径的时序不合格,可能需要局部重新布线。
  • 如果电源分析显示某个区域的电压降过大,可能需要优化电源网格,这也可能涉及到局部的重新布线。
  • 在进行设计规则检查(DRC)和电气规则检查(ERC)后,可能需要修正不符合规定的布线。
所以,虽然Post-Route Optimization主要是一个优化阶段,但它仍然可能包括局部的布线或重新布线活动。这些都是为了解决在初步布线后出现的问题或进一步优化设计。
6. Physical Verification(物理验证)
在集成电路(IC)设计流程中,物理验证(Physical Verification)是一个至关重要的步骤,它负责确保设计满足所有工艺和功能规格,为下一步的制造做好准备。以下是物理验证阶段的一些具体内容:
Main Content:
  • DRC(Design Rule Check):使用工艺规则文件来验证设计,确保没有违反任何制程规则。
  • LVS(Layout vs. Schematic):确保物理布局与逻辑原理图一致。
  • ERC(Electrical Rule Check):检查电流路径、电源连通性等。
  • 天线效应检查:运用专用的检查工具来识别和解决可能的天线效应。
Detail Content:
1. 设计规则检查(DRC, Design Rule Check)
  • 几何规则:检查布线宽度、间距、过孔尺寸等是否符合工艺要求。
  • 电源和地:验证电源网格和接地网格是否正确布置和连通。
2. 布局与原理图对比(LVS, Layout Versus Schematic)
  • 拓扑一致性:确认布局中的电路拓扑与原理图相匹配。
  • 器件参数一致性:确认布局中的器件参数(如电晶体管尺寸)与原理图相符。
3. 电气规则检查(ERC, Electrical Rule Check)
  • 短路和开路检查:检测电路中是否存在意外的短路或开路。
  • 电流密度:检查电流密度是否超过了工艺限制,可能需要对布线进行优化。
4. 抗辐射和电磁兼容(EMC)验证
  • 抗辐射设计:验证设计是否符合抗辐射和电磁兼容性要求。
5. 抗静电放电(ESD)和抗热设计
  • ESD 检查:确认是否有足够的 ESD 保护。
  • 热分析:验证设计是否能承受预定的温度范围和热负荷。
6. 时序验证
  • 静态时序分析(STA):在布线后的实际电路条件下重新进行时序分析。
7. RC 提取和信号完整性分析
  • 电阻和电容提取:从最终布局中提取准确的电阻和电容值。
  • 信号完整性(SI)分析:包括交叉干扰、反射、振铃等问题的检查。
8. 尺寸和密度检查
  • 填充检查:确保布局密度和填充规则都得到满足,以便于后续的制造过程。
9. 最终文档和归档
  • 生成最终的 GDSII 文件或其他工艺文件:这些文件将用于掩模制作和实际芯片生产。
  • 验证报告和文档:生成详细的物理验证报告,记录所有检查和修复的问题。
物理验证是一个综合性和多层次的过程,通常需要使用专门的电子设计自动化(EDA)工具。它在设计流程的后阶段,是进入制造之前的最后一个“关口”,因此十分重要。
7. Sign-off Checks
在集成电路(IC)设计流程中,Sign-off Checks 是一个关键的阶段,它标志着设计即将完成,并准备进入制造阶段。在这个阶段,设计需要经过一系列严格的验证和审查,以确保其满足所有工艺、性能和功能规格。以下是 Sign-off Checks 的一些具体内容:
Main Content:
  • 时序Sign-off:使用工艺库的最终版本和高精度模型来执行最终的时序分析。
  • 功耗Sign-off:进行全芯片级的功耗
Detail Content:
1. 时序 Sign-off
  • 静态时序分析(STA):使用工艺最差条件(PVT,Process-Voltage-Temperature)进行时序验证。
  • 动态时序分析:仿真整个时钟树和关键数据路径,以确认时序要求得到满足。
2. 电源完整性(Power Integrity)检查
  • 电压降分析:确保电源网络在所有操作条件下都没有不可接受的电压降。
  • 电源噪声分析:检查电源噪声是否超过预定限制。
3. 信号完整性(Signal Integrity)检查
  • 交叉干扰(Crosstalk)分析:确保信号之间的干扰在可接受的范围内。
  • 反射(Reflection)和振铃(Ring)分析:检查信号路径是否会导致反射或振铃问题。
4. 物理验证
  • 设计规则检查(DRC):最后一次全面的设计规则检查。
  • 布局与原理图对比(LVS):确认布局与原理图完全一致。
  • 电气规则检查(ERC):最后确认没有电气错误。
5. 可靠性和耐用性检查
  • 电热分析:确保设计能在预定的温度和电流条件下稳定工作。
  • 电磁兼容性(EMC)和抗静电放电(ESD):确认满足所有相关标准。
6. 技术文件和文档
  • 技术文档:生成所有必需的技术文档,包括设计规格、测试计划等。
  • GDSII 文件或其他制造文件:生成用于制造的最终数据库文件。
7. 审计和审查
  • 内部审查:所有设计和验证团队成员参与的全面审查。
  • 外部审查:如果适用,由第三方或客户进行的审查。
完成 Sign-off Checks 后,设计将进入制造阶段。由于这一阶段是从设计到生产的关键过渡,因此需要特别注意确保所有检查和验证都已经完全完成。这通常需要使用一整套专业的电子设计自动化(EDA)工具,以及与制造合作伙伴密切的协作。

最后,整体上其中有几个步骤是需要反复迭代的,比如placement和routing等等。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|芯片设计交流论坛

GMT+8, 2024-5-20 00:49 , Processed in 0.042577 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表