付費限定

[Verilog] synchronus reset vs asyncronus reset reg

更新於 2024/10/17閱讀時間約 6 分鐘

sync rst 和 async rst reg 在rtl上只有差在always block的condition不同,但是在合成上卻是兩種不同type的register,有著不同的優缺

sync reset reg :

always @ (postedge clk) begin
if (!rst_n) begin
a <= 0;
else
a <= input;
end
end

async reset reg :

always @ (postedge clk or negedge rst_n) begin
if (!rst_n) begin
a <= 0;
else
a <= input;
end
end
raw-image


對於sync reset 而言,合成出來的結果是一個reg D in前接一個mux,

mux會由rst訊號來決定選0或是input作為D的輸入.

對於async reset而言,合成出來的結果是一個多一根reset pin的reg,

藉由這隻reset pin的trigger直接把reg洗成default vaule.


對於這兩種reg type有甚麼差呢?

作為面試答案的話可能有下面幾點比較

async reset :

  1. rst_n訊號assert時,當reg收到rst_n=0時,就會開始把reg設定回reset vaule,較即時
  2. 回復reset value不需要clk的介入,無時無刻都屬於可控狀態
  3. Area 較小
  4. 當reset wire 出現glitch或noise時抵抗力較差, 如果有一個glitch打出到reg reset pin上,value會瞬間reset掉導致function出現錯誤 <- 有甚麼方法可以盡量避免glitch的影響?下集介紹
  5. reset 訊號沒介入data path的timing,對於setup/hold time check較容易收斂一些
  6. 長reset tree難度較高 <- 甚麼是reset tree和一般討論的clk tree有甚麼不同?下集介紹


sync reset :

  1. rst_n 訊號assert需要維持較久,須等到reg收到clk postedge trigger時,reset vaule才會生效
  2. rst_n的功能需要有clk才能生效,module會有先天上的限制,在沒有clk前是無法做reset的,對於有clk gating的電路,假如發生系統reset時會沒有clk讓reg清回reset value
  3. Area 較大
  4. 抵擋reset wire glitch能力較強,glitch出現同時必須配合clk碰到edge trigger的剎那,發生機率較低
  5. reset 訊號介入data path的timing,對於setup/hold time check時必須綜合考慮reset對於timing的影響
  6. reset tree在先前修setup/hold time check時已經和clk tree解過timing問題,長reset tree容易


面試官回頭思考一下,

了解了上述優缺點,答案非常精闢漂亮,

很滿意地問了下一題,在寫design時要怎麼去挑選要用哪種type的reset?

...

..

.


對於這個問題來說,

以行動支持創作者!付費即可解鎖
本篇內容共 2021 字、2 則留言,僅發佈於IC面試專班你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
今日無操作, 不知道是系統更新還是怎樣,過去可以複製貼上的功能被修改掉了,需要思考一下如何快速更新文章了。
Thumbnail
可能包含敏感內容
找一個適合自己的策略。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
ts-rest 可以實現從服務器到客戶端的全型別安全,可以有效降低前後端溝通血流成河的機率。(´,,•ω•,,)
Thumbnail
本章節提供了關於Typescript中流程控制元素的詳細介紹,包括if, else if, else語句,三元運算子,switch語句,各種for迴圈,while迴圈,循環嵌套和控制迴圈語句(break,continue和標籤)的使用。
Thumbnail
非同步程式設計(Asynchronous programming) 或是簡單的稱之為 async,它是一種並發程式模型(concurrent programming model),其目的就是讓多個任務能同時在作業系統的執行緒上執行,並透過 async/.await 保留同步。
Thumbnail
為什麼需要非同步? 我們在「【Web微知識系列】 Web Workers」有介紹到在瀏覽器可執行腳本Javascript環境底下如何完成非同步的操作, 主要是為了讓任務更有效率的進行, 不會因為一個非常耗時的工作堵塞住整個服務, 導致無法服務他人的窘境。 大家應該經常在餐廳裡會看到服務員協
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
今日無操作, 不知道是系統更新還是怎樣,過去可以複製貼上的功能被修改掉了,需要思考一下如何快速更新文章了。
Thumbnail
可能包含敏感內容
找一個適合自己的策略。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
ts-rest 可以實現從服務器到客戶端的全型別安全,可以有效降低前後端溝通血流成河的機率。(´,,•ω•,,)
Thumbnail
本章節提供了關於Typescript中流程控制元素的詳細介紹,包括if, else if, else語句,三元運算子,switch語句,各種for迴圈,while迴圈,循環嵌套和控制迴圈語句(break,continue和標籤)的使用。
Thumbnail
非同步程式設計(Asynchronous programming) 或是簡單的稱之為 async,它是一種並發程式模型(concurrent programming model),其目的就是讓多個任務能同時在作業系統的執行緒上執行,並透過 async/.await 保留同步。
Thumbnail
為什麼需要非同步? 我們在「【Web微知識系列】 Web Workers」有介紹到在瀏覽器可執行腳本Javascript環境底下如何完成非同步的操作, 主要是為了讓任務更有效率的進行, 不會因為一個非常耗時的工作堵塞住整個服務, 導致無法服務他人的窘境。 大家應該經常在餐廳裡會看到服務員協