91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

大規(guī)模ASIC或FPGA設(shè)計(jì)中異步FIFO設(shè)計(jì)闡述

FPGA之家 ? 來(lái)源:EETOP ? 作者:ThinkSpark ? 2021-09-30 09:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述

在大規(guī)模ASICFPGA設(shè)計(jì)中,多時(shí)鐘系統(tǒng)往往是不可避免的,這樣就產(chǎn)生了不同時(shí)鐘域數(shù)據(jù)傳輸?shù)膯栴},其中一個(gè)比較好的解決方案就是使用異步FIFO來(lái)作不同時(shí)鐘域數(shù)據(jù)傳輸?shù)木彌_區(qū),這樣既可以使相異時(shí)鐘域數(shù)據(jù)傳輸?shù)臅r(shí)序要求變得寬松,也提高了它們之間的傳輸效率。此文內(nèi)容就是闡述異步FIFO的設(shè)計(jì)。

二、設(shè)計(jì)原理

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

73ca2282-218b-11ec-82a8-dac502259ad0.jpg


Fig. 2.1.1

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

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

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

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

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

上圖是Fig.2.2.1的電路原型以及局部波形的放大。由于rd_clk上升沿到達(dá)三寄存器的時(shí)間各不相同,這就導(dǎo)致了rd_ptr2sync的值從3’b011跳變3’b100的過程中經(jīng)歷了3’b111和3’b101,直到最后一個(gè)時(shí)鐘(rd_clk0)沿的到來(lái)后rd_ptr2sync才跳變到正確結(jié)果3’b100。中間結(jié)果的持續(xù)的時(shí)間雖然相對(duì)短暫,但是這些不正確的中間結(jié)果完全有可能被其它時(shí)鐘域的同步模塊采集到而產(chǎn)生錯(cuò)誤的動(dòng)作,見上圖。

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

2.3格雷碼計(jì)數(shù)器的實(shí)現(xiàn)

2.3.1格雷碼的表現(xiàn)形式

格雷碼一個(gè)最大的特點(diǎn)就是在遞增或遞減的過程中,每次只變化一位,這是它最大的優(yōu)點(diǎn)。同時(shí)它也有自己的局限性,那就是循環(huán)計(jì)數(shù)深度必須是2的n次冪,否則就失去了每次只變化一位的特性。深度為16的二進(jìn)制及格雷碼遞變表如下:

Binary Gray

0 0000 0000

1 0001 0001

2 0010 0011

3 0011 0010

4 0100 0110

5 0101 0111

6 0110 0101

7 0111 0100

8 1000 1100

9 1001 1101

10 1010 1111

11 1011 1110

12 1100 1010

13 1101 1011

14 1110 1001

15 1111 1000

0 0000 0000

2.3.2二進(jìn)制和格雷碼的相互轉(zhuǎn)換

1、二進(jìn)制到格雷碼:

745ae790-218b-11ec-82a8-dac502259ad0.png

2.3.3格雷碼計(jì)數(shù)器的實(shí)現(xiàn)

如下圖fig.2.3.1所示,指向存儲(chǔ)器的地址指針由二進(jìn)制計(jì)數(shù)器產(chǎn)生,而用于跨時(shí)鐘域傳播的格雷碼指針是對(duì)二進(jìn)制指針的實(shí)時(shí)轉(zhuǎn)換并用寄存器采集獲得的。這里要注意的是,計(jì)數(shù)器的位寬比實(shí)際所需的位寬要多出一位,這樣做的目的是方便判斷FIFO的空或滿,這一點(diǎn)下文中將會(huì)介紹。

2.4空滿標(biāo)志位的產(chǎn)生

異步FIFO最核心的部分就是精確產(chǎn)生空滿標(biāo)志位,這直接關(guān)系到設(shè)計(jì)的成敗。本文采用比較讀寫指針來(lái)判斷FIFO的空滿,如果FIFO的深度是n-1位線所能訪問到的地址空間,那么此設(shè)計(jì)所要用的指針位寬就比實(shí)際多出一位,也就是n位,這樣做有助于判斷FIFO是空還是滿。

2.4.1讀空標(biāo)志位的產(chǎn)生

