《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業界動態 > FPGA學習-FIFO使用小結

FPGA學習-FIFO使用小結

2022-08-13
來源:FPGA設計論壇
關鍵詞: FPGA FIFO SoC芯片

  FIFO的使用非常廣泛,一般用于不同時鐘域之間的數據傳輸,或者用于不同數據寬度之間的數據匹配。在實際的工程應用,可以根據需要自己寫FIFO。不考慮資源的情況下,也可以使用Xilinx提供的IP核來完成。

  接口類型選擇Native,SOC芯片上也可以根據需要選擇AXI接口。

1.png

  選擇存儲器類型:可以用塊RAM、分布式RAM,移位寄存器和內嵌FIFO來實現FIFO。這里主要是block RAM和distribute RAM之間的區別。簡而言之,block RAM是FPGA中定制的ram資源,而distribute RAM則是由LUT構成的RAM資源。由此區別表明,當FIFO較大時應選擇block RAM,當FIFO較小時,選擇distribute RAM.另外一個很重要的就是block RAM支持讀寫不同寬度,而distribute不支持。在這里為了更全面的了解FIFO,選擇block RAM以擁有非對稱方向速率的特性,內嵌FIFO(Builtin FIFO)在5以上的FPGA芯片中才存在。

  時鐘:讀寫操作是否在相同的時鐘域中完成。如果是,可以選擇Common clock,否則,選擇Independent clcoks。

  讀模式有兩種選擇,一般選擇標準模式,First-Word Fall-Fhrough模式為首字預現,FWFT是指在不影響FIFO讀操作的情況下,提前查看下一個數據的能力。即FIFO中不為空,有可用的數據時,FIFO中的第一個數據自動出現在輸出總線DOUT上。

  Synchronization Stage:穿過交叉時鐘域的同步狀態(寄存器)數量,默認即可。

 

2.png

  data port parameters處,有actual write depth和actual read depth,他們都比我們設置的要小,在實際的工程應用中,FIFO深度確實要比預設的小1,即當寫入了Write Width-1個數據之后,FIFO的滿信號full會拉高,這個時候如果還要寫入數據,則寫入的數據丟失。同理,讀出Read Width-1個數據后,FIFO的空信號empty會拉高,此時讀出信號無效。如下:

 

3.png

  該FIFO數據深度為16,從aabb0002到aabb0011共寫入16個數據,當寫入到第15個時,FULL信號拉高,數據不能被有效的寫入,從讀狀態可以看出。當讀寫數據位寬不匹配時,寫入的位寬大于讀出的數據位寬,則先從高位開始讀;當寫入的數據位寬小于讀出時,先寫入的數據在讀數據的高位,如下:

4.png

  關于FIFO復位,Xilinx FIFO默認為高電平復位,在Initialization 中可以設置復位信號到來之后,full、almost full、prog full等信號的復位值為0,或者為1。可以設置讀寫同步復位,或者異步復位。fifo的復位需要一段時間,期間wr_rst_busy和rd_rst_busy信號為高電平,此時應禁止讀寫FIFO,否則會造成數據丟失。

  關于讀寫計數,讀計數是和讀時鐘同步的,寫計數是和寫時鐘同步的。讀計數是以讀數據寬度為單位,fifo中存在的數據個數;寫計數是以寫數據寬度為單位,fifo中存在的數據個數,這兩個值的結果,簡單理解就是fifo內部控制器讀寫地址的差,由于fifo讀寫時鐘可能異步,讀寫時鐘頻率不同,導致計算讀寫計數值時存在延遲,并不完全和讀寫操作同步。

5.png

  讀寫計數仿真結果如下:

  

