芯片原厂必学课程 - 第七篇章 - IC 工具篇
07-06 SYNOPSYS SPYGLASS 技术
新芯设计:专注,积累,探索,挑战
文章目录
引言
本文主要是提供 Synopsys SpyGlass 的一些基本讲解,这是属于数字 IC 设计中代码级验证的工具技术。通过背景、必要性、功能点、工具描述、执行选项、环境结构来熟悉 SpyGlass 工具,协助我们更好的进行数字 IC 开发任务。对于具体的操作,可以基于 Linux OS 安装一个 SpyGlass,自动动手去搭建环境和撰写脚本,最终检查自己的 Verilog HDL 设计代码,体会一下适用于流片量产的 RTL 代码是怎样的一个标准
NOTES:本文来自《芯片原厂必学课程 - 第七篇章 - IC 工具篇》技术专栏
🌏 一、背景
- 芯片制程工艺提升,设计成本占比上升。
- 百万门级系统设计,迭代时间不断增加。
- 设计投入占比较大,影响成本时间性能。
🌏 二、必要性
- 如果没有 SpyGlass 工具支持,不完善的 RTL 代码就是芯片杀手的重大 BUG,例如组合逻辑的死循环,错误 FSM 的行为,亚稳态的产生等等。
- 如果没有 SpyGlass 工具支持,不完善的 RTL 代码就会导致较差设计的 PPA,例如未预期的冗余逻辑,复杂 FSM 的行为,Latch 的产生等等。
- 如果没有 SpyGlass 工具支持,不完善的 RTL 代码就会导致完成 UT/IT/ST/FPGA 验证的时间节点不断的延迟,最终错过量产上市的绝佳时机。
- 如果没有 SpyGlass 工具支持,不完善的 RTL 代码就是影响物理实现的关键因素,部分不可预测的性质会在 RTL Final 阶段出现,代价极高。
🌏 三、功能点
- 定位前期设计。
- 减少迭代时间。
- 可预测的设计。
🌏 四、工具描述
SpyGlass 是 Synopsys 的一个 RTL 交付平台。
Lint:Coding Style + Language Construct Usage + Simulation Performance + Synthesizability,即编码风格 + 代码语法 + 仿真性能 + 可综合性的组合,如下所示:
一、数据位宽不同;
二、信号多次赋值;
三、输入输出悬空;
四、嵌入综合脚本;
五、冗余敏感列表;
六、条件分支不全;
七、非理想的锁存。
CDC:Clock Domain Crossings,即跨时钟域,如下所示:
一、X 态,异步复位,同步释放;
二、多次同步,即同一信号,同一时钟的多次同步;
三、信号聚合,即以格雷码的方式,每次只跳变一个比特;
四、数据丢失,即慢采集快,导致丢失,信号延迟。
🌏 五、执行选项
(1), Lint_DC.
(2), Lint.
(3), CDC.
(4), DFT.
(5), Coding_Style.
(6), Power_Estimate.
🌏 六、目录结构
(1), hdl -> riscv_core -> rtl -> riscv_core.v + riscv_core.lst.
(2), hdl -> riscv_core -> spyglass -> rpt/ + sgdc/ + waive/ (with rtl).
(3), hdl -> spyglass -> ./aspy + ./aspy -gui (with top).
(4):
[1], rpt : 存储运行结果等的输出文件.
[2], sgdc : 存储时钟复位等的约束文件.
[3], waive: 存储警告错误等的过滤文件.