當(dāng)讀地址rd_ptr趕上寫地址wr_ptr,也就是rd_ptr完全等于wr_ptr時(shí),可以斷定,F(xiàn)IFO里的數(shù)據(jù)已被讀空,而且只有在兩種情況下,F(xiàn)IFO才會(huì)為空:第一種是系統(tǒng)復(fù)位,讀寫指針全部清零;另一種情況是在FIFO不為空時(shí),數(shù)據(jù)讀出的速率快于數(shù)據(jù)寫入的速率,讀地址趕上寫地址時(shí)FIFO為空??諛?biāo)志位的產(chǎn)生需要在讀時(shí)鐘域里完成,這樣不至于發(fā)生FIFO已經(jīng)為空了而空標(biāo)志位還沒有產(chǎn)生的情況,但是可能會(huì)發(fā)生FIFO里已經(jīng)有數(shù)據(jù)了而空標(biāo)志位還沒有撤消的情況,不過就算是在最壞情況下,空標(biāo)志位撤消的滯后也只有三個(gè)時(shí)鐘周期,這個(gè)問題不會(huì)引起傳輸錯(cuò)誤;還有一種情況就是空標(biāo)志比較邏輯檢測(cè)到讀地址和寫地址相同后緊接著系統(tǒng)產(chǎn)生了寫操作,寫地址增加,F(xiàn)IFO內(nèi)有了新數(shù)據(jù),由于同步模塊的滯后性,用于比較的寫地址不能及時(shí)更新,這樣,一個(gè)本不應(yīng)該有的空標(biāo)志信號(hào)就產(chǎn)生了,不過這種情況也不會(huì)導(dǎo)致錯(cuò)誤的發(fā)生,像這種FIFO非空而產(chǎn)生空標(biāo)志信號(hào)的情況稱為“虛空”。

74d0ccf8-218b-11ec-82a8-dac502259ad0.png


Fig. 2.4.1.1空標(biāo)志產(chǎn)生邏輯

如圖Fig. 2.4.1.1空標(biāo)志產(chǎn)生邏輯,寫時(shí)鐘域的寫指針通過兩級(jí)寄存被同步到讀時(shí)鐘域之后與讀指針進(jìn)行比較,如果完全相等,則會(huì)產(chǎn)生空標(biāo)志信號(hào);同步模塊用兩級(jí)寄存器來(lái)實(shí)現(xiàn)是為了消除可能的亞穩(wěn)態(tài),正如前面所述,因?yàn)閣r_ptr_gray是用格雷碼實(shí)現(xiàn)的,即使同步模塊是在wr_ptr_gray跳變的時(shí)刻進(jìn)行采集,其采集到的所有可能值也只有兩個(gè),一個(gè)是跳變之前的值,一個(gè)是跳變之后的值,它們只相差1,最壞情況也只是產(chǎn)生了“虛空”信號(hào),而這不會(huì)引起錯(cuò)誤傳輸。

2.4.2寫滿標(biāo)志位的產(chǎn)生

和讀空標(biāo)志位產(chǎn)生機(jī)制一樣,寫滿標(biāo)志位也是通過比較讀寫地址產(chǎn)生的。讀寫指針的關(guān)系就好比A,B兩個(gè)田徑運(yùn)動(dòng)員在一環(huán)形跑道上賽跑一樣,當(dāng)B運(yùn)動(dòng)員領(lǐng)先A并整整超前一圈時(shí),A,B兩人的地點(diǎn)相同,此種情況對(duì)應(yīng)于讀寫指針指向了同一地址,但寫指針超前整整一圈,F(xiàn)IFO被寫滿。和讀空標(biāo)志產(chǎn)生一樣,寫滿標(biāo)志也是讀寫指針相同時(shí)產(chǎn)生。但是如果地址的寬度和FIFO實(shí)際深度所需的寬度相等,某一時(shí)刻讀寫地址相同了,那FIFO是空還是滿就難以判斷了。所以讀寫指針需要增加一位來(lái)標(biāo)記寫地址是否超前讀地址(在系統(tǒng)正確工作的前提下,讀地址不可能超前于寫地址),比如FIFO的深度為8,我們需要用寬度為4的指針。


Fig. 2.4.2.1格雷碼指針和存儲(chǔ)空間的映射關(guān)系

