在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

異步fifo詳解

h1654155355.6033 ? 來源:未知 ? 作者:朱常 ? 2022-12-12 14:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

異步fifo詳解

一. 什么是異步FIFO

FIFO即First in First out的英文簡稱,是一種先進先出的數(shù)據(jù)緩存器,與普通存儲器的區(qū)別在于沒有外部讀寫的地址線,缺點是只能順序的讀取和寫入數(shù)據(jù)(對于大型數(shù)據(jù)存儲,在性能上必然緩慢),其數(shù)據(jù)地址是由內(nèi)部讀寫指針自動加一完成的,不能像普通的存儲器一樣,由地址線決定讀取或者寫入某個特定地址的數(shù)據(jù),按讀寫是否為相同時鐘域分為同步和異步FIFO,這里主要介紹異步FIFO,主要用于跨時鐘域傳輸數(shù)據(jù)。

FIFO是一種數(shù)據(jù)緩沖器,用來實現(xiàn)數(shù)據(jù)先入先出的讀/寫方式。FIFO有一個寫端口和一個讀端口,外部無需使用者控制地址,使用方便。FIFO與普通的Block RAM有一個很明顯的區(qū)別就是使用Block RAM來做數(shù)據(jù)緩存處理,使用者必須自己控制讀和寫地址的管理,必須保證寫的數(shù)據(jù)不把Block RAM中未被讀出的內(nèi)容覆蓋掉從而造成數(shù)據(jù)錯誤,同時保證讀的時候要讀出未被寫入的地址。而采用FIFO時,只需要關(guān)注FIFO控制器給出的空滿狀態(tài)信號即可知道當前有沒有錯誤的操作了FIFO,使FIFO的數(shù)據(jù)寫溢出或讀空。

異步FIFO讀寫分別采用相互異步的不同時鐘,使用異步FIFO可以在兩個不同時鐘系統(tǒng)之間快速而方便地傳輸實時數(shù)據(jù)

FIFO的常見參數(shù)

FIFO的寬度:即FIFO一次讀寫操作的數(shù)據(jù)位;

FIFO的深度:指的是FIFO可以存儲多少個N位的數(shù)據(jù)(如果寬度為N)。

滿標志:FIFO已滿或?qū)⒁獫M時由FIFO的狀態(tài)電路送出的一個信號,以阻止FIFO的寫操作繼續(xù)向FIFO中寫數(shù)據(jù)而造成溢出(overflow)。

空標志:FIFO已空或?qū)⒁諘r由FIFO的狀態(tài)電路送出的一個信號,以阻止FIFO的讀操作繼續(xù)從FIFO中讀出數(shù)據(jù)而造成無效數(shù)據(jù)的讀出(underflow)。

讀時鐘:讀操作所遵循的時鐘,在每個時鐘沿來臨時讀數(shù)據(jù)。

寫時鐘:寫操作所遵循的時鐘,在每個時鐘沿來臨時寫數(shù)據(jù)。

二、設(shè)計原理

2.1結(jié)構(gòu)框圖

如上圖所示的同步模塊synchronize to write clk,其作用是把讀時鐘域的讀指針rd_ptr采集到寫時鐘(wr_clk)域,然后和寫指針wr_ptr進行比較從而產(chǎn)生或撤消寫滿標志位wr_full;類似地,同步模塊synchronize to read clk的作用是把寫時鐘域的寫指針wr_ptr采集到讀時鐘域,然后和讀指針rd_ptr進行比較從而產(chǎn)生或撤消讀空標志位rd_empty。

另外還有寫指針wr_ptr和寫滿標志位wr_full產(chǎn)生模塊,讀指針rd_ptr和讀空標志位rd_empty產(chǎn)生模塊,以及雙端口存儲RAM模塊。

2.2 二進制計數(shù)器存在的問題

異步FIFO讀寫指針需要在數(shù)學上的操作和比較才能產(chǎn)生準確的空滿標志位,但由于讀寫指針屬于不同的時鐘域及讀寫時鐘相位關(guān)系的不確定性,同步模塊采集另一時鐘域的指針時,此指針有可能正處在跳變的過程中,如下圖所示,那么采集到的值很有可能是不期望的值,當然,不期望的錯誤結(jié)果也會隨之發(fā)生。

上圖中,rd_ptr2sync 3和4以及4和5之間的中間態(tài)是由于到各寄存器的時鐘rd_clk存在偏差而引起的。二進制的遞增操作,在大多數(shù)情況下都會有兩位或者兩以上的bit位在同一個遞增操作內(nèi)發(fā)生變化,但由于實際電路中會存在時鐘偏差和不同的路徑延時,二進制計數(shù)器在自增時會不可避免地產(chǎn)生錯誤的中間結(jié)果,如下圖。

