那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用IP核創(chuàng)建單時(shí)鐘FIFO

CHANBAEK ? 來源:哈勒昆 ? 作者:老沈 ? 2023-07-23 11:47 ? 次閱讀

FIFO,先進(jìn)先出。在FPGA中使用的FIFO一般是指對數(shù)據(jù)的存儲具有先進(jìn)先出的緩沖器,F(xiàn)IFO與普通的存儲器的不同在于它沒有讀寫地址線。舉個(gè)例子,當(dāng)FPGA從外部傳感器讀取到一連串?dāng)?shù)據(jù)時(shí),首先被寫入FIFO中,然后FPGA再以UART串口通信依次將數(shù)據(jù)發(fā)送出去。因?yàn)閭鞲衅鞑杉瘮?shù)據(jù)的速度很快,比如當(dāng)傳感器使用SPI通信協(xié)議,以2M的SPI數(shù)據(jù)速率讀取時(shí),串口使用9600的波特率肯定跟不上,因此需要先將從傳感器處采集的數(shù)據(jù)使用FIFO緩存起來,然后再使用串口緩慢發(fā)送出去。

01 單時(shí)鐘FIFO

單時(shí)鐘FIFO具有一個(gè)獨(dú)立的時(shí)鐘端口,所有輸入信號的讀取都是在該時(shí)鐘端口信號的上升沿進(jìn)行的,所有輸出信號的變化也是在該時(shí)鐘信號的上升沿的控制下進(jìn)行的,單時(shí)鐘FIFO的所有輸入輸出信號基本都是和時(shí)鐘信號同步。

圖片

data為寫入的數(shù)據(jù),此處為8位。然后wrreq為請求寫操作,rdreq為請求讀操作,clock為時(shí)鐘信號。q為輸出端,8位數(shù)據(jù)的輸出端。full為滿標(biāo)志,當(dāng)fifo緩沖器存儲數(shù)據(jù)溢滿時(shí),full端將輸出高電平。almost_full為接近滿標(biāo)志信號,當(dāng)存儲的數(shù)據(jù)即將要滿時(shí),almost_full端將輸出高電平以阻止寫操作繼續(xù)向fifo中寫數(shù)據(jù)造成數(shù)據(jù)溢出。empty則為空標(biāo)志位,當(dāng)fifo中數(shù)據(jù)全部讀取完后,empty端便會輸出高電平用來標(biāo)記,almost_empty便是在fifo即將要空時(shí)便會發(fā)出高電平,以阻止fifo的讀操作繼續(xù)從fifo中讀取數(shù)據(jù)。usedw為fifo中的字?jǐn)?shù),sclr為異步清零端口

02 IP核使用

首先創(chuàng)建一個(gè)FIFO的工程保持在prj下,并在prj下新建一個(gè)ip的文件夾。點(diǎn)擊Tools -> MegaWizard Plug-In Manager。

圖片

選擇創(chuàng)建一個(gè)新的,然后如下圖,在左邊搜索框輸入FIFO,然后選擇第一項(xiàng),選擇后在右邊的路徑中輸入地址ip并以fifo.v保持。

圖片

接下來如下圖,首先設(shè)置數(shù)據(jù)的位寬及深度,此處設(shè)置數(shù)據(jù)位寬為8位,數(shù)據(jù)深度為256words(及多少個(gè)數(shù)據(jù))。

圖片

然后接下來設(shè)置需要的端口,根據(jù)01中的結(jié)構(gòu)圖,這里需要選擇full滿、empty空、以及接近滿almost_full、接近空almost_empty和異步清零端sclr。在接近滿與接近空處需要設(shè)置閾值,即到達(dá)多少時(shí)接近滿端口開始輸出標(biāo)志信號,這里設(shè)置數(shù)據(jù)寫操作達(dá)到254words時(shí)接近滿標(biāo)志開始標(biāo)記,數(shù)據(jù)讀操作在usedw為2時(shí)接近空端口開始標(biāo)記。

圖片

下圖便是讀操作請求確認(rèn)信號的兩種模式,一個(gè)是普通模式一個(gè)是前顯模式。

圖片

選擇器件優(yōu)化方式是面積優(yōu)先還是速度優(yōu)先,更換可以看到資源占用率是不一樣的,選擇速度優(yōu)先必然使用資源會上升。

圖片

然后便一直next后finish創(chuàng)建完成。

圖片

這時(shí)轉(zhuǎn)回界面便可看到生成ip的fifo.v文件,然后便開始書寫激勵(lì)仿真文件。

圖片

首先還是例化需要仿真的文件,然后仿真時(shí)鐘并在仿真文件中與例化程序進(jìn)行連線。

