付費限定

[Verilog] STA分析 - setup / hold violation 怎麼workaround

更新於 發佈於 閱讀時間約 5 分鐘

前面探討完setup time / hold time violation的原因跟解法,

來更進一步探討一下現實面,

實際ic design中,

我們有可能會碰到一個狀況,

synthesis過後path出現了setup time violation 或 hold time violation,

但離tape out的時辰不遠了,

在沒辦法完全解乾淨眼前的violatoin的情況下,

要如何做仲裁,哪些是重要的不解的話可能帶來的impact又是如何?

有沒有其他的方式來做workaround?

這邊來分享一下我個人的見解供大家參考看看

對於setup time violation來說

先來複習一下傳統的STA check formula

Tcycle + Tskew >= Tclk2Q_max + Tdata_max +Tsetup

raw-image

公式意涵為

左半部為clk走到終點的速度

右半部為data最晚走到終點的速度

clk 走到終點前,data必須已經到了 則可以看到meet的timing

反之則violation


因此,有了這個感覺後來想一下,

假如我在synthesis過後setup time violation還是解不掉

會導致甚麼impact


從實際應用面來說,

以行動支持創作者!付費即可解鎖
本篇內容共 1767 字、1 則留言,僅發佈於IC面試專班你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
上一篇內容提到說, hold time violation的成因是因為訊號源在clk trigger edge後太快就開始要變化成新的value, 導致reg在還沒完全把data取樣下來時他的input端口就開始震動, 可能會導致reg在抓data時出現問題,雖然預期要鎖到1但是最後卻因為in
上一篇內容提到說register取樣時需要刻意地維持訊號源的stable, 才不會讓register取樣時出現問題, 那如果我真的發生了上述的violation要怎麼處理呢? setup time violation和hold time violation的解法一致? 在這邊詳細的說明一
clk skew 和 clk jitter差別是甚麼? clk skew 指的是兩顆reg 因為clk 到達的時間不同 導致雖然後是屬於於同一個cycle的行為 卻會有先到後到的問題 通常成因為 wire length cell delay clock distribution
sync rst 和 async rst reg 在rtl上只有差在always block的condition不同,但是在合成上卻是兩種不同type的register,有著不同的優缺 sync reset reg : always @ (postedge clk) begin if (!rs
上一篇內容提到說, hold time violation的成因是因為訊號源在clk trigger edge後太快就開始要變化成新的value, 導致reg在還沒完全把data取樣下來時他的input端口就開始震動, 可能會導致reg在抓data時出現問題,雖然預期要鎖到1但是最後卻因為in
上一篇內容提到說register取樣時需要刻意地維持訊號源的stable, 才不會讓register取樣時出現問題, 那如果我真的發生了上述的violation要怎麼處理呢? setup time violation和hold time violation的解法一致? 在這邊詳細的說明一
clk skew 和 clk jitter差別是甚麼? clk skew 指的是兩顆reg 因為clk 到達的時間不同 導致雖然後是屬於於同一個cycle的行為 卻會有先到後到的問題 通常成因為 wire length cell delay clock distribution
sync rst 和 async rst reg 在rtl上只有差在always block的condition不同,但是在合成上卻是兩種不同type的register,有著不同的優缺 sync reset reg : always @ (postedge clk) begin if (!rs
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
首先確定VS Code的版本,如果你的版本跟我一樣是1.92.0那麼你可以參考我的作法...
Thumbnail
本文介紹了在網站開發中如何運用狀態機的原則和設計方法。通過具體案例分析,以及狀態和數據的區分,詳細介紹了狀態機的設計原則和應用。讀者可以通過本文瞭解如何將狀態機應用於實際的網站開發中。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
本章節的目的是介紹在TypeScript中如何進行例外處理。涵蓋了例外處理的重要性、語法、常見異常類型以及如何主動觸發異常訊息及用戶自定義異常訊息。為讀者提供了全面而深入的了解,以提高程式的可靠性、提供更好的反饋、增加程式的容錯性以及改善程式的可讀性。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)
Thumbnail
這是為了搭建自己想要的工作流而開始的研究工作。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
首先確定VS Code的版本,如果你的版本跟我一樣是1.92.0那麼你可以參考我的作法...
Thumbnail
本文介紹了在網站開發中如何運用狀態機的原則和設計方法。通過具體案例分析,以及狀態和數據的區分,詳細介紹了狀態機的設計原則和應用。讀者可以通過本文瞭解如何將狀態機應用於實際的網站開發中。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
本章節的目的是介紹在TypeScript中如何進行例外處理。涵蓋了例外處理的重要性、語法、常見異常類型以及如何主動觸發異常訊息及用戶自定義異常訊息。為讀者提供了全面而深入的了解,以提高程式的可靠性、提供更好的反饋、增加程式的容錯性以及改善程式的可讀性。
Thumbnail
當你在開發程式時,難免會遇到各種錯誤和異常情況。這些錯誤可能是因為代碼中的錯誤、外部資源無法訪問或其他不可預期的狀況。為了提高程式的可靠性、穩定性和可維護性,我們使用「例外處理」來處理這些異常情況。
Thumbnail
到存放虛擬機的磁碟處\點選想要註冊的機器\註冊機器(登錄虛擬機器)
Thumbnail
這是為了搭建自己想要的工作流而開始的研究工作。