同步复位:只有在时钟上升沿到来的时,复位信号才有效。
例子:always @ (posedge clk)//同步复位
同步复位的优势:只在时钟上升沿判断系统是否复位,从而降低了亚稳态出现的概率。
同步复位的劣势:需要消耗更多的器件资源。没有使用寄存器的清零端,是将rst_n作为输入逻辑的使能信号,经过一个数据选择器后,输出到寄存器输入端口(消耗更多的资源)。
同步复位例子coding和对应的RTL视图,存在明显的资源开销大
同步复位例子代码
同步复位RTL图:将rst_n作为输入逻辑的使能信号,经过一个数据选择器后,输出到寄存器输入端口
异步复位:无论时钟上升沿是否到来,只要复位信号有效,就对系统进行复位。
例子:always @ (posedge clk, negedge rst_n)//异步复位
异复位的优势:FPGA的寄存器有支持异步复位的专用接口,无需额外消耗期间资源(RTL视图的CLR接口)。
异步复位的劣势:增加了亚稳态出现的概率。比如:在复位信号,由复位状态跳变置位状态时,上升沿刚好到来,数据和时钟不满足建立和保持关系,出现亚稳态。
异步复位例子coding和对应的RTL视图,节约资源开销
异步复位例子代码
异步复位RTL图:
总结:同步复位浪费资源,有效避免亚稳态问题,rst_n作为外部输出信号的使能信号。
异步复位节约资源,增加亚稳态出现的概率,利用寄存器的专用接口CLR,实现异步复位。