EDA
IT-CAD¶
IT/CAD 工程师 是专注于 EDA(电子设计自动化)工具 和 芯片设计环境 的系统管理与技术支持的复合型岗位,核心职责包括搭建、维护和优化芯片设计所需的软硬件基础设施,确保研发流程高效稳定运行
1 核心职责¶
- EDA 工具管理
安装、配置、调试EDA工具(如Synopsys、Cadence等),管理License服务器与版本更新 解决工具使用中的技术问题,提供用户培训与日常技术支持
- 设计环境搭建
规划芯片开发环境(如Linux集群),部署作业调度系统(LSF)、数据版本管理工具(Git/SVN) 集成PDK(工艺设计套件)、IP库及内存编译器(Memory Compiler),确保设计资源可用性
- 自动化与流程优化
开发脚本(Shell/Python/Perl)实现设计流程自动化,优化资源监控与任务调度 构建统一开发平台,提升团队协作效率与数据安全性
- 基础设施运维
管理服务器硬件、VDI(虚拟桌面)环境及网络架构,保障系统稳定性与容灾能力
2 技能要求¶
| 能力维度 | 具体要求 | |
|---|---|---|
| 系统管理 | 精通Linux系统操作、用户权限管理及文件系统维护,熟悉集群环境配置(如LSF) | |
| 脚本开发 | 熟练使用Shell、Python或Perl编写自动化脚本,优化工具调用与数据处理流程 | |
| EDA工具知识 | 熟悉主流EDA工具(如Cadence、Mentor)的安装与调试,了解芯片设计基础流程 | |
| 安全与协作 | 具备数据安全策略制定能力,熟悉版本控制工具(Git/SVN),支持跨团队协作 | |
一、 从信号到设计¶
1 核心前言¶
EDA 是芯片设计的工具软件,是芯片设计知识流程的固化,理解 EDA 需先掌握信号、电路、芯片设计的基础概念;电信号分为模拟和数字信号,对应模拟 / 数字芯片设计,也催生了分属两类设计的 EDA 工具。
信号是信息传递的载体,电磁场景下为电信号,非电信号可与电信号相互转换(IT 领域 “等价原理”);电子技术围绕电信号展开,包含电子器件、电子电路、应用三大核心。
2 电子基础核心概念¶
2.1 电子元件 vs 电子器件¶
| 类别 | 定义 | 特性 | 举例 |
|---|---|---|---|
| 电子元件(无源器件) | 生产加工不改变分子成分的成品 | 不产生电子,对电压 / 电流无控制、变换作用 | 电阻、电容、电感 |
| 电子器件(有源器件) | 生产加工改变分子结构的成品 | 能产生电子,对电压 / 电流有控制、变换作用(放大、开关等) | 电子管、晶体管、集成电路 |
2.2 器件细分¶
- 主动器件:自身消耗电能,需外界电源;
- 分立器件:双极性晶体三极管、场效应晶体管、可控硅、半导体电阻电容。
2.3 电子管、晶体管、集成电路的发展与关系¶
三者是电信号处理器件的迭代产物,核心功能均围绕电信号的放大、调制等,逐步向小型化、低功耗、高集成度发展。
- 电子管:1904 年弗莱明发明,是最早的电信号放大器件,第一台计算机由 1.8 万只电子管构成;德福雷斯特发明的真空三极管集成检波、放大、振荡功能,成为早期电子技术核心;缺点是体积大、耗能高、寿命短。
- 晶体管:1947 年贝尔实验室(肖克利、巴丁、布拉顿)发明锗半导体点接触晶体管,后肖克利提出双极型晶体管;1953 年首款商业化晶体管设备(助听器)上市,1954 年第一台晶体管收音机推出;三人因晶体管发明获 1956 年诺贝尔物理学奖,替代电子管解决了其体积、功耗问题。
- 集成电路:1964 年罗伯特・诺伊斯发明,将晶体管、电阻、电容等元件及布线集成在半导体晶片 / 介质基片上,封装后形成微型功能结构,是器件集成化的核心产物。
2.3.1 晶体管¶
晶体管主要分为双极型晶体管(BJT)和场效应晶体管(FET),两者在控制机制和结构上存在显著差异
BJT:
- NPN型:由两层N型半导体夹一层P型半导体构成,三极分别为发射极(E)、基极(B)和集电极(C)。
- PNP型:由两层P型半导体夹一层N型半导体构成,极性与NPN相反
2.3.2 p型与n型半导体¶
- N型半导体:通过向纯净半导体(如硅Si、锗Ge)中掺入五价元素(如磷P、砷As),形成以自由电子为主要载流子的半导体。
- P型半导体:通过掺入三价元素(如硼B、铝Al),形成以空穴(相当于正电荷)为主要载流子的半导体。
| 特性 | N型半导体 | P型半导体 |
|---|---|---|
| 掺杂元素 | 五价元素(如磷P) | 三价元素(如硼B) |
| 多数载流子 | 自由电子(多子) | 空穴(多子) |
| 少数载流子 | 空穴(少子) | 自由电子(少子) |
| 导电机制 | 电子定向移动形成电流 | 空穴“移动”(实为电子反向填补)形成电流 |
2.5 分立元件电路 vs 集成电路¶
- 分立元件电路:由单个电子元器件连接组成;
- 集成电路:通过制造工艺将所有元器件集成在硅片上形成;
- 集成电路优势:成本低、体积小、重量轻、功耗低、可靠性高、便于维修;
- 应用特点:集成电路逐步替代分立元件电路,数字电路中以集成电路为主;模拟电路因信号、功率多样性及制造技术限制,大功率、超高频领域仍需分立元件电路。
2.6 集成电路规模演进¶
按含元件数划分,呈指数级增长:
- 小规模(1960 年):<100 个
- 中规模(1966 年):100~999 个
- 大规模(1970 年):1000~99999 个
- 超大规模(1980 年):≥10 万个
- 特大规模(1993 年):≥1000 万个
- 巨大规模(1994 年):≥1 亿个
3 模拟信号与数字信号¶
电信号的两大核心分类,核心差异体现在时间和幅值的连续性,是后续模拟 / 数字电路、设计的基础。
| 特性 | 模拟信号 | 数字信号 |
|---|---|---|
| 时间维度 | 连续 | 离散 |
| 幅值维度 | 连续,可取任意值 | 离散,仅取有限个值 |
| 典型应用 | 传统录音磁带(声音记录) | CD 光盘(声音记录) |
| 物理量转化 | 声音、压力、温度等可通过传感器转化为模拟电信号 | 现实物理变量可数字化为离散信号,最常用二进制波形 |
3.1 模拟调制¶
模拟调制(适用于连续信号)
- 调幅(AM):用基带信号控制载波幅度。
- 应用:传统广播、对讲机。
- 缺点:抗噪声能力差(雷电干扰易导致杂音)。
- 调频(FM):用基带信号控制载波频率。
- 应用:FM广播、模拟电视伴音。
- 优点:抗干扰强,音质更佳。
- 调相(PM):用基带信号控制载波相位。
- 应用:雷达、部分无线通信系统。
3.2 数字调制¶
- 幅移键控(ASK):用不同幅度表示0/1。
- 应用:RFID标签、低速无线传感。
- 频移键控(FSK):用不同频率表示0/1。
- 应用:蓝牙低速模式、无钥匙进入系统。
- 相移键控(PSK):用不同相位表示0/1。
- 高阶变种:QPSK(4相位)、8PSK。
- 应用:Wi-Fi、卫星通信。
- 正交幅度调制(QAM):同时调制幅度和相位,提升数据密度(如16-QAM、256-QAM)。
- 应用:5G、光纤通信、数字电视。
3.3 对比¶
| 调制类型 | 抗噪声能力 | 频谱效率 | 实现复杂度 | 典型场景 |
|---|---|---|---|---|
| AM | 低 | 低 | 简单 | 广播、对讲机 |
| FM | 中 | 中 | 中等 | 音频传输 |
| QPSK | 高 | 中 | 中等 | 卫星通信、4G |
| 16-QAM | 较高 | 高 | 复杂 | 5G、光纤通信 |
4 模拟电路与数字电路¶
处理对应信号的电路体系,分析方法、设计重点差异显著,二者并非孤立,而是共存并用,数字电路逐步替代部分模拟电路,但模拟电路仍有不可替代的适用场景。
4.1 核心差异对比¶
| 维度 | 数字电路 | 模拟电路 |
|---|---|---|
| 处理信号 | 数字信号 | 模拟信号 |
| 数据类型 | 二进制数据、离散量 | 连续量 |
| 常见应用 | 微处理器、微控制器、数字信号处理单元、存储器 | 放大器、模拟开关、接口电路、电源管理 |
| 研究 / 设计核心 | 输入输出逻辑关系;逻辑设计 | 信号波形变化;器件 / 电路对波形的影响;电路设计 |
| 分析方法 | 逻辑代数、真值表、卡诺图、状态转换图 | 电路分析方法 |
| 设计与布图布线 | EDA 工具协助自动综合、自动生成 | 依赖设计师经验,晶体管级电路设计 + 版图设计与仿真 |
4.2 二者关系¶
- 相互独立且并用:同一电子系统可同时包含两类电路;
- 数字对模拟的替代:数字电路具备可编程灵活、工作速度高、精度高、抗干扰、易微型化、可嵌入式纠错等优势;
- 模拟电路的不可替代性:高精度、高速度、高频率、低功耗模拟产品需求持续增长,特定场景无法被数字电路替代;
- 数模共存是主流:同时包含两类电路的电子系统,性能优于单一电路系统。
4.3 常见集成电路类型¶
- 模拟集成电路:集成运算放大器、集成功率放大器、模拟乘法器、锁相环、混频器、检波电路等;
- 数字集成电路:门电路、触发器、编码器、译码器、计数器、运算电路、数据选择器、寄存器、存储器等。
5 模拟 / 数字设计流程(前端 + 后端)¶
芯片设计分为前端设计(逻辑 / 电路设计)*和*后端设计(物理设计),模拟设计多为全定制流程,数字设计依托 EDA 工具实现自动化,最终均以GDSII 格式文件交付代工厂进行芯片制造。
5.1 核心设计流程总述¶
前端设计:将电路设计实体化,包含设计 + 验证(仿真),是设计环节的核心,耗时耗力;
后端设计:将前端设计转化为物理版图,包含版图实现 + 物理验证 + 后仿真,最终输出 GDSII 文件。
5.2 模拟电路设计流程(全定制)¶
从电路原理图到 GDSII 文件,各环节高度依赖设计师经验,核心工具为 Cadence、Synopsys、Mentor 系列。
| 设计阶段 | 核心工作 | 常用工具 |
|---|---|---|
| 前端 1:电路原理图设计 | 绘制晶体管级电路原理图 | Cadence Virtuoso、Synopsys Galaxy SE、Mentor Design Capture |
| 前端 2:电路仿真 | 功能、时序、噪声、功率仿真 | SPICE |
| 后端 1:版图实现 | 将原理图转化为物理版图 | Cadence Virtuoso、Synopsys Galaxy LE、Mentor IC Station |
| 后端 2:物理验证 | 设计规则检查(DRC)、门级电路对比验证(LVS)、电气规则检查(ERC)、可制造性设计(DFM) | Mentor Calibre、Synopsys Hercules、Cadence Assura |
| 后端 3:寄生参数提取后仿真 | 提取版图寄生参数,再次仿真验证 | SPICE |
| 最终交付 | 输出 GDSII 格式文件 | - |

