《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 一種高可靠性高速可編程異步FIFO的設計
一種高可靠性高速可編程異步FIFO的設計
2019年電子技術應用第7期
牛 博,趙宏亮
遼寧大學 物理學院,遼寧 沈陽110036
摘要: 基于一款國產FPGA芯片的研發,提出了一種具有高可靠性、高速及可編程性的異步FIFO電路結構。通過增加近空滿示警閾值和近空滿狀態位的方式用以提高異步FIFO的可編程性,同時內部通過使用格雷碼指針進行比較的結構用以提高電路的可靠性。并在此基礎上,提出了一種新的空滿判斷標準,使系統速度和邏輯利用率得到了進一步的提升。基于UMC 28 nm標準CMOS工藝,采用全定制方法進行電路設計。仿真結果表明,提出的異步FIFO在1 V的標準電壓下,最高工作頻率為666.6 MHz,平均功耗為7.1 mW。
中圖分類號: TN495
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.183185
中文引用格式: 牛博,趙宏亮. 一種高可靠性高速可編程異步FIFO的設計[J].電子技術應用,2019,45(7):36-39,43.
英文引用格式: Niu Bo,Zhao Hongliang. Design of high reliability and high speed programmable asynchronous FIFO[J]. Application of Electronic Technique,2019,45(7):36-39,43.
Design of high reliability and high speed programmable asynchronous FIFO
Niu Bo,Zhao Hongliang
School of Physics,Liaoning University,Shenyang 110036,China
Abstract: Based on the research of a domestic field programmable gate array(FPGA) chip, an asynchronous first input first output(FIFO) circuit structure with high reliability, high speed and programmability is proposed. By adding the full/empty warning threshold and the full/empty state bit, the programmability of the proposed asynchronous FIFO is improved. Meanwhile, the reliability of the circuit is improved by using the Gray code pointer for comparation. On this basis, a new criterion for judging the full/empty state is proposed, which is applied to further improve the system working speed and logic utilization. Based on the United Microelectronics Corporation(UMC) 28 nm standard complementary metal oxide semiconductor(CMOS) process, the circuit design is carried out by fully customized method. The simulation results show that the proposed asynchronous FIFO has a maximum operating frequency of 666.6 MHz and an average power consumption of 7.1 mW at 1 V standard voltage.
Key words : programmability;asynchronous FIFO;full/empty warning threshold;Gray code pointer;full/empty judgment

0 引言

    在現代的大規模ASIC設計中,常常涉及多時鐘系統控制方式,這樣就會產生不同時鐘域數據傳輸的問題。比較好的解決方案就是使用異步FIFO(First In First Out)來實現不同時鐘域數據傳輸的緩沖[1-2]。這是因為,異步FIFO只按指針的遞增順序寫入數據,并以同樣的順序讀出數據,不需要外部讀寫地址線,使用起來非常簡單,這樣既可以使相異時鐘域數據傳輸的時序要求變得寬松,也提高了它們之間的傳輸效率。因此,異步FIFO在網絡通信和數字信息處理等領域都有著廣泛的應用[3-6]。而高性能異步FIFO的研究也就成為了大規模集成電路設計領域的研究熱點之一,并取得了很多研究成果[7-10]

    例如,文獻[7]中,采取了比較同步指針的方法來降低亞穩態出現的可能,這樣做確實保證了比較時兩個指針都是同步的,但是在進行大容量FIFO設計時,讀、寫指針的位數很多,同步模塊會使用大量的寄存器,這樣會大大增加設計成本,降低工作效率。而且該論文提到的設計方案在進行空滿判斷時,增加了一個地址位來標識讀寫指針的相對位置,這樣做不僅占用了過多的邏輯資源,還降低了FIFO控制系統的可移植性。文獻[8]中提到了一種通過判斷格雷碼前兩位來劃分存儲區間,進而判斷空滿的方法,但是由于這種判斷區間的劃分方式是通過硬件的形式實現的,可編程性不好。本設計為了滿足一款國產FPGA的芯片設計需求,在保證高可靠性的前提下,進一步增強了異步FIFO的可編程性,提出了一種基于格雷碼的、可以對近空滿示警閾值進行編程的異步FIFO,并且結合異步指針比較的方法提出了一種新的空滿判斷標準,進而提高了電路的工作速度和效率,最終設計出了一種具有高可靠性、高速及可編程性的高性能異步FIFO電路結構。