如果讀指針的最高位為0,而寫指針的最高位為1,說明寫指針超前于讀指針,這時(shí)如果讀寫指針指向同一存儲(chǔ)空間,參照Fig. 2.4.2.1 , 則可判斷為FIFO被寫滿。寫滿標(biāo)志位產(chǎn)生邏輯只需關(guān)心格雷碼指針最高位不同(寫超前于讀)且它們指向同一存儲(chǔ)空間的情況,那么怎么通過比較兩格雷碼指針來(lái)判斷這種情況的發(fā)生呢?首先,最高位相異(因?yàn)樽x指針不可能超前于寫指針,所以只可能是寫指針超前于讀指針);其次,如果把最高位為1的所有格雷碼指針的次高位均取反后,除去最高位不看,則指向同一存儲(chǔ)空間的兩指針相同,從而得出第二個(gè)條件是:次高也相異。


Fig. 2.4.2.2寫滿標(biāo)志位產(chǎn)生邏輯

三、總結(jié)

前文講述了異步FIFO的應(yīng)用需要、實(shí)現(xiàn)原理,并重點(diǎn)闡述了空滿標(biāo)志信號(hào)的產(chǎn)生方法以及可能會(huì)發(fā)生的“虛空”和“虛滿”現(xiàn)象。理解了這些關(guān)鍵信號(hào)的產(chǎn)生原理,設(shè)計(jì)一個(gè)異步FIFO也就不難了。

責(zé)任編輯:haq

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

    關(guān)注

    1660

    文章

    22409

    瀏覽量

    636252
  • asic
    +關(guān)注

    關(guān)注

    34

    文章

    1274

    瀏覽量

    124571
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    407

    瀏覽量

    45746

