IC设计和制造的整体流程,是的,这个过程包含了从初步架构设计到最终制造的多个关键步骤。每一步都至关重要,确保芯片设计满足特定的性能、功耗和成本要求。下面是这个流程的简要概括:
- 架构设计:架构工程师根据产品需求设计处理器或芯片的高层次架构。这包括确定核心的性能特点、处理器的大小、功耗限制和功能要求等。
- 确定芯片功能:在架构设计的指导下,工程师会确定芯片需要具备的功能和性能指标。
- 算法模拟仿真:使用不同的软件工具,如MATLAB或自定义仿真环境,来模拟和验证算法性能,确保它们在实际硅片上能达到预期的结果。
- 芯片设计方案:根据验证过的算法和架构设计,工程师会制定一个详细的芯片设计方案。这个方案将作为实施芯片设计的蓝图。
- 系统级设计:在这一阶段,工程师会设计和验证系统级别的功能,例如处理器如何与内存、输入输出设备等进行交互。
- 前端设计
- 生成Netlist:这是电路设计的中间产物,包含了所有电路元件和它们的连接信息。
- 后端设计
- 生成GDSII文件:这是一个标准的格式,用于版图设计数据,被晶圆制造厂用来生产实际的硅片。
- 流片:这是芯片制造的过程,包括光刻、蚀刻、掺杂、金属化等多个步骤,最终将GDSII文件中的数据转换成硅片上的物理结构。
整个流程要求工程师之间有高度的协作和多个迭代,因为从设计到制造涉及众多的工程和科学原则,任何阶段的错误都可能导致产品失败。因此,从架构设计到最终产品测试,严格的质量控制和验证步骤是整个流程的重要组成部分。
前端设计
前端设计关注的是将芯片功能需求转变为电路描述和逻辑设计。
RTL设计(Register-Transfer Level Design)
在寄存器传输级别上对硬件进行设计的过程。在这个层次上,设计师使用硬件描述语言(HDL),如Verilog或VHDL,来描述硬件的寄存器之间的数据流和逻辑操作。RTL设计不涉及实际的硬件元件,如晶体管和电路门,而是表达更高层次的功能逻辑。
RTL表示设计中的逻辑操作将在何时以及如何在寄存器之间传递。设计师将系统的功能划分成可以在一个时钟周期内完成的操作序列。典型的RTL描述包括逻辑门、多路选择器、寄存器、内存和算术逻辑单元(ALUs)。
RTL仿真(Register-Transfer Level Simulation)
RTL仿真是在设计完成之后验证设计逻辑是否正确的过程。它通常在设计过程的早期阶段进行,甚至在实际硬件制造之前。设计师使用特殊的仿真软件来测试和验证RTL代码以确保其按照预期工作。
仿真过程包括应用一系列的测试向量(或测试案例)到设计中,并观察输出是否符合预期。RTL仿真可以帮助找出设计中的逻辑错误、时序问题或性能瓶颈,并在设计阶段早期解决这些问题。
硬件原型验证(Hardware Prototype Verification)
硬件原型验证是设计流程中的一步,它在RTL仿真之后、实际硬件制造前进行。在这个阶段,设计可能会被实现在一个或多个FPGA(现场可编程门阵列)上,这些FPGA模拟了最终ASIC(应用特定集成电路)设计的功能。
原型验证是一个更加接近实际硬件条件的测试过程,可以验证设计的功能性和性能。这一步非常重要,因为它可以揭示在实际物理条件下运行时可能出现的问题,这些问题在RTL仿真中可能没有发现。
电路综合(Circuit Synthesis)
电路综合是一个将RTL设计自动转换为可以用于生产实际硬件芯片的门级描述的过程。在综合过程中,综合工具将RTL描述转换为一个逻辑门和连接的网表,这个网表可以映射到特定制造工艺中的物理电路元件上。
后端设计
后端设计关注的是将电路设计物理化,包括版图设计和物理验证。
版图设计(Layout Design)
版图设计,也被称为物理设计,是将电路综合后生成的门级网表转换成实际的物理几何结构的过程。这一过程包括将逻辑门、触发器、互连线等逻辑元素放置到芯片的物理位置上,并进行布线,以确保电路的物理实现。这些物理元素的几何布局必须符合所选制造工艺的设计规则,并优化以满足性能、功耗和面积等设计目标。
版图设计阶段的关键步骤包括:
- 放置(Placement):确定电路元件在硅晶片上的位置。
- 布线(Routing):创建电气连接,将放置好的元件互相连接起来。
- 地层规划(Floorplanning):在放置之前,确定大型模块或功能块在芯片上的位置和形状。
- 功耗分析:确保电路在运行时不会超过预定的能耗限制。
物理验证(Physical Verification)
物理验证是检查版图设计是否满足所有制造工艺要求的过程。这包括确保版图中不存在设计规则违反(DRC)、布线完整性、电容效应和其他潜在问题。物理验证的主要任务包括:
- 设计规则检查(DRC):确认版图是否遵守制造过程中的所有规则。
- 布线完整性检查:检查信号的完整性,包括时钟、功耗和信号完整性。
- 版图与原理图对比(LVS):验证版图设计和原始的RTL原理图设计是否一致。
- 寄生参数提取(PEX):从版图中提取电阻、电容等寄生参数来评估对电路性能的影响。
后端仿真(Post-layout Simulation)
在版图设计和物理验证之后,通常会进行后端仿真。这是一种在版图设计完成且所有寄生效应都被提取之后进行的电路仿真。这种仿真被称为时序仿真或后仿真(post-simulation),它使用提取的寄生参数来模拟真实硅片上的电路性能和行为。
后端仿真帮助验证:
- 时序:确保所有的数据路径都满足所需的时钟约束。
- 功能:确认电路在考虑了实际寄生效应后依然按照预期工作。
- 功耗:评估实际硅片上的电路功耗是否符合预期。
工具
在数字集成电路(IC)设计的流程中,前端和后端设计是核心步骤,涉及多个复杂环节和专业工具。下面概述了每个环节以及相应的工具:
语言输入工具:
-
- Visual HDL: 用于硬件描述语言(HDL)代码的编辑和管理。
- Renoir: 另一个HDL编辑工具。
图形输入工具:
-
- Cadence Composer: 用于图形化输入RTL设计的工具。
- ViewDraw: 用于电路图形化设计。
仿真工具:
-
- Modelsim: 用于Verilog HDL和VHDL的仿真。
- VCS: 高性能的Verilog仿真工具。
- NC-Verilog & Verilog-XL: Cadence提供的仿真工具。
- NC-VHDL & Leapfrog: VHDL仿真工具。
逻辑综合工具:
-
- Design Compiler: 用于RTL到门级网表转换的综合工具。
- BuildGates & Envisia Ambit: Cadence的逻辑综合工具。
- Leonardo: Mentor Graphics提供的逻辑综合工具。
静态时序分析(STA)工具:
-
- PrimeTime: 用于STA的工具。
- Pearl & Tempus: Cadence的STA工具。
- Velocity: Mentor Graphics的时序分析工具。
形式验证工具:
-
- Formality: 用于逻辑等效性检查的工具。
- LEC & FormalCheck: Cadence的等效性验证工具。
- FormalPro: 用于形式验证的工具。
DFT(Design for Test)工具:
-
- BSCAN: 用于测试IO pad。
- MBIST: 用于测试内存。
- ATPG: 自动测试模式生成,用于测试标准逻辑。
布局规划工具:
-
- Astro & IC Compiler: 用于芯片布局的工具。
- Encounter & Design Planner: Cadence的布局规划工具。
CTS(Clock Tree Synthesis)工具:
-
- Clock Tree Compiler: 用于时钟树合成。
- CT-Gen: Cadence的CTS工具。
布线工具:
-
- Astro & IC Compiler: 用于芯片布线的工具。
- Encounter & Silicon Ensemble: Cadence的布线工具。
寄生参数提取工具:
-
- Star-RCXT: 用于提取寄生参数。
- Calibre xRC: Mentor Graphics提供的寄生参数提取工具。
- Assure RCX: 用于寄生提取的Cadence工具。
LVS(Layout Versus Schematic)/DRC(Design Rule Check)工具:
-
- Hercules: 用于LVS和DRC的工具。
- Dracula & Diva & Assura: Cadence提供的验证工具。
- Calibre: Mentor Graphics的验证工具。