在进行大规模或复杂层次结构的集成电路仿真时,设计人员有时会遇到如下警告信息:
WARNING (SPECTRE-294): The number of signals saved (83068) is too high and may slow down the initialization process. Remove the unnecessary signals to speed up the initialization.
这个警告明确指出,所保存的信号数量(本例中为 83,068 个)已超过了仿真器建议的阈值,这不仅会拖慢仿真的初始化阶段,还会对后续的数据存储和波形查看造成严重负担。本文将深入解析该警告的原因并提供具体的优化策略。
1. 为何会出现 SPECTRE-294?
Spectre 仿真器在开始数值计算之前,需要完成一系列初始化工作,包括网表解析、器件参数计算以及信号映射(Signal Mapping)。
当用户通过 save 命令或 ADE 界面设置了过于宽泛的保存策略(如 save=all 或 save=allpub)时,仿真器必须为每一个待保存的节点、电流或参数在内存中创建对应的数据结构。
- 性能损耗点:
- 初始化延迟:Spectre 需要花费大量 CPU 时间来处理和分配这数万甚至数十万个信号。
- 内存占用:信号数量越多,仿真进程占用的内存(RAM)就越大。
- 磁盘 I/O 瓶颈:仿真产生的 PSF/SSD 文件会变得异常巨大(动辄数百 GB),导致波形查看器 (ViVA) 加载缓慢。
通常,该警告的触发阈值在 50,000 到 100,000 个信号之间,这取决于具体的工具版本。
2. 核心解决方法:精简保存列表
A. 从 “Save All” 转向 “Selected” (ADE GUI)
许多工程师习惯将 Outputs -> Save All 中的 save 选项设为 allpub。在大型设计中,这是由于层级过深导致的“信号爆炸”的主要原因。
操作建议:
- 在 ADE Explorer/Assembler 中,将
save设置为selected。 - 使用 Outputs -> To Be Saved -> Select On Schematic,在电路图中仅点击关键的节点(如 I/O、电源轨、时钟线)。
B. 使用 depth 参数限制保存深度
如果你确实需要保存整个设计的信号,但不希望深入到晶体管内部的寄生节点,可以使用 depth 参数。
语法示例(在 save.scs 文件中):
// 仅保存顶层及向下 3 层的所有电压信号
save * depth=3
C. 过滤寄生网络节点
开启 filter=rc 可以自动过滤掉仅连接到寄生电阻电容的内部节点。这些节点在后仿真(Post-Layout)中数量极其庞大,通常不需要直接查看。
3. 进阶调优:调整工具阈值
如果你确定需要保存这些信号(例如在全芯片 EMIR 分析或大型混合信号仿真中),可以通过以下环境设置来控制 Spectre 的告警行为:
修改环境变量 (spectre.envOpts)
在 Virtuoso CIW 或 .cdsinit 文件中设置以下 SKILL 命令,可以提高警告触发的上限:
; 将阈值提高到 150,000
envSetVal("spectre.envOpts" "totalSignalsToSaveLimit" 'string "150000")
命令行控制
在后端运行时,部分版本的 Spectre 也支持在 options 语句中通过 saveOptions 进行微调(需参考具体版本的 Product Documentation)。
4. 最佳实践 Checklist
为了确保高效仿真,建议在投片前检查以下设置:
- 检查全局保存级别:优先使用
selected,而非allpub。 - 手动删除无效 Save 语句:定期清理
save.scs或模拟设置中遗留的过期信号名。 - 关注 currents 保存:除非必须查看电流,否则将
currents设置为none。 - 利用时间窗口:如果只关心特定时间段的波形,使用
time_window=[t1 t2]减少瞬态仿真的数据量。
5. 参考资料
- Cadence Rapid Adoption Kit: Using Spectre SAVE Effectively
- Troubleshooting Support Article: Article 20501907 - Spectre Simulation Error and Warning Messages
- Virtuoso ADE Explorer User Guide: Environment Variables Section (Spectre.envOpts)
建议截图方案 (Suggested Screenshots)
- ADE Save All 界面:展示
Save Options窗口中save选项的下拉菜单。 - Schematic Selection:展示在原理图中高亮显示被选中保存的网络。
- Log Window:SPECTRE-294 警告在仿真 log 中的具体位置。
[!TIP] 合理配置
save策略不仅能解决 SPECTRE-294 告警,通常还能将仿真速度提升 10%-30%,并节省数十 GB 的存储空间。