99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放

FPGA設計實用分享02 之 XILINX的可參數化FIFO

  發布時間:2023-10-26  |    作者:yi jin yun  |  瀏覽量:1234

一、背景

FIFOFPGA項目中使用最多的IP核,一個項目使用幾個,甚至是幾十個FIFO都是很正常的。通常情況下,每個FIFO的參數,特別是位寬和深度,是不同的。

明德揚(MDY)2021年承擔了多個基于XILINX芯片的研發項目,包括VPX網絡透明傳輸項目(芯片為XC7K325T-2FBG900)、某高端測試儀項目(芯片為XCKU060-FFVA1156)、某網閘設備項目(芯片為XC7Z030-FBG676)等,另外,明德揚自研了基于XC7K325T-2FBG900和基于XC7K410T-2FBG900芯片的核心板,在XILINX研發領域擁有豐富的經驗。

這些項目都必須用到FIFO。如果按照通常做法,每種位寬和深度的IP,都要打開FIFO IP核界面、命名(命名不好不好分辨需要的FIFO)、設置參數、生成并編譯IP核,工作量可以想象出來是非常多的。更重要的是隨之而來的管理問題,如何管理這幾十個不同FIFO,如何檢查FIFO的設置是否正確,都是一個不小的挑戰。

對于我們專門承接項目的團隊,絕不可忍受如此重復、枯燥、容易出錯的工作。經過精心研究,終于找到了一條實用的方法:使用XILINX的原語--xpm_fifo_asyncxpm_fifo_sync

XILINX原語xpm_fifo_asyncxpm_fifo_syncFPGA中,可以直接例化使用,并且可以參數化FIFO的位寬和深度的。即在設計時,不用生成FIFO IP,直接例化就可以使用了。



二、獲得參考代碼




打開VIVADO軟件,點擊上圖中的Language Templates,將會彈出Language Templates窗口,如下圖。

Language Templates窗口中,依次點擊verilogXilinx Parameterized Macros(XPM)XPMXPM_FIFO,如上圖。可以看到有三種FIFO,分別是異步的XPM FIFOxpm_fifo_asyncAXI總線的FIFOxpm_fifo_axis和同步的XMP FIFOxpm_fifo_sync


選擇xpm_fifo_async,右邊的Preview窗口,將出現xpm_fifo_async的注釋以及參考代碼。將此部分代碼拷出來,并將注釋刪除,剩下的是xpm_fifo_async的例化參考。

上圖是對xpm_fifo_async的參數例化部分。下面是需要重點關注并經常使用的參數。

?  FIFO_WRITE_DEPTHFIFO的寫深度,其實就是在這里設置FIFO的深度,注意該值通常是2N次方,如8163264等數。

?  PROG_EMPTY_THRESHFIFO的快空的水線。當FIFO存儲的數據量小于該水線時,FIFO的快空信號將會變高。

?  PROG_FULL_THRESHFIFO的快滿的水線。當FIFO存儲的數據量大于該水線時,FIFO的快滿信號將會變高,表示有效。

?  READ_DATA_WIDTH:讀數據的位寬。

?  WRITE_DATA_WIDTH:將數據的位寬。

?  RD_DATA_COUNT_WIDHT:讀側數據統計值的位寬。

?  WR_DATA_COUNT_WIDTH:寫側數據統計值的位寬。

上圖是對xpm_fifo_async的接口信號部分。下面是需要重點關注并經常使用的信號。

?  wr_clkFIFO的寫時鐘

?  rstFIFO的復位信號,高電平有效。要注意的是,該信號是屬于寫時鐘域的。

?  wr_enFIFO的寫使能信號。

?  dinFIFO的寫數據

?  full:寫滿指示信號,當FIFO寫滿時,該信號變高。

?  wr_data_countFIFO存儲數據量指示信號,用來指示當前FIFO已經寫入但未讀出的數據個數。

?  rd_clkFIFO的讀時鐘。

?  rd_enFIFO的讀使能。

?  doutFIFO讀出的數據。

?  emptyFIFO的空指示信號。當其為1表示FIFO處于空狀態,當其為0,表示FIFO內有數據。




三、定義自用的FIFO模塊

