前言
复位保护模块,是在单系统进行动态复位的过程中,对接口进行硬性逻辑保护,避免异步复位过程中的毛刺对周围系统产生影响的模块。一般而言,简单的单系统动态复位流程可以归纳为:
- 停止业务功能,收齐接口上的rsp,进入待复位状态;
- 使能复位保护,通过逻辑避免毛刺和误触信号发往对外总线;
- 进行系统复位;
- 撤离系统复位;
- 撤销复位保护,重新开始工作。
显然,复位保护所处的阶段是异步复位拉低之前和同步释放之后。
对外输出valid
在复位期间由于复位信号到达不同寄存器的时间不同,加之组合逻辑路径,可能会产生错误的valid信号对外输出。显然在本系统单独复位的场景下,是不应该有对外的valid输出的,因此在复位前,需要将对外输出的valid信号&&0操作,确保复位和解复位期间没有valid误触发。
对内输入的ready
进入复位的阶段,对内输入的ready是可以不做处理的,因为即使复位时出现了对外valid的误触发,系统也马上就会进入复位状态了不会有任何影响。
在解复位阶段,合理的流程是能够通过复位同步撤离和时钟降频等手段来保证系统内的寄存器同一拍解复位,在内部不会产生valid误触。因此,对内输入的rea