原文標(biāo)題:異步FIFO設(shè)計(jì)(非常詳細(xì),圖文并茂,值得一看?。?/p>

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于FPGA的高效內(nèi)存到串行數(shù)據(jù)傳輸模塊設(shè)計(jì)

    本文介紹了一個(gè)基于FPGA的內(nèi)存到串行數(shù)據(jù)傳輸模塊,該模塊設(shè)計(jì)用來(lái)高效地處理存儲(chǔ)器的數(shù)據(jù)并傳輸至串行接口。項(xiàng)目中自定義的“datamover_mm2s_fpga_”方案利用異步
    的頭像 發(fā)表于 11-12 14:31 ?4328次閱讀
    基于<b class='flag-5'>FPGA</b>的高效內(nèi)存到串行數(shù)據(jù)傳輸模塊設(shè)計(jì)

    TensorRT-LLM的大規(guī)模專家并行架構(gòu)設(shè)計(jì)

    之前文章已介紹引入大規(guī)模 EP 的初衷,本篇將繼續(xù)深入介紹 TensorRT-LLM 的大規(guī)模專家并行架構(gòu)設(shè)計(jì)與創(chuàng)新實(shí)現(xiàn)。
    的頭像 發(fā)表于 09-23 14:42 ?1105次閱讀
    TensorRT-LLM的<b class='flag-5'>大規(guī)模</b>專家并行架構(gòu)設(shè)計(jì)

    大規(guī)模專家并行模型在TensorRT-LLM的設(shè)計(jì)

    DeepSeek-V3 / R1 等模型采用大規(guī)模細(xì)粒度混合專家模型 (MoE) 架構(gòu),大幅提升了開源模型的質(zhì)量。Llama 4 和 Qwen3 等新發(fā)布的開源模型的設(shè)計(jì)原則也采用了類似的大規(guī)模細(xì)粒度 MoE 架構(gòu)。但大規(guī)模 M
    的頭像 發(fā)表于 09-06 15:21 ?1224次閱讀
    <b class='flag-5'>大規(guī)模</b>專家并行模型在TensorRT-LLM的設(shè)計(jì)

    使用Ansible實(shí)現(xiàn)大規(guī)模集群自動(dòng)化部署

    當(dāng)你面對(duì)1000+服務(wù)器需要部署時(shí),你還在一臺(tái)臺(tái)手工操作嗎?本文將揭秘如何用Ansible實(shí)現(xiàn)大規(guī)模集群的自動(dòng)化部署,讓運(yùn)維效率提升10倍!
    的頭像 發(fā)表于 08-27 14:41 ?814次閱讀

    FPGA在機(jī)器學(xué)習(xí)的具體應(yīng)用

    隨著機(jī)器學(xué)習(xí)和人工智能技術(shù)的迅猛發(fā)展,傳統(tǒng)的中央處理單元(CPU)和圖形處理單元(GPU)已經(jīng)無(wú)法滿足高效處理大規(guī)模數(shù)據(jù)和復(fù)雜模型的需求。FPGA(現(xiàn)場(chǎng)可編程門陣列)作為一種靈活且高效的硬件加速平臺(tái)
    的頭像 發(fā)表于 07-16 15:34 ?2885次閱讀

    AMD FPGA異步模式與同步模式的對(duì)比

    本文講述了AMD UltraScale /UltraScale+ FPGA 原生模式下,異步模式與同步模式的對(duì)比及其對(duì)時(shí)鐘設(shè)置的影響。
    的頭像 發(fā)表于 07-07 13:47 ?1636次閱讀

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

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

    薄型、多頻段、大規(guī)模物聯(lián)網(wǎng)前端模塊 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()薄型、多頻段、大規(guī)模物聯(lián)網(wǎng)前端模塊相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有薄型、多頻段、大規(guī)模物聯(lián)網(wǎng)前端模塊的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,薄型、多頻段、大規(guī)模物聯(lián)網(wǎng)前端模塊真值表,薄型、多頻段、
    發(fā)表于 05-15 18:32
    薄型、多頻段、<b class='flag-5'>大規(guī)模</b>物聯(lián)網(wǎng)前端模塊 skyworksinc

    帶耦合器的大規(guī)模物聯(lián)網(wǎng)半雙工前端模塊 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()帶耦合器的大規(guī)模物聯(lián)網(wǎng)半雙工前端模塊相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有帶耦合器的大規(guī)模物聯(lián)網(wǎng)半雙工前端模塊的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,帶耦合器的大規(guī)模物聯(lián)網(wǎng)半雙工前端模塊真值表,帶耦合器的
    發(fā)表于 05-09 18:35
    帶耦合器的<b class='flag-5'>大規(guī)模</b>物聯(lián)網(wǎng)半雙工前端模塊 skyworksinc

    智多晶FIFO_Generator IP介紹

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

    大規(guī)模 GOA 液晶線路修復(fù)方法

    在液晶面板制造領(lǐng)域,GOA(Gate Driver on Array)技術(shù)因其諸多優(yōu)勢(shì)得到廣泛應(yīng)用。然而,大規(guī)模生產(chǎn)過程,不可避免會(huì)出現(xiàn)線路故障,如何高效修復(fù)這些線路,成為保障產(chǎn)能與產(chǎn)品質(zhì)量的關(guān)鍵
    的頭像 發(fā)表于 04-24 13:46 ?850次閱讀
    <b class='flag-5'>大規(guī)模</b> GOA 液晶線路修復(fù)方法

    5G 大規(guī)模物聯(lián)網(wǎng)系統(tǒng)級(jí)封裝 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()5G 大規(guī)模物聯(lián)網(wǎng)系統(tǒng)級(jí)封裝相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有5G 大規(guī)模物聯(lián)網(wǎng)系統(tǒng)級(jí)封裝的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,5G 大規(guī)模物聯(lián)網(wǎng)系統(tǒng)級(jí)封裝真值表,5G
    發(fā)表于 04-11 15:21
    5G <b class='flag-5'>大規(guī)模</b>物聯(lián)網(wǎng)系統(tǒng)級(jí)封裝 skyworksinc

    基于FPGAFIFO實(shí)現(xiàn)

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

    大規(guī)模硬件仿真系統(tǒng)的編譯挑戰(zhàn)

    大規(guī)模集成電路設(shè)計(jì)的重要工具。然而,隨著設(shè)計(jì)規(guī)模的擴(kuò)大和復(fù)雜度的增加,硬件仿真系統(tǒng)的編譯過程面臨著諸多挑戰(zhàn)。本文旨在探討基于FPGA的硬件仿真系統(tǒng)在編譯過程中所遇到的關(guān)
    的頭像 發(fā)表于 03-31 16:11 ?1440次閱讀
    <b class='flag-5'>大規(guī)模</b>硬件仿真系統(tǒng)的編譯挑戰(zhàn)

    AXI接口FIFO簡(jiǎn)介

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