同步复位(推荐使用) 
  优点: 
    能够避免毛刺的产生;  
    能做recovery 和removal时序检查(recovery 和removal能够被timeQuest analyzer Recovery and    Removal Analysis分析)。 
  缺点: 
    当时钟丢失时,不能复位内部逻辑。 
异步复位(不推荐使用) 
    优点: 
      当时钟丢失时,能复位内部逻辑。 
    缺点: 
      不能避免毛刺的产生; 
      不能做recovery 和removal时序检查; 
异步复位同步撤离(推荐使用) 
    优点: 
能避免纯异步或纯同步复位的潜在问题。 它是FPGA设计中最受欢迎的复位,Altera建议使用这种复位方法。这种复位在使用前需要同步到各个使用时钟域。为了减少两个同步寄存器之间的亚稳态,这两个寄存器的位置应该靠的很近,已减少走线延迟。    Synchronized Asynchronous Reset  Verilog Code Example: module prac ( 
        clk, 
        rst_n, 
        din, 
        dout 
    ); 
    input        clk; 
    input        rst_n; 
    input        din; 
    output       dout; 
    reg            reg1; 
    reg            reg2; 
    reg            reg3; 
    assign    dout    = reg1; 
    assign    syn_rst_n    = reg4; always @ (posedge clk or negedge rst_n) 
    begin 
        if (!rst_n) 
            begin 
                reg3    <= 1'b0; 
                reg4    <= 1'b0; 
            end 
        else 
            begin 
                reg3    <= 1'b1; 
                reg4    <= reg3;  
  
            end 
    end     
 always @ (posedge clk or negedge syn_rst_n) 
    begin 
        if (!syn_rst_n) 
            begin 
                reg1    <= 1'b0; 
            end 
        else 
            begin 
                reg1    <= din; 
            end 
    end 
endmodule  
 |