[Verilog] 10分鐘看懂CDC問題

閱讀時間約 3 分鐘

CDC (Clock Domain Crossing) 屬於當今IC design中非常常見的問題,

雖然增加了Design的難度,

卻因為它所帶來的諸多優勢令人難以放棄,

舉例來說,

假如module A的spec對於performance的需求 遠小於module B,

那麼module A和module B的main clk綁著同一隻的話,

強迫著module A 運作到跟module B一樣的效能,

就出現了over spec的現象,

可能會導致cost上升,area上升,power上升,working tempture上升,timing變難收斂等,

因此現今design中較流行給他一個剛剛好的氛圍,

CDC的重要性也就逐漸攀高.


然而CDC本身的內涵為

兩個register間的Data需要做傳輸,但是這兩個register所使用的clk卻是沒有關聯的,

也就是經常看到大家討論的Async電路

raw-image



至於async電路會有甚麼問題呢,

為甚麼要特別給他一個CDC的專用術語作為探討,

原因是因為Async電路沒有辦法被STA cover,

STA的內涵是setup time及hold time的check,

也就是跨clk domain的情況下兩個setup/hold time沒辦法被收斂,

至於原因先留給大家思考一下.


那setup/hold time沒辦法被check又會有甚麼問題呢?

如果大家有看過其他篇的內容應該大概有點感覺,

當setup / hold time沒辦法check的話意味著data從reg_A到reg_B的timing是沒辦法被保證在1T的時間內完成,

看到這邊不知道大家有沒有辦法回答了上面提出的問題,

clk domain crossing的情況下setup/hold沒辦法被收斂,

因為STA確保的是Timing要在1T內完成,

但是這時候reg_A和reg_B所使用的clk不同隻,

這時候的1T該用reg_A來判斷或用reg_B來判斷,

沒有答案,

因為這個case不再STA當初設計的範圍內,

所以無法靠STA的手法來保證這邊的function沒問題.


因此為了要讓function在沒有辦法靠STA驗證的保證下還能work,

也就開啟了後續CDC的探討


# CDC violation #CDC issue # clk domain crossing #metastable


