一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

FPGA學(xué)習(xí)系列:24. FIFO控制器的設(shè)計(jì)

FPGA學(xué)習(xí)交流 ? 2018-08-07 11:11 ? 次閱讀

設(shè)計(jì)背景:

First Input First Output的縮寫,先入先出隊(duì)列,這是一種傳統(tǒng)的按序執(zhí)行方法,先進(jìn)入的指令先完成并引退,跟著才執(zhí)行第二條指令。FIFO是隊(duì)列機(jī)制中最簡單的,每個(gè)接口上都存在FIFO隊(duì)列,表面上看FIFO隊(duì)列并沒有提供什么QoS(Quality of Service,服務(wù)質(zhì)量)保證,甚至很多人認(rèn)為FIFO嚴(yán)格意義上不算做一種隊(duì)列技術(shù),實(shí)則不然,F(xiàn)IFO是其它隊(duì)列的基礎(chǔ),F(xiàn)IFO也會影響到衡量QoS的關(guān)鍵指標(biāo):報(bào)文的丟棄、延時(shí)、抖動(dòng)。既然只有一個(gè)隊(duì)列,自然不需要考慮如何對報(bào)文進(jìn)行復(fù)雜的流量分類,也不用考慮下一個(gè)報(bào)文怎么拿、拿多少的問題,而且因?yàn)榘错樞蛉?bào)文,F(xiàn)IFO無需對報(bào)文重新排序。簡化了這些實(shí)現(xiàn)其實(shí)也就提高了對報(bào)文時(shí)延的保證。

設(shè)計(jì)原理:

本次的設(shè)計(jì)主要通過調(diào)用FIFO的IP核來設(shè)置一個(gè)簡單的單口FIFO,也就是說讀寫時(shí)鐘為相同的時(shí)鐘。其設(shè)置流程如下所示也如rom,ram,設(shè)置一樣的打開步驟

如下如選擇FIFO,然后寫入生成的FIFO文件名,my_fifo,下一步

image.png

設(shè)置合適的數(shù)據(jù)位寬和深度,之后下一步

出現(xiàn)了空滿標(biāo)志位,full,emty,我們?nèi)サ魯?shù)據(jù)個(gè)數(shù)標(biāo)志usedw.下一步

之后不停的下一步,出現(xiàn)下面的界面選擇生成的文件,然后就完成簡單的FIFO設(shè)計(jì)

image.png

設(shè)計(jì)架構(gòu)圖:

設(shè)計(jì)代碼:

頂層模塊:

0moduletop (clk,rst_n,q);//輸入輸出端口

1 inputclk;

2 inputrst_n;

3 output[7:0]q;

4 wirewrreq; //寫使能信號

5 wirerdreq; //讀使能信號

6 wireempty; //空標(biāo)志位

7 wirefull; //滿標(biāo)志位

8 wire[7:0]data;

9

10fifo_control fifo_control (//FIFO控制器的例化

11 .clk(clk),

12 .rst_n(rst_n),

13 .full(full),

14 .empty(empty),

15 .wrreg(wrreq),

16 .rdreg(rdreq),

17 .data(data)

18 );

19my_fifo my_fifo ( //生成IP核的例化

20 .clock (clk ),

21 .data (data ),

22 .rdreq (rdreq ),

23 .wrreq (wrreq ),

24 .empty (empty ),

25 .full (full),

26 .q (q )

27 );

28

29endmodule

設(shè)計(jì)模塊

0modulefifo_control ( //端口列表

1 inputclk,

2 inputrst_n,

3 inputfull, //滿標(biāo)志

4 inputempty, //空標(biāo)志

5 outputregwrreg, //寫使能

6 outputregrdreg, //讀使能

7 outputreg[7:0]data

8 );

9 regstate;

10always@(posedgeclk ornegedgerst_n)

11 if(!rst_n)

12 begin

13 data<=0;

14 wrreg<=0; //寫使能關(guān)閉

15 rdreg<=0; //讀使能關(guān)閉