由于rd_clk上升沿到達三寄存器的時間各不相同,這就導致了rd_ptr2sync的值從3’b011跳變3’b100的過程中經(jīng)歷了3’b111和3’b101,直到最后一個時鐘(rd_clk0)沿的到來后rd_ptr2sync才跳變到正確結(jié)果3’b100。中間結(jié)果的持續(xù)的時間雖然相對短暫,但是這些不正確的中間結(jié)果完全有可能被其它時鐘域的同步模塊采集到而產(chǎn)生錯誤的動作,見上圖。

由此可見,要避免中間結(jié)果的產(chǎn)生,其中一個可行的方案就是使被同步模塊采集的數(shù)據(jù)遞變時,每次只有一個bit位發(fā)生改變格雷碼計數(shù)器就是一個不錯的選擇。

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

    關(guān)注

    3

    文章

    400

    瀏覽量

    44698
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    cy7c68013a異步slave fifo模式,外部mcu無法讀寫fifo怎么解決?

    cy7c68013a 異步slave fifo 模式,外部mcu無法讀寫fifo 上位機發(fā)送bulk數(shù)據(jù),flag標志是對的,SLCS也拉低了,是設(shè)置的低有效, 檢測到了flag不為空的標志后
    發(fā)表于 06-03 10:49

    MAX3107SPI/I2C UART,具有128字FIFO技術(shù)手冊

    MAX3107是一款高級通用異步收發(fā)器(UART),接收、發(fā)送通道具有128字長的先入/先出(FIFO)數(shù)據(jù)緩沖器,可通過I2C或高速SPI?接口控制。2倍速和4倍速模式支持最高24Mbps的數(shù)據(jù)
    的頭像 發(fā)表于 05-22 11:24 ?205次閱讀
    MAX3107SPI/I2C UART,具有128字<b class='flag-5'>FIFO</b>技術(shù)手冊

    MAX14830四通道串行UART,具有128字FIFO技術(shù)手冊

    MAX14830是一款先進的四通道通用異步收發(fā)器(UART),每路UART帶有128字先入/先出(FIFO)接收和發(fā)送緩存器,以及高速串行外設(shè)接口(SPI?)或I2C控制器接口。PLL和分數(shù)波特率發(fā)生器為波特率編程和參考時鐘選擇提供了極大靈活性。
    的頭像 發(fā)表于 05-22 10:14 ?204次閱讀
    MAX14830四通道串行UART,具有128字<b class='flag-5'>FIFO</b>技術(shù)手冊

    MAX3108 SPI/I2C UART,具有128字FIFO,WLP封裝技術(shù)手冊

    MAX3108為小尺寸通用異步收發(fā)器(UART),每路接收和發(fā)送FIFO具有128個字,通過串行I2C或SPI控制器接口控制。自動休眠和關(guān)斷模式有助于降低待機功耗。500μA (最大)低電源電流
    的頭像 發(fā)表于 05-22 10:00 ?147次閱讀
    MAX3108 SPI/I2C UART,具有128字<b class='flag-5'>FIFO</b>,WLP封裝技術(shù)手冊

    MAX3109雙通道串行UART,帶有128字FIFO技術(shù)手冊

    MAX3109先進的雙通道通用異步收發(fā)器(UART)具有128字收發(fā)先進/先出(FIFO)堆棧和高速SPI?或I2C控制器接口。2倍速和4倍速模式允許工作在最高24Mbps數(shù)據(jù)速率。鎖相環(huán)(PLL)和分數(shù)波特率發(fā)生器允許靈活設(shè)置波特率、選擇參考時鐘。
    的頭像 發(fā)表于 05-22 09:26 ?155次閱讀
    MAX3109雙通道串行UART,帶有128字<b class='flag-5'>FIFO</b>技術(shù)手冊

    智多晶FIFO_Generator IP介紹

    FIFO_Generator是智多晶設(shè)計的一款通用型FIFO IP。當前發(fā)布的FIFO_Generator IP是2.0版本,相比之前的1.1版本主要新增了非等比輸入輸出數(shù)據(jù)位寬支持和異步
    的頭像 發(fā)表于 04-25 17:24 ?898次閱讀
    智多晶<b class='flag-5'>FIFO</b>_Generator IP介紹

    基于FPGA的FIFO實現(xiàn)

    FIFO(First in First out)為先進先出隊列,具有存儲功能,可用于不同時鐘域間傳輸數(shù)據(jù)以及不同的數(shù)據(jù)寬度進行數(shù)據(jù)匹配。如其名稱,數(shù)據(jù)傳輸為單向,從一側(cè)進入,再從另一側(cè)出來,出來的順序和進入的順序相同。
    的頭像 發(fā)表于 04-09 09:55 ?526次閱讀
    基于FPGA的<b class='flag-5'>FIFO</b>實現(xiàn)

    AXI接口FIFO簡介

    AXI接口FIFO是從Native接口FIFO派生而來的。AXI內(nèi)存映射接口提供了三種樣式:AXI4、AXI3和AXI4-Lite。除了Native接口FIFO支持的應(yīng)用外,AXI FIFO
    的頭像 發(fā)表于 03-17 10:31 ?936次閱讀
    AXI接口<b class='flag-5'>FIFO</b>簡介

    解鎖TSMaster fifo函數(shù):報文讀取的高效方法

    前言:TSMaster目前有兩種讀取報文的模式:回調(diào)函數(shù)模式和fifo模式。fifo函數(shù)是TSMaster近期新增的函數(shù),本文將重點介紹fifo模塊。關(guān)于回調(diào)函數(shù)的使用方法可以參考幫助模塊的《快速
    的頭像 發(fā)表于 03-14 20:04 ?411次閱讀
    解鎖TSMaster <b class='flag-5'>fifo</b>函數(shù):報文讀取的高效方法

    SDRAM控制器的設(shè)計——Sdram_Control.v代碼解析(異步FIFO讀寫模塊、讀寫SDRAM過程)

    前言 SDRAM控制器里面包含5個主要的模塊,分別是PLL模塊,異步FIFO 寫模塊,異步FIFO讀模塊,SDRAM接口控制模塊,SDRAM指令執(zhí)行模塊。 其中
    的頭像 發(fā)表于 03-04 10:49 ?1461次閱讀
    SDRAM控制器的設(shè)計——Sdram_Control.v代碼解析(<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>讀寫模塊、讀寫SDRAM過程)

    FIFO IP核的使用教程

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

    FIFO Generator的Xilinx官方手冊

    FIFO作為FPGA崗位求職過程中最常被問到的基礎(chǔ)知識點,也是項目中最常被使用到的IP,其意義是非常重要的。本文基于對FIFO Generator的Xilinx官方手冊的閱讀與總結(jié),匯總主要知識點
    的頭像 發(fā)表于 11-12 10:46 ?1608次閱讀
    <b class='flag-5'>FIFO</b> Generator的Xilinx官方手冊

    FIFO的深度應(yīng)該怎么計算

    FIFO是FPGA/IC設(shè)計中經(jīng)常使用到的模塊,它經(jīng)常被用在兩個模塊之間進行數(shù)據(jù)的緩存,以避免數(shù)據(jù)在傳輸過程中丟失。同時FIFO也經(jīng)常被用在跨時鐘域處理中。
    的頭像 發(fā)表于 10-25 15:20 ?918次閱讀
    <b class='flag-5'>FIFO</b>的深度應(yīng)該怎么計算

    Efinity FIFO IP仿真問題 -v1

    Efinity目前不支持聯(lián)合仿真,只能通過調(diào)用源文件仿真。 我們生成一個fifo IP命名為fifo_sim 在Deliverables中保留Testbench的選項。 在IP的生成目錄下會有以下
    的頭像 發(fā)表于 10-21 11:41 ?1504次閱讀
    Efinity <b class='flag-5'>FIFO</b> IP仿真問題 -v1

    具有FIFO的雙異步通信元件TL16C552A數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有FIFO的雙異步通信元件TL16C552A數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 06-26 11:28 ?0次下載
    具有<b class='flag-5'>FIFO</b>的雙<b class='flag-5'>異步</b>通信元件TL16C552A數(shù)據(jù)表
    主站蜘蛛池模板: 国产精品美女一级在线观看 | 成人性色生活影片 | 黄a视频在线观看 | 亚洲美女爱爱 | 亚洲五月激情 | 美女被免费网站在线视频九色 | 四虎在线免费视频 | 狠狠干免费视频 | 男人天堂伊人网 | 国产日韩精品一区二区三区 | 国产yw855.c免费视频 | 亚洲男人的天堂久久香蕉 | 午夜免费理论片在线看 | 永久黄色免费网站 | 在线久综合色手机在线播放 | 免费看黄色毛片 | 91老色批网站免费看 | 成人欧美一区二区三区视频 | 五月婷婷综合基地 | 国产三级三级三级 | 午夜免费福利片观看 | 国产精品视频色拍拍 | 成年人三级视频 | 成人99国产精品一级毛片 | 国产精品一级香蕉一区 | 亚洲午夜影视 | 九九九精品视频免费 | 精品一区二区三区视频 | 欧美精品国产第一区二区 | 你懂得福利 | 26uuu欧美日本| 色婷婷免费视频 | 日韩加勒比在线 | 久久久久久全国免费观看 | 全黄色一级片 | 优优色综合 | 日本久本草精品 | 性高清| 五月天婷五月天综合网在线 | 日韩有色 | 国产精品三级在线观看 |