付費限定

[Verilog] 再次征戰FIFO地獄 - (7) fifo constraint

更新 發佈閱讀 7 分鐘

當你信心滿滿的解釋完fifo原理和RTL coding後

老闆們總是喜歡嘗試擊破那個有自信的你

地獄般的題組考驗這就來了

fifo觀念解釋的很棒, rtl coding也沒問題

那靠gray code就能保證post silicon不會有問題了嗎?

如果chip回來發現fifo的read write出問題的話

可能是哪邊導致的? 需不需要下些constraint去做預防

這篇我們就來探討一下何謂constraint 又為了要預防甚麼


在async fifo的世界中

同時有兩種資訊在傳遞

  1. pointer
  2. data

然而 我們先前提到說

我們利用了gray code的模式來預防source端的pointer在同一個cycle內有多個bits的跳動,

source同時多個bits的跳動,將會導致接收端接到Data時無法得知倒底是不是vaild的value,

因此儘管pointer 由快到慢, 被rx端抓到時已經跳動多個bits了但也能很肯定地說

這些取樣到的值都一定是valid的,他們一定曾經被使用過

再利用這個pointer去判斷是否可以抓取fifo中的Data或儲存Data於fifo中

聽起來相當完美了,

但有沒有想過一個問題

pointer和data兩個為獨立的資訊,

我們利用pointer去判斷儲存Data的region是否可以使用,

但這個有個先決條件

1.我們data必須走的比pointer快

這是甚麼意思呢 我們稍後來研究一下

另外就是

fifo設計中通常會把 data fifo擺在write clk端

也就是說,

2.我們在data端傳輸時進read端會有個Multibits的Data跨CDC 傳輸的問題出現

那我們又是怎麼說讀到的data不會有問題的呢?

CDC最難的就是要讀multibits呀,才會搞一堆甚麼gray code的東東

怎麼好像忘記處理它了只修好了pointer

還是data端也要用gray code加密嗎?

以行動支持創作者!付費即可解鎖
本篇內容共 2748 字、0 則留言,僅發佈於IC面試專班你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
數位IC設計第一品牌
184會員
30內容數
數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
2025/09/12
準備實作Async Fifo時, 我習慣將整個架構切成4塊來實作, 讓coding實的思緒比較有條理一點. Block 0 : 整體的interface Block 1 : mem周邊 Block 2 : Gray code pointer control Block 3 : wri
Thumbnail
2025/09/12
準備實作Async Fifo時, 我習慣將整個架構切成4塊來實作, 讓coding實的思緒比較有條理一點. Block 0 : 整體的interface Block 1 : mem周邊 Block 2 : Gray code pointer control Block 3 : wri
Thumbnail
2025/08/11
回到這張看起來很複雜的AFIFO架構圖 (*藍色訊號為write clk *紅色訊號為read clk) 我們開始來專心探討一下圖中B2G這區塊的功用 相信各位看懂架構後coding就不是甚麼大問題 回顧一下, 我們先思考ptr在傳輸時沒有處理CDC issue時會發生甚麼事? pt
Thumbnail
2025/08/11
回到這張看起來很複雜的AFIFO架構圖 (*藍色訊號為write clk *紅色訊號為read clk) 我們開始來專心探討一下圖中B2G這區塊的功用 相信各位看懂架構後coding就不是甚麼大問題 回顧一下, 我們先思考ptr在傳輸時沒有處理CDC issue時會發生甚麼事? pt
Thumbnail
2025/05/23
上篇文中最後提到的為甚麼async不用Dmux傳ptr就好, 究竟有甚麼缺點又或是不可行, 這邊來探討一下. 首先我們先來看一下Dmux解CDC issue的原理 dmux架構可以分為兩個部分, Data path和CTRL path, 我們會在CTRL的path的部分在clkA的t
Thumbnail
2025/05/23
上篇文中最後提到的為甚麼async不用Dmux傳ptr就好, 究竟有甚麼缺點又或是不可行, 這邊來探討一下. 首先我們先來看一下Dmux解CDC issue的原理 dmux架構可以分為兩個部分, Data path和CTRL path, 我們會在CTRL的path的部分在clkA的t
Thumbnail
看更多
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
User Input & Tables 的使用
Thumbnail
User Input & Tables 的使用
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
此章節的目的是介紹Java程式語言中的流程控制結構,包括條件語句(if, else if, else)、三元運算子、switch語句,以及各種迴圈(for, foreach, while)。同時,也解釋了如何在迴圈中使用控制語句來改變程式的執行流程。每種主題都配有示例程式碼以幫助理解。
Thumbnail
我捨棄了編號系統,解放三倍大腦思考能量
Thumbnail
我捨棄了編號系統,解放三倍大腦思考能量
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
題目敘述 題目會給我們一個字串s作為輸入,要求我們以white space空白為切割符號,切割出每個單字,並且反轉其順序後,以字串形式最為最後的輸出。 題目的原文敘述 測試範例 Example 1: Input: s = "the sky is blue" Output: "blue i
Thumbnail
題目敘述 題目會給我們一個字串s作為輸入,要求我們以white space空白為切割符號,切割出每個單字,並且反轉其順序後,以字串形式最為最後的輸出。 題目的原文敘述 測試範例 Example 1: Input: s = "the sky is blue" Output: "blue i
Thumbnail
本文提供了一個關於模擬法演算法的問題,介紹了操作指令的格式及其解析。透過程式碼模擬每條指令,找出回到根目錄所需的操作次數。本文詳細說明瞭模擬法的複雜度分析,能夠幫助讀者更好地理解這個問題。
Thumbnail
本文提供了一個關於模擬法演算法的問題,介紹了操作指令的格式及其解析。透過程式碼模擬每條指令,找出回到根目錄所需的操作次數。本文詳細說明瞭模擬法的複雜度分析,能夠幫助讀者更好地理解這個問題。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News