付費限定

[Verilog] 再次征戰FIFO地獄 - (1)

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

FIFO題目答得好不好可以直接看出面試者的程度為何,

FIFO看似簡單卻濃縮了非常多的design細節在裡面,

在這邊來和各位分享一下我個人的心得.


作為designer最常使用到的fifo就只有兩種屬性

1.sync fifo

2.async fifo


那這邊的sync或async指的是甚麼東西是否為同步呢?

評判的依據是根據write和read端所使用的clk是否來源是同步的.


如果是write/read使用同個source clk,

在STA分析時會被收斂timing則是屬於sync fifo的範疇.

如果write/read所使用的clk來自不同的source clk,

在STA分析時並無法確定timing使否meet則屬於async fifo的範疇.


當然這是屬於一個標準的分類法,

那我是否能在write/read的clk為sync的條件下使用async fifo?

抑或是在write/read的clk為async時使用sync fifo呢?

這樣混搭又會發生甚麼問題

值得好好思考一下

作為進階的面試考題

比起從正面論述何時要用sync何時用async

直接倒過來問用如果用錯會發生甚麼事情可以更了解一個面試者的思考

如果有辦法答出問題的話

想必對於sync或async的概念有著不錯的認識

那我們最後再回頭探討這個問題


文章開始來介紹何謂 (1) sync fifo

Top view看起來像這樣

raw-image

Interface 大致有

讀寫data用的Wdata/Rdata

寫入讀取有效判斷的Wen/Ren

告訴master或slave FIFO已經空了或滿了的Full/Empty

以及clk source 和rst_n


對於內部的細節展開為下圖

raw-image


相信對於第一次接觸的人每次看到這張圖就放棄這題了,

然而這對於要面試的人來說是必經之路,

您只要放下心好好看完接下來的說明,

相信你就可以開始祈禱其他競爭對手會放棄這題了


為了避免這張圖內容一次太多

我拆解了幾個步驟,

大家在看懂後也可以跟著我的步驟畫一次這張圖,

大多時候面試時是需要自己畫出這些圖的.


(1) 主要的幾個function block

以行動支持創作者!付費即可解鎖
本篇內容共 2253 字、0 則留言,僅發佈於IC面試專班你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
留言分享你的想法!
avatar-img
數位IC設計第一品牌
76會員
26內容數
數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
2025/04/23
作為designer一定經常看到spec中描述當edge出現時需要trigger電路運作, 舉個實際的例子 2 phase的handshake protocal, 以下方paper中的圖例來看. Quasi Delay-Insensitive High Speed Two-Phase Prot
Thumbnail
2025/04/23
作為designer一定經常看到spec中描述當edge出現時需要trigger電路運作, 舉個實際的例子 2 phase的handshake protocal, 以下方paper中的圖例來看. Quasi Delay-Insensitive High Speed Two-Phase Prot
Thumbnail
2024/10/28
前面探討完setup time / hold time violation的原因跟解法, 來更進一步探討一下現實面, 實際ic design中, 我們有可能會碰到一個狀況, synthesis過後path出現了setup time violation 或 hold time violatio
Thumbnail
2024/10/28
前面探討完setup time / hold time violation的原因跟解法, 來更進一步探討一下現實面, 實際ic design中, 我們有可能會碰到一個狀況, synthesis過後path出現了setup time violation 或 hold time violatio
Thumbnail
2024/10/02
上一篇內容提到說, hold time violation的成因是因為訊號源在clk trigger edge後太快就開始要變化成新的value, 導致reg在還沒完全把data取樣下來時他的input端口就開始震動, 可能會導致reg在抓data時出現問題,雖然預期要鎖到1但是最後卻因為in
Thumbnail
2024/10/02
上一篇內容提到說, hold time violation的成因是因為訊號源在clk trigger edge後太快就開始要變化成新的value, 導致reg在還沒完全把data取樣下來時他的input端口就開始震動, 可能會導致reg在抓data時出現問題,雖然預期要鎖到1但是最後卻因為in
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
User Input & Tables 的使用
Thumbnail
User Input & Tables 的使用
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
觀察者模式透過主題訂閱/訊息通知的機制,極度增強系統的可擴展性、靈活性以及降低組件間的耦合度。概念直觀簡單,是非常實用的設計模式。
Thumbnail
上次完成到基本的CRUD及權限控制,後面花了點時間把排序、分頁、圖表總覽的部分做完,其他細節是佈署上線,一般在公司內有專屬的部門處理,僅了解一下流程。
Thumbnail
上次完成到基本的CRUD及權限控制,後面花了點時間把排序、分頁、圖表總覽的部分做完,其他細節是佈署上線,一般在公司內有專屬的部門處理,僅了解一下流程。
Thumbnail
Creative Coding 作品變化概念,有或沒有的差別,隨機性,色彩模式的調整...等
Thumbnail
Creative Coding 作品變化概念,有或沒有的差別,隨機性,色彩模式的調整...等
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
Thumbnail
前年第一次藉公司機會,參加了DevOpsDay的活動。雖然devOps一詞各自表述,大多狀況還是偏向維運會遇到的技術為主,做為平時開發、跟使用者訪談需求的工作內容來說,參加聚會如果沒有一定的知識,對講者所提到的狀況比較難有共鳴...
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News