16 state <=0;

17 end

18 else

19 begin

20 case(state)

21 0:if(empty) //判斷是否為空,為空寫

22 begin

23 wrreg<=1;

24 data <=data +1;

25 end

26 elseif(full) //判斷否寫滿,為滿不寫

27 begin

28 state <=1;

29 wrreg<=0;

30 rdreg<=1;

31 data<=0;

32 end

33 else

34 begin

35 wrreg<=1;

36 data <=data +1;

37 end

38

39 1:begin

40 if(empty) //判斷是否讀空,讀空關(guān)閉讀使能

41 begin

42 rdreg<=0;

43 state <=0;

44 end

45 end

46 endcase

47 end

48

49endmodule

測試模塊

0`timescale1ns/1ps

1modulefifo_tb;

2

3 regclk;

4 regrst_n;

5 wire[7:0]q;

6initialbegin

7 clk =0;

8 rst_n =0;

9

10 #200rst_n=1;

11

12 end

13always#10clk=~clk;

14top top(

15 .clk(clk),

16 .rst_n(rst_n),

17 .q(q)

18 );

19

20endmodule

仿真:

從仿真空可以看到。我們寫入的數(shù)據(jù)是1--255--0,讀出的數(shù)據(jù)也是從1開始讀再到0。

這樣就完成了一個(gè)簡單的FIFO,如果要生成雙口的結(jié)局跨時(shí)鐘問題可以在設(shè)置時(shí),下面頁面選擇

image.png來進(jìn)行設(shè)置

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

    關(guān)注

    1643

    文章

    21923

    瀏覽量

    612399
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    基于FPGA的異步FIFO的實(shí)現(xiàn)

    大家好,又到了每日學(xué)習(xí)的時(shí)間了,今天我們來聊一聊基于FPGA的異步FIFO的實(shí)現(xiàn)。 一、FIFO簡介 FIFO是英文First In Fir
    的頭像 發(fā)表于 06-21 11:15 ?6738次閱讀
    基于<b class='flag-5'>FPGA</b>的異步<b class='flag-5'>FIFO</b>的實(shí)現(xiàn)

    xilinx7系列FPGA新設(shè)計(jì)的IO專用FIFO解析

    ,它是7系列FPGA新設(shè)計(jì)的IO專用FIFO,主要用于IOLOGIC(例如ISERDES、IDDR、OSERDES或ODDR)邏輯功能的擴(kuò)展。 FPGA的每個(gè)BANK有4個(gè)IN_
    的頭像 發(fā)表于 11-29 10:08 ?3067次閱讀
    xilinx7<b class='flag-5'>系列</b><b class='flag-5'>FPGA</b>新設(shè)計(jì)的IO專用<b class='flag-5'>FIFO</b>解析

    FPGA干貨分享三】基于FPGA的LBS控制器設(shè)計(jì)

    。2.5 LBS狀態(tài)機(jī)工作流程FPGA作為LBS的邏輯控制器,負(fù)責(zé)協(xié)調(diào)好與DDR_FIFO數(shù)據(jù)和PEX8311之間的時(shí)序關(guān)系。系統(tǒng)接收數(shù)據(jù)時(shí),首先由驅(qū)動(dòng)程序向PEX8311發(fā) 送復(fù)位信號,通過
    發(fā)表于 01-29 14:09

    FPGA零基礎(chǔ)學(xué)習(xí)之Vivado-FIFO使用教程

    Generate。 此外,我們還需要兩個(gè)不同時(shí)鐘,在這里我們使用鎖相環(huán)生成。 在管理界面搜索clock。配置過程我們在此前已經(jīng)講過,就不在過多敘述。 接下來我們寫一下fifo的寫控制器,代碼如下
    發(fā)表于 06-16 17:50

    基于Altera FPGA的彩屏控制器的設(shè)計(jì)和實(shí)現(xiàn)

    本設(shè)計(jì)基于FPGA的彩色觸摸屏控制器能夠?qū)崿F(xiàn)顏色深度為24 bit,分辨率為480×272的TFT-LCD控制和ADS7843芯片的時(shí)序控制
    發(fā)表于 01-07 11:08 ?3145次閱讀
    基于Altera <b class='flag-5'>FPGA</b>的彩屏<b class='flag-5'>控制器</b>的設(shè)計(jì)和實(shí)現(xiàn)

    基于FPGAFIFO設(shè)計(jì)和應(yīng)用

    為實(shí)現(xiàn)目標(biāo)識別與跟蹤的應(yīng)用目的 ,在基于 TMS320DM642 的 FIFO 基礎(chǔ)上擴(kuò)展存儲空間 ,提出一種基于 FPGA實(shí)現(xiàn) SDRAM 控制器的方法。分析所用 SDRAM 的特點(diǎn)和工作原理
    發(fā)表于 10-29 14:05 ?2次下載

    基于FPGA的LCD控制器設(shè)計(jì)

    基于 FPGA的LCD控制器設(shè)計(jì)的論文。
    發(fā)表于 10-29 14:05 ?18次下載

    異步FIFO結(jié)構(gòu)及FPGA設(shè)計(jì)

    異步FIFO結(jié)構(gòu)及FPGA設(shè)計(jì),解決亞穩(wěn)態(tài)的問題
    發(fā)表于 11-10 15:21 ?4次下載

    自定義fifo接口控制器

    自定義fifo接口控制器,利用sopc builder實(shí)現(xiàn)。
    發(fā)表于 03-22 14:09 ?1次下載

    基于XILINX的XC3系列FPGA的VGA控制器的VHDL源程

    Xilinx FPGA工程例子源碼:基于XILINX的XC3系列FPGA的VGA控制器的VHDL源程序
    發(fā)表于 06-07 15:07 ?12次下載

    基于FPGA的LED屏控制器設(shè)計(jì)

    基于FPGA的LED屏控制器設(shè)計(jì)基于FPGA的LED屏控制器設(shè)計(jì)
    發(fā)表于 06-21 17:56 ?59次下載

    Virtex-7 FPGA系列的內(nèi)存控制器介紹

    本視頻介紹了可用于構(gòu)建7系列FPGA內(nèi)存控制器的軟IP。 這些模塊討論了如何使用Xilinx存儲接口生成器構(gòu)建存儲
    的頭像 發(fā)表于 11-22 06:05 ?4749次閱讀

    學(xué)習(xí)SDRAM控制器設(shè)計(jì) 能讓你掌握很多FPGA知識

    學(xué)習(xí)FPGA的過程中,注意是在學(xué)習(xí)過程中,聯(lián)系FPGA的使用技巧,強(qiáng)烈建議嘗試設(shè)計(jì)一個(gè)SDRAM控制器,不要使用IP核。
    發(fā)表于 02-15 15:04 ?915次閱讀

    Verilog數(shù)字系統(tǒng)設(shè)計(jì)——復(fù)雜數(shù)字電路設(shè)計(jì)2(FIFO控制器設(shè)計(jì))

    的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容。提示:以下是本篇文章正文內(nèi)容:FIFO
    發(fā)表于 12-05 15:51 ?9次下載
    Verilog數(shù)字系統(tǒng)設(shè)計(jì)——復(fù)雜數(shù)字電路設(shè)計(jì)2(<b class='flag-5'>FIFO</b><b class='flag-5'>控制器</b>設(shè)計(jì))

    FPGA學(xué)習(xí)-基于FIFO的行緩存結(jié)構(gòu)

    FPGA中對圖像的一行數(shù)據(jù)進(jìn)行緩存時(shí),可以采用FIFO這一結(jié)構(gòu),如上圖所示,新一行圖像數(shù)據(jù)流入到FIFO1中,FIFO1中會對圖像數(shù)據(jù)進(jìn)行緩存,當(dāng)
    的頭像 發(fā)表于 05-10 09:59 ?4165次閱讀