您的位置  > 互联网

数字集成电路芯片的设计流程

数字集成电路芯片的设计过程由一系列的设计实现和验证测试过程组成(图1)。 首先是功能定义,描述了芯片功能和性能参数的要求。 我们利用系统设计工具来设计方案和架构,并对芯片的模块功能进行划分。

接下来是代码设计。 我们使用硬件描述语言(例如HDL)来表达模块功能并形成计算机可以理解的代码(行为级别、RTL级别)。 仿真验证后,进行逻辑综合,将代码翻译成下层的门级网表,对应具体的区域和参数,再次进行仿真验证。 这两种仿真可以使用电路模型来验证逻辑功能(逻辑仿真),也可以使用FPGA硬件电路来验证(原型仿真),速度更快,更接近实际电路。

设计和仿真验证是迭代过程,直到验证结果完全满足规范。 验证还包括静态时序分析、形式验证等,以验证电路的功能在设计转换和优化过程中保持不变。 可测试性设计(DFT、ATPG)也在这一步完成。

接下来就是数字电路后端实现中最关键的布局和布线。 它实现电路模块(如宏模块、存储器、管脚等)的布局规划和布局,实现电源、时钟、标准单元之间信号线的布线。 。

在布局和布线过程中和之后,需要对布局进行各种验证,包括形式验证、物理验证,例如布局和逻辑电路图的比较、设计规则检查、电气规则检查等。最后,GDS数据输出,传输到芯片代工厂,在晶圆上进行处理,然后封装和测试,得到我们实际看到的芯片。

图1 数字电路设计验证流程

数字后端实施流程

本文所指的后端实现工具主要是指布局规划()和布局布线(Place&Route)两个阶段所使用的工具集。 目前芯片设计公司使用的主要软件有/、/、-Soc等。

图2 数字后端实现流程

数字后端的设计过程是将逻辑综合映射后的电路网表转换为GDS的过程,即电路从逻辑网表转换为几何布局的过程。 业界各种工具系统的实现大同小异,一般可以细分为设计环境建立、布局规划、布局、时钟树综合、布线、调试改进等步骤(图2)。

01

设计环境搭建

设计环境的建立就是将后端设计所需的数据读入数据库,然后检查数据的完整性和一致性。 后端设计的输入数据包括三部分:门级网表、设计约束和工艺库文件。 其中,门级网表(GLN,)是通过逻辑综合工具将设计从RTL(l)映射到GLN得到的。 同时满足时序、面积、功耗等约束。 设计约束SDC(aints)描述了芯片上的约束如时钟、延迟、电源、面积、设计规则、工作条件等。工艺库主要是时序库文件和模型库文件,如物理抽象库文件LEF、物理详细库文件GDS/OASIS、时序库文件.lib、RLC模型文件.rlc、EM规则文件、DEF文件等。

02

布局规划

平面规划是后端实施中唯一需要手动工作的阶段。 其他阶段是通过修改脚本和约束,然后让工具自动完成来完成的。 布局规划的好坏直接决定后续布局布线的衔接以及芯片的面积、性能和功耗。 它通常由经验丰富的设计师完成。 现在,谷歌也在探索利用人工智能来实现这一目标。 它包括初始化、宏模块的放置以及输入输出引脚的放置等过程。 我们需要根据设计前端给出的数据流向来了解设计中各个模块之间的交互、各个时钟之间的关系等信息,以便规划模块的位置以及模块的位置接口。 模块形状与设计类型有关,也影响布线资源的使用。 这只是考虑了前端不同的逻辑功能,需要仔细规划。 低功耗设计需要提前规划好各个电源域的划分区域、隔离岛等。 布局电源地时,需要根据芯片功耗估算,为芯片核心添加电源地; 根据 SSO、ESD 和 EM 估计,添加输入和输出引脚的电源地。 添加输入输出引脚后,可以根据宏模块、IP、IO的面积来估算芯片面积。

03

供电及电网分析

在现代低功耗芯片设计中,电源设计是非常重要的一步,包括各单元功耗的分析计算、静态和电迁移EM分析。 它可以在多个阶段执行,例如布局后、电源和接地布线后、全局布局后、详细布线后等。它分析电源设计的合规性。 分析计算过程包括线网活动因子计算、供电分析、电网分析、电网电阻分析、阻抗失配分析、EM分析等。

04

静态时序分析