1 所提出的異步FIFO系統結構

    所提出的異步FIFO設計思路是,在傳統FIFO模塊的基礎上,通過對電路結構和狀態判斷依據的改進和優化,實現可靠性、可編程性和速度上的突破。傳統的FIFO主要具有讀、寫和空滿判斷的功能,它不需要外部讀寫地址線,這樣使用起來非常簡單,因此它只能順序寫入數據,順序地讀出數據,不能像普通存儲器那樣可以由地址線決定讀取或寫入某個指定的地址。本設計中增加了近空滿示警功能,使用者可以對FIFO進行編程設置示警閾值,并且增加了近空和近滿指示位來提示FIFO的狀態,增加了FIFO的可編程性。FIFO模塊的系統結構圖如圖1所示。

wdz1-t1.gif

    整個FIFO可以劃分成四種模塊:存儲模塊、指針產生模塊、指針比較模塊和標志位產生模塊。r_clk為讀時鐘;w_clk為寫時鐘;data_in為寫入數據;data_out為讀出數據;ale_num為近空示警閾值;alf_num為近滿示警閾值;r_ptr為讀指針;w_ptr為寫指針;al_empty為近空標志;al_full為近滿標志;empty為空標志;full為滿標志;alr_ptr為近空指針;alw_ptr為近滿指針。

    雙端口SRAM具有兩個完全獨立的讀、寫端口,使用時可以選定一個端口寫入data_in,另一個端口讀出data_out,這樣讀操作和寫操作互相獨立,比較適合用來實現FIFO的功能。在圖1中可以看出,一個FIFO可以分成讀時鐘域和寫時鐘域兩個完全相互獨立的時鐘域。寫指針模塊根據w_clk產生w_ptr并且在w_ptr上疊加alf_num產生alw_ptr,w_ptr一方面會控制存儲模塊將data_in寫入,寫入的數據將由r_ptr控制讀出,另一方面w_ptr和alw_ptr進入指針比較模塊與讀指針產生的r_ptr和alr_ptr進行比較,比較的結果進入標志位產生模塊進行判斷,產生空、滿、近空和近滿標志位,如果FIFO讀空,則停止e_ptr,如果寫滿,則停止w_ptr。

    在以上的系統設計中不難看出,系統指針間互相比較過程中數據的可靠性和空滿判斷過程中系統的精確度制約著系統性能的提升。因此,在第二節和第三節中,將分別詳細闡述系統指針比較和空滿判斷的設計方案。

2 系統指針比較的設計方案

    在數據的傳輸過程中,接收寄存器收到變化的數據時,如果數據的改變發生在時鐘觸發沿,那么會導致接受數據出現不穩定的狀態,這種狀態叫做亞穩態。進入亞穩態時,既無法預測該單元的輸出電平,也無法預測何時輸出才能穩定在某個正確的電平上。在這個穩定期間,將會輸出一些中間級電平,或者可能處于振蕩狀態,并且這種無用的輸出電平可以沿信號通道級聯式傳播下去。亞穩態的發生會使得FIFO出現錯誤,讀、寫時鐘采樣的地址指針會與真實的值之間不同,這就導致寫入或讀出的地址錯誤。亞穩態無法徹底消除,只能想辦法將其發生的概率降到最低。傳統的FIFO電路中為了解決亞穩態問題采取的方法是使用指針同步模塊,經過同步的指針之間進行比較就不存在亞穩態的問題了。指針同步模塊一般采用圖2中所示的結構。假設clk1與clk2為異步時鐘,當data1的改變發生在B2的觸發沿處時,data2就有可能出現一個亞穩態,但是,這時B3捕獲和發送的是上一個沒有出現亞穩態時的數據,在下一個clk2時鐘觸發沿到來時,data2很可能已經趨于穩定,變為確定值0或者1,這樣的話B3就是對一個確定值進行捕獲。當然,data2也有可能無法在一個時鐘周期中穩定,但是data3出現亞穩態的概率被極大地降低了。

wdz1-t2.gif

    使用比較同步指針的方法雖然可靠性高,但是當FIFO的數據深度很大時,指針一般都有很多位,這就需要對每一位都進行同步,極大地增加了寄存器的使用數量,增加了設計成本。

    針對這種情況可以考慮使用格雷碼指針。格雷碼在相鄰的兩個碼元之間只由一位變換(二進制碼在很多情況下是很多碼元在同時變化)。這就會避免指針變動的時候發生亞穩態現象。在寫地址和讀地址傳輸前,為了提高數據的穩定性,采用格雷碼替換二進制碼進行計數。這樣的話就可以不使用指針同步模塊,采取比較異步指針的方法,將兩個異步指針直接進行比較,然后把比較后得出的標志位同步到想要的時鐘域即可。本設計中指針產生模塊的原理圖如圖3所示。