圖片

接下來便是定義常量i,寫一個(gè)for循環(huán),i自加寫請求wrreq置1將i的值寫入數(shù)據(jù)data中,usedw中數(shù)據(jù)深度開始依次增多,等256個(gè)words寫完之后,寫請求關(guān)閉,然后開始讀操作,同樣的i從零自加到255,然后將讀請求置1開啟,系統(tǒng)便開始從輸出端q中依次輸出data中的數(shù)據(jù),同時(shí)usedw中的數(shù)據(jù)深度也開始一次減少。

接下來看仿真波形圖:

圖片

此處是綜合仿真圖,前半部分是寫操作的波形圖,后半部分便是讀操作的波形圖。

圖片

上圖這部分為寫操作,圖中可以看到i每個(gè)周期自加1,i的值便賦給數(shù)據(jù)data,然后usedw便是統(tǒng)計(jì)此時(shí)data中的數(shù)據(jù)多少即深度,在usedw為2時(shí)可以看到almost_empty接近空出現(xiàn)一個(gè)下降沿,在data中開始寫入數(shù)據(jù)時(shí),寫請求wrreq產(chǎn)生高電平。

圖片

此處可以看出,在深度usedw自加至254時(shí),接近滿端almost_full便會產(chǎn)生上升沿用來標(biāo)記,計(jì)滿后full端產(chǎn)生上升沿,寫操作結(jié)束。

圖片

上圖為讀操作,這里隨著i的自加輸出端q開始依次輸出data中的數(shù)據(jù),然后usedw隨著data中的數(shù)據(jù)被讀取便開始自減。

圖片

后面可以看出,當(dāng)深度usedw為2時(shí),接近空端almost_empty產(chǎn)生上升沿,清空后empty也產(chǎn)生上升沿,讀操作結(jié)束。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2553

    文章

    51390

    瀏覽量

    756572
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    389

    瀏覽量

    43855
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1746

    瀏覽量

    131799
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1243

    瀏覽量

    101767
  • IP核
    +關(guān)注

    關(guān)注

    4

    文章

    331

    瀏覽量

    49635
