芯片开发有多难?四个设计步骤
概述
近年来,芯片开发成为主要关注点,许多成熟公司都在推进内部芯片项目。这创造了许多角色。与硬件工程师相比,软件开发人员的工作范围更窄,但发挥着重要作用。软件通常参与需求、架构和验证。本文根据作者的经验概述了基本芯片设计流程,并重点介绍了几个经常提到的技术瓶颈。
本文重点关注需求和设计阶段;制造和包装则由其他团队和供应商负责。
1. 市场需求
开发芯片必须有需求,即客户的应用场景。在当前的科技时代,电子技术被广泛应用;凡是印刷电路板的地方,都存在潜在的芯片需求,例如手机、电脑和智能电器。
在明确需求下,团队会推导出所需的硬件模块、性能目标以及支持的软硬件技术。架构师设计系统架构并制作规范文档。规范定义了所有功能和需求,并成为后续芯片设计的基础。
1.1 EDA与仿真工具
在架构设计过程中,可以通过仿真如QEMU进行软件验证,以检查应用程序是否运行。集成电路厂商通常提供IP集成工具,纯粹用软件建模SoC,例如VDK(虚拟化器开发套件)。VDK 是一种电子设计自动化(EDA)工具。EDA是一项复杂且关键的技术,涵盖设计、验证和制造。尤其是验证,能够降低错误成本并缩短开发周期。
QEMU支持有限的芯片模型集,扩展芯片需要更改源代码。像VDK这样的工具提供了图形界面,方便添加IP模型。许多IP是厂商私有且支持不广,因此IP厂商通常为客户提供集成和验证工具。
芯片开发周期很长。在需求阶段的早期,一些软件已经可以在QEMU或VDK上开发。依赖SoC IP的应用可以在数据流层面进行,在硅片支持业务逻辑之前。早期的软件工作减少了后续的集成任务,并允许对软件方法的早期验证。如果软件方法不可行,SoC可以提前调整;后期硬件更换成本更高且风险更大,尤其是在磁带输出之后。
1.2 关于建筑师
数字集成电路设计是一个漫长的过程。例如,移动基带工程师根据3G、4G和5G的大量协议文档进行工作。架构和实现角色通常包括:
- 架构师决定哪些协议部分在软件中实现,哪些在硬件中实现。
- 算法工程师研究协议并选择实现算法。
- 设计工程师将算法转化为RTL。
- 验证工程师创建测试向量并验证RTL的功能和性能。
- 数字实现工程师根据PPA(功耗、性能、面积)目标将RTL转换为GDS。
- 铸造厂负责制造和包装;大多数公司租用第三方测试设备进行生产测试。
架构师定义团队其他成员使用的高层结构和需求。
2. 芯片设计概述
芯片设计分为前端(逻辑设计)和后端(物理设计)。
许多步骤看似复杂,但借助厂商提供的IP和工具,许多工作通过图形界面完成。大多数商业EDA工具和流程来自非本地供应商,这影响了不同市场的工具可用性和成本。一些厂商提供闭源商业工具;本地供应商可能会更快地将供应商工具分发给附近客户,有时能促使本地快速采用或重新实施。
3. 前端设计
- RTL 设计
- 验证
- 静态时序分析
- 覆盖
- ASIC逻辑综合
3.1 RTL 设计
首先选择目标工艺节点。
RTL(寄存器传输级别)设计使用硬件描述语言,如VHDL、Verilog和SystemVerilog,来描述寄存器之间的数据传输。RTL 代码实现了功能模块,即 IP 块。IP分为数字IP和模拟IP。
SoC集成工程师将IP模块组合成完整的SoC。典型的SoC包含CPU、DSP、USB外设和内存等IP。RTL 设计还包括内置自检(BIST)和为测试设计(DFT)的支持。