從第二步可以看出,xpm_fifo_async是可以參數化深度和位寬的。但xpm_fifo_async有很多參數和信號,并且其中有部分是不使用的。為了使用上的方便,可以自定義自用的FIFO模塊。

例如,明德揚就定義了一個模塊mdyFifoAsy,該信號的接口信號如下圖。可以看出,名稱更加規范,并且定義常用的信號,如讀時鐘rd_clk,寫時鐘wrclk、寫使能wrreq等信號。


明德揚還在模塊mdyFifoAsy定義了一些常用的參數,分別是FIFO深度參數:DEPT_WFIFO位寬的參數:DATA_W,還有FIFO快滿參數AL_FUL和快空參數AL_EMP,如下圖。



接下來,就是在mdyFifoAsy中例化并使用xpm_fifo_async了。如下圖,就是對xpm_fifo_async的參數例化。將DEPT_W傳給FIFO_WRITE_DEPTHDATA_W傳給READ_DATA_WIDTH等。



下圖是對xpm_fifo_async的信號例化。將不用的信號留空,將dout連到qdin連到datawr_en連到wrreq等。您可以根據自己情況來定制FIFO






四、應用

定制完自己的FIFO后,就可以直接例化使用了。

上圖就是使用了一個位寬為8,深度為256FIFO

上圖就是使用了一個位寬為18,深度為1024FIFO

FIFOFPGA、芯片設計中,最常用的IP核,在存儲控制、算法實現、接口設計中,都少不了FIFO,因此合理并正確使用FIFO的技術就非常有必要了,明德揚錄制了FIFO的訓練視頻,掌握后技術能力將有大提升。

通過上面介紹可知,通過此種方式,再也不用生成FIFO IP核啦,整個工程大小基本上可以減少一大半。

上面舉的例子是xpm_fifo_async,同步FIFOxpm_fifo_sync的使用方法是類似的。


溫馨提示:明德揚2023推出了全新課程——邏輯設計基本功修煉課,降低學習FPGA門檻的同時,增加了學習的趣味性,并組織了考試贏積分活動

http://www.cqqtmy.cn/ffkc/415.html

(點擊→了解課程詳情?)感興趣請聯系易老師:13112063618(微信同步)


明德揚除了培訓學習還有項目承接業務,擅長的項目主要包括的方向有以下幾個方面:

1. MIPI視頻拼接
     2. SLVS-EC轉MIPI接口(IMX472 IMX492)
     3. PCIE采集系統
     4. 圖像項目
     5. 高速多通道ADDA系統
     6. 基于FPGA板卡研發
     7. 多通道高靈敏電荷放大器
     8. 射頻前端

需要了解相關信息可以聯系:易老師13112063618(微信同號)


本文TAG:

Copyright ? 2012-2023 版權所有:深圳明德揚科技教育有限公司

主站蜘蛛池模板: 色婷婷久久免费网站 | 欧美黑b| 美女久久久久 | 精品国产免费第一区二区三区日韩 | 看国产黄色片 | 成人免费真人毛片视频 | 国产乱辈通伦影片在线播放亚洲 | 日韩欧美一中字暮 | 亚洲毛片视频 | 国产精品无码专区在线观看 | 亚洲黄色片子 | 小优视频在线观看网 | 一级毛片在播放免费 | 黄网站色视频免费看无下截 | 一级特黄a大片免费 | 亚洲日本韩国欧美 | 日日夜夜操操操 | 日韩伊人网 | 香蕉在线观看999 | 国产精品亚洲第一区二区三区 | 国产精品一区二区手机在线观看 | 久久中文字幕网 | 色综合久久天天综线观看 | 一级毛片视频免费 | 中文字幕亚洲欧美一区 | 国产在线一区在线视频 | 精品一区二区国语对白 | a级情欲视频免费观看 | 国产二级毛片 | 成人h视频在线观看 | 日韩在线第一区 | 农村妇女色又黄一级毛片不卡 | 国产激情一区二区三区在线观看 | 婷婷四房色播 | 日本高清xxx免费视频 | 黄色小视频观看 | 中文字幕久久久久 | 日韩小视频在线播放 | 性激烈的欧美三级高清视频 | 国产成人精品三级91在线影院 | 91亚洲精品一区二区福利 |