同步復位:就是指復位信號只有在時鐘上升沿到來時,才能有效,否則,無法完成對系統的復位工作。
~~~verilog
module sync_rst(
input clk_i,
input rst_n,
input din,
output reg dout
);
always @(posedge clk_i) begin
if(!rst_n)
dout <= 0;
else
dout <= din;
end
endmodule
~~~

異步復位:無論時鐘是否到來,主要復位信號有效,就對系統進行復位。
~~~verilog
//Asynchronous Reset
module async_rst(
input clk_i,
input rst_n,
input din,
output reg dout
);
always @(posedge clk_i or negedge rst_n) begin
if(!rst_n)
dout <= 0;
else
dout <= din;
end
endmodule
~~~

## **同步復位異步復位優缺點比較**
**同步復位的優點:**
* 一般能夠確保電路是百分之百同步的。
* 確保復位只發生在有效時鐘沿,可以作為過濾掉毛刺的手段。
**同步復位的缺點:**
* 復位信號的有效時長必須大于時鐘周期,才能真正被系統識別并完成復位。同時還要考慮如:時鐘偏移、組合邏輯路徑延時、復位延時等因素。
* 由于大多數的廠商目標庫內的觸發器都只有異步復位端口,采用同步復位的話,就會耗費較多的邏輯資源。
**異步復位優點:**
* 異步復位信號識別方便,而且可以很方便的使用全局復位。
* 由于大多數的廠商目標庫內的觸發器都有異步復位端口,可以節約邏輯資源。
**異步復位缺點:**
* 復位信號容易受到毛刺的影響。
* 復位結束時刻恰在亞穩態窗口內時,無法決定現在的復位狀態是1還是0,會導致亞穩態。
## **異步復位同步釋放**
使用異步復位同步釋放就可以消除上述缺點。所謂異步復位,同步釋放就是在復位信號到來的時候不受時鐘信號的同步,而是在復位信號釋放的時候受到時鐘信號的同步。異步復位同步釋放的原理圖和代碼如下:
~~~verilog
1//Synchronized Asynchronous Reset 2
module sync_async_reset (
input clock,
input reset_n,
input data_a,
input data_b,
output out_a,
output out_b
);
reg reg1, reg2;
reg reg3, reg4;
assign out_a = reg1;
assign out_b = reg2;
assign rst_n = reg4;
always @ (posedge clock, 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, 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
~~~

- 空白目錄
- 流水線
- 流水線性能測評
- 計算機性能測評
- 流水線設計
- 購物車狀態機
- 序列檢測器
- 序列檢測10010
- 序列檢測10010帶圖
- 反相器
- 計數器
- 分頻電路
- 偶數分頻
- 奇數分頻
- 小數分頻
- 同步復位異步釋放all
- 對的-異步復位同步釋放原理
- 同步復位異步釋放
- 異步復位為什么要同步釋放 ?
- FPGA-異步復位同步釋放 通俗解釋
- 同步復位
- 狀態機
- 狀態機的分類
- 狀態機5個要素
- FIFO
- 異步fifo中同步為什么要用兩級觸發器
- 亞穩態
- 亞穩態的產生機理、消除辦法 (可以理解為什么打拍)
- 面向對象思想
- 為什么D觸發器有setup time和hold time的要求
- Tsu,Tco,Th,Tpd的概念
- verilog
- 自啟動
- 毛刺
- 馮諾依曼