复位设计:异步断言、同步释放与恢复
约 14 分钟
复位让系统进入已知控制状态,但复位网络本身也是异步输入。异步复位能立即响应,若在时钟边沿附近释放,会违反恢复/移除时间,让不同寄存器不同拍退出。
异步断言、同步释放
常见做法是复位可异步拉低,每个时钟域用本地同步链释放。这样紧急进入复位快,退出则对齐本地域边沿。每个时钟域需要自己的释放同步,不能一条同步后跨全部域。
不是每个寄存器都要复位
数据流水寄存器可由有效位屏蔽,全部加复位会增加布线、面积和时序负担。必须复位的是控制状态、接口可见标志和安全输出;数据在被标有效前可未知。
复位顺序
PLL锁定、存储校准、电源良好和外设准备可能有依赖。用明确状态机管理启动,而不是假设固定延时永远够。超时和失败进入可诊断状态。
复位期间输出
外部引脚、总线请求和执行器必须保持安全值。组合逻辑若直接依赖未复位数据,复位状态仍可能毛刺。
验证场景
在任意时钟相位、传输进行中和局部掉电时触发复位;检查退出后无旧请求重放、FIFO指针一致且状态最终可用。
复位释放也应纳入静态时序与CDC检查。
练习:画三时钟域复位树与启动状态机,列出五个中途复位测试。
小纸条
异步复位为什么常要求同步释放?