數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Voltage island 字面上的意思為電壓島, 概念上是把不同function的module給予不同的driving volatge 然而在ic design中有個rule, driving voltage 越高就能讓logic動的越快 也就是說,當你希望邏輯運算的越快,原則上就需
對於現在的IC來說, 除了追求性能外另外一個重點就是如何降低工耗, 以APPLE 最新的A18 Core來說對比A16的power consumption降低了35%, 那對於ic design的過程中有甚麼手法有機會讓chip的功耗降低呢 在這邊來探討一下 以現今主流的low p
前篇內容提到說,async reset有著打出glitch的風險, 但除了glitch之外, 如果reset deassert的時間點不對的話可是造出大量metastable的data, 直接導致function fail, 至於assert的時間點因為是async reset,所以何時出發
面試必考題, 人人說的一口好setup time / hold time 但是除了公式外很沒有感覺, 小弟出一張嘴經年累月用心體會說說對這個timing設定的感想, 講一下我消化完對他的定義 setup time 指的是當訊號要被抓住前必須保持穩定幾秒 hold time 指的是當訊號被
數位IC裡我們關注的都是0或1, 大家都知道電腦是0101在做二進位的運算, 在晶片裡又是怎麼做到的? 實際上我們在設計晶片時,會給他一個VDD跟GND, VDD-GND給的是預期的Driving volatge, 像是5V或9V 以5V為例 0或1物理上就是目前的電壓靠近0V或5
IC設計流程大致如下 每個步驟都是必經過程,走完整個過程後輸出一版real chip |-----------------------| | 定SPEC | --- 決定 Function/clk period/製程liberary .
Voltage island 字面上的意思為電壓島, 概念上是把不同function的module給予不同的driving volatge 然而在ic design中有個rule, driving voltage 越高就能讓logic動的越快 也就是說,當你希望邏輯運算的越快,原則上就需
對於現在的IC來說, 除了追求性能外另外一個重點就是如何降低工耗, 以APPLE 最新的A18 Core來說對比A16的power consumption降低了35%, 那對於ic design的過程中有甚麼手法有機會讓chip的功耗降低呢 在這邊來探討一下 以現今主流的low p
前篇內容提到說,async reset有著打出glitch的風險, 但除了glitch之外, 如果reset deassert的時間點不對的話可是造出大量metastable的data, 直接導致function fail, 至於assert的時間點因為是async reset,所以何時出發
面試必考題, 人人說的一口好setup time / hold time 但是除了公式外很沒有感覺, 小弟出一張嘴經年累月用心體會說說對這個timing設定的感想, 講一下我消化完對他的定義 setup time 指的是當訊號要被抓住前必須保持穩定幾秒 hold time 指的是當訊號被
數位IC裡我們關注的都是0或1, 大家都知道電腦是0101在做二進位的運算, 在晶片裡又是怎麼做到的? 實際上我們在設計晶片時,會給他一個VDD跟GND, VDD-GND給的是預期的Driving volatge, 像是5V或9V 以5V為例 0或1物理上就是目前的電壓靠近0V或5
IC設計流程大致如下 每個步驟都是必經過程,走完整個過程後輸出一版real chip |-----------------------| | 定SPEC | --- 決定 Function/clk period/製程liberary .
你可能也想看
Google News 追蹤
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
IC設計流程大致如下 每個步驟都是必經過程,走完整個過程後輸出一版real chip |-----------------------| | 定SPEC | --- 決定 Function/clk period/製程liberary .
Thumbnail
最近觀察到許多網站有一個特性,就是有些網站會使用不同的模板做同一個關鍵字。 很多開發者在做產品的時候會有一個特性,就是會使用相同的模板。使用相同模板的好處不外乎是減少重複開發的時間、快速上站。 因為其實在程式開發中有很多功能可能是相似甚至是重複的。在這種情況下我們不應該重複去開發相同功能,而
Thumbnail
本文介紹了在網站開發中如何運用狀態機的原則和設計方法。通過具體案例分析,以及狀態和數據的區分,詳細介紹了狀態機的設計原則和應用。讀者可以通過本文瞭解如何將狀態機應用於實際的網站開發中。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在IT世界中,持續整合(CI)和持續部署(CD)已成為提高開發效率和確保高質量軟件交付的重要實踐。本文將探討CI/CD的基本概念,介紹市場上的主流工具,並提供實施這一流程的指南和最佳實踐。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
讓我在這篇文章總結一下前面對物件導向設計的討論,我們討論了物件導向的四個特性:繼承、抽象、多型、封裝,分析了它們的問題,並跟函數式編程的思維做比較。我們引入了與之相對應的特性:泛型、特性系統、模組化,有些特性雖然跟那四個特性很像,但在一些細微的地方有不同的詮釋,使得整體思考方式很不一樣。 「繼
物件導向設計的一個重點就是封裝,這有很多層面上的意義,但基本上就是控制物件的成員變數和方法的存取權。物件導向的封裝還跟繼承機制有關,這使得有一些時候我們逼不得已必須把函式定義在類別上,這種做法使得物件的功能變得難以拆解。封裝應該是模組的職責,並不需要再給物件相同的能力。 一般的模組系統就是把相
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
IC設計流程大致如下 每個步驟都是必經過程,走完整個過程後輸出一版real chip |-----------------------| | 定SPEC | --- 決定 Function/clk period/製程liberary .
Thumbnail
最近觀察到許多網站有一個特性,就是有些網站會使用不同的模板做同一個關鍵字。 很多開發者在做產品的時候會有一個特性,就是會使用相同的模板。使用相同模板的好處不外乎是減少重複開發的時間、快速上站。 因為其實在程式開發中有很多功能可能是相似甚至是重複的。在這種情況下我們不應該重複去開發相同功能,而
Thumbnail
本文介紹了在網站開發中如何運用狀態機的原則和設計方法。通過具體案例分析,以及狀態和數據的區分,詳細介紹了狀態機的設計原則和應用。讀者可以通過本文瞭解如何將狀態機應用於實際的網站開發中。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在IT世界中,持續整合(CI)和持續部署(CD)已成為提高開發效率和確保高質量軟件交付的重要實踐。本文將探討CI/CD的基本概念,介紹市場上的主流工具,並提供實施這一流程的指南和最佳實踐。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
讓我在這篇文章總結一下前面對物件導向設計的討論,我們討論了物件導向的四個特性:繼承、抽象、多型、封裝,分析了它們的問題,並跟函數式編程的思維做比較。我們引入了與之相對應的特性:泛型、特性系統、模組化,有些特性雖然跟那四個特性很像,但在一些細微的地方有不同的詮釋,使得整體思考方式很不一樣。 「繼
物件導向設計的一個重點就是封裝,這有很多層面上的意義,但基本上就是控制物件的成員變數和方法的存取權。物件導向的封裝還跟繼承機制有關,這使得有一些時候我們逼不得已必須把函式定義在類別上,這種做法使得物件的功能變得難以拆解。封裝應該是模組的職責,並不需要再給物件相同的能力。 一般的模組系統就是把相