h1_key

當(dāng)前位置:首頁 >新聞資訊 > 技術(shù)文章>FPGA基礎(chǔ)知識同步FIFO篇
FPGA基礎(chǔ)知識同步FIFO篇
2023-04-10 789次

  FPGA/ASIC中的FIFO

  FIFO緩沖區(qū)如何用于傳輸數(shù)據(jù)和跨時鐘域

  縮寫FIFO代表 First In First Out。FIFO在FPGA和ASIC設(shè)計中無處不在,它們是基本的構(gòu)建模塊之一。而且它們非常方便!FIFO可用于以下任何目的:

  ●跨時鐘域

  ●在將數(shù)據(jù)發(fā)送到芯片外之前將其緩沖(例如,發(fā)送到DRAM或SRAM)

  ●緩沖數(shù)據(jù)以供軟件在以后查看

●存儲數(shù)據(jù)以備后用

 

  FIFO可以認(rèn)為是汽車可以駛過的單向隧道。隧道的盡頭是一個帶門的收費站。門一旦打開,汽車便可以離開隧道。如果那扇門從未打開,而更多的汽車?yán)^續(xù)進入隧道,那么最終隧道將充滿汽車。這稱為FIFO溢出,通常這不是一件好事。FIFO的深度可以認(rèn)為是隧道的長度。FIFO越深,在溢出之前可以容納更多的數(shù)據(jù)。FIFO也具有寬度,該寬度表示進入FIFO的數(shù)據(jù)的寬度(以位數(shù)為單位)。下面是任何FIFO基本接口的圖像。當(dāng)您查看任何FIFO時,總是會找到這些信號。通常,會有更多的信號添加其他功能,例如FIFO中的字?jǐn)?shù)計數(shù)。參見下圖:

  

 

 

  基礎(chǔ)FIFO

  FIFO可以分為寫一側(cè)和讀一側(cè)。寫入一側(cè)具有信號“寫入使能wr_en”,“寫入數(shù)據(jù)wr_data”和“ FIFO已滿fifo_full”。設(shè)計人員切勿寫入已滿的FIFO!始終檢查FIFO已滿標(biāo)志,以確保有空間可以寫入另一條數(shù)據(jù),否則您將丟失該數(shù)據(jù)。

  讀取的一側(cè)具有信號“讀取使能rd_en”,“讀取數(shù)據(jù)rd_data”和“ FIFO空fifo_empty”。設(shè)計人員切勿讀取空的FIFO!只要您遵循這兩個基本規(guī)則,您和FIFO就會相處融洽。我再說一遍,因為它們是如此重要。

  FIFO的兩個規(guī)則:

  ●永遠不要寫入完整的FIFO(溢出)

  ●永遠不要從空的FIFO中讀取(下溢)

FIFO本身可以由FPGA或ASIC內(nèi)的專用邏輯組成,也可以由觸發(fā)器(分布式寄存器)創(chuàng)建。綜合工具將使用這兩種工具中的哪一種完全取決于您使用的FPGA供應(yīng)商以及代碼的結(jié)構(gòu)。只需知道,當(dāng)您使用專用邏輯塊時,與使用基于寄存器的FIFO相比,它們具有更好的性能。FIFO是FPGA設(shè)計人員的基本構(gòu)建模塊之一,對于正確理解和正確使用至關(guān)重要!

 

  同步FIFO的設(shè)計

  為了簡單起見,先設(shè)計一個同步FIFO,僅帶有空滿標(biāo)志。在給出同步FIFO設(shè)計之前,有必要說說同步FIFO的原理,同步FIFO的設(shè)計很有必要,它是通往異步FIFO的基礎(chǔ),同步FIFO中的所有原理都理解了,異步FIFO中和同步FIFO相同的東西就不必再費心思思考了,而是直接進入重點,如何控制空滿!

  FIFO是先進先出的首字母縮寫,它描述了如何相對于時間或優(yōu)先級管理數(shù)據(jù)。在這種情況下,到達的第一個數(shù)據(jù)也將是從一組數(shù)據(jù)中離開的第一個數(shù)據(jù)。FIFO緩沖區(qū)是一種讀/寫存儲陣列,可自動跟蹤數(shù)據(jù)進入模塊的順序并以相同順序讀出數(shù)據(jù)。在硬件中,F(xiàn)IFO緩沖區(qū)用于同步目的。 它通常實現(xiàn)為循環(huán)隊列,并具有兩個指針:

  ●讀指針/讀地址寄存器

  ●寫指針/寫地址寄存器

  讀寫地址最初都位于第一個存儲器位置,并且FIFO隊列為空。當(dāng)FIFO緩沖區(qū)的讀地址和寫地址之間的差等于內(nèi)存陣列的大小時,則FIFO隊列為Full(對于異步FIFO而言,可以設(shè)計多一位地址表示讀指針以及寫指針)。

  FIFO可以分為同步時鐘還是異步時鐘,具體取決于是相同時鐘(同步)還是不同時鐘(異步)控制讀寫操作。

  同步FIFO是指FIFO設(shè)計,其中使用時鐘信號將數(shù)據(jù)值順序?qū)懭氪鎯﹃嚵?,并使用相同的時鐘信號從存儲陣列順序讀出數(shù)據(jù)值。圖1顯示了典型FIFO的操作流程。

  

 

 