5.3 数字电路设计流程(EDA 自动化为主)¶
以 RTL 硬件描述语言为起点,依托 EDA 工具实现逻辑综合、自动布局布线,自动化程度远高于模拟设计。
5.3 前端设计¶
-
RTL 代码编写 → 代码风格检查 → 功能仿真 → 约束修改 → 逻辑综合 → 综合后仿真 → 静态时序分析(STA)→ 输出门级网表;
-
核心验证工具:Synopsys VCS/Verdi、Cadence Jasper。

5.4 后端设计¶
-
门级网表 → 自动布局布线(APR)→ RC 参数提取 → 静态时序分析 → 布局修改 → 物理验证(DRC/LVS)→ 寄生参数提取 → 后仿真 → 输出 GDS 版图;
-
核心工具:Synopsys Design Compiler/IC Compiler、Cadence Innovus、Mentor Calibre。

5.5 芯片设计演进¶
- 前端演进:早期人工画图 + 专用胶带光绘 → 1986 年逻辑综合工具出现(RTL 综合为门级 HDL)→ 2004 年综合前加入版图布局规划,生成带布局信息的门级设计;
- 后端演进:早期手工布线 → 第一代布局布线系统(布局、时钟树、布线独立)→ 第二代 IC Compiler(并发式物理设计)→ 2014 年多线程架构 + 创新设计存储 + 设计规划功能。
5.6 主流EDA软件¶
| 设计大类 | 具体设计环节 / 作用 | 主流 EDA 软件 | 适用领域 | 主要厂商 | 核心优点 | 核心缺点 | 补充说明 |
|---|---|---|---|---|---|---|---|
| 模拟设计 | 电路设计与仿真(全流程核心) | Virtuoso | 模拟 / 数模混合芯片(原理图、版图、混合信号仿真) | Cadence | 全定制设计生态完善,支持先进工艺,模拟版图设计行业标准,操作灵活性高 | 学习曲线陡峭,对电脑配置要求高,license 成本昂贵 | 覆盖模拟设计从原理图到 GDS-II 全流程,适配射频 / 高速模拟设计 |
| 高精度电路仿真 | Spectre | 模拟 / 射频芯片(瞬态、AC、噪声、失真分析) | Cadence | 仿真精度极高,适配 3nm/2nm 先进工艺,射频 / 高端模拟设计标杆,收敛性好 | 仿真速度较慢,大规模电路仿真耗时久,对算力要求高 | 业界高端模拟仿真首选,支持数模混合信号协同仿真 | |
| 高频 / 射频电路设计与电磁仿真 | ADS | 射频 / 微波 / 毫米波芯片(S 参数、谐波平衡、系统级设计) | Keysight(是德科技) | 射频系统设计一体化,兼顾电路与电磁仿真,操作界面友好,射频模型库丰富 | 纯模拟基带电路仿真能力弱,价格偏高,小众场景适配性一般 | 射频 / 通信芯片设计专用,5G/6G 射频前端设计主流工具 | |
| 电磁场仿真(片上无源 / 互连) | EMX | 模拟 / 射频芯片(3D 平面电磁场仿真、寄生参数提取) | Ansys(Integrand) | 专注片上无源器件 / 互连仿真,精度高,与 Ansys 仿真平台无缝集成 | 仅支持平面电磁场仿真,3D 全波仿真能力弱,适用场景单一 | 高频互连 / 片上电感 / 电容仿真专用,补充 Spectre/ADS 的电磁仿真能力 | |
| 快速 SPICE 仿真 | Finesim SPICE | 模拟 / 数模混合芯片(大规模电路仿真加速) | Synopsys | 仿真速度比传统 SPICE 快 10-100 倍,兼容 SPICE 语法,精度 / 速度平衡佳 | 超高精度场景略逊于 HSPICE/Spectre,复杂射频仿真支持不足 | 中大规模模拟电路仿真首选,提升设计迭代效率 | |
| 经典高精度 SPICE 仿真 | HSPICE | 模拟 / 数模混合芯片(核心模块超高精度仿真、器件建模) | Synopsys | 仿真精度行业最高,器件建模验证标准,支持全工艺节点 | 仿真速度最慢,大规模电路仿真效率极低,操作繁琐 | 芯片核心模拟模块(如基准源、运放)仿真签核专用 | |
| 半导体工艺与器件仿真 | Sentaurus TCAD | 芯片工艺开发 / 器件设计(工艺参数、器件结构性能分析) | Synopsys | 工艺与器件仿真行业标准,覆盖从工艺到器件建模全流程,适配先进工艺 | 学习成本极高,需深厚工艺知识,license 成本极高 | 晶圆厂 / 器件设计公司核心工具,支撑新工艺开发 | |
| 数字设计 | 功能验证 / RTL 级仿真 | VCS | 数字芯片(RTL / 门级仿真、代码覆盖率分析) | Synopsys | 仿真速度极快,支持超大规模 SoC 设计,多核并行仿真,覆盖率分析完善 | 纯数字仿真,不支持模拟信号,操作界面较简陋 | 超大规模数字芯片功能验证行业主流,适配 AI / 算力芯片设计 |
| 高端数字验证 / 仿真 | QuestaSim | 数字 / 数模混合芯片(RTL 仿真、形式验证、低功耗验证) | Siemens EDA | 验证覆盖率分析最全面,支持低功耗 / 混合信号验证,调试功能强大 | 仿真速度略慢于 VCS,license 成本高 | 高端数字芯片验证签核专用,弥补 VCS 的验证深度不足 | |
| 逻辑综合 | Design Compiler (DC) | 数字芯片(RTL→门级网表,PPA 多目标优化) | Synopsys | 逻辑综合行业标准,适配全工艺节点,PPA 优化算法成熟,生态完善 | 先进工艺下优化效率略逊于 Genus,对新型电路架构适配较慢 | 数字前端设计经典工具,中小规模芯片综合首选 | |
| 新一代逻辑综合 | Genus | 数字芯片(先进工艺 RTL→门级网表,PPA 优化) | Cadence | 适配 7nm 及以下先进工艺,PPA 优化效率更高,支持 AI 辅助综合 | 学习成本高,与部分老款后端工具兼容性一般 | 超大规模 / 先进工艺数字芯片综合首选 | |
| 静态时序分析(STA) | PrimeTime | 数字芯片(时序收敛验证、签核) | Synopsys | STA 行业标准,精度高,适配先进工艺,时序分析功能完善 | 仅支持时序分析,无功耗 / 信号完整性分析功能,操作繁琐 | 数字芯片时序签核必备工具,无替代方案 | |
| 新一代 STA / 时序签核 | Tempus | 数字芯片(先进工艺时序分析、时序优化) | Cadence | 支持超大规模 SoC,时序分析速度快,集成 AI 辅助时序优化 | 高端工艺下精度略逊于 PrimeTime,生态完善度一般 | 先进工艺数字芯片时序分析补充工具,提升设计效率 | |
| 数字后端物理实现 | Innovus | 数字芯片(自动布局布线 APR、PPA 优化) | Cadence | 布局布线效率高,PPA 优化能力强,支持先进工艺,操作灵活性高 | 对电脑配置要求极高,大规模设计易卡顿,学习曲线陡 | 数字后端设计主流工具,适配绝大多数数字芯片设计 | |
| 新一代数字后端物理实现 | ICC2 | 数字芯片(先进工艺 APR、时序 / 功耗优化) | Synopsys | 适配 3nm/2nm 先进工艺,时钟树综合能力强,PPA 优化更精细 | 操作复杂度高,与部分前端工具兼容性一般 | 超大规模 / 先进工艺数字芯片后端首选 | |
| 物理设计 / 后仿 | 物理验证(DRC/LVS/PEX) | Calibre | 全品类芯片(设计规则检查、版图原理图对比、寄生提取) | Siemens EDA | 行业绝对主流(市占率 95%+),支持全工艺节点,验证精度高,容错性好 | 寄生提取速度较慢,大规模芯片验证耗时久 | 所有芯片设计流片前必备签核工具,无替代方案 |
| 高端寄生参数提取 | StarRC | 全品类芯片(高精度 RC/RLC 寄生提取、时序 / 功耗分析) | Synopsys | 寄生提取精度行业最高,支持先进工艺,适配超大规模 SoC | 提取速度慢,算力要求高,license 成本昂贵 | 高端芯片 / 先进工艺寄生提取签核专用,补充 Calibre 的精度需求 | |
| 寄生参数提取与分析 | RCexplorer | 全品类芯片(常规 RC 提取、参数反标、时序分析) | Siemens EDA | 提取速度快,与 Calibre 无缝集成,操作简单,适配中小规模芯片 | 高精度场景略逊于 StarRC,先进工艺支持一般 | 中小规模芯片寄生提取首选,提升设计效率 | |
| 功耗与电迁移分析 | Redhawk-SC | 全品类芯片(IR Drop、电迁移、热 - 电耦合仿真) | Ansys | 功耗分析精度高,支持多物理场耦合,适配先进工艺,可视化效果好 | 操作复杂,学习成本高,算力要求极高 | 高端芯片 / 超大规模 SoC 功耗签核行业标准 | |
| 数字芯片功耗分析 | PrimePower | 数字 / 数模混合芯片(功耗分析、功耗优化、低功耗设计) | Synopsys | 与 Synopsys 前端 / 后端工具无缝集成,操作简单,功耗优化算法成熟 | 多物理场耦合分析能力弱,先进工艺下精度略逊于 Redhawk-SC | 中小规模数字芯片功耗分析首选,适配全流程生态 | |
| 多物理场耦合仿真 | ALPS | 高端芯片(电磁、热、电迁移协同仿真) | Siemens EDA | 支持多物理场一体化仿真,适配先进封装 / 3DIC,分析全面 | 仿真速度极慢,算力要求极高,适用场景单一 | 先进封装 / Chiplet / 高端算力芯片多物理场签核专用 | |
| AI 增强型物理验证 | Calibre Vision AI | 全品类芯片(智能 DRC/LVS 调试、签核加速) | Siemens EDA | AI 辅助识别设计违规,调试效率提升 50%,支持团队协同 | 仅为 Calibre 升级版本,无独立功能,依赖 Calibre 生态 | 2025 年新款工具,提升物理验证迭代效率 | |
| 数模混合设计 | 混合信号验证 / 仿真 | AMS Designer | 数模混合芯片(模拟 + 数字协同仿真、跨域信号验证) | Cadence | 与 Virtuoso 无缝集成,模拟仿真精度高,支持全工艺节点 | 数字仿真速度慢,超大规模数模混合设计效率低 | Cadence 生态下数模混合仿真首选 |
| 数字主导混合信号仿真 | VCS AMS | 数模混合芯片(数字 + 模拟协同仿真、覆盖率分析) | Synopsys | 数字仿真速度快,与 VCS/DC 生态集成,支持大规模设计 | 模拟仿真精度略逊于 AMS Designer,射频仿真支持不足 | Synopsys 生态下数模混合仿真首选,适配数字主导的数模混合芯片 | |
| FPGA 设计 | FPGA 开发 / 原型验证 | Vivado | FPGA/CPLD(开发、综合、布局布线、仿真) | Xilinx(AMD) | 集成度高,支持高端 FPGA(UltraScale),仿真 / 调试功能完善 | 对电脑配置要求高,中小规模 FPGA 设计操作繁琐 | AMD FPGA 开发行业标准,适配高端 FPGA / 原型验证 |
| FPGA 开发 / 量产设计 | Quartus Prime | FPGA/CPLD(开发、综合、布局布线、量产支持) | Intel | 对中小规模 FPGA 适配性好,量产设计工具完善,操作简单 | 高端 FPGA 支持略逊于 Vivado,仿真速度一般 | Intel FPGA 开发主流工具,中小规模 FPGA / 量产设计首选 | |
| 系统级设计 | 算法建模与系统架构设计 | MATLAB/Simulink | 全品类芯片(系统级算法建模、软硬件协同仿真) | MathWorks | 可视化建模,算法库丰富,支持多领域仿真,学习成本低 | 芯片级细节设计能力弱,无法直接生成硬件代码 | 芯片设计前期系统规划 / 算法验证首选,适配 AI / 通信 / 汽车芯片 |
| 硬件系统级建模 | SystemC | 全品类芯片(系统级硬件建模、架构验证) | Accellera(开源) | 开源免费,支持高抽象级建模,适配超大规模系统设计 | 学习成本高,无统一仿真工具,生态分散 | 高端 SoC / 系统级芯片架构设计专用,主流 EDA 厂商均提供配套支持 | |
| 通用工具 / 平台 | 云原生 EDA 仿真平台 | Aether | 全品类芯片(分布式仿真、资源弹性调度、云端协同) | Synopsys | 支持大规模分布式仿真,算力弹性扩展,提升仿真效率,云端协同便捷 | 依赖网络环境,数据安全要求高,部分功能需本地工具配合 | 2025 年主流云原生 EDA 平台,适配超大规模芯片仿真 |
| AI 增强型数字设计 | Aprisa AI | 数字芯片(RTL→GDS AI 辅助优化、PPA 提升) | Siemens EDA | AI 辅助 PPA 优化(提升 10%),设计效率提升 10 倍,流片周期缩短 2/3 | 仅支持西门子 EDA 生态,先进工艺适配仍在验证 | 2025 年新款 AI-EDA 工具,数字设计全流程加速 | |
| PCB / 板级设计 | Altium Designer (AD) | 板级 / PCB 设计(原理图、PCB 布局布线、简单仿真) | Altium | 集成度高,中文界面,学习成本低,3D 视图效果好,高校教学主流 | 高速 / 多层板设计能力弱,企业级项目适配性一般 | 中小规模 PCB / 板级设计首选,新手入门工具 | |
| 中高端 PCB 设计 | PADS | 板级 / PCB 设计(原理图、PCB 布局布线、板级仿真) | Siemens EDA | 模块化设计,对电脑配置要求低,消费电子领域适配性好,布线效率高 | 高速板仿真能力弱,网表导出易出故障,高端场景支持不足 | 消费电子 / 中小规模企业 PCB 设计主流工具 | |
| 国产 EDA | 模拟设计全流程平台 | Empyrean 模拟平台 | 模拟 / 数模混合芯片(原理图、版图、仿真、物理验证) | 华大九天 | 国内唯一模拟全流程 EDA,支持 14nm 工艺,时序精度 ±3%,适配国产工艺,价格低 | 先进工艺(7nm 及以下)支持不足,大规模电路仿真速度慢,生态完善度一般 | 国产模拟芯片设计核心工具,市占率 42.6%,可替代国际工具 90% 功能 |
| 国产 SPICE 仿真器 | Empyrean ALPS® | 模拟 / 数模混合芯片(SPICE 仿真、GPU 加速) | 华大九天 | GPU 加速仿真(3-5 倍提速),适配国产工艺,操作贴合国内工程师习惯 | 超高精度场景略逊于 Spectre,射频仿真支持不足 | 国产模拟仿真核心工具,3nm 后仿适配中 | |
| 器件建模与仿真 | NanoSpice™ | 全品类芯片(器件建模、大规模 SPICE 仿真) | 概伦电子 | 支持三星 3nm/4nm 工艺,五千万元件级电路仿真,被台积电 / 三星纳入 PDK | 仅专注器件建模 / 仿真,无全流程设计工具,系统级设计能力弱 | 全球唯三支持 3nm 建模的厂商,国产器件建模行业标准 | |
| 数字智能验证平台 | GalaxEC-HEC | 数字芯片(AI 驱动验证、形式验证) | 芯华章 | AI 辅助验证效率提升 10 倍,错误预测准确率 92%,适配国产 CPU/SoC | 超大规模 SoC 验证支持不足,与国际工具生态兼容性一般 | 国产数字验证核心工具,已导入中兴 / 飞腾等头部企业 | |
| 硬件仿真系统 | 桦敏 HuaEmuE1 | 数字芯片(超大规模硬件仿真、原型验证) | 芯华章 | 国内首台超百亿门硬件仿真系统,支持 150 亿门芯片验证,价格低 | 仿真速度略逊于国际同类产品,调试功能待完善 | 国产高端数字芯片原型验证核心工具,寒武纪 AI 芯片已应用 | |
| 封装 / PCB 协同设计 | RedEDA 平台 | 芯片封装 / PCB / 板级设计(全流程协同设计) | 弘快科技 | 覆盖芯片 - 封装 - PCB 全流程,布线效率提升 35%,适配国产信创体系,价格低 | 不支持全波电磁场仿真,先进封装(3DIC)支持不足 | 国产封装 / PCB 设计主流工具,信创领域首选 | |
| 可制造性设计(DFM) | DFM 良率分析平台 | 全品类芯片(DFM 设计、良率提升、工艺适配) | 广立微 | 助力中芯国际 7nm 良率爬坡缩短 15%,DFM 市占率 58.4%,适配国产工艺 | 先进工艺良率分析精度略逊于国际工具,无全流程设计能力 | 国产制造端 EDA 核心工具,中芯国际 / 华虹等代工厂标配 |
6、核心总结¶
- EDA 工具的设计逻辑源于芯片设计流程,模拟和数字设计的 EDA 工具差异,本质是信号、电路的特性差异导致的设计流程差异;
- 模拟设计的核心是全定制 + 设计师经验,布图布线和仿真高度依赖人工,EDA 工具起辅助作用;
- 数字设计的核心是EDA 自动化,从逻辑综合到布局布线,EDA 工具实现全流程自动生成,大幅提升设计效率;
- 数模共存是芯片设计的主流趋势,对应的 EDA 工具也需兼顾模拟和数字设计的需求,模拟设计向高性能发展,数字设计向高自动化、高集成度发展
二 EDA设计全流程¶
1 核心前言¶
EDA 设计流程并非单一步骤,而是覆盖设计、仿真、验证、测试的全链路复杂体系,且各环节又细分前后端操作;EDA 工具深度渗透芯片设计全流程,支撑不同设计方法(全定制 / 半定制 / 可编程逻辑)和设计环节(系统架构 / 前端 / 后端 / 封装测试),是芯片设计的核心支撑,模拟与数字芯片因特性差异,在设计方法和具体流程上存在显著不同。
芯片设计公司(Fabless)需基于代工厂(Foundry)提供的PDK 工艺文件(含设计规则、仿真模型、验证规则等)开展设计,最终输出GDS-II 版图文件交付代工厂流片,完成封装测试后芯片才可投入使用。
2 芯片设计的三大核心方法¶
集成电路设计方法分为全定制、半定制、可编程逻辑设计,三者在设计方式、性价比、适用场景上差异显著,EDA 工具可适配不同方法的设计需求。
| 设计方法 | 核心设计途径 | 优缺点 | 核心适用场景 |
|---|---|---|---|
| 全定制 | 手工设计为主,EDA 仅辅助检查、验证;精细到每个晶体管的版图、参数规划 | 优点:灵活性高,可实现最优 PPA(功耗、性能、面积)缺点:开发效率低、费用高 | 对速度 / 功耗有特殊要求的模拟芯片、数模混合芯片 |
| 半定制 | 基于厂家提供的标准单元库,依托 EDA 实现自动化设计 | 优点:开发成本低、设计周期短 | 高集成度、大规模的数字芯片 |
| 可编程逻辑设计 | 用户仅输入逻辑关系,可编程器件通过熔断内部金属线实现需求;无需掌握芯片工艺 / 版图知识 | 优点:节省设计时间、门槛低缺点:电路性能较差、成本较高 | 整机设计、不熟悉集成电路工艺的用户;代表器件为FPGA |
2.1 Fabless 到 Foundry 全流程¶

