本资料汇集了门级网表仿真的核心概念和技巧,旨在为工程师提供全面的基础知识指导,帮助理解并优化电路设计验证过程。
### 门级网表仿真基本知识点整理
#### 1. 术语及概念解析
##### 1.1 术语解释
- **GLS (Gate-Level Simulation)**:又称后仿真,是在综合后的门级网表上进行的功能验证。
- **SDF (Standard Delay Format)**:是一种用于存储延时信息的标准格式文件,常用于门级仿真中。
- **Setup Time**:在时钟边沿到来之前数据必须稳定的时间。
- **Hold Time**:在时钟边沿到达之后数据需要保持不变的时间长度。
- **Arrival Time**:信号沿着路径传递到接收触发器的时刻。
- **Required Time**:指时钟信号达到触发器输入端的时间点。
- **Slack**:指的是 Required Time 和 Arrival Time 之间的差值。正数表示满足时间要求,负数则意味着出现违反规定的情况。
- **STA (Static Timing Analysis) 中的数据路径**:
- Input to Register (Input 2 Reg)
- Register to Register (Reg 2 Reg)
- Register to Output (Reg 2 Output)
- Input to Output (Input 2 Output)
- **Timing Constraints Exceptions**:时序约束中的例外情况,包括 false path(虚拟路径)、multi-cycle path(多周期路径)、minmax path(最小最大路径)。
- **Clock Latency**:从时钟源到触发器输入端的延时时间。
- **Clock Skew**:同一时钟信号到达不同触发器的时间差异。
- **Clock Uncertainty**:由于抖动和偏移造成的相对于理想情况下的不确定性。
- **Cell Delay 或 Propagation Delay**:信号在单元内部从输入传播到输出所需的时间。
- **Net Delay**:信号通过连线从一个单元的输出传递至下一个单元输入端所经历的延时时间。
- **Drive Strength**:描述某个逻辑门对其自身输出负载充电或放电能力的一个指标。
- **Clock Gating**:在时钟树中添加额外逻辑以减少电路动态功耗的技术手段。
- **OCV (On-Chip Variation)**:由于工艺、电压和温度变化导致的芯片内不同区域间延时差异。通常通过derate因子来模拟,使得快速路径变得更快,慢速路径则变得更慢。
- **Useful Skew**:在时钟信号传输过程中故意引入的时间偏移量,用于改善setup timing(建立时间)。
- **Recovery Time**:异步信号应在下一个时钟边沿前稳定下来所需的时间长度。
- **Removal Time**:异步信号需在上一个时钟边缘后保持稳定的一段时间长度。
- **Cross Talk**:相邻导线之间不希望发生的电容耦合作用导致的干扰现象。
- **Virtual Clock**:用于设置输入输出延时的虚拟时钟。
##### 1.2 后仿真的意义
相比RTL仿真,门级仿真需要更多的计算资源。然而它是验证电路设计中关键步骤之一。随着STA工具的应用普及化,尽管如此,门级模拟的重要性并未减少,因为:
- 它可以检查和保证所有时序约束的完整性。
- 对于异步逻辑电路而言,由于其复杂性可能使传统STA工具有限效用,在这类问题上进行验证尤为重要。
- 确保综合、布局布线过程中的正确无误,并确认网表的完整性和准确性。
- 为后续流程如功耗分析和电压降分析提供准确波形数据支持。
- 验证测试向量的有效性,确保DFT逻辑设计正确。
##### 1.3 仿真分类
- **前仿**:不带时序反标的门级仿真,即零延时模拟,通常基于综合后的网表进行。
- **后仿**:带有完整时序信息的门级仿真,基于布局布线后的最终版图执行。
#### 2. 仿真选项详解
在启动GLS过程中可以使用以下命令来调整行为:
- **+nospecify**:忽略库文件中定义的所有延时。
- **+delay_mode_zero**:将所有标准单元的延迟设置为0。
- **+notimingcheck**:关闭诸如setup和hold等检查。
进行PR网表后仿真,需要通过SDF文件向模拟器提供各个逻辑门之间的具体延时信息以及触发器D端至Q端的传播时间。