wdz1-t3.gif

    二進制指針產生模塊的基本原理就是一個二進制加法計數器,每有一個時鐘上升沿來臨,它都會在之前輸出數值的基礎上加一,這樣可以產生一個逐步累加的二進制指針,這個二進制指針進入半加器與近空滿示警閾值相加產生一個用于近空滿比較二進制指針,最后,這兩種指針都會被格雷碼產生模塊轉化為格雷碼指針輸出。設計中使用格雷碼是為了降低亞穩態出現的概率,節省邏輯開銷,降低設計成本;對指針類型進行擴充,增加了近空滿示警閾值和近空滿指針,是為了提升FIFO的可編程性。

3 空滿判斷的設計方案

    由于FIFO的功能需要一邊讀一邊寫,因此實際上FIFO的容量并不等于同SRAM存儲器陣列的實際容量,而是取決于讀指針和寫指針的相對速度。FIFO模塊正確使用的初始狀態一定是寫指針在讀指針之前,這樣可以保證讀出的內容都是經過寫入的數據,經過一段時間的讀寫后,如果由于讀指針追趕上了寫指針而致使讀寫指針相同,說明存儲其中的數據被讀空,再進行下去會讀出錯誤的數據;如果是寫指針追趕上了讀指針,則說明存儲器被寫滿,再進行下去則會使未讀出的數據被重寫。以上兩種情況是一定要避免的,所以如何判斷空滿狀態,關系到FIFO的精確度和可靠性。

    傳統的做法是增加一位地址位來表示讀寫指針的相對位置,由于這種方法增加了一位地址位,使FIFO地址位的數量與SRAM地址位數量不同,降低了FIFO控制器的可移植性,而且增加的這一位地址位實際上增加了不必要的邏輯開銷。考慮到設計中提到的FIFO增添了近空滿示警標志位,所以可以借助近示警標志位來產生空滿標志位。其狀態判斷原理如圖4所示。

wdz1-t4.gif

    近空滿示警標志位產生的原理是,將讀寫指針加上一個二進制數作為示警的閾值,這樣就有了四種不同的指針,分別為讀、寫指針和近空滿讀寫指針,使用這四種指針相互比較就能得出想要的結果。在FIFO使用過程中,如果近空滿讀指針等于寫指針,說明讀指針的速度比寫指針速度快,近空滿示警信號指示FIFO近空,這時只需要注意FIFO被讀空,一旦讀寫指針相等就可以判斷FIFO讀空;如果近空滿寫指針等于讀指針,則說明寫指針的速度快,應指示近滿,FIFO只存在寫滿的風險,一旦讀寫指針相等即判斷FIFO寫滿。這種空滿判斷方法借助了示警標志位,不需要增加額外的指針位,提高了邏輯利用率和FIFO控制器的可移植性,而且這樣做不需要對方向位進行運算,提升了運行速度。

4 仿真驗證

    本設計基于UMC 28 nm標準CMOS工藝,采用全定制方法進行電路設計。使用Hspice軟件進行了電路仿真驗證。仿真結果表明,提出的異步FIFO在1 V的標準電壓下,最高工作頻率為666.6 MHz,功耗為7.1 mW。具體仿真結果如圖5所示。

wdz1-t5.gif

    對近空、空標志位進行驗證時,使用的讀時鐘周期為1.5 ns(666.6 MHz),寫時鐘周期為2.5 ns(400 MHz),近空示警閾值設置為17,一共用到了9位二進制地址,按照格雷碼的規律變化。仿真結果如圖5(a)所示。圖中r_ptr為讀指針信號,w_ptr為寫指針信號,均以3位十六進制數的形式表示;empty為讀空信號(高有效);al_empty為近空信號(低有效)。可以看出,當讀寫指針相等時讀空信號有效,并且近空信號提前17個讀周期示警FIFO快要讀空。

    對近滿、滿標志位進行驗證時,使用的讀時鐘周期為2.5 ns(400 MHz),寫時鐘周期為1.5 ns(666.6 MHz),近空示警閾值設置為15,一共用到了9位二進制地址,按照格雷碼的規律變化。仿真結果如圖5(b)所示。圖中w_ptr為寫指針信號,r_ptr為讀指針信號,均以3位十六進制數的形式表示;full為寫滿信號(高有效);al_full為近滿信號(低有效)。可以看出,當讀寫指針相等時寫滿信號有效,并且近滿信號提前15個寫周期示警FIFO快要讀空。

