付費限定

[Verilog] 再次征戰FIFO地獄 - (6) async fifo rtl coding

更新 發佈閱讀 16 分鐘
raw-image


準備實作Async Fifo時,

我習慣將整個架構切成4塊來實作,

讓coding實的思緒比較有條理一點.

Block 0 : 整體的interface

Block 1 : mem周邊

Block 2 : Gray code pointer control

Block 3 : write controller

Block 4 : read controller



Block 0 : async fifo intf

module asyc_fifo # (
parameter width = 8 , // wdata bits
parameter depth = 8 // mem depth k
)
(
input clkw, // write clk
input clkr, // read clk
input rst_nw, // write rst_b
input rst_nr, // read rst_b
input [width-1 : 0] wdata,
output reg [width-1 : 0] rdata,
input wen, // write enable
input ren, // read enable
);

Block 1 : mem peripheral 

如果mem是sram的話可以不用rst訊號, reg則可有可無,這個論述就留給大家思考思考

write : wen觸發且full未達標時,可將wdata寫入mem中的wptr位置上 (write clk)

以行動支持創作者!付費即可解鎖
本篇內容共 6236 字、0 則留言,僅發佈於IC面試專班你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
留言分享你的想法!
avatar-img
數位IC設計第一品牌
123會員
28內容數
數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
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
2025/05/16
在了解sync fifo後,可以開始來研究一下何謂asyc fifo? 小弟在這邊盡量利用了sync fifo的架構圖來呈現async fifo的運作, 以方便各位更容易的理解其中的奧妙 以Top view來看,基本上和sync fifo沒太大的不同, 最大的差異則是clk和rst長出了兩組
Thumbnail
2025/05/16
在了解sync fifo後,可以開始來研究一下何謂asyc fifo? 小弟在這邊盡量利用了sync fifo的架構圖來呈現async fifo的運作, 以方便各位更容易的理解其中的奧妙 以Top view來看,基本上和sync fifo沒太大的不同, 最大的差異則是clk和rst長出了兩組
Thumbnail
看更多
你可能也想看
Thumbnail
這篇文章介紹了網站的整體架構以及開發時所使用的工具和套件,包括 Next.js、Tailwind CSS 和 socket.io 等。文章回顧了程式碼的重構與優化,幫助開發者提高工作效率,適合希望深入瞭解前端開發和網站架構的讀者。
Thumbnail
這篇文章介紹了網站的整體架構以及開發時所使用的工具和套件,包括 Next.js、Tailwind CSS 和 socket.io 等。文章回顧了程式碼的重構與優化,幫助開發者提高工作效率,適合希望深入瞭解前端開發和網站架構的讀者。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
在網路速度有限的情況下,依序記錄不斷產生的資訊,能統計使用者在頁面上操作了哪些功能。
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
Lua 開檔寫檔的運用 io.output()...
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News