收藏 人收藏

    評論

    相關(guān)推薦

    FIFO IP的使用教程

    在數(shù)字設(shè)計(jì)中,利用FIFO進(jìn)行數(shù)據(jù)處理是非常普遍的應(yīng)用,例如,實(shí)現(xiàn)時(shí)鐘域交叉、低延時(shí)存儲器緩存、總線位寬調(diào)整等。下圖給出了FIFO生成器支持的一種可能配置。
    的頭像 發(fā)表于 01-03 09:36 ?1536次閱讀
    <b class='flag-5'>FIFO</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用教程

    #FPGA點(diǎn)撥 生成FIFOIP

    fpgaIP
    電子技術(shù)那些事兒
    發(fā)布于 :2022年10月12日 21:52:56

    #硬聲創(chuàng)作季 #FPGA FPGA-27-04 Quartus中fifo IP介紹與仿真測試-1

    fpgafifoIP
    水管工
    發(fā)布于 :2022年10月29日 02:28:30

    #硬聲創(chuàng)作季 #FPGA FPGA-27-04 Quartus中fifo IP介紹與仿真測試-2

    fpgafifoIP
    水管工
    發(fā)布于 :2022年10月29日 02:28:50

    #硬聲創(chuàng)作季 #FPGA FPGA-27-04 Quartus中fifo IP介紹與仿真測試-4

    fpgafifoIP
    水管工
    發(fā)布于 :2022年10月29日 02:29:34

    【鋯石A4 FPGA試用體驗(yàn)】IPFIFO(一)創(chuàng)建與配置

    FIFO IP。[code]module My_FIFO(CLK_50M,RST_N,wrdata,rddata,wren,rden,time_cnt,usedw,full,emp
    發(fā)表于 10-04 14:38

    XILINX FIFO IP調(diào)用問題

    工程利用ISE自帶的FIFO將32位的并行數(shù)據(jù)經(jīng)過緩存以bit輸出,讀寫時(shí)鐘相同,首先將32位數(shù)據(jù)經(jīng)過FIFO1變成8位輸出,再將8位數(shù)
    發(fā)表于 12-23 12:53

    【正點(diǎn)原子FPGA連載】第十三章IPFIFO實(shí)驗(yàn)-領(lǐng)航者ZYNQ之FPGA開發(fā)指南

    模塊的信號交互。由于FIFO多用于跨時(shí)鐘域信號的處理,所以本實(shí)驗(yàn)我們使用異步FIFO來向大家詳細(xì)介紹雙時(shí)鐘FIFO
    發(fā)表于 09-23 17:27

    FIFO IP的使用

    。向FIFO中讀出一個(gè)數(shù)據(jù),讀地址加1。可以將FIFO想象成一個(gè)水池,寫數(shù)據(jù)和讀數(shù)據(jù)分別對應(yīng)著注水和抽水。當(dāng)注水速度快時(shí),水池會滿。當(dāng)抽水速度快時(shí),水池會空。根據(jù)讀寫時(shí)鐘,可以分為同步FIFO
    發(fā)表于 04-12 22:44

    IP生成文件

    IP生成器生成ip后有兩個(gè)文件對我們比較有用,假設(shè)生成了一個(gè)asyn_fifo,則asyn_fif
    發(fā)表于 07-21 16:42 ?0次下載

    基于MicroBlaze的AXI總線實(shí)時(shí)時(shí)鐘IP設(shè)計(jì)

    作者:薩其日娜 內(nèi)蒙古魯電電力工程有限公司 摘要: 應(yīng)用MicroBlaze軟作為CPU的硬件平臺,在此平臺上設(shè)計(jì)了基于AXI總線的通用實(shí)時(shí)時(shí)鐘IP。給出了
    發(fā)表于 11-17 16:34 ?3960次閱讀

    AXI STREAM FIFO如何設(shè)置雙時(shí)鐘

    IP的全稱是: AXI4-STREAM FIFO 設(shè)置注意事項(xiàng):一定要選擇異步時(shí)鐘,也就是雙時(shí)鐘,如下: 關(guān)于其他配置: TLAST 一
    發(fā)表于 03-26 14:40 ?5363次閱讀
    AXI STREAM <b class='flag-5'>FIFO</b>如何設(shè)置雙<b class='flag-5'>時(shí)鐘</b>

    講解幾點(diǎn)關(guān)于FIFO IP使用時(shí)的注意事項(xiàng)

    FIFO?還是FIFO IP?這也需要寫總結(jié)嗎?太容易了吧。如果我是一個(gè)正在處于面試找工作中的年輕人,肯定關(guān)注的是如何手撕FIFO,這也是
    發(fā)表于 06-21 14:22 ?1627次閱讀
    講解幾點(diǎn)關(guān)于<b class='flag-5'>FIFO</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>使用時(shí)的注意事項(xiàng)

    如何在Vivado中配置FIFO IP

    Vivado IP提供了強(qiáng)大的FIFO生成器,可以通過圖形化配置快速生成FIFO IP
    的頭像 發(fā)表于 08-07 15:36 ?4567次閱讀
    如何在Vivado中配置<b class='flag-5'>FIFO</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>

    XILINX FPGA IPFIFO Generator例化仿真

    上文XILINX FPGA IPFIFO對XILINX FIFO Generator IP的特性和內(nèi)部處理流程進(jìn)行了簡要的說明,本文通過實(shí)際例子對該
    的頭像 發(fā)表于 09-07 18:31 ?2058次閱讀
    XILINX FPGA <b class='flag-5'>IP</b>之<b class='flag-5'>FIFO</b> Generator例化仿真
    弋阳县| 免费百家乐官网统计| 真人百家乐的玩法技巧和规则| 金宝博网站| 汉百家乐官网春| 顶级赌场官网下载| 百家乐官网群博乐吧blb8v| 威尼斯人娱乐城官网lm0| 足球.百家乐官网投注网出租 | 百家乐官网博之道娱乐城| A8百家乐赌场娱乐网规则| 百家乐官网大赢家客户端| 百家乐博百家乐| 百家乐官网陷阱| 威尼斯人娱乐场官网48008| 百家乐官网反缆公式| 大发888游戏大厅下载| 永利百家乐官网娱乐网| 大发888中文下载| 发中发百家乐官网的玩法技巧和规则 | 百家乐官网代理加盟| 澳门百家乐网上赌城| 百家乐官网高科技| 大发888娱乐城下载新澳博| 百家乐官网在线娱乐网| 大发888游戏平台17| 百家乐庄闲最佳打法| 阜城县| 至富百家乐的玩法技巧和规则| 百家乐官网群sun811.com| 大发888下载 df888gfxzylc8| 实战百家乐官网十大取胜原因百分百战胜百家乐官网不买币不吹牛只你能做到按我说的.百家乐官网基本规则 | 德州扑克怎么玩| 百家乐扑克投注赢钱法| 百家乐官网最长的闲| 龙博百家乐的玩法技巧和规则 | 百家乐庄闲规则| 安陆市| 百家乐有试玩的吗| 百家乐官网园首选去澳| 百家乐官网最长的闲|