描述同步复位和异步复位的区别及验证时的注意事项

解读

国内数字IC面试中,复位策略是“基本功”问题,却最能暴露候选人是否具备“验证思维”。
面试官不仅想听你背定义,更希望听到:

  1. 你对亚稳态、时钟域交叉(CDC)的敏感度;
  2. 能否在验证环境里主动构造“复位-时钟”组合场景,穷尽边界;
  3. 是否理解DFT/低功耗设计对复位网络的额外约束,并在验证方案里落地。
    回答时务必把“区别”与“验证注意”一一对应,体现“质量守门员”视角。

知识点

  1. 复位原理
    同步复位:复位信号只在有效时钟沿采样,与时钟严格对齐。
    异步复位:复位信号立即生效,与时钟无关;撤销时需做“异步复位同步释放”(Reset Synchronizer),防止亚稳态。

  2. 电路结构差异
    同步复位通常直接复用数据路径的触发器同步输入,面积小;但高扇出复位网络可能成为时序瓶颈。
    异步复位需插入专用复位端口,综合工具会识别为“异步set/reset”,面积略大,却可快速截断逻辑。

  3. 时序约束差异
    同步复位:SDC里当作普通data path,设setup/hold即可。
    异步复位:需set_reset_path、set_false_path(对纯异步段),同时定义recovery/removal;撤销路径必须做时钟域同步,否则CDC工具报RESET_ASYNC。

  4. 低功耗与DFT
    同步复位更易做“时钟门控+复位门控”,功耗友好;异步复位在DFT模式下需强制置0/1,防止扫描链移位时意外复位,验证必须覆盖“DFT_mode下异步复位有效性”。

  5. 验证关注项
    a. 功能正确性:复位值是否匹配RTL spec,寄存器模型是否同步更新。
    b. 时序健壮性:复位撤销是否在时钟沿±trecovery/tremoval窗口外。
    c. 亚稳态与CDC:异步复位撤销是否经过两级同步器,有无半周期毛刺。
    d. 功耗/电源域:复位网络是否跟随电源域开关,掉电域重新上电后复位状态机能否自恢复。
    e. 性能:高扇出同步复位网络是否造成时钟skew,影响max_freq。

答案

一、区别

  1. 生效时刻:同步复位依赖时钟沿,异步复位立即生效。
  2. 撤销风险:同步复位无亚稳态;异步复位若直接撤销,复位释放沿可能与时钟沿冲突,导致亚稳态。
  3. 电路面积:同步复位复用数据触发器,面积略省;异步复位需额外复位引脚及同步器,面积略增。
  4. 时序约束:同步复位只需setup/hold;异步复位需recovery/removal,并做reset synchronizer。
  5. 功耗/DFT:同步复位易门控,DFT友好;异步复位需额外控制,防止扫描移位误触发。

二、验证注意事项(与上述区别一一映射)

  1. 功能向量:
    ‑ 同步复位:在“时钟沿前一小段时间、后一小段时间”分别置起/撤销,检查是否只在沿上生效。
    ‑ 异步复位:脱离时钟,任意相位拉起,确认立即生效;撤销时必须采样到“同步释放”后的第一个时钟沿,寄存器值才跳变。

  2. 时序检查:
    ‑ 用$sdf_annotate反标带recovery/removal的SDF,跑gate_sim;若出现“r-/m-”违例,立即报bug。
    ‑ 对同步复位,用STA报告确认“reset tree skew < 0.3×时钟周期”,防止时钟门控使能窗口错位。

  3. 亚稳态与CDC:
    ‑ 在UVM环境里插入“glitch injector”,在复位同步器第一级D输入插入0.2×时钟周期的毛刺,看第二级是否过滤;若RTL未做两级同步,必现X传播,直接记CDC严重缺陷。
    ‑ 用Formal工具(Questa CDC或SpyGlass)做“reset_async_rule”,证明所有异步复位撤销路径都经过双触发器同步器。

  4. 功耗场景:
    ‑ 构建“电源关断→保持→上电→异步复位撤销”序列,检查掉电域寄存器在上电后是否被可靠复位;若电源控制器未在复位网络前上电,需报架构缺陷。

  5. DFT模式:
    ‑ 在scan_shift模式下,force dft_reset_disable=1,检查异步复位是否被钳位;若RTL漏掉钳位,扫描链移位时寄存器被复位,导致scan_pattern失效,记DFT严重缺陷。

  6. 性能回环:
    ‑ 跑max_freq_scan时,分别disable/enable同步复位网络,对比最差路径;若复位树skew导致时钟使能窗口缩小,频率下降>3%,需要求设计插入复位树缓冲器。

拓展思考

  1. 混合复位策略:国内先进SoC常采用“上电异步复位+运行期软复位(同步)”两级策略。验证时要证明“软复位”不会打断异步复位同步器,防止出现“复位-复位”竞争。
  2. 安全岛场景:车规芯片要求“安全岛”在主域掉电后仍保持状态。验证需覆盖“主域异步复位撤销而安全岛不复位”的交叉场景,确认岛内外寄存器值不污染。
  3. 低功耗仿真与Formal的联合收敛:用UPF描述电源域后,Formal工具对“断电域异步复位”常报 unreachable;此时需人工写cover property,证明上电后复位同步器能在10个周期内完成初始化,否则无法sign-off。
  4. 复位域交叉(RDC):国内14nm以下项目已开始单独签核RDC,验证团队需建立“复位-时钟”二维矩阵,用RDC工具检查“快复位域→慢时钟域”是否存在撤销脉冲被吞掉的风险,并补充专项向量。