5 結論

    在傳統FIFO結構的基礎上,通過對電路結構和狀態判斷依據的改進和優化,提出了一種高性能異步FIFO電路結構。基于UMC 28 nm標準CMOS工藝進行電路設計、仿真與驗證。仿真結果表明,提出的異步FIFO結構具有高可靠性、高速及可編程性等優點,能夠滿足國產FPGA芯片研發的系統需求。

參考文獻

[1] 金大超,冷建偉.異步時鐘域信號同步的實現[J].天津理工大學學報,2017,33(3):40-44.

[2] 劉杰,賽景波.基于DDR2 SDRAM乒乓雙緩沖的高速數據收發系統設計[J].電子器件,2015,38(3):650-654.

[3] 莊洪毅.一種基于FX2與FPGA聯用實現USB2.0通訊協議的方法[J].電子測量技術,2017,40(4):78-81.

[4] 馮國富,馬玉齊,陳明,等.一種面向船聯網的“北斗”異步FIFO多通道模型[J].微電子學與計算機,2017,34(2):1-5.

[5] 吳修英,黃嵩人.浮點型DSP中異步FIFO的研究與設計[J].電子世界,2018,1(69):145-146.

[6] 倪露,鄒學玉.LZW的異步FIFO輸入緩沖設計[J].電子測量技術,2015,38(4):19-23.

[7] 司嵐山,吳海宏,王勇,等.一種大容量異步FIFO的設計與實現[J].微電子學,2013,43(3):405-408.

[8] 李賽,蔣林.OTN中異步FIFO的設計與實現[J].光通信研究,2015,191(5):55-58.

[9] 王齊雙,黃震春,蒲海峰.基于FPGA的異步FIFO的設計方案及性能[J].彈箭與制導學報,2014,34(6):185-189.

[10] 肖靜嫻,戴亞文.基于FPGA的異步FIFO緩存設計[J].電子測量技術,2009,32(11):92-94.



作者信息:

牛  博,趙宏亮

