我用Verilog HDL描述的同步復位電路,為什么綜合出來的電路確是異步復位的呢?
代碼為:
module syn_reset(
input rst_n,
input clk,
input data_in,
output out
);
reg out;
always@(posedge clk)
begin
if(!rst_n)
out <= 1'b0;
else
out <= data_in;
end
endmodule
綜合出來的電路為:

多謝大佬能夠給出合理解釋?使用ISE綜合出來的電路為什么和我想的不一樣?
uj5u.com熱心網友回復:
把 rst_n 也加到敏感信號中試試看always@(negedge rst_n or posedge clk)
uj5u.com熱心網友回復:
多謝回復,如果rst_n放到敏感目錄里面就不是我測驗的目的了,那樣綜合出來的電路肯定是異步的,我想要的是同步復位,就是不用暫存器的專用復位埠clr。uj5u.com熱心網友回復:
多謝回復,將復位信號加入敏感串列中就不是我設計同步復位的目的了,按理說,綜合出來的電路圖應該沒有用到暫存器的復位端uj5u.com熱心網友回復:
把rst_n 與到資料上去,不然rstn 就是要慢一拍的uj5u.com熱心網友回復:
這個Verilog描述是沒問題的,用Quartus綜合出來的電路是對的:

uj5u.com熱心網友回復:
樓主有聯系方式嗎?uj5u.com熱心網友回復:
是因為ISE某些器件的D觸發器自帶了同步復位,所以看上去像異步復位。今天我們老師剛剛講過哈哈uj5u.com熱心網友回復:
應該搞成異步復位,同步釋放吧。uj5u.com熱心網友回復:
上樓說的有道理,和異步復位,同步釋放沒關系
uj5u.com熱心網友回復:
我的意思是,不太支持使用同步復位這種風格的代碼,更推薦使用異步復位同步釋放的代碼,這樣更容易滿足時序要求。uj5u.com熱心網友回復:
1、這個簡單的verilog同步復位描述是正確的。2、Quartus綜合的RTL圖也是正確的。
3、編譯后出來的chip p'lanner圖的暫存器就是帶異步復位管腳的。但是不應該認為同步復位到這個管腳。
這里有一篇文章介紹的比較詳細:
https://blog.csdn.net/huan09900990/article/details/79419686
uj5u.com熱心網友回復:
我的意思是,不太支持使用同步復位這種風格的代碼,更推薦使用異步復位同步釋放的代碼,這樣更容易滿足時序要求。
應該搞成異步復位,同步釋放吧。
上樓說的有道理,和異步復位,同步釋放沒關系
各位說的都對,就是沒針對原問題,一個簡單的暫存器復位例子而已
uj5u.com熱心網友回復:
我的意思是,不太支持使用同步復位這種風格的代碼,更推薦使用異步復位同步釋放的代碼,這樣更容易滿足時序要求。
應該搞成異步復位,同步釋放吧。
上樓說的有道理,和異步復位,同步釋放沒關系
各位說的都對,就是沒針對原問題,一個簡單的暫存器復位例子而已
除了原問題,咱還可以做點擴展嘛
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/35564.html
標籤:硬件使用
