最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Verilog基礎之十四、FIFO實現(xiàn)

2023-07-09 10:35 作者:行中悟_悟中行  | 我要投稿

一、FIFO

1.1 定義

????FIFO(First in First out)為先進先出隊列,具有存儲功能,可用于不同時鐘域間傳輸數(shù)據(jù)以及不同的數(shù)據(jù)寬度進行數(shù)據(jù)匹配。如其名稱,數(shù)據(jù)傳輸為單向,從一側(cè)進入,再從另一側(cè)出來,出來的順序和進入的順序相同。

1.2 實現(xiàn)方式

????FIFO可由多種不同的實現(xiàn)方式,可以用塊狀RAM,分布式RAM來實現(xiàn),也可直接使用IP核,當數(shù)據(jù)較小時,建議使用分布式RAM實現(xiàn),數(shù)據(jù)較大時,用塊狀RAM實現(xiàn)。

?1.3 實現(xiàn)原理??

????FIFO組成包含存儲單元,寫時鐘,讀時鐘,滿標志,空標志,讀寫控制信號,當讀時鐘和寫時鐘都是同一個時鐘時,則為同步FIFO,否則為異步FIFO。

????a.首先,在復位操作后,在寫時鐘控制下,如果狀態(tài)非滿狀態(tài),數(shù)據(jù)可寫入到FIFO中。每寫一次數(shù)據(jù),寫指針加一,寫滿后將不允許再寫入;

????b.當FIFO中數(shù)據(jù)非空時,在讀時鐘的控制下,數(shù)據(jù)可從FIFO中讀出。每讀一次數(shù)據(jù),讀時鐘加一,位于下一個讀取的位置,在空狀態(tài)下,將不能繼續(xù)讀數(shù)據(jù);

????無論是同步FIFO還是異步FIFO,都是以雙口RAM為基礎來實現(xiàn)。

二、代碼實現(xiàn)

????代碼為書籍《FPGA應用技術(shù)及實踐》中5.3.3 FIFO設計中的代碼,相比原代碼中,對read/write為00時,對count的值變化進行了修改,修改為count<=count更合理,設計為實現(xiàn)4X16的同步FIFO

測試代碼?

對于read和write信號,盡量避免在時鐘上升沿時進行狀態(tài)變化,如此處write翻轉(zhuǎn)在201ns,read翻轉(zhuǎn)在#252,即避免了和時鐘的上升沿同步,也避免了和write翻轉(zhuǎn)的同步


三、仿真結(jié)果

3.1 復位階段

????在起始的50ns內(nèi),復位信號rst(紅色標注)為1時,進行復位操作,如黃色定位線所示,輸出data_out為0,empty和full標志為0;

3.2 寫入階段

????在110.1ns時開始寫入,時間點不是110ns而是多了0.1ns是由于modelsim默認的開始時刻是0.1ns開始;因為count原先一直處于初始化狀態(tài)2'b00,在此時因為寫入進行了empty的邏輯判斷,因為empty為0;

????在clk信號中1、2、3、4上升沿位置,即為寫入4個值:6666,7777,8888,9999,寫完后剛好寫滿,因此full標志位在170.1ns處變?yōu)?,表示已寫滿無法再寫入。

3.3?讀取階段

????在270.1ns時,read/write的值為1/0開始從FIFO中進行數(shù)據(jù)讀取,在clk信號的1,2,3,4讀取了4個數(shù)值,根據(jù)data_out可知為6666,7777,8888,9999。讀出順序與寫入順序一致,即先入先出。

3.4?同時讀寫或不讀不寫

????在450ns時,read/write都為1,讀寫同時進行,并且empty為1,可知不進行讀操作,count的邏輯。但因full為0,可以進行寫入,此時進行寫入,在4個clk周期寫滿,因此在530.1ns時full標志位為1

????在530ns和550ns時,read/write都為0,此時不讀也不寫入,因此輸出狀態(tài)不變,一直為9999,

四、參考資料

書籍《FPGA應用技術(shù)及實踐》中5.3.3 FIFO設計章節(jié)

????


Verilog基礎之十四、FIFO實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
获嘉县| 涞水县| 湖北省| 敦化市| 桐梓县| 郓城县| 上蔡县| 惠来县| 惠水县| 依兰县| 错那县| 镇江市| 大庆市| 涡阳县| 慈溪市| 长汀县| 台前县| 开封市| 安徽省| 四平市| 营口市| 垦利县| 阜宁县| 乐东| 拉孜县| 巨鹿县| 伊春市| 中方县| 漳浦县| 绥芬河市| 怀来县| 临漳县| 新竹市| 阿克陶县| 博湖县| 固原市| 巴中市| 信宜市| 洪洞县| 贺兰县| 双流县|