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

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

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

3天內不再提示

異步fifo詳解

h1654155355.6033 ? 來源:未知 ? 作者:朱常 ? 2022-12-12 14:17 ? 次閱讀

異步fifo詳解

一. 什么是異步FIFO

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

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

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

FIFO的常見參數

FIFO的寬度:即FIFO一次讀寫操作的數據位;

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

滿標志:FIFO已滿或將要滿時由FIFO的狀態電路送出的一個信號,以阻止FIFO的寫操作繼續向FIFO中寫數據而造成溢出(overflow)。

空標志:FIFO已空或將要空時由FIFO的狀態電路送出的一個信號,以阻止FIFO的讀操作繼續從FIFO中讀出數據而造成無效數據的讀出(underflow)。

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

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

二、設計原理

2.1結構框圖

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

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

2.2 二進制計數器存在的問題

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

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

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

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

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

    關注

    3

    文章

    397

    瀏覽量

    44515
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    智多晶FIFO_Generator IP介紹

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

    基于FPGA的FIFO實現

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

    AXI接口FIFO簡介

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

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

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

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

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

    使用SCL編寫FIFO功能塊

    一、 導讀? ? 前幾天一位搞電氣的朋友問S7-1200中如何做個先入先出的功能,說原來用S7-200SMART的時候有填表指令和FIFO指令可以實現該功能,現在S7-1200中找了一圈都沒有
    的頭像 發表于 02-09 10:27 ?459次閱讀
    使用SCL編寫<b class='flag-5'>FIFO</b>功能塊

    FIFO IP核的使用教程

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

    DAC3482內部的FIFO作用是什么?

    我現在正在使用DAC3482芯片,想請教一下其內部的FIFO作用是什么? FIFO讀寫指針分別由DATACLK和DACCLK(或其分頻)來驅動,用于“緩沖”的作用,我有兩種理解: 1.只能緩沖讀寫
    發表于 12-23 07:06

    FIFO Generator的Xilinx官方手冊

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

    FIFO的深度應該怎么計算

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

    Efinity FIFO IP仿真問題 -v1

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

    具有FIFO的雙異步通信元件TL16C552A數據表

    電子發燒友網站提供《具有FIFO的雙異步通信元件TL16C552A數據表.pdf》資料免費下載
    發表于 06-26 11:28 ?0次下載
    具有<b class='flag-5'>FIFO</b>的雙<b class='flag-5'>異步</b>通信元件TL16C552A數據表

    異步永磁電機工作原理 永磁電機有異步的嗎

    異步永磁電機是一種將永磁材料與異步電機技術相結合的新型電機,它具有效率高、結構簡單、體積小、重量輕、維護方便等優點,在工業、農業、交通運輸等領域得到了廣泛應用。本文將詳細介紹異步永磁電機的工作原理
    的頭像 發表于 06-13 10:03 ?1565次閱讀

    同步FIFO異步FIFO區別介紹

    ,并且間隔時間長,也就是突發寫入。那么通過設置一定深度的FIFO,可以起到數據暫存的功能,且使得后續處理流程平滑。 時鐘域的隔離:主要用異步FIFO。對于不同時鐘域的數據傳輸,可以通過FIFO
    的頭像 發表于 06-04 14:27 ?2390次閱讀
    同步<b class='flag-5'>FIFO</b>和<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>區別介紹

    DMA產生FIFO error interrupt錯誤的原因?

    DMA用于接收采集AD轉化數據,而且AD每間隔50us采集一次,DMA配置成單次模式,并收數長度50次,未啟用FIFO模式,但是當外部中斷非常頻繁時,DMA不知怎么回事,產生了FIFO 錯誤,按道理
    發表于 05-15 06:34
    主站蜘蛛池模板: 天天弄天天操 | tom影院亚洲国产日本一区 | 久久久久久88色偷偷 | 日本视频免费高清一本18 | 日本大片免费一级 | 久久精品影院永久网址 | 日韩欧美成人乱码一在线 | 男人操女人免费 | 国产午夜精品理论片 | 午夜毛片免费观看视频 | 人操人人| 亚洲狠狠综合久久 | 亚洲综合日韩欧美一区二区三 | 尻美女视频 | 欧美黑人性受xxxx喷水 | 亚洲成片在线观看12345ba | 午夜日韩精品 | 久久国产高清视频 | 爽好舒服老师快点 | 日本一二线不卡在线观看 | 黄色网址 在线播放 | 国产aa| 亚洲三级网 | 黄色大秀视频 | 九色九色九色在线综合888 | 极品色天使在线婷婷天堂亚洲 | 五月激激 | 欧美午夜视频一区二区 | 三级在线观看免播放网站 | 尤物蜜芽福利国产污在线观看 | 四虎院影永久在线观看 | 播放欧亚一级特黄录像 | se94se最新网站| 日韩免费精品视频 | 欧美色插| 欧美成人3d动漫在线播放网站 | 国产一级特黄老妇女大片免费 | 欧美一区二区三区激情啪啪 | 扒开双腿爽爽爽视频www | 看真人一级毛多毛片 | 全国男人的天堂天堂网 |