FPGA中FIFO的配置

2021-06-19 18:32:46 字數 1566 閱讀 4655

今天我們來討論一下通過quartus2中的mega-plugin來配置乙個fifo,這是偏

軟體的,但是今天我把歸為硬體來講,因為其中有許多是硬體相關聯的。

首先我們tools進入配置介面,選擇"creat a custome megafuction variation",進入第2頁然後在左面點開「memory compiler",然後選擇fifo,同時在右邊填入自命名的器件名字。點下一步,在這一步中要設定fifo的資料寬度,fifo的深度,fifo的型別(同步fifo還是非同步fifo,他們的區別後面會說到),這要根據你的實際系統來設定,需要注意的是輸出資料與輸入資料寬度可以不一樣,但是他們的寬度不能隨便設定,另外fifo的深度是2的冪,這裡你選擇同步fifo與非同步fifo下一步的設定將不一樣,點下一步,如果你前面選擇了同步fifo,那麼這一步你需要設定fifo的握手訊號與狀態訊號有full(滿),empty(空),almostfull(幾乎滿),almostempty(幾乎空),asynchronous clear(非同步清零),如果你選擇了非同步fifo,那麼在讀與寫兩邊就要單獨設定,讀寫兩邊均有 full, empty, usedwide(使用深度)3個訊號,你可以根據你的實際系統來決定需要哪些訊號。點下一步設定兩個內容,乙個是fifo的輸出的兩種形式,一種是傳統的同步方式,即你在有readreq='1'的乙個週期後才能讀取數取,另一種為show ahead,即為你在readreq='0'時,資料口就一直有乙個資料,在讀取資料時不用等待乙個週期。第二個設定就是綜合出fifo是用一般邏輯單元,還是使用專用的m4k塊(當然這需要在該器件有m4k塊才可以)。點下一步重要是選擇速度優先還是面積優先。然後就可以點finish了。你的fifo就配置完成了,你可以到.bdf檔案中去呼叫fifo模組,也可以在程式中例項化該模組。這樣你就成功的在你的系統中應用了fifo!!!

設定速度與面積優化

系統中應用fifo

非同步fifo工作波形圖

非同步fifo的設計 FPGA

fifo的本質是ram,先進先出 重要引數 fifo深度 簡單來說就是需要存多少個資料 fifo位寬 每個資料的位寬 fifo有同步和非同步兩種,同步即讀寫時鐘相同,非同步即讀寫時鐘不相同 同步fifo用的少,可以作為資料快取 非同步fifo可以解決跨時鐘域的問題,在應用時需根據實際情況考慮好fif...

FPGA跨時鐘域處理方法FIFO

1 本節目錄 2 本節引言 3 fpga簡介 4 fpga跨時鐘域處理方法fifo 5 結束語。不積跬步,無以至千里 不積小流,無以成江海。就是說 不積累一步半步的行程,就沒有辦法達到千里之遠 不積累細小的流水,就沒有辦法匯成江河大海。fpga field programmable gate arr...

FPGA配置方式

fpga有多種配置 載入方式。粗略可以分為主動和被動兩種。主動載入是指由fpga控制配置流程,被動載入是指fpga僅僅被動接收配置資料。主動配置就是fpga在配置過程中處於主導地位,主動發起對flash的讀寫,獲取配置資訊進行配置。下面利用間eda工具自帶的燒錄flash的操作為例,分析一下具體的燒...