(遼寧大學 物理學院,遼寧 沈陽110036)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美日韩一区二区三区在线观看 | 国产精品女主播一区二区三区| 蜜桃久久av一区| 欧美在线一级va免费观看| 午夜国产不卡在线观看视频| 亚洲视频中文字幕| 中文日韩在线| 一区二区三区日韩| 中国女人久久久| 国产精品99久久久久久宅男 | 亚洲网站在线观看| 亚洲一区国产一区| 亚洲午夜激情网站| 亚洲一区二区视频在线| 亚洲一区二区三区国产| 亚洲欧美激情一区| 羞羞漫画18久久大片| 欧美一级成年大片在线观看| 亚洲欧美一区二区在线观看| 亚洲欧美在线高清| 久久国产精品一区二区三区| 欧美专区在线播放| 久热精品在线视频| 欧美成人午夜影院| 欧美日韩123| 国产精品久久久久久久久果冻传媒 | 另类专区欧美制服同性| 欧美成年人视频| 欧美日韩一二三区| 国产精品成人一区二区| 国产精品日韩在线观看| 国产亚洲欧美另类中文| 一区精品在线播放| 亚洲级视频在线观看免费1级| 亚洲精品欧美在线| 正在播放欧美一区| 午夜一区不卡| 亚洲日本成人网| 亚洲视频在线播放| 性欧美超级视频| 六月婷婷久久| 欧美色大人视频| 国产婷婷色一区二区三区四区| 激情综合久久| 99人久久精品视频最新地址| 亚洲欧美日韩天堂| 亚洲国产高潮在线观看| 日韩视频在线你懂得| 亚洲欧美第一页| 老司机67194精品线观看| 欧美日本国产视频| 国产精品专区h在线观看| 韩国女主播一区| 亚洲欧洲在线看| 午夜精品久久久久久久蜜桃app| 亚洲国产激情| 亚洲桃花岛网站| 久久久久久久一区| 欧美日韩日日骚| 国产在线精品一区二区中文| 亚洲日本一区二区| 欧美一区二区精品在线| 一本色道久久综合一区| 久久gogo国模啪啪人体图| 欧美激情按摩在线| 国产日韩高清一区二区三区在线| 亚洲国产综合91精品麻豆| 亚洲欧美日韩精品久久久| 亚洲精品美女在线| 久久国产视频网| 欧美性大战久久久久久久蜜臀| 国语自产精品视频在线看抢先版结局 | 亚洲深爱激情| 久久综合久久综合久久| 国产精品xvideos88| 亚洲福利国产精品| 午夜在线精品偷拍| 中文在线不卡视频| 欧美成人亚洲| 一区在线影院| 欧美一级黄色录像| 亚洲一区二区三区精品视频| 免费亚洲电影在线观看| 国产日韩欧美一区二区| 一本大道久久a久久精品综合| 亚洲国产精品成人va在线观看| 午夜精彩国产免费不卡不顿大片| 欧美久久电影| 在线国产精品播放| 欧美中文字幕精品| 亚洲欧美日韩精品久久| 欧美日韩免费视频| 91久久久久| 91久久精品网| 老**午夜毛片一区二区三区| 国产日韩欧美中文在线播放| 亚洲午夜免费福利视频| 一区二区三区久久网| 欧美福利视频在线| 伊大人香蕉综合8在线视| 欧美一区二区三区免费大片| 亚洲欧美日本视频在线观看| 欧美日韩精品免费看 | 欧美呦呦网站| 久久成人亚洲| 国产毛片一区二区| 亚洲一区免费在线观看| 亚洲在线不卡| 国产精品毛片一区二区三区| 99精品国产在热久久婷婷| 亚洲精品日产精品乱码不卡| 免费亚洲电影在线观看| 好男人免费精品视频| 亚洲欧美在线高清| 欧美一区视频| 国产日韩精品视频一区| 亚洲免费影视| 欧美一区高清| 国产伦精品一区二区三区四区免费 | 欧美有码在线视频| 久久精品成人一区二区三区| 国产亚洲欧美一区二区三区| 午夜精品久久久久99热蜜桃导演| 先锋影音国产精品| 国产免费成人av| 欧美一区二区三区成人| 久久久国产亚洲精品| 激情综合亚洲| 亚洲日本电影| 欧美日韩成人精品| 在线亚洲伦理| 午夜久久一区| 国产日韩在线看片| 亚洲电影在线| 欧美大胆成人| 一本色道久久88综合日韩精品| 亚洲一二三区在线观看| 国产精品久线观看视频| 午夜视频在线观看一区二区三区| 久久激情中文| 在线观看日韩精品| av不卡在线| 国产精品入口夜色视频大尺度| 亚洲制服欧美中文字幕中文字幕| 欧美在线观看视频一区二区| 国产一区二区三区观看| 91久久在线视频| 欧美日韩亚洲综合| 亚洲欧美视频| 麻豆精品国产91久久久久久| 91久久极品少妇xxxxⅹ软件| 亚洲视频你懂的| 国产日产亚洲精品| 亚洲人体影院| 国产精品久久久爽爽爽麻豆色哟哟| 午夜精品久久久久久久久久久久久| 久久在线视频| 日韩天堂在线观看| 欧美一级淫片aaaaaaa视频| 海角社区69精品视频| 99精品视频免费| 国产精品素人视频| 亚洲高清视频一区| 欧美日韩小视频| 欧美一区二区在线观看| 欧美精品色综合| 亚洲免费在线电影| 欧美大片国产精品| 亚洲一区中文| 欧美成人久久| 亚洲欧美日韩国产一区二区| 欧美电影免费网站| 亚洲欧美日韩综合一区| 欧美国产日韩一区| 亚洲欧美一区二区视频| 欧美高清在线视频观看不卡| 亚洲尤物精选| 欧美黄色一区| 欧美在线网址| 欧美日韩综合网| 久久精品一区蜜桃臀影院| 欧美色偷偷大香| 亚洲国产欧美一区二区三区同亚洲 | 亚洲二区视频| 欧美天天在线| 亚洲国产精品ⅴa在线观看| 国产精品v片在线观看不卡 | 国产精品五区| 日韩视频在线免费观看| 国产香蕉97碰碰久久人人| 一区二区三区日韩精品视频| 国产亚洲欧美一区二区| 亚洲午夜免费视频| 亚洲国产经典视频| 久久精品国产91精品亚洲| 一区二区三区视频观看| 欧美好吊妞视频| 亚洲国产mv| 国产亚洲一区精品| 亚洲欧美视频在线观看|