2.2 PDK 文件¶
PDK⽂件是代⼯⼚发送给设计公司的⼀套针对特定芯⽚制造⼯艺的,为电路设计⽽提供的⼯艺⽂件集合,其中包括芯⽚的设计规则、电学规则、版图层次定义、SPICE仿真模型、物理验证规则等⽂件
3 芯片设计通用全流程¶
无论模拟还是数字芯片,整体设计流程均分为四大核心步骤,仿真验证贯穿全程,需多次迭代优化以满足设计要求。
3.1 系统体系结构设计¶
- 核心工作:定义芯片功能 / 应用环境、划分软硬件功能、拆解为简单功能子模块、确定关键性能指标和算法;
- 设计方法:采用层次化设计,用系统建模语言描述各模块功能,为后续设计划定整体框架。
3.2 前端设计¶
将系统架构的功能要求转化为网表(Netlist)(表示元器件连接关系的文本文件),是 “逻辑 / 电路设计实体化” 的过程,模拟和数字芯片的实现方式差异显著。
- 数字芯片:用硬件描述语言(如 Verilog HDL)完成寄存器传输级(RTL) 代码编写,经仿真、逻辑综合后生成门级网表;
- 模拟芯片:手工绘制满足工艺要求的电路原理图,经仿真优化后生成晶体管级网表。
3.3 后端设计¶
又称物理设计,是将前端网表转化为物理版图的过程,最终输出GDS-II 文件,核心要求是符合 PDK 文件规范,确保顺利流片;
- 核心环节:版图设计 / 布局布线、物理验证(DRC/LVS)、寄生参数提取、后仿真;
- 共性要求:模拟和数字芯片均需多次仿真与验证,迭代优化版图。
3.4 封装和测试¶
- 封装:将集成电路与其他元器件连接到系统级基板,实现芯片的物理成型;
- 测试:检测封装后芯片的系统性能,确保功能、功耗、性能等指标符合设计要求,是芯片交付前的最终校验。
4 模拟芯片设计流程(全定制为主)¶
模拟芯片因对速度、功耗、精度要求严苛,全程采用全定制设计,从前端到后端高度依赖设计人员经验,EDA 工具仅起辅助作用,核心是 “晶体管级的精细设计 + 多次仿真迭代”。
4.1 前端设计流程¶
项目需求 → 电路图设计 + 器件参数计算 → 电路仿真 / 优化(不满足则迭代) → 生成晶体管级网表 → 进入后端
- 核心:手工绘制原理图,仅表示元器件逻辑连接,暂不考虑物理特性(如连线电阻、电容);
- 仿真优化(前仿真):通过直流 / 瞬态 / 交流 / 噪声特性分析,检查电路可靠性、鲁棒性、功耗,调整参数至满足指标。
4.2 后端设计流程¶
前端原理图 → 手工版图设计 → DRC 检查 → LVS 检查 → 寄生参数提取 → 版图仿真(后仿真,不满足则迭代) → 生成 GDS-II 文件
各环节核心工作:
- 版图设计:将原理图转化为几何图形表示的物理版图,需考虑信号线延时、串扰、电阻电容等实际物理问题,遵守工艺设计规则;
- DRC(设计规则检查):对照 PDK 中的工艺规则,检查版图几何图形的宽度、间距、重叠等,修改至无违规;
- LVS(版图与电路图对比):从版图中抽取网表,与前端仿真后的网表对比,确保物理版图与原设计逻辑一致;
- 寄生参数提取:提取芯片工艺带来的寄生电阻、电容等参数,生成寄生参数网表,贴近实际芯片特性;
- 版图仿真(后仿真):将寄生参数带入网表再次仿真,得到最接近实际芯片的性能结果,满足指标则输出 GDS-II 文件。
5、数字芯片设计流程(半定制为主)¶
数字芯片集成度高、规模大,采用半定制设计,依托标准单元库和 EDA 工具实现全流程自动化,设计人员主要负责逻辑定义和约束设置,核心是 “RTL 代码→门级网表→自动布局布线”。
5.1 前端设计流程¶
项目需求 → RTL 代码编写 → 代码检查 / 修改 → 功能仿真(前仿真) → 逻辑综合 + 约束修改 → 综合后仿真 → 静态时序分析(STA) → 生成门级网表 → 进入后端
核心环节详解:
- RTL 代码编写:用 HDL 语言在 RTL 层次描述电路的连接、时序,可先在行为级描述功能块降低难度,再转化为 RTL 级(主流设计方式);
- 功能仿真(前仿真):搭建 Test Bench 仿真环境,输入激励信号,验证逻辑功能是否符合预期,不考虑信号传播延时,注重测试覆盖率;
- 逻辑综合:EDA 工具将 RTL 代码转化为标准单元库中的门级电路,需指定工艺库、设置约束条件,迭代优化至生成最优门级网表;
- 可测性设计(DFT)插入:加入专用测试电路,提高芯片制造缺陷的检测效率,实现高故障覆盖率;
- 静态时序分析(STA):无测试向量,快速验证大规模电路的时序是否收敛,分解时序路径并计算延时,是综合的核心约束目标;
- 形式验证:用纯数学方法验证综合后门级网表与 RTL 代码的逻辑等价性,覆盖率和可靠性远高于仿真,及时发现转换错误;
- 综合后仿真:即 STA + 形式验证,完成前端设计的最终校验。
5.2 后端设计流程¶
门级网表 → 版图物理规划 → 功耗分析 → 单元布局与优化 → 时钟树综合 → 详细布线 → 电压衰减分析 → 寄生参数提取 → 信号完整性分析 → ECO 修改 → 布局布线后仿真 → 物理验证(DRC/LVS) → 生成 GDS-II 文件
核心环节详解:
- 版图物理规划:规划芯片大小、I/O 引脚、硬 IP、电源网络、时钟网络,追求 PPA 和时序收敛的最优折中;
- 功耗分析:分析静态功耗(漏电流)和动态功耗(翻转 / 短路功耗),依据工艺库和门级网表优化电路,布局布线后需再次分析;
- 单元布局与优化:APR 工具根据网表和时序约束,自动放置标准单元 / 宏单元,同时进行时序检查和优化;
- 时钟树综合:构建时钟网络(时钟树),核心是减小时钟偏斜(时钟源到各寄存器的延时差),降低时钟网络功耗,避免噪声;
- 详细布线:EDA 自动完成单元间信号线的物理连接,需满足 “完成互连 + 优化约束”(消除阻塞、减少串扰、保证信号完整性);
- 电压衰减分析(IR-drop & EM):评估电源网络的电压降和电流密度,优化电源网络,避免芯片速度降低或功能故障;
- 寄生参数提取 / 信号完整性分析:提取寄生参数,结合串扰噪声文件,测试高频率下信号的时序、电压幅度是否达标;
- ECO 修改:流片前的工程变更,针对布局布线后出现的小问题,修改设计逻辑功能,无需重新全流程设计;
- 布局布线后仿真:加入寄生参数和信号线延时,最贴近实际芯片的仿真,验证时序收敛和功能等价性;
- 物理验证:完成 DRC/LVS 检查,与模拟芯片后端验证要求一致,通过后输出 GDS-II 文件。
5.3 模拟 / 数字芯片设计 - EDA 工具 / 运行任务 / HPC 平台要求对应表¶
| 设计类型 | 芯片设计阶段 | 核心 EDA 工具 | 运行核心任务 | HPC 平台硬件要求 | HPC 平台调度 / 软件要求 | 核心关注要点(IT-CAD 岗) |
|---|---|---|---|---|---|---|
| 数字芯片 | 前端设计验证 | Synopsys VCSCadence XceliumSynopsys Verdi | RTL 功能仿真、UVM 验证、仿真波形调试、批量回归测试 | 1. 多核 CPU(24/32 核为主,支持超线程)2. 大内存(64G/128G,满足多案例并行)3. 普通 SSD 存储(满足仿真日志 / 波形文件读写) | 1. 调度策略:FIFO+Backfill,开启高并发调度2. 环境:Linux(CentOS/Ubuntu),Lmod 做工具版本隔离3. 监控:任务运行状态、算力利用率实时监控 | 1. 保障 VCS/Xcelium License 高利用率,避免多 session 残留2. 优化批量仿真任务的并发数,提升集群吞吐3. Verdi 波形文件存储路径规划,避免磁盘占满 |
| 数字芯片 | 前端综合 | Synopsys Design Compiler (DC) | RTL 到门级网表综合、时序约束落地、综合结果优化 | 1. 中多核 CPU(16/24 核)2. 大内存(64G/128G,处理超大规模网表)3. 高速 SSD(网表文件读写速度要求高) | 1. 调度策略:FairShare + 中等优先级,按项目分配算力份额2. 环境:配套工艺库(.lib)环境变量精准配置3. 工具:与前端仿真工具版本兼容 | 1. DC 与工艺库版本严格匹配,避免综合报错2. 网表文件做增量存储,节省磁盘空间3. 限制单任务算力占用,避免资源垄断 |
| 数字芯片 | 后端物理实现 | Synopsys IC Compiler (ICC/ICCII)Cadence Innovus | 网表布局布线、时钟树综合(CTS)、物理约束优化、版图初步生成 | 1. 多核高性能 CPU(32/48 核,主频≥3.0GHz)2. 超大内存(256G/512G,支撑超大规模芯片版图处理)3. 高速并行存储(NVMe/Lustre,满足版图大文件读写)4. 千兆 / 万兆网络(保障节点间数据同步) | 1. 调度策略:Priority 高优先级 + 资源独占,禁止任务抢占2. 环境:开启 CPU 亲和性、大页内存(HugePages)3. 存储:版图文件专属存储分区,做定时备份 | 1. 预留专属算力池,避免与普通任务争抢资源2. 工具运行日志实时监控,及时排查布局布线卡顿问题3. 版图文件多版本备份,防止文件损坏 |
| 数字芯片 | Sign-off 时序验证 | Synopsys PrimeTime (PT) | 静态时序分析(STA)、时序违例修复、功耗与时序联合分析 | 1. 中多核 CPU(24/32 核)2. 超大内存(128G/256G,处理全芯片时序路径)3. 高速 SSD(时序报告 / 网表文件读写) | 1. 调度策略:Sign-off 专属最高优先级,License 独占式分配2. 环境:与后端实现工具、工艺库版本完全兼容3. 监控:License 使用状态、任务运行进度告警 | 1. PT License 极其昂贵,严格限制非 Sign-off 任务调用2. 时序分析任务断点续跑配置,避免中断重跑3. 定时清理时序报告冗余文件,释放磁盘 |
| 数字芯片 | Sign-off 物理验证 | Siemens CalibreCadence PVSSynopsys IC Validator | DRC(设计规则检查)、LVS(版图网表一致性检查)、ERC(电气规则检查) | 1. 海量多核 CPU(集群化部署,单任务支持 128/256 核并行)2. 超大内存(512G/1T,支撑超大规模 GDSII 版图处理)3. 超高吞吐并行存储(Lustre/ZFS,GDSII 文件高速读写)4. InfiniBand RDMA 高速网络(节点间数据传输无延迟) | 1. 调度策略:Sign-off 专属最高优先级 + 拓扑感知调度,开启多核并行调度2. 工具:Calibre 多版本独立部署,避免冲突3. 存储:GDSII 版图文件专属高速存储池 | 1. Calibre License 做集群化共享,提升利用率2. DRC/LVS 任务超长时间运行,配置 7×24 小时故障监控3. 并行存储 IOPS 优化,缩短版图检查耗时 |
| 模拟芯片 | 电路设计 / 仿真 | Cadence VirtuosoCadence SpectreSynopsys HSpice | 模拟电路原理图绘制、直流 / 交流 / 瞬态仿真、高精度电路特性分析、仿真结果优化 | 1. 单核 / 少核高性能 CPU(8/16 核,主频高,支撑单任务长时间运行)2. 中大型内存(32G/64G,满足电路仿真数据处理)3. 普通 SSD 存储(仿真参数 / 结果文件读写) | 1. 调度策略:Priority 中等优先级 + 小资源队列,单独划分模拟仿真专属节点2. 环境:Virtuoso GUI 远程访问优化(如 VNC/NoMachine)3. 监控:License 占用状态、仿真任务卡顿告警 | 1. Virtuoso License 按用户数管控,避免单人多开占用2. Spectre/HSpice 仿真任务超时配置,释放闲置资源3. 远程 GUI 访问网络优化,避免卡顿 / 断连 |
| 模拟芯片 | 射频电路设计 / 仿真 | Cadence ADSCadence Virtuoso RF OptionAnsys HFSS | 射频电路原理图 / 版图设计、射频特性仿真、三维电磁仿真、信号完整性分析 | 1. 多核 CPU(16/32 核)+ 可选 GPU(NVIDIA A100/A800,加速电磁仿真)2. 大内存(64G/128G,支撑电磁仿真数据计算)3. 高速 SSD(仿真模型 / 结果文件读写)4. 千兆网络(保障仿真模型数据传输) | 1. 调度策略:FairShare+GPU 专属调度(HFSS),射频 / 普通模拟任务隔离2. 环境:GPU 驱动 / CUDA 版本与 HFSS 匹配3. 工具:ADS 与 Virtuoso RF Option 环境联动配置 | 1. Ansys 系列 License(HFSS)做 GPU/CPU 任务隔离2. 电磁仿真 GPU 算力资源预留,提升仿真速度3. 射频仿真模型文件做缓存,减少重复加载时间 |
| 模拟芯片 | Sign-off 验证 | Cadence Spectre/HSpiceSiemens CalibreCadence Calibre PERC | 后仿真(加入寄生参数)、物理验证(DRC/LVS)、可靠性验证(ESD/IR Drop) | 1. 后仿真:同模拟电路仿真硬件配置,提升内存至 64G/128G2. 物理验证 / 可靠性验证:同数字芯片 Sign-off 物理验证硬件配置 | 1. 调度策略:Sign-off 最高优先级,与数字 Sign-off 共享算力池但做任务隔离2. 环境:后仿真寄生参数(.spef)文件环境变量精准配置3. 调度:Calibre PERC 与 Calibre 主工具 License 共享优化 | 1. 模拟 Sign-off 任务与数字 Sign-off 任务算力资源做隔离,避免互相抢占2. 寄生参数文件与版图文件路径关联,避免仿真报错3. 可靠性验证任务 License 与物理验证共享,提升利用率 |
通用核心要求(模拟 / 数字芯片设计均适用)
- License 管理:FlexLM 高可用部署(主备 + 异地容灾),多 Vendor 混部优化,Sign-off 工具 License 独占式分配;
- 环境管理:统一 Linux 发行版,Lmod/Environment Modules 做工具版本隔离,工艺库 / 模型库标准化配置;
- 存储规划:按任务类型划分存储分区(仿真日志 / 版图文件 / 报告文件),做定时备份和冗余清理;
- 监控告警:Prometheus+Grafana 搭建全维度监控(算力 / 存储 / License / 任务),分级告警(紧急 / 重要 / 一般),7×24 小时响应;
- 调度核心:按任务特性组合调度策略(Priority 保 Sign-off、Backfill 提利用率、FairShare 保公平、拓扑感知提并行)。
6 EDA 工具的全流程渗透与模块划分¶
EDA 工具并非单一软件,而是覆盖芯片设计所有环节的工具集,既支撑不同设计方法,又满足前后端各步骤的设计、仿真、验证、布局布线需求,仿真验证是 EDA 工具应用的核心场景,贯穿芯片设计全阶段。
6.1 EDA 工具的核心渗透特点¶
- 覆盖设计全环节:从系统架构的功能定义,到前端的电路 / 代码设计,再到后端的物理版图实现,最后到封装测试的性能校验,均有对应 EDA 工具;
- 适配不同设计方法:全定制(辅助验证)、半定制(自动化设计 / 布局布线)、可编程逻辑设计(逻辑关系定义)均能匹配;
- 仿真验证全程化:前仿真(功能 / 电路验证)、综合后仿真(时序 / 逻辑验证)、后仿真(贴近实际芯片的性能验证),多次迭代确保设计达标;
- 模拟 / 数字差异化支撑:模拟芯片侧重原理图绘制、手工版图设计、高精度仿真工具;数字芯片侧重代码编译、逻辑综合、自动布局布线工具。
6.2 EDA 核心功能模块划分¶
EDA 工具按功能可分为四大子模块,各模块对应芯片设计的不同环节,相互配合完成全流程设计:
| EDA 子模块 | 核心功能 / 对应环节 | 关键操作 |
|---|---|---|
| 设计子模块 | 芯片前端设计核心,完成电路 / 代码的输入与综合 | 电路原理图设计、HDL 编码、设计输入、逻辑综合 |
| 布局布线子模块 | 芯片后端设计核心,实现物理版图的自动化 / 手工绘制 | 自动布局布线、时钟树综合、手工版图设计 |
| 分析验证子模块 | 全流程验证,确保设计符合工艺和功能要求 | DFT 可测性设计、形式验证、DRC/LVS 检查、ERC 电气规则检查、DFM 可制造性设计、寄生参数提取、STA 静态时序分析 |
| 综合仿真子模块 | 全流程仿真,迭代优化电路 / 逻辑性能 | 电路仿真、设计仿真、功能模拟、时序模拟、噪声模拟、功率模拟 |
7 核心总结¶
- EDA 是芯片设计的基础设施,其流程本质是芯片设计流程的软件化固化,全流程围绕 “从逻辑 / 电路设计到物理版图实现,再到仿真验证迭代” 展开;
- 模拟与数字芯片设计的核心差异源于设计方法:模拟芯片全定制(人工主导、精细到晶体管),数字芯片半定制(EDA 主导、自动化布局布线),但二者均以PDK 为依据、GDS-II 为输出、仿真验证为核心;
- 仿真验证是 EDA 工具的核心应用场景,前仿真验证 “逻辑 / 电路功能”,后仿真结合物理特性验证 “实际芯片性能”,多次迭代是芯片设计达标关键;
- 芯片设计的核心目标是实现PPA 最优,所有环节(综合、布局布线、时钟树设计)均围绕 “更低功耗、更高性能、更小面积” 和时序收敛展开。
三 VCS¶
VCS(Verilog Compiler Simulator) 是Synopsys公司开发的高性能数字电路验证工具,主要用于RTL级(寄存器传输级)及系统级(SystemVerilog)设计的仿真与验证
1 在数字设计验证的流程¶
设计输入:
- 输入文件:RTL代码(Verilog/SystemVerilog)、TestBench、约束文件
仿真运行:
执行仿真:./simv,输出波形和日志 关键输出: 功能错误报告(如断言失败、预期值不符) 覆盖率报告(覆盖率不足时需补充测试用例)
调试与迭代:
使用Verdi分析波形,定位RTL代码缺陷
修复问题后重新编译仿真,直至功能与时序收敛
2 VCS vs ModelSim¶
| 特性 | VCS | ModelSim (Mentor) |
|---|---|---|
| 仿真速度 | 编译型,高性能(支持多线程)67 | 解释型,速度较慢 |
| 语言支持 | Verilog、SystemVerilog、UVM | Verilog、VHDL |
| 调试能力 | 需配合Verdi | 集成图形化调试界面 |
| 适用场景 | 大规模数字芯片验证 | 中小规模设计、FPGA验证 |
3 典型流程示意¶
# 1. 编译阶段
compile:
vcs -sverilog -timescale=1ns/1ps -f filelist.f \
-P ${VERDI_HOME}/share/PLI/VCS/LINUX64/novas.tab \
${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a -o simv
# 2. 仿真阶段(生成FSDB波形)
sim:
./simv -ucli -do "fsdbDumpfile wave.fsdb; fsdbDumpvars 0 top; run"
# 3. 调试阶段
debug:
verdi -sv -f filelist.f -ssf wave.fsdb &
4 命令解释¶
vcs -full64 -sverilog \
-fsdb +define+FSDB \
-P ${VERDI_HOME}/share/PLI/VCS/LINUX64/novas.tab \
${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a \
-f filelist.f \
-l uart.log
心参数分析
-full64:启用64位模式编译,支持更大规模设计17[1][7]。-sverilog:支持SystemVerilog语法3[3]。- -fsdb +define+FSDB
-fsdb:启用VCS生成FSDB波形文件的接口45[4][5]。+define+FSDB:在代码中定义宏FSDB,用于条件编译(如仅在宏定义时调用$fsdbDumpvars)45[4][5]。-P:链接Verdi的PLI库(novas.tab和pli.a),解决$fsdbDumpfile未定义错误17[1][7]。-f filelist.f:指定源文件列表(RTL、Testbench等)28[2][8]。-l uart.log:将编译日志输出到uart.log文件- -MUpdate : 增量编译优化通过该选项,VCS仅编译修改过的文件,减少编译时间(适用于局部修改场景
四 ADS¶
ADS(Advanced Design System) 是由Keysight(原Agilent)开发的高频电子设计自动化(EDA)工具,核心定位为射频(RF)、微波及毫米波电路设计,尤其在模拟芯片设计领域(如射频前端、通信系统)占据主导地位
1 核心功能与设计阶段¶
| 设计阶段 | 功能描述 | 应用场景示例 |
|---|---|---|
| 系统级设计 | 支持通信系统架构建模与链路预算分析(如5G基站、雷达系统) | 验证信号调制方案、噪声系数、系统级指标分配 |
| 电路级实现 | 提供谐波平衡(Harmonic Balance)、瞬态分析(Transient)等工具设计射频模块 | 优化低噪声放大器(LNA)、混频器(Mixer)、功率放大器(PA)等电路性能 |
| 电磁场仿真 | 集成Momentum(矩量法)和FEM(有限元法)仿真引擎,分析高频信号传输特性 | 精确模拟微带线、天线辐射、封装寄生效应 |
| 验证与调试 | 支持与测量仪器(如矢量网络分析仪)联动,实现设计-测试闭环迭代 | 校准S参数、修正实际电路与仿真模型的偏差 |
五 PDK¶
PDK(Process Design Kit,工艺设计套件) 是晶圆代工厂(Foundry)提供给设计公司的标准化工具包 + 规则手册,是连接芯片设计与制造的核心桥梁,决定了设计能否在目标工艺上成功流片、满足性能与良率要求
1 PDK 核心定位与作用¶
1. 核心定位¶
- 把 Foundry 的物理制造工艺(如 28nm/14nm/7nm CMOS、FinFET、SOI、RF CMOS、SiGe BiCMOS)转化为 EDA 工具可识别的设计规则、器件模型、版图单元。
- 确保设计符合工艺约束、仿真结果可预测、版图可制造、最终芯片性能达标。
2. 核心作用(全流程覆盖)¶
- 设计阶段:提供器件模型、参数化单元(P-Cell)、标准单元,支撑原理图 / 版图设计。
- 仿真阶段:提供 SPICE/Verilog-A 模型、工艺角(Corner),支撑前仿 / 后仿、蒙特卡洛分析。
- 验证阶段:提供 DRC/LVS/ERC/EM/IR Drop/DFM 等验证脚本(Runset),确保设计合规。
- 签核阶段:作为流片前最终签核(Signoff) 的唯一依据。
2 模拟设计PDK文件目录树及作用¶
-
- 工艺文件(Process Files)
- techfile.tf:定义工艺层属性(如金属层、多晶硅层厚度、材料电导率)及版图层次映射规则,用于Cadence Virtuoso等工具14。
- display.drf:配置版图编辑器中各层的显示颜色、填充样式,提升设计可视性48。
- 模型文件(Model Files)
- model.lib/model.scs:包含晶体管(MOSFET)、电阻、电容等器件的SPICE模型,支持仿真工具(如Spectre、HSPICE)进行电路性能分析17。
- mc_models:蒙特卡洛模型文件,用于工艺波动和器件参数变化的统计仿真17。
- 设计规则(Design Rules)
- drc.rule:几何设计规则(如最小线宽、间距),确保版图符合晶圆厂制造能力14。
- lvs.rule:版图与原理图一致性检查规则,验证电路逻辑与物理实现匹配48。
- antenna.rule:天线效应规则,防止等离子刻蚀导致的栅氧损伤48。
- 参数化单元(Pcells)
- pcell.il:可动态调整参数的器件版图生成脚本(如不同宽长比的MOS管),支持快速版图设计45。
- 寄生参数提取规则
- lpe.rule:寄生电阻/电容提取规则,用于后仿真中的时序和功耗分析
3 数字逻辑设计PDK文件目录树及作用¶
-
- 标准单元库(Standard Cell Libraries)
- stdcells.lib/stdcells.db:逻辑门(如AND、OR、触发器)的功能描述及时序模型(延迟、建立/保持时间)58。
- stdcells.lef:标准单元的抽象版图信息(引脚位置、布线层),供布局布线工具使用58。
- 时序与功耗模型
- timing.lib:标准单元的时序模型(PVT工艺角),用于静态时序分析(STA)58。
- power.lib:功耗模型(动态/静态功耗系数),支持功耗分析和优化58。
- 物理设计规则
- tech.lef:工艺技术文件,定义金属层堆叠、通孔规则及布线层属性58。
- drc.tcl:数字设计专用规则(如金属密度、天线规则),适配自动布局布线工具(如Innovus)48。
- 验证文件
- lvs.tcl/drc.tcl:针对数字版图的自动化验证脚本,集成于Calibre等工具48。
- cdl/spi:网表文件,用于LVS验证和仿真8。
- IP库
- memory_compiler:存储器生成器(如SRAM、ROM),提供面积、时序和功耗参数化的IP核
4 模拟设计 vs 数字设计的PDK 使用差异¶
| 维度 | 模拟设计(Analog) | 数字设计(Digital) |
|---|---|---|
| 核心依赖 | 器件模型(SPICE)、P-Cells、TechFile | 标准单元库(LEF/Lib)、时序模型、抽象视图 |
| 设计方式 | 全定制(Full-Custom):手动绘制原理图 / 版图 | 半定制(Semi-Custom):调用标准单元,自动布局布线 |
| 仿真重点 | DC/AC/ 瞬态 / 噪声 / 匹配 / 蒙特卡洛 / 工艺角 | 时序(Setup/Hold)、功耗、面积、时序收敛 |
| 版图重点 | 匹配(共质心、叉指)、噪声隔离、电源完整性 | 标准单元摆放、时钟树综合、布线拥塞、时序优化 |
| 验证重点 | LVS/PEX 精度、匹配性、EM/IR、ESD | DRC/LVS、时序签核(STA)、功耗签收 |
5 主流 PDK 厂商与工艺¶
1. 国际 Foundry¶
- 台积电(TSMC):N7/N5/N3 FinFET、28nm/16nm CMOS、RF CMOS、eNVM PDK。
- 三星(Samsung):7nm/5nm/3nm GAA、28nm/14nm PDK。
- 格芯(GlobalFoundries):14nm/12nm FinFET、22nm FD-SOI、RF CMOS、SiGe BiCMOS PDK。
- 联电(UMC):28nm/14nm CMOS、RF PDK。
2. 国内 Foundry¶
- 中芯国际(SMIC):14nm FinFET、28nm/40nm/55nm CMOS、RF PDK。
- 华虹宏力(HuaHong):55nm/130nm CMOS、功率器件 PDK。
- 粤芯(Yuncore):180nm/90nm/55nm CMOS PDK。
3. 开源 PDK¶
- SkyWater 130nm PDK:开源,用于教育 / 研究 / 低成本流片。
- Google-SkyWater 90nm PDK:开源,支持开源芯片设计。
6 IT-CAD 视角:PDK 上线、部署、维护、排障、权限、版本、环境¶
6.1 IT-CAD 视角:PDK 到底是什么¶
PDK 不是设计知识,而是:
- 一套巨大的文件集(几 GB~几十 GB)
- 一套严格的权限资产(NDA、厂商保密)
- 一套必须稳定运行的 EDA 环境依赖
- 一套版本极多、极易冲突的配置
你的核心任务:
让所有设计师在任何机器上,都能一键加载正确、干净、可跑通的 PDK,不出环境问题
6.2 PDK 从拿到手 → 上线运行,IT-CAD 必须做的 8 件事¶
6.2.1 PDK 包接收、校验、归档(最基础但最关键)¶
要做:
- 接收厂商发来的 PDK 压缩包(tar.gz、zip、ISO)
- 校验 MD5/SHA,确保没损坏、没被篡改
- 按规范路径归档:
/cad/PDK/[工艺]/[版本]/
例:/cad/PDK/SMIC28HPM/1.8.0/
- 记录:版本、发布日期、支持工具、补丁、限制
- 严格权限:仅授权项目组可读
为什么重要:
PDK 一旦损坏 / 解压错 / 权限错 → 全组仿真、版图全挂
6.2.2 统一解压、目录结构标准化¶
PDK 目录非常固定,需要保证:
- 统一解压,不允许设计师自己解压
- 保证路径绝对稳定、不变动
- 禁止任何人在主 PDK 目录写入
PDK/
├── tech/ # 工艺文件、techfile、layer.map
├── models/ # SPICE、Lib、Verilog-A 模型
├── pcells/ # 模拟 P-Cell
├── stdcells/ # 数字标准单元(LEF/Lib/GDS)
├── qa/ # 验证用例
├── doc/ # 手册
└── setup/ # 环境脚本
6.2.3 环境脚本封装(.cshrc/.bashrc/modulefile)¶
这是 IT-CAD 最核心工作。
设计师只需要:
module load pdks/SMIC28HPM_v1.8.0
source /cad/PDK/SMIC28HPM/1.8.0/setup/setup_pdk.csh
脚本里必须设置:
PDK_ROOTTECHFILEMODEL_PATHLAYOUT_MAPSTD_CELL_LIBRULESET_DIR(DRC/LVS/PEX)- 工具兼容路径(Cadence/Synopsys/Siemens)
价值:
环境 0 配置、一键加载、永不冲突
6.2.4 权限控制(NDA 保密是红线)¶
PDK 全部是涉密资产。
你要做:
-
使用 LDAP / AD 分组控制
-
项目组才能访问对应工艺 PDK
-
目录权限:
-
root: 只读
- CAD: 管理
-
设计:只读
-
日志监控:谁访问、复制、拷贝
漏泄 PDK 是重大合规事故,IT-CAD 背锅位。
6.2.5 EDA 工具兼容性检查(必做)¶
不同 PDK 版本只支持特定 EDA 版本。
你要核对:
- Virtuoso 版本
- Calibre / Pegasus 版本
- Xcelium、VCS、StarRC、Quantus 等
例:
- SMIC 28nm v1.8 → 只支持 Cadence 19.1 以上
- 老 PDK 可能不支持新工具
你要做:
- 在模块文件(modulefile)里做版本绑定
- 不兼容直接报错,禁止加载
- 避免设计师跑了一周发现工具不兼容
6.2.6 安装、配置、联调 Calibre/DRC/LVS/PEX¶
这是 IT-CAD 深度工作量。
你要确保:
- Calibre DRC 能找到 rule 文件
- LVS 能识别器件、端口、层次
- PEX 能正确提取 RC
- 跑厂商自带 QA testcase 必须全部 PASS
你交付的不是文件,是:
能直接跑通签核(Signoff)的环境。
6.2.7 多版本管理、升级、回滚¶
芯片项目常见:
- A 项目:v1.5
- B 项目:v1.8
- C 项目:v2.0(beta)
你要做:
- 多版本并存
- module 切换
- 升级前先测试
- 出问题10 分钟回滚到老版本
这是 CAD 运维最体现水平的地方。
6.2.8 监控、排障、性能优化¶
PDK 相关典型故障:
- 加载慢 → NFS 性能问题
- 权限错 → 无法读模型
- techfile 损坏 → Virtuoso 打不开库
- DRC 报错路径不对 → 环境变量没设对
- 模型找不到 → 路径混乱
你要做:
- 把 PDK 放在 高速存储(分布式 / 并行文件系统)
- 缓存、预读、IO 优化
- 建立排障手册:10 类常见问题 + 对应命令
6.2.9 IT-CAD 日常 PDK 工作清单¶
- 新 PDK 接收、校验、归档
- 统一解压、目录标准化
- 编写 modulefile /setup 脚本
- 权限配置、NDA 控制
- EDA 工具兼容性检查
- Calibre DRC/LVS/PEX 联调
- 跑厂商 QA 用例,确保 PASS
- 交付设计师使用
- 版本管理、升级、回滚
- 故障排查、存储性能优化
- 定期清理废弃版本、归档
7 Calibre DRC / LVS / PEX 联调¶
7.1 先一句话讲明白¶
Calibre 是芯片物理验证工具(签核工具)。
DRC / LVS / PEX 是芯片流片前必须过的三道关。
IT-CAD 做的不是 “设计”,而是:
把 PDK 里给的规则文件、脚本、路径,全部配通,让设计师一点就能跑,且能跑出正确结果。
这就叫:Calibre DRC/LVS/PEX 联调。
7.2 三个东西分别是什么(CAD 视角极简版)¶
DRC(Design Rule Check)
检查:你的版图是否符合工厂工艺规则(线宽、间距、面积、天线…)
→ CAD 要配:规则文件(rule file)、路径、层映射
LVS(Layout Versus Schematic)
检查:版图和原理图是不是一样(器件、连接、参数没画错)
→ CAD 要配:器件映射表、层映射、提取规则
PEX(Parasitic Extraction)
从版图里提取电阻电容(RC),给仿真用
→ CAD 要配:QRC/StarRC/CalibreXRC 规则、工艺参数文件
7.3 DRC联调¶
7.3.1 找到 PDK 里的 DRC 规则文件¶
一般在:
PDK/
├── calibre/
│ ├── drc/
│ │ ├── main.drc
│ │ ├── layer.map
│ │ ├── command.run
│ │ └── techfile...
7.3.2 配置¶
把路径写死到 runset 里
PDK_ROOTTECHFILELAYER_MAPRULE_FILE
修改路径变量
把厂商给的相对路径 → 改成你们服务器绝对路径。
权限检查
- 所有规则文件必须 只读
- 设计师不能修改
写一个通用运行脚本
例如 run_drc.sh
calibre -drc -hier -batch ${PDK_CALIBRE_DRC_RULE}
跑一次测试
用厂商自带 testcase GDS
→ 看是否能跑完、是否报正常的预期错误。
7.4 LVS 联调¶
LVS 比 DRC 复杂,因为要器件匹配。
7.4.1 PDK 里 LVS 相关文件¶
calibre/lvs/
├── main.lvs
├── layer.map
├── device.tbl(器件映射表)
├── swb (Calibre LVS 界面文件)
7.4.2 配置
- 配置层映射(layer map)
确保 Virtuoso 层号 ↔ Calibre 层号一致。
- 配置器件映射表 device.tbl
告诉 LVS:
- 版图里的 poly + diffusion = NMOS
- 另一块 = PMOS
-
电阻、电容、二极管怎么识别
-
在规则里填正确路径
-
器件库路径
- 参考网表路径
-
顶层设置
-
提供 LVS runscript 给设计师
一键跑:
calibre -lvs -batch run_lvs.run
- 联调关键:测试对比
用一个简单反相器 testcase:
-
画原理图
-
画版图
-
跑 LVS
→ 必须出现:
LVS PASSED
7.5 PEX 联调¶
PEX = 寄生参数提取,给后仿真用。
7.5.1 PDK 里 PEX 文件¶
calibre/pex/
├── main.pex
├── pex.rules
├── layer.map
├── techfile
├── QRC_Techfile(Quantus QRC)
7.5.2 配置¶
加载正确的工艺参数文件
- 金属厚度
- 介电常数
- 电阻系数
- 电容模型
配置提取模式
- 只提取电容?
- 电阻电容都提?
- 耦合电容要不要?
路径配置
- 输入 GDS
- 输出网表
- 规则文件路径
跑测试
反相器版图 → PEX → 输出 netlist.pex.sp
能被 Spectre/VCS 读取就算成功。
7.6 IT-CAD 联调的最终交付物¶
不需要懂设计,只需要交付:
-
一套正确配置的 Calibre rule 路径
-
3 个一键运行脚本
-
run_drc.sh
- run_lvs.sh
-
run_pex.sh
-
layer.map 正确、层号正确
-
权限正确、所有人环境统一、不会因人而异
-
用厂商 testcase 验证:全部 PASS
做到这些,就叫:
Calibre DRC/LVS/PEX 联调完成。
7.7 核心总结¶
DRC 联调:配规则、配路径、配层映射。
LVS 联调:配器件映射、配层映射、配网表对比。
PEX 联调:配工艺参数文件、配 RC 提取规则。
IT-CAD 不做设计,只做:环境通、路径对、权限对、脚本对、跑通测试用例
8 Calibre DRC/LVS/PEX 部署SOP¶
文档说明
本 SOP 适用于晶圆厂 PDK 配套 Calibre DRC/LVS/PEX 工具的标准化部署,目标是实现 “环境统一、一键运行、权限合规、测试通过”,所有操作基于 Linux 环境(CentOS/RHEL)。
1. 前置条件¶
| 项点 | 要求 |
|---|---|
| 硬件 | 部署服务器≥8 核 16G,PDK 存储路径挂载高速 NFS / 并行文件系统 |
| 软件 | Calibre 2021.4/2022.1(与 PDK 版本匹配)、bash/csh、Perl(Calibre 依赖) |
| 权限 | CAD 运维账号拥有 root/sudo 权限,设计师账号仅拥有 PDK 只读权限 |
| PDK 文件 | 已完成校验、解压、目录标准化(路径:/cad/PDK/[工艺名]/[版本]/) |
2. 部署流程¶
2.1 通用准备工作¶
# 1. 创建Calibre规则文件统一目录(按工艺+版本划分)
mkdir -p /cad/Calibre/[工艺名]/[版本]/{drc,lvs,pex}
chmod -R 755 /cad/Calibre
chown -R cad_admin:cad_group /cad/Calibre
# 2. 从PDK拷贝规则文件到统一目录(示例:SMIC28HPM v1.8)
cp /cad/PDK/SMIC28HPM/1.8.0/calibre/drc/* /cad/Calibre/SMIC28HPM/1.8.0/drc/
cp /cad/PDK/SMIC28HPM/1.8.0/calibre/lvs/* /cad/Calibre/SMIC28HPM/1.8.0/lvs/
cp /cad/PDK/SMIC28HPM/1.8.0/calibre/pex/* /cad/Calibre/SMIC28HPM/1.8.0/pex/
# 3. 配置全局环境变量(写入/etc/profile.d/calibre_pdk.sh)
cat > /etc/profile.d/calibre_pdk.sh << EOF
export CALIBRE_ROOT=/cad/eda/Calibre/2022.1
export PATH=\$CALIBRE_ROOT/bin:\$PATH
# 按工艺版本定义PDK路径
export PDK_SMIC28HPM_V180=/cad/PDK/SMIC28HPM/1.8.0
export CALIBRE_SMIC28HPM_V180=/cad/Calibre/SMIC28HPM/1.8.0
EOF
source /etc/profile.d/calibre_pdk.sh
2.2 DRC 部署¶
| 步骤 | 操作内容 | 验证方式 |
|---|---|---|
| 1 | 修改 DRC 规则文件(main.drc):将所有相对路径改为绝对路径(如 $PDK_ROOT → /cad/PDK/...) | 打开 main.drc,搜索 “include”/“path”,确认无相对路径 |
| 2 | 配置 layer.map:确保 Virtuoso 层号与 Calibre 层号一一对应 | 对比 PDK techfile 中的层定义,无缺失 / 错配 |
| 3 | 编写一键运行脚本(run_drc.sh),放置在 $CALIBRE_SMIC28HPM_V180/drc/ | 执行脚本,无 “文件找不到” 类报错 |
| 4 | 权限配置:chmod 755 run_drc.sh;chmod 444 main.drc layer.map | 设计师账号无法修改规则文件,仅可执行脚本 |
| 5 | 跑厂商 testcase:calibre -drc -hier -batch run_drc.run | 输出报告中仅含 “预期违规”(如测试用例故意留的线宽违规),无工具执行错误 |
2.3 LVS 部署¶
| 步骤 | 操作内容 | 验证方式 |
|---|---|---|
| 1 | 修改 LVS 规则文件(main.lvs):替换 PDK 路径为绝对路径 | 搜索 “device.tbl”/“layer.map”,路径正确 |
| 2 | 检查 device.tbl:确认 MOS / 电阻 / 电容 / 二极管的识别规则与 PDK 一致 | 对照 PDK 手册,无器件类型漏配 |
| 3 | 编写一键运行脚本(run_lvs.sh) | 执行脚本,无 “器件识别失败” 类报错 |
| 4 | 测试反相器 testcase:原理图 + 版图跑 LVS | 最终报告显示 “LVS PASSED”,无 “Net Mismatch”/“Device Mismatch” |
| 5 | 配置 SWB 界面文件:将路径固化到 swb 文件,设计师可可视化操作 | 打开 Calibre SWB,自动加载规则文件,无需手动选路径 |
2.4 PEX 部署¶
| 步骤 | 操作内容 | 验证方式 |
|---|---|---|
| 1 | 修改 PEX 规则文件(main.pex):配置金属电阻 / 电容系数、提取精度 | 对照 PDK 的 Model Card,参数无错配 |
| 2 | 选择提取模式:根据设计需求配置 “只提电容”/“RC 全提”/“耦合电容” | 执行提取后,输出网表包含对应寄生参数 |
| 3 | 编写一键运行脚本(run_pex.sh) | 执行脚本,输出.sp 格式寄生网表,无语法错误 |
| 4 | 验证网表可用性:将寄生网表导入 Spectre 仿真 | 仿真可正常运行,无 “undefined device”/“parameter error” |
3. 权限与合规管控¶
# 1. 按项目组划分权限(示例:项目A组访问SMIC28HPM v1.8)
setfacl -R -m g:proj_A:r-x /cad/PDK/SMIC28HPM/1.8.0
setfacl -R -m g:proj_A:r-x /cad/Calibre/SMIC28HPM/1.8.0
# 2. 日志监控(记录访问/执行行为)
cat > /cad/Calibre/log_monitor.sh << EOF
#!/bin/bash
LOG_DIR=/var/log/calibre_pdk
mkdir -p \$LOG_DIR
# 记录DRC/LVS/PEX执行日志
calibre_exec_log() {
echo "\$(date) - \$USER - \$1 - \$2" >> \$LOG_DIR/calibre_run.log
}
alias run_drc='calibre_exec_log DRC SMIC28HPM_V180 && /cad/Calibre/SMIC28HPM/1.8.0/drc/run_drc.sh'
alias run_lvs='calibre_exec_log LVS SMIC28HPM_V180 && /cad/Calibre/SMIC28HPM/1.8.0/lvs/run_lvs.sh'
alias run_pex='calibre_exec_log PEX SMIC28HPM_V180 && /cad/Calibre/SMIC28HPM/1.8.0/pex/run_pex.sh'
EOF
# 将日志脚本加入设计师环境
echo "source /cad/Calibre/log_monitor.sh" >> /home/[设计师账号]/.bashrc
4. 交付与维护¶
- 交付物:规则文件目录、一键运行脚本、环境变量清单、测试报告
- 维护:每季度检查 PDK 补丁更新,版本升级前先在测试环境验证,保留老版本支持历史项目
5 Calibre DRC/LVS/PEX 一键运行脚本模板¶
1. run_drc.sh(DRC 运行脚本)¶
#!/bin/bash
# 功能:一键运行Calibre DRC(适配SMIC28HPM v1.8)
# 作者:CAD运维
# 用法:./run_drc.sh [版图GDS文件] [顶层单元名]
# 1. 参数检查
if [ $# -ne 2 ]; then
echo "用法错误!正确用法:./run_drc.sh <GDS文件路径> <顶层单元名>"
exit 1
fi
GDS_FILE=$1
TOP_CELL=$2
# 2. 环境变量检查
if [ -z "$CALIBRE_SMIC28HPM_V180" ]; then
echo "错误:未加载SMIC28HPM v1.8 PDK环境!"
echo "请执行:source /etc/profile.d/calibre_pdk.sh"
exit 1
fi
# 3. 定义核心路径
DRC_RULE=${CALIBRE_SMIC28HPM_V180}/drc/main.drc
DRC_REPORT=${TOP_CELL}_drc_report.txt
DRC_LOG=${TOP_CELL}_drc.log
# 4. 执行DRC
echo "===== 开始运行Calibre DRC ====="
echo "GDS文件:$GDS_FILE"
echo "顶层单元:$TOP_CELL"
echo "规则文件:$DRC_RULE"
echo "报告输出:$DRC_REPORT"
calibre -drc -hier -batch \
-gds $GDS_FILE \
-topcell $TOP_CELL \
-rules $DRC_RULE \
-report $DRC_REPORT > $DRC_LOG 2>&1
# 5. 运行结果检查
if [ $? -eq 0 ]; then
echo "===== DRC运行完成!请查看报告:$DRC_REPORT ====="
else
echo "===== DRC运行失败!请查看日志:$DRC_LOG ====="
exit 1
fi
2. run_lvs.sh(LVS 运行脚本)¶
#!/bin/bash
# 功能:一键运行Calibre LVS(适配SMIC28HPM v1.8)
# 作者:CAD运维
# 用法:./run_lvs.sh [版图GDS文件] [原理图网表] [顶层单元名]
# 1. 参数检查
if [ $# -ne 3 ]; then
echo "用法错误!正确用法:./run_lvs.sh <GDS文件> <原理图网表> <顶层单元名>"
exit 1
fi
GDS_FILE=$1
SCH_NETLIST=$2
TOP_CELL=$3
# 2. 环境变量检查
if [ -z "$CALIBRE_SMIC28HPM_V180" ]; then
echo "错误:未加载SMIC28HPM v1.8 PDK环境!"
echo "请执行:source /etc/profile.d/calibre_pdk.sh"
exit 1
fi
# 3. 定义核心路径
LVS_RULE=${CALIBRE_SMIC28HPM_V180}/lvs/main.lvs
LVS_REPORT=${TOP_CELL}_lvs_report.txt
LVS_LOG=${TOP_CELL}_lvs.log
# 4. 执行LVS
echo "===== 开始运行Calibre LVS ====="
echo "GDS文件:$GDS_FILE"
echo "原理图网表:$SCH_NETLIST"
echo "顶层单元:$TOP_CELL"
echo "规则文件:$LVS_RULE"
echo "报告输出:$LVS_REPORT"
calibre -lvs -hier -batch \
-gds $GDS_FILE \
-schematic $SCH_NETLIST \
-topcell $TOP_CELL \
-rules $LVS_RULE \
-report $LVS_REPORT > $LVS_LOG 2>&1
# 5. 结果检查(提取PASSED/FAILED关键词)
LVS_RESULT=$(grep -i "lvs [pass|fail]" $LVS_REPORT | tail -1 | awk '{print $2}')
if [ "$LVS_RESULT" = "PASSED" ]; then
echo "===== LVS验证通过!====="
elif [ "$LVS_RESULT" = "FAILED" ]; then
echo "===== LVS验证失败!请查看报告:$LVS_REPORT ====="
exit 1
else
echo "===== LVS运行异常!请查看日志:$LVS_LOG ====="
exit 1
fi
3. run_pex.sh(PEX 运行脚本)¶
#!/bin/bash
# 功能:一键运行Calibre PEX(适配SMIC28HPM v1.8)
# 作者:CAD运维
# 用法:./run_pex.sh [版图GDS文件] [原理图网表] [顶层单元名]
# 1. 参数检查
if [ $# -ne 3 ]; then
echo "用法错误!正确用法:./run_pex.sh <GDS文件> <原理图网表> <顶层单元名>"
exit 1
fi
GDS_FILE=$1
SCH_NETLIST=$2
TOP_CELL=$3
# 2. 环境变量检查
if [ -z "$CALIBRE_SMIC28HPM_V180" ]; then
echo "错误:未加载SMIC28HPM v1.8 PDK环境!"
echo "请执行:source /etc/profile.d/calibre_pdk.sh"
exit 1
fi
# 3. 定义核心路径
PEX_RULE=${CALIBRE_SMIC28HPM_V180}/pex/main.pex
PEX_OUTPUT=${TOP_CELL}_parasitic.sp
PEX_LOG=${TOP_CELL}_pex.log
# 4. 执行PEX(提取RC寄生参数,输出SPICE格式网表)
echo "===== 开始运行Calibre PEX ====="
echo "GDS文件:$GDS_FILE"
echo "原理图网表:$SCH_NETLIST"
echo "顶层单元:$TOP_CELL"
echo "规则文件:$PEX_RULE"
echo "寄生网表输出:$PEX_OUTPUT"
calibre -pex -hier -batch \
-gds $GDS_FILE \
-schematic $SCH_NETLIST \
-topcell $TOP_CELL \
-rules $PEX_RULE \
-pex_netlist $PEX_OUTPUT > $PEX_LOG 2>&1
# 5. 结果检查
if [ -f "$PEX_OUTPUT" ] && [ -s "$PEX_OUTPUT" ]; then
echo "===== PEX提取完成!寄生网表:$PEX_OUTPUT ====="
# 检查网表语法(简单校验)
if grep -q "ERROR" $PEX_OUTPUT; then
echo "警告:寄生网表包含ERROR关键词,请检查!"
fi
else
echo "===== PEX提取失败!请查看日志:$PEX_LOG ====="
exit 1
fi
6 PDK + Calibre 环境变量清单¶
| 环境变量名 | 取值示例 | 用途说明 | 适用场景 |
|---|---|---|---|
| PDK_ROOT | /cad/PDK/SMIC28HPM/1.8.0 | PDK 根路径(所有组件的基础路径) | DRC/LVS/PEX |
| CALIBRE_ROOT | /cad/eda/Calibre/2022.1 | Calibre 工具安装根路径 | 所有 |
| CALIBRE_SMIC28HPM_V180 | /cad/Calibre/SMIC28HPM/1.8.0 | 该工艺版本 Calibre 规则文件根路径 | 所有 |
| DRC_RULE_FILE | ${CALIBRE_SMIC28HPM_V180}/drc/main.drc | DRC 核心规则文件路径 | DRC |
| LVS_RULE_FILE | ${CALIBRE_SMIC28HPM_V180}/lvs/main.lvs | LVS 核心规则文件路径 | LVS |
| LVS_DEVICE_TBL | ${CALIBRE_SMIC28HPM_V180}/lvs/device.tbl | LVS 器件映射表路径 | LVS |
| PEX_RULE_FILE | ${CALIBRE_SMIC28HPM_V180}/pex/main.pex | PEX 核心规则文件路径 | PEX |
| PEX_OUTPUT_FORMAT | SPICE | 寄生网表输出格式(SPICE/Verilog) | PEX |
| PDK_TECHFILE | ${PDK_ROOT}/tech/smic28hpm.tf | PDK 工艺文件路径(层定义 / 设计规则) | 所有 |
| PDK_LAYER_MAP | ${PDK_ROOT}/calibre/layer.map | 层映射文件路径(Virtuoso↔Calibre) | DRC/LVS/PEX |
| CALIBRE_LOG_DIR | /tmp/calibre_logs | Calibre 运行日志存储路径 | 所有 |
| PDK_MODEL_PATH | ${PDK_ROOT}/models/spice | SPICE 模型文件路径(PEX 后仿依赖) | PEX |
7 环境变量加载说明¶
-
全局加载:写入
/etc/profile.d/calibre_pdk.sh,所有用户登录自动加载; -
按项目加载:通过 module 工具管理(示例):
tcl
# modulefile示例:/cad/modulefiles/pdks/SMIC28HPM_v1.8.0
#%Module1.0
proc ModulesHelp { } {
puts stderr "加载SMIC28HPM v1.8.0 PDK + Calibre环境"
}
module-whatis "SMIC28HPM v1.8.0 PDK + Calibre 2022.1"
setenv PDK_ROOT /cad/PDK/SMIC28HPM/1.8.0
setenv CALIBRE_SMIC28HPM_V180 /cad/Calibre/SMIC28HPM/1.8.0
prepend-path PATH $CALIBRE_ROOT/bin
- 设计师使用:
module load pdks/SMIC28HPM_v1.8.0一键加载。
8 总结¶
- 部署核心:先标准化 PDK/Calibre 路径,再固化规则文件路径,最后封装一键脚本,确保所有设计师环境一致;
- 验证关键:必须通过厂商 testcase 和基础单元(如反相器)验证,确保 DRC/LVS/PEX 功能正常;
- 运维重点:权限管控(按项目组划分)、日志监控、版本兼容(PDK 与 Calibre 版本匹配),同时保留回滚能力。