构建并使用静态时序分析器来验证设计是否满足所有设计约束,例如满足所有所需操作条件下的建立和保持时间,或识别时序违规的原因。 静态时序分析主要包括数据准备、分析条件设置、时序报告生成、分析报告。 所需的数据(电路网表、时序库、约束文件、寄生模型和外部寄生文件)已在第一步中读入数据库,也可以在这里额外读取。 分析条件设置为一种或多种模式,综合考虑PVT、RCX、OCV、CRPR等多种因素,根据分析要求,控制分析仪执行适当的命令,获得时序分析报告。 分析报告后,执行适当的操作。 例如,从时序路径分析报告中,您可以看到设计的关键路径,然后进行增量修改以满足时序要求。

05

定义权力结构

这一步是为电源绕制创建一个限制区域,创建电源排、电源环、标准单元轨等,定义如何连接到宏模块的电源引脚等,完成电源绕制,并报告电源状态。

06

布局与优化设计

此过程包括准备布局和优化(布局指南和布局分组)、执行不优化布局、插入备用单元(为ECO做准备)和Tap单元、管理扫描链(重新排列或拆分)、执行布局和优化、分析布局和优化结果,并决定是否需要迭代。 传统的时序驱动布局算法通常会留下许多时序违规,因为它们无法仅通过布局来纠正。 布局后优化工具发现时序违规后,会进行许多修改以满足时序约束的要求,例如修改单元大小、插入缓冲区、分解驱动程序等。这些操作会逐渐降低原始质量布局。 因此,需要多次布局迭代和优化来满足时序和拥塞约束。 我们工具的布局和优化引擎并行工作,从宏固定的预布局开始,获得具有最佳时序质量和最低拥塞的完整布局。 布局和设计优化也可以在布局设计上逐步执行。

07

时钟树综合

布局完毕后,就是布线工作。 我们希望首先完成时钟网络的布线,因为它们比正常数据路径上的网络更重要。 在数字电路中,顺序元件的数据传输由时钟控制。 时钟频率决定了数据处理和传输的速度,时钟频率决定了电路的最终性能。 决定时钟频率的主要因素有两个,一是组合逻辑部分中最长的电路延迟,二是时序组件内的时钟偏差()。

组合逻辑部分没有太多可以优化的延迟,时钟偏差成为影响电路性能的限制因素。 时钟树综合的一个主要目的是减少时钟偏差。 时钟信号是数字芯片中最长、最复杂的信号。 从时钟源到各时序组件的终端节点,可以形成树状结构。 时钟源的扇出非常大,负载也非常大。 需要时钟树结构来通过一级设备驱动最终叶节点。 时钟树合成的另一个目的是使相同的时钟信号同时到达各个终端节点。 采用的方法也很简单:在时钟信号线网络上插入或平衡信号的延迟。 时钟树综合的准备工作包括标记时钟树中可以使用的/、定义时钟结构规则(如绕线、时钟单元外设间距等)、生成时钟偏斜约束(即定义各种偏斜组和时序)。约束),然后综合时钟树,然后对综合结果进行分析和优化,例如修复建立时间违规、额外功耗和面积恢复等。

08

布线和设计优化

虽然此步骤是自动化步骤,但也需要创建接线指南来指导路由器的操作。 流程包括全局布线、总线布线、详细布线、手动优化、添加保护、金属填充、天线效应修复、光刻修复、布线到凸块等。

09

工程变更要求 ECO

(呃)

ECO 是对已完成或接近完成的设计的增量变更。 这可能是对设计网表、布局或布线的微小更改,但设计主体中未更改的部分不需要重新构建。 ECO可能涉及对所有层的改变,或仅对金属层的改变。 如果修改的门数少于总数的 5%,则 ECO 是值得的。 另外,使用手动时钟树ECO也是一项重要技能。

10

定时调试

时序调试的目的是找到一种方法来修复所有约束违规。 我们需要运行具有不同选项的时序分析器,分析各种时序报告,识别可能的时序问题,同时查看GUI和布局上的关键路径,并改进设计的时序。 时序优化贯穿整个数字电路后端设计流程。

11

数据输出

设计的最后一步是导出电路布局数据GDS。 GDS 描述了晶体管的尺寸和物理位置、连接的宽度和位置以及制造芯片所需的所有信息。 GDS的要求是功能与RTL一致、性能满足指标、规格满足代工厂要求、功耗性能区(PPA)优异。 EDA工具强调A,即自动化。 这在数字集成电路后端设计工具中尤其如此。 处理数十亿晶体管规模的电路,对所涉及算法的性能、效率、资源利用率等都有极高的要求。 目前,我们正在努力探索最新的AI技术、云计算技术等在整个数字芯片流程中的应用,以满足各种现代芯片的设计要求。

审稿编辑:李茜