同步复位(推荐使用)
优点:
能够避免毛刺的产生;
能做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