哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

    文章

    407

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    淘寶券后價異步數(shù)據(jù)

    淘寶 券后價異步數(shù)據(jù) ,核心是 非阻塞、批量、延遲獲取 商品券后價(原價 - 優(yōu)惠券),適合大規(guī)模商品監(jiān)控、比價、選品場景。淘寶官方無直接 “券后價異步接口”,需通過 官方 API 組合 + 異步
    的頭像 發(fā)表于 03-25 15:39 ?139次閱讀

    詳解SRC4192和SRC4193:專業(yè)音頻領(lǐng)域的異步采樣率轉(zhuǎn)換器

    詳解SRC4192和SRC4193:專業(yè)音頻領(lǐng)域的異步采樣率轉(zhuǎn)換器 在專業(yè)音頻和廣播應(yīng)用的領(lǐng)域中,對音頻信號處理的精度和靈活性要求極高。SRC4192和SRC4193這兩款異步采樣率轉(zhuǎn)換器(ASRC
    的頭像 發(fā)表于 02-03 16:00 ?726次閱讀

    FIFO存儲器的種類、IP配置及應(yīng)用

    FIRST IN FIRST OUT (先入先出)。顧名思義,FIFO是一個數(shù)據(jù)具有先進先出的存儲器。
    的頭像 發(fā)表于 01-13 15:15 ?569次閱讀
    <b class='flag-5'>FIFO</b>存儲器的種類、IP配置及應(yīng)用

    探索TL16C550D/DI:高性能異步通信元件的技術(shù)剖析

    探索TL16C550D/DI:高性能異步通信元件的技術(shù)剖析 在當今的電子通信領(lǐng)域,異步通信元件扮演著至關(guān)重要的角色。今天,我們將深入探討德州儀器(TI)的TL16C550D和TL16C550DI這
    的頭像 發(fā)表于 01-04 16:20 ?353次閱讀

    詳解TL16C550C:高性能異步通信芯片的卓越之選

    詳解TL16C550C:高性能異步通信芯片的卓越之選 在電子工程師的日常工作中,選擇合適的通信芯片對于實現(xiàn)穩(wěn)定、高效的異步通信至關(guān)重要。今天,我們就來深入探討一款功能強大的異步通信芯片
    的頭像 發(fā)表于 01-04 16:20 ?540次閱讀

    探索TL16C752D:具有64字節(jié)FIFO的雙路UART的卓越性能與應(yīng)用

    探索TL16C752D:具有64字節(jié)FIFO的雙路UART的卓越性能與應(yīng)用 在電子設(shè)計的廣闊領(lǐng)域中,UART(通用異步收發(fā)器)作為實現(xiàn)串行通信的關(guān)鍵組件,一直扮演著重要角色。今天,我們將深入探討TI
    的頭像 發(fā)表于 12-19 11:50 ?999次閱讀

    求助,關(guān)于串口設(shè)備驅(qū)動fifo問題

    的一幀有300對字節(jié),最少37字節(jié),DMA模式為循環(huán)模式,緩沖buf,自己理解的是DMA的buf就是serial.c中的fifo buf,buf的size設(shè)置為2048; 問題: 1、數(shù)據(jù)接收存在粘包
    發(fā)表于 09-12 08:18

    從底層解讀labview的TDMS高級異步寫入的工作原理

    在 LabVIEW 的 TDMS 高級異步寫入中,“異步寫入”指的是 寫入操作的調(diào)用方式 ,而不是指允許多個線程同時直接操作同一個文件的物理內(nèi)容。 理解這個概念需要區(qū)分幾個層面: 異步調(diào)用 vs.
    發(fā)表于 08-14 17:05

    cy7c68013a slave fifo寫數(shù)據(jù)出現(xiàn)異常的原因?怎么解決?

    Hi all, 我使用68013A和MCU采用Slave Fifo 異步方式進行通訊,EP2為AUTOOUT,EP6為AUTOIN,16位?,F(xiàn)在有一個奇怪的現(xiàn)象出現(xiàn),當通過mcu發(fā)送0x00 00
    發(fā)表于 06-04 08:22

    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 ?1163次閱讀
    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 ?1191次閱讀
    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 ?1261次閱讀
    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 ?958次閱讀
    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 ?1991次閱讀
    智多晶<b class='flag-5'>FIFO</b>_Generator IP介紹
    拉孜县| 台州市| 翁牛特旗| 江阴市| 苏尼特右旗| 梧州市| 沙洋县| 肇州县| 丘北县| 安义县| 博湖县| 潮安县| 霍林郭勒市| 海淀区| 珠海市| 虹口区| 蒙自县| 杭锦后旗| 清新县| 苏尼特右旗| 合山市| 沽源县| 泸溪县| 桃园市| 合肥市| 安化县| 阿合奇县| 龙海市| 浦北县| 康乐县| 固阳县| 金坛市| 临湘市| 贡嘎县| 西贡区| 杭锦旗| 大洼县| 凤台县| 常山县| 太和县| 浙江省|