6.png

  關于讀寫使能,寫使能wr_en為高時,數據立即被寫入到fifo中,讀使能為高時,下一個時鐘周期,有效數據才會出現在數據總線dout上。

  一段簡單的仿真如下:

  `timescale 1ns / 1ps

  module tb_fifo_16x256(

 ?。?;

  reg                rst;

  reg                wr_clk;

  reg                rd_clk;

  reg   [31:0]       din;

  reg                wr_en;

  reg                rd_en;

  wire  [15:0]       dout;

  wire               full;

  wire               empty;

  wire               valid;

  wire               almost_full;

  wire               almost_empty;

  wire  [4:0]        rd_data_count;

  wire  [3:0]        wr_data_count;

  wire               wr_rst_busy;

  wire               rd_rst_busy;

  always #10  wr_clk <= ~wr_clk;

  always #5   rd_clk <= ~rd_clk;

  initial begin

  rst <= 1;

  wr_clk <= 0;

  rd_clk <= 1;

  din <= 32'haabb0001 ;

  wr_en <= 0;

  rd_en  <= 0;

  #20;

  rst <= 0;

  #300;

  //======================================================empty

  repeat(16) @(posedge wr_clk)

  begin

  din <= din + 1;

  wr_en <= 1;

  end

  repeat(1) @(posedge wr_clk) wr_en <= 0;

  repeat(32) @(posedge rd_clk)

  begin

  rd_en <= 1;

  end

  repeat(1) @(posedge rd_clk) rd_en <= 0;

  //=======================================================full

  repeat(16) @(posedge wr_clk)

  begin

  din  <= din + 1;

  wr_en <= 1;

  end

  repeat(1) @(posedge wr_clk) wr_en <= 0;

  end

  initial begin

  #900;

  repeat(32) @(posedge rd_clk)

  begin

  rd_en <= 1;

  end

  repeat(1) @(posedge rd_clk) rd_en <= 0;

  end

  fifo_16x256 fifo_16x256_inst (

  .rst(rst),                      // input wire rst

  .wr_clk(wr_clk),                // input wire wr_clk

  .rd_clk(rd_clk),                // input wire rd_clk

  .din(din),                      // input wire [31 : 0] din

  .wr_en(wr_en),                  // input wire wr_en

  .rd_en(rd_en),                  // input wire rd_en

  .dout(dout),                    // output wire [15 : 0] dout

  .full(full),                    // output wire full

  .almost_full(almost_full),      // output wire almost_full

  .empty(empty),                  // output wire empty

  .almost_empty(almost_empty),    // output wire almost_empty

  .valid(valid),                  // output wire valid

  .rd_data_count(rd_data_count),  // output wire [8 : 0] rd_data_count

  .wr_data_count(wr_data_count),  // output wire [7 : 0] wr_data_count

  .wr_rst_busy(wr_rst_busy),      // output wire wr_rst_busy

  .rd_rst_busy(rd_rst_busy)      // output wire rd_rst_busy

 ?。?;

  endmodule


更多信息可以來這里獲取==>>電子技術應用-AET<<

 

圖片.jpg


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品一区免费观看| 老司机aⅴ在线精品导航| 精品电影一区| 国内偷自视频区视频综合| 亚洲国产精品福利| 蜜桃视频一区| 亚洲高清久久| 欧美gay视频激情| 红杏aⅴ成人免费视频| 免费观看国产成人| 亚洲欧美日韩一区在线观看| 国产精品丝袜91| 欧美精品一区二区蜜臀亚洲| 亚洲精品三级| 美女主播视频一区| 亚洲毛片网站| 亚洲网站在线播放| 亚洲综合视频在线| 国产在线视频不卡二| 国产精品日日摸夜夜添夜夜av| 国产欧美一区二区三区在线看蜜臀| 国产精品免费观看在线| 欧美精品在线免费播放| 欧美午夜片在线观看| 欧美日韩在线播放一区| 激情五月综合色婷婷一区二区| 免费亚洲视频| 久久精品综合一区| 久久视频这里只有精品| 亚洲成色www久久网站| 免费看精品久久片| 国产亚洲女人久久久久毛片| 午夜久久久久久久久久一区二区| 久久精品国产清自在天天线| 亚洲午夜国产成人av电影男同| 国产一区二区在线观看免费播放| 尤物yw午夜国产精品视频| 亚洲一区欧美| 久久美女性网| 久久久噜久噜久久综合| 欧美激情中文字幕乱码免费| 亚洲国产精品久久久久秋霞影院| 欧美精品一区二区精品网| 亚洲高清自拍| 欧美精品国产精品日韩精品| 国产精品一级在线| 国产欧亚日韩视频| 欧美成人免费在线观看| 国产一区av在线| 国产在线国偷精品产拍免费yy| 在线日本成人| 欧美+日本+国产+在线a∨观看| 欧美美女日韩| 久久成人av少妇免费| 欧美日韩极品在线观看一区| 狠狠色丁香婷婷综合久久片| 亚洲在线免费视频| 亚洲欧美在线高清| 久久五月激情| 久久综合电影| 激情综合在线| 欧美激情一区二区在线| 欧美亚洲一区在线| 国产综合激情| 怡红院av一区二区三区| 久久亚洲综合网| 亚洲观看高清完整版在线观看| 国产日韩欧美一区二区三区四区| 中文网丁香综合网| 艳女tv在线观看国产一区| 一本一本久久a久久精品牛牛影视| 免费视频最近日韩| 久久婷婷综合激情| 久久免费国产精品1| 国产亚洲日本欧美韩国| 国产欧美一区二区精品婷婷| 一本色道久久综合亚洲91| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲国产精彩中文乱码av在线播放| 国产精品视频九色porn| 欧美激情一区二区三区在线| 国产专区精品视频| 欧美精品观看| 国产精品久久久久久久久久直播| 红桃av永久久久| 曰韩精品一区二区| 国产精品九色蝌蚪自拍| 久久久综合精品| 亚洲国产欧美不卡在线观看| 狠狠综合久久av一区二区老牛| 一区二区免费看| 黄色成人片子| 国内精品久久久久国产盗摄免费观看完整版| 久久9热精品视频| 一本色道久久88综合日韩精品| 午夜久久99| 国产精品一香蕉国产线看观看| 亚洲欧洲日夜超级视频| 国内精品视频一区| 久久久无码精品亚洲日韩按摩| 欧美大片免费久久精品三p| 麻豆freexxxx性91精品| 亚洲精品综合精品自拍| 亚洲第一视频网站| 免费观看日韩| 国产精品毛片a∨一区二区三区| 欧美专区在线播放| 久久国产高清| 狠狠色香婷婷久久亚洲精品| 亚洲综合视频一区| 亚洲婷婷综合久久一本伊一区| 国产一区在线看| 制服丝袜亚洲播放| 亚洲永久免费精品| 欧美午夜精品理论片a级按摩| 亚洲国产专区校园欧美| 一区二区三区欧美激情| 男女激情久久| 欧美日韩在线免费观看| 亚洲精品色婷婷福利天堂| 美女尤物久久精品| 中文精品99久久国产香蕉| 久久视频精品在线| 欧美成人精品不卡视频在线观看| 欧美成人精品一区二区| 国产精品乱码一区二三区小蝌蚪| 18成人免费观看视频| 欧美在线观看日本一区| 中文欧美字幕免费| 校园激情久久| 久久综合狠狠综合久久综青草| 久久亚洲不卡| 国产麻豆精品久久一二三| 国产精品中文字幕在线观看| 久久国产视频网| 欧美理论电影在线观看| 亚洲欧美中文字幕| 一区免费观看| 国产精品劲爆视频| 在线亚洲电影| 欧美高清视频免费观看| 午夜国产精品影院在线观看| 国产精品视频男人的天堂| 欧美精品在线一区二区三区| 久久久久久噜噜噜久久久精品| 国产精品理论片| 亚洲精品小视频在线观看| 99视频有精品| 欧美日韩精品免费观看视频完整| 欧美日韩综合视频| 欧美激情网站在线观看| 欧美国产日韩在线观看| 国产综合亚洲精品一区二| 久久精品91久久久久久再现| 美女视频一区免费观看| 野花国产精品入口| 欧美视频在线看| 韩国一区二区在线观看| 欧美日韩综合网| 欧美成年人网站| 久久深夜福利免费观看| 欧美精品成人91久久久久久久| 国产在线乱码一区二区三区| 欧美午夜宅男影院| 国产真实久久| 欧美伊久线香蕉线新在线| 欧美一区二区三区在线播放| 久久九九热免费视频| 性做久久久久久久免费看| 欧美系列精品| 欧美综合第一页| 国产一区成人| 免费成人黄色| 欧美人成在线| 亚洲精品国产精品国自产观看浪潮| 最近看过的日韩成人| 久久亚洲不卡| 国产亚洲一区二区在线观看| 夜夜精品视频一区二区| 亚洲一本大道在线| 欧美极品在线播放| 99re66热这里只有精品3直播| 亚洲一区久久久| 亚洲日本中文| 在线成人亚洲| 欧美极品一区二区三区| 久久人人超碰| 噜噜噜噜噜久久久久久91| 欧美精品一区二区久久婷婷| 久久高清福利视频| 午夜精品福利视频| 欧美经典一区二区| 国产伦精品免费视频| 欧美1区免费| 亚洲卡通欧美制服中文| 午夜精品免费视频| 91久久夜色精品国产九色| 国产日韩一区二区三区在线播放| 免费成人av在线看| 欧美一区2区三区4区公司二百| 国产精品永久免费观看| 黄网站免费久久| 亚洲一区二区三区免费在线观看| 在线综合+亚洲+欧美中文字幕| 亚洲精品在线视频观看| 在线亚洲精品| 欧美日韩一区二区高清| 日韩视频免费观看高清完整版| 中国亚洲黄色| 一区二区免费在线观看| 欧美激情欧美狂野欧美精品| 欧美精品色综合| 欧美精品18videos性欧美| 亚洲国产日韩一区二区| 亚欧成人精品| 午夜日韩福利| 久久一二三国产| 国产精品地址| 国产精品美女一区二区在线观看| 亚洲国产日韩一区| 欧美日韩一区不卡| 国产精品高清一区二区三区| 欧美激情第10页| 麻豆精品精品国产自在97香蕉| 欧美视频精品在线| 欧美一区二区三区免费视| 99国产精品久久| 欧美电影在线免费观看网站| 久久综合免费视频影院| 久久久国产一区二区三区| 国产精品久久久久毛片软件| 亚洲欧美制服中文字幕| 一区二区欧美在线观看| 羞羞视频在线观看欧美| av成人免费在线观看| 久久国产精品亚洲77777| 久久国内精品自在自线400部| 欧美成人午夜免费视在线看片| 欧美专区亚洲专区| 亚洲欧美日韩国产中文| av不卡在线看| 欧美日韩国产91| 久久爱91午夜羞羞| 欧美在线视频全部完| 激情亚洲一区二区三区四区| 国产精品成人va在线观看| 一本久久a久久精品亚洲| 久久蜜桃资源一区二区老牛| 中文日韩在线视频| 国产精品羞羞答答| 一区二区三区国产在线| 午夜激情一区| 久久久久久日产精品| 午夜久久影院| 日韩一二三在线视频播| 欧美午夜视频在线观看| 国产精品一区二区久激情瑜伽| 夜夜狂射影院欧美极品| 久久激情视频久久| 国外成人在线视频网站| 一区二区三区四区在线| 欧美日韩一区二区三区在线观看免| 一区二区三区视频在线观看| 欧美一区二区三区免费观看| 欧美精品尤物在线| 夜色激情一区二区| 国产精品青草综合久久久久99| 国内精品久久久久影院 日本资源| 国内精品久久久久久影视8| 欧美日韩国产精品一卡| 久久躁狠狠躁夜夜爽| 欧美搞黄网站| 欧美日韩一区二区高清| 亚洲永久网站| 欧美日韩四区| 欧美一区午夜视频在线观看| 午夜精品久久久久久久99水蜜桃| 一区二区在线视频观看| 久久久久久久999| 国产一区二区三区四区在线观看| 日韩一区二区免费高清| 欧美特黄一级大片| 国产日本欧美一区二区三区| 国产九九视频一区二区三区| 欧美日韩一区二区三区在线| 亚洲精品在线看| 亚洲欧美国产77777| 欧美专区一区二区三区| 亚洲在线观看免费视频| 欧美精品一区二区三| 日韩一二三区视频| 国产精品成人久久久久| 欧美人与性动交cc0o| 久久精品视频网| 中文一区在线| 欧美一级在线亚洲天堂| 午夜视频在线观看一区二区| 亚洲欧美怡红院| 欧美影院久久久| 亚洲自拍偷拍麻豆| 欧美精品一区二区视频| 毛片基地黄久久久久久天堂| 在线国产欧美| 99精品视频一区二区三区| 依依成人综合视频| 欧美性天天影院| 亚洲黄色大片| 狠狠久久五月精品中文字幕| 欧美国产综合视频| 亚洲高清久久久| 亚洲综合日韩在线| 欧美国产精品一区| 久久综合色88| 欧美日本一道本在线视频| 欧美成人免费一级人片100| 欧美日韩天天操| 狠狠爱综合网| 欧美区日韩区| 亚洲欧洲一区二区三区| 伊人久久男人天堂| 91久久国产综合久久91精品网站| 欧美日韩影院| 久久一区视频| 在线观看国产日韩| 亚洲精品乱码久久久久久蜜桃91| 欧美巨乳在线观看| 久久久精品国产一区二区三区| 亚洲精品一二区|