再看一幅圖:

 

 

從這幅圖中我們可以得到如下信息:

  ●寫指針WP總是指向下一個時鐘要寫的地址;

  ●讀指針RP總是指向下一個時鐘要讀的地址;

  ●讀指針等于寫指針的時候有可能為空,有可能為滿。

 

  • XILINX賽靈思 XC7K160T-2FBG484E
  • 賽靈思(XILINX)作為行業(yè)的領(lǐng)軍企業(yè),其推出的 XC7K160T-2FBG484E 更是一款備受矚目的產(chǎn)品。XC7K160T-2FBG484E 屬于賽靈思 7 系列 FPGA(現(xiàn)場可編程門陣列),具有強大的性能和豐富的功能。
    2024-09-25 115次
  • XILINX賽靈思 XCKU085-2FLVA1517E
  • 賽靈思(XILINX)作為全球領(lǐng)先的可編程邏輯器件供應(yīng)商,其推出的 XCKU085-2FLVA1517E 以卓越的性能和豐富的功能,成為眾多電子工程師和設(shè)計師的首選。XCKU085-2FLVA1517E 屬于賽靈思 UltraScale 架構(gòu)系列產(chǎn)品,采用先進的 20 納米工藝技術(shù)制造。這一工藝不僅帶來了更高的性能,還實現(xiàn)了更低的功耗,為各種復(fù)雜的電子系統(tǒng)設(shè)計提供了理想的解決方案。
    2024-09-25 101次
  • XILINX賽靈思 XCKU060-1FFVA1517C
  • 賽靈思(XILINX)作為全球領(lǐng)先的可編程邏輯解決方案供應(yīng)商,其 XCKU060-1FFVA1517C 更是一款備受矚目的產(chǎn)品。XCKU060-1FFVA1517C 屬于賽靈思 UltraScale 架構(gòu)系列,采用了先進的 16 納米 FinFET 工藝技術(shù)。這一工藝帶來了諸多優(yōu)勢,如更高的性能、更低的功耗以及更小的芯片尺寸。
    2024-09-25 108次
  • XILINX賽靈思 XCKU060-2FFVA1517E
  • 賽靈思(XILINX)作為行業(yè)的領(lǐng)軍企業(yè),其推出的 XCKU060-2FFVA1517E 更是一款備受矚目的產(chǎn)品。XCKU060-2FFVA1517E 屬于賽靈思 UltraScale 架構(gòu)系列的 FPGA(現(xiàn)場可編程門陣列)。它融合了先進的技術(shù)和強大的性能,為各種復(fù)雜的應(yīng)用場景提供了高度靈活且可靠的解決方案。
    2024-09-25 95次
  • XILINX賽靈思 XC7Z035-3FFG676E
  • 賽靈思(XILINX)作為全球領(lǐng)先的可編程邏輯解決方案供應(yīng)商,其 XC7Z035-3FFG676E 更是一款備受矚目的產(chǎn)品。XC7Z035-3FFG676E 屬于賽靈思 Zynq - 7000 系列,該系列將處理器系統(tǒng)(PS)和可編程邏輯(PL)完美結(jié)合,為用戶提供了高度靈活的解決方案。這款器件采用了先進的 28 納米工藝技術(shù),在性能、功耗和成本之間實現(xiàn)了出色的平衡。
    2024-09-25 96次

    萬聯(lián)芯微信公眾號

    元器件現(xiàn)貨+BOM配單+PCBA制造平臺
    關(guān)注公眾號,優(yōu)惠活動早知道!
    10s
    溫馨提示:
    訂單商品問題請移至我的售后服務(wù)提交售后申請,其他需投訴問題可移至我的投訴提交,我們將在第一時間給您答復(fù)
    返回頂部