設計來自《FPGA設計實戰演練(高級技巧篇)》
取同步復位和異步復位的優勢,避其短處。設計了一種同步化異步復位電路,給出同步復位和異步復位的優缺點,並給出原理圖和verilog代碼。
1.同步復位
優點:易於時序分析和仿真
缺點:要求復位信號的脈衝寬度滿足一定要求,以保證復位的時鐘沿復位信號是有效的,比異步復位慢
2.異步復位
優點:邏輯資源上帶有異步復位端口,資源得以充分利用。相應速度快
缺點:對噪聲敏感,存在亞穩態問題,
3.異步復位同步化
異步復位直接連接到寄存器CLR端口上,使得復位立即生效。當復位撤出時,一個邏輯“1”從同步器被時鐘輸出用來同步地釋放後續寄存器的復位,所以在這種結構中,設計的異步復位被同步的撤除,
module reset(
input clock,
input reset_n,
input data_a,
input data_b,
output out_a,
output out_b
);
reg reg1,reg2;
reg reg3,reg4;
wire rst_n;
assign out_a = reg1;
assign out_b = reg2;
assign rst_n = reg4;
always@(posedge clock or negedge reset_n)
begin
if(!reset_n)
begin
reg3 <= 1'b0;
reg4 <= 1'b0;
end
else
begin
reg3 <= 1'b1;
reg4 <= reg3;
end
end
always@(posedge clock or negedge rst_n)
begin
if(rst_n)
begin
reg1 <= 1'b0;
reg2 <= 1'b0;
end
else
begin
reg1 <= data_a;
reg2 <= data_b;
end
end
endmodule