1.异步复位:是指复位信号和系统时钟信号的触发可以在任何时刻,二者相互独立。
异步复位举例:
1 always@(posedge clk or negedge rst_n)2 if(!rst_n)3 b<=1'b0;4 else5 b<=a;
2.同步复位:和异步复位相比,没有用到寄存器的CLR端口,synthesis出来的实际电路只是把复位信号rst_n作为输入逻辑的使能信号,那么这样同步复位势必会增加FPGA内部资源的消耗。
同步复位举例:
1 always@(posedge clk)2 if(!rst_n)3 b<=1'b0;4 else5 b<=a;
3.异步复位存在亚稳态问题
4.异步复位,同步释放
1 input clk; 2 input rst_n; 3 output rst_nr2; 4 reg rst_nr1,rst)nr2; 5 6 //两级层叠复位产生,低电平服务 7 always@(posedge clk or negedge rst_n) 8 if(!rst_n) 9 rst_nr1<=1'b0;10 else11 rst_nr1<=1'b1;12 13 always@(posedge clk or negedge rst_n)14 if(!rst_n)15 rst_nr2<=1'b0;16 else17 rst_nr2<=rst_nr1;
即解决了异步复位的的亚稳态问题,又解决了同步复位的资源消耗问题,其根本思想就是将异步信号同步化