背景

当时面试百度昆仑芯的时候,面试官问我这样一个场景。各Corner下的Timing已经Clean了,Formality已经保证RTL和门电路保持一致了,为什么要需要去做GLS(Gate Level Simulation)呢?

当时问的一下愣住,没想明白,下来搜集资料发现以下几点原因。其中部分原因自己也还不能理解到位,期待后续实际工作中加深理解。

原因

GLS

  1. 解决STA工具的局限性,如STA工具无法分析异步接口信号,STA工具也会放宽对False Path和Multi-cycle Path的检查,用GLS来复查一下;
  2. 核实一下系统初始化是否正常进行,复位链是否正确;
  3. 验证所有电源域的上电和复位操作是否符合要求,并且检查设计不依赖于设计的初始条件;
  4. 利用最坏和最佳的时序信息的组合来揭示边缘敏感信号上的Glitch情况;
  5. 执行DFT验证,因为扫描链是在RTL综合后插入的;
  6. 验证时钟树综合(CTS)是否满足要求;(Skew、Jitter等)
  7. 获取翻转率参数来更准确地估计功耗;
  8. 在RTL或者GLS中以悲观/乐观来分析X态;(不太理解)
  9. 检查最终的性能以确保设计工作在所需的频率,路径上实际的延迟需考虑在内,包括部分结构元素不被STA或者Formality检查,或者在PR阶段在路径上插入的Buffer或者其他的电路元素。