静态代码检查通过lint和Spyglass等工具执行,以强制执行设计规则、编码风格、DFT实践、命名规范以及与合成相关的检查。
3.2 验证
核实是确保正确性和完整性的最重要阶段。验证通常占开发进度的50%至70%;验证工程师的数量通常是设计工程师的2到3倍。验证级别包括模块、子系统和系统。验证方法包括仿真和形式性检查。
软件开发人员再次参与其中。在QEMU和VDK上运行的代码可以在RTL模拟中运行,从而更接近硬件。跨平台验证虽然重复,但非常有价值。跨验证平台的代码重用非常重要:大型平台差异可在编译时处理,运行时标志或配置文件的细微差异则可处理。实用建议:偏好配置文件,如XML、DTS或纯配置文件;避免使用过多的条件宏;使用可适配多种验证平台的调试构建,并使用构建脚本自动编译时选择。
3.3 静态时序分析(STA)
静态时序分析将时序模型应用于设计,以验证是否满足时序约束。主流的STA工具是Synopsys PrimeTime。
STA目的:
- 确定芯片的最大工作频率。
- 指导合成、映射、布线和布线,以减少延迟并提升频率。
- 检查是否满足时间约束。
- 找出时间违规并提供具体纠正理由。
- 分析时钟质量,包括抖动、偏移和占空比失真,及其对目标模块的影响。
3.4 覆盖范围
覆盖范围是验证完整性的主要衡量标准。覆盖目标通常分为代码覆盖和功能覆盖:
- 代码覆盖率检查未测试或冗余的RTL代码。
- 功能覆盖检查是否已通过自定义覆盖容器实现指定的特征和场景。
签字时,团队必须为覆盖不足作出合理解释,以确保硅片不存在功能性风险。
3.5 ASIC合成
逻辑综合将RTL转换为门级网表。合成需要像面积和时序目标等约束条件。一个常用的工具是Synopsys设计编译器。所得的网表会传递给后端团队。
合成完成后,前端工作基本完成。
4. 后端设计
- 逻辑综合
- 形式验证
- 物理实现
- 时钟树合成(CTS)
- 寄生虫提取
- 布局物理验证
4.1 逻辑综合
关于前端合成过程,请参见第3.5节。
4.2 形式验证
- 验证各阶段的功能一致性。
- 不要验证模拟电路的正确性。
- 任何设计变动后就跑。
形式验证确保RTL与合成网表之间的一致性。通常在合成和布置布线后进行。一个常用的工具是Synopsys Formality。
4.3 物理实现
物理实施包括:
- 平面规划
- 放置
- 路由
平面规划是一个灵活但关键的步骤,需要权衡许多权衡。布置和布线的目标是优化芯片面积、实现时序闭合以及保持路由可行性。典型工具包括 IC 编译器和 Encounter。平面图可视化对于评估权衡非常重要。

配置配置标准单元、输入输出焊盘和宏以实现电路逻辑。投放目标是高利用率、短互连和有利时机;这些目标常常相互冲突,需要妥协。

布线在设计规则和电气约束下连接单元和I/O焊盘,如层限制、线宽和间距要求。
4.4 时钟树合成(CTS)
CTS是时钟信号的路由和缓冲。由于时钟是全局控制信号,其分布应平衡,使寄存器时钟到达时间偏移最小。这就是为什么时钟通常采用专用路由和特殊处理。
4.5 寄生提取
导线表现出电阻,相邻的导线通过电容耦合。这些寄生效应会导致噪声、串扰和反射,从而降低信号完整性。提取寄生参数并重新分析设计对于识别和修复信号完整性问题非常重要。一个常见的工具是Synopsys Star-RCXT。
4.6 布局物理验证
物理验证在功能和时间方面验证已完成的布局,通常包括:
- LVS(布局与原理图):确认布局与合成网表一致。
- DRC(设计规则检查):验证间距、宽度及其他工艺规则。
- ERC(电气规则检查):检测短路、开路及其他电气违规。
后端流程还包括功率分析和可制造性设计(DFM)检查。最终的物理布局以GDSII格式交付晶圆厂进行晶圆制造。

制造、包装和最终测试后,生产交付给客户的实体芯片。


微信小程序
浙公网安备 33010502006866号