RM新时代网站-首页

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

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

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

在ASIC中采用VHDL語(yǔ)言實(shí)現(xiàn)異步FIFO的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-06-11 08:00 ? 次閱讀

1 、引言

現(xiàn)代 IC(Integrated Circuit)設(shè)計(jì)的主導(dǎo)思想之一就是設(shè)計(jì)同步化,即對(duì)所有時(shí)鐘控制器件(如觸發(fā)器、RAM等)都采用同一個(gè)時(shí)鐘來(lái)控制。但由于現(xiàn)代IC芯片的規(guī)模越來(lái)越大,包含極其豐富的觸發(fā)器,不同電路的時(shí)鐘驅(qū)動(dòng)源存在頻率和相位的差異,在實(shí)際的設(shè)計(jì)中實(shí)現(xiàn)完全同步化的設(shè)計(jì)非常困難,很多情況下不可避免地要完成數(shù)據(jù)在不同時(shí)鐘域間的傳遞(如高速模塊和低速模塊之間的數(shù)據(jù)交換)。這時(shí),亞穩(wěn)態(tài)問(wèn)題是異步數(shù)據(jù)傳輸過(guò)程面臨的主要問(wèn)題,如何避免亞穩(wěn)態(tài)的產(chǎn)生,保持系統(tǒng)的穩(wěn)定,順利完成數(shù)據(jù)的傳輸就成為一個(gè)重要的問(wèn)題,這也是異步電路設(shè)計(jì)中最為棘手的問(wèn)題。異步FIFO(First In First Out)是解決這個(gè)問(wèn)題一種簡(jiǎn)便、快捷的解決方案。

2、 異步FIFO介紹

異步FIFO廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)工業(yè)中進(jìn)行異步數(shù)據(jù)傳送,這里的異步是指發(fā)送用一種速率而接收用另一速率,因此異步FIFO有兩個(gè)不同的時(shí)鐘,一個(gè)為讀同步時(shí)鐘,一個(gè)為寫同步時(shí)鐘。

當(dāng)數(shù)據(jù)從一個(gè)時(shí)鐘驅(qū)動(dòng)的模塊進(jìn)入另一個(gè)時(shí)鐘驅(qū)動(dòng)的模塊時(shí),問(wèn)題就有可能出現(xiàn)了。例如當(dāng)寫時(shí)鐘比讀時(shí)鐘快時(shí),未讀走的數(shù)據(jù)有可能被新數(shù)據(jù)覆蓋,因而導(dǎo)至數(shù)據(jù)丟失。為此,必須增加一些控制信號(hào)和狀態(tài)信號(hào),控制信號(hào)如push、pop,狀態(tài)信號(hào)如empty,almost-empty,full,almost-full等。

典型的異步FIFO由異步雙端口RAM和控制邏輯構(gòu)成,后者包含讀指針和寫指針,如圖1。當(dāng)FIFO中有數(shù)據(jù)而非空時(shí),POP信號(hào)用于控制數(shù)據(jù)的讀出,所讀數(shù)據(jù)來(lái)自讀指針?biāo)傅膁ualportRAM中的存儲(chǔ)單元,并且讀指針加1。當(dāng)讀指針趕上寫指針時(shí),F(xiàn)IFO為空并且用empty信號(hào)來(lái)指示這種情況。當(dāng)FIFO中有空間而非滿時(shí),PUSH信號(hào)用于控制數(shù)據(jù)的寫入,所寫數(shù)據(jù)寫入寫指針?biāo)傅碾p端口RAM中的存儲(chǔ)單元,并且寫指針加1。當(dāng)寫指針趕上讀指針時(shí),F(xiàn)IFO為滿并且用full信號(hào)來(lái)指示這種情況。

在ASIC中采用VHDL語(yǔ)言實(shí)現(xiàn)異步FIFO的設(shè)計(jì)

3、 亞穩(wěn)態(tài)問(wèn)題

數(shù)字集成電路中,觸發(fā)器要滿足setup/hold的時(shí)間要求。當(dāng)一個(gè)信號(hào)被寄存器鎖存時(shí),如果信號(hào)和時(shí)鐘之間不滿足這個(gè)要求,Q端的值是不確定的,并且在未知的時(shí)刻會(huì)固定到高電平或低電平。這個(gè)過(guò)程稱為亞穩(wěn)態(tài)(Metastability)。

當(dāng)數(shù)據(jù)信號(hào)通過(guò)兩個(gè)時(shí)鐘域的交界處時(shí),將會(huì)分別由這兩個(gè)時(shí)鐘來(lái)控制信號(hào)的值。此時(shí)如果兩時(shí)鐘信號(hào)的敏感沿非常接近并超過(guò)了允許的額度,則將出現(xiàn)數(shù)據(jù)信號(hào)的不穩(wěn)定,即電路陷入亞穩(wěn)態(tài),也稱為同步失敗。亞穩(wěn)態(tài)是在兩時(shí)鐘敏感沿靠得很近、第二級(jí)時(shí)鐘敏感沿到來(lái)時(shí)其輸入數(shù)據(jù)不穩(wěn)時(shí)發(fā)生,可將其視為僅僅是第二級(jí)觸發(fā)器輸入信號(hào)不穩(wěn)定所導(dǎo)致的結(jié)果。只要使輸入信號(hào)穩(wěn)定,就能解決亞穩(wěn)態(tài)問(wèn)題。不同時(shí)鐘域間數(shù)據(jù)傳遞的最重要問(wèn)題就是亞穩(wěn)態(tài)問(wèn)題。下面從觸發(fā)器的物理特性方面對(duì)亞穩(wěn)態(tài)進(jìn)行描述。

觸發(fā)器進(jìn)入亞穩(wěn)態(tài)的時(shí)間可以用參數(shù)MTBF(mean time between failures)來(lái)描述,MTBF即觸發(fā)器采樣失敗的時(shí)間間隔,其計(jì)算公式為:

在ASIC中采用VHDL語(yǔ)言實(shí)現(xiàn)異步FIFO的設(shè)計(jì)

由上面的推導(dǎo)可知,一個(gè)信號(hào)(a_clk)在過(guò)渡到另一個(gè)時(shí)鐘域(b_clk)時(shí),如果僅僅用一個(gè)觸發(fā)器將其鎖存,那么用b_clk進(jìn)行采樣的結(jié)果將可能是亞穩(wěn)態(tài)。這也是信號(hào)在跨時(shí)鐘域時(shí)應(yīng)該注意的問(wèn)題。

4 、亞穩(wěn)態(tài)問(wèn)題的解決

雖然亞穩(wěn)態(tài)是不可避免的,但是,下面的設(shè)計(jì)改進(jìn)可以將其發(fā)生的概率降低到一個(gè)可以接受的程度。

a、對(duì)寫地址/讀地址采用格雷碼。由實(shí)踐可知,同步多個(gè)異步輸入信號(hào)出現(xiàn)亞穩(wěn)態(tài)的概率遠(yuǎn)遠(yuǎn)大于同步一個(gè)異步信號(hào)的概率。對(duì)多個(gè)觸發(fā)器的輸出所組成的寫地址/讀地址可以采用格雷碼如表一,其中4位格雷碼的最高位可以用來(lái)標(biāo)示對(duì)那個(gè)ram進(jìn)行操作,而實(shí)際的操作地址由4位格雷碼的最高兩位異或再加上后兩位得到。由于格雷碼每次只變化一位,采用格雷碼可以有效地減少亞穩(wěn)態(tài)的產(chǎn)生。

在ASIC中采用VHDL語(yǔ)言實(shí)現(xiàn)異步FIFO的設(shè)計(jì)

b、采用觸發(fā)器來(lái)同步異步輸入信號(hào),如圖2中的兩極觸發(fā)器可以將出現(xiàn)亞穩(wěn)態(tài)的幾率降低到一個(gè)很小的程度。但是,正如圖2所示,這種方法同時(shí)帶來(lái)了對(duì)輸入信號(hào)的一級(jí)延時(shí),需要在設(shè)計(jì)時(shí)鐘的時(shí)候加以注意。另外,雖然采用兩級(jí)時(shí)鐘同步可以在一定程度消除亞問(wèn)題,但如果在信號(hào)從快時(shí)鐘域向慢時(shí)鐘域過(guò)渡的時(shí)候,如果信號(hào)變化太快,慢時(shí)鐘將可能無(wú)法對(duì)信號(hào)進(jìn)行采樣。所以,在使用兩級(jí)時(shí)鐘同步的時(shí)候,應(yīng)該使原始信號(hào)保持足夠長(zhǎng)的時(shí)間,以便另一個(gè)時(shí)鐘域的鎖存器可以正確的對(duì)其進(jìn)行采樣。

在ASIC中采用VHDL語(yǔ)言實(shí)現(xiàn)異步FIFO的設(shè)計(jì)

5 、異步FIFO的VHDL實(shí)現(xiàn)

VHDL是硬件描述語(yǔ)言的一種,用于數(shù)字電子系統(tǒng)設(shè)計(jì)。設(shè)計(jì)者可用它進(jìn)行各種級(jí)別的邏輯設(shè)計(jì),可用它進(jìn)行數(shù)字邏輯系統(tǒng)的仿真驗(yàn)證、時(shí)序分析、邏輯綜合。它是目前應(yīng)用最廣泛的一種硬件描述語(yǔ)言。目前VHDL語(yǔ)言已經(jīng)得到多種EDA工具的支持,并且已經(jīng)成為IEEE標(biāo)準(zhǔn),因此利用VHDL語(yǔ)言進(jìn)行電路設(shè)計(jì)可以節(jié)約開發(fā)成本和周期。下面以視頻轉(zhuǎn)換系統(tǒng)中的異步FIFO為例,用VHDL實(shí)現(xiàn)如下(假設(shè)存儲(chǔ)器的深度為128個(gè)像素,即256個(gè)字節(jié)):

讀地址產(chǎn)生模塊:

在ASIC中采用VHDL語(yǔ)言實(shí)現(xiàn)異步FIFO的設(shè)計(jì)

在ASIC中采用VHDL語(yǔ)言實(shí)現(xiàn)異步FIFO的設(shè)計(jì)

6 、結(jié)論

本文討論了在ASIC設(shè)計(jì)中數(shù)據(jù)在不同時(shí)鐘之間傳遞數(shù)據(jù)所產(chǎn)生的亞穩(wěn)態(tài)問(wèn)題,并提出了一種新的異步FIFO的設(shè)計(jì)方法,并用VHDL語(yǔ)言進(jìn)行描述,利用Altera公司的Cyclone系列的EP1C6進(jìn)行硬件實(shí)現(xiàn),該電路軟件仿真和硬件實(shí)現(xiàn)已經(jīng)通過(guò)驗(yàn)證,并應(yīng)用到各種電路中。實(shí)踐證明它可以解決由于異步產(chǎn)生的錯(cuò)誤,同時(shí)增加了應(yīng)用的靈活性。


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

    關(guān)注

    112

    文章

    16332

    瀏覽量

    177800
  • asic
    +關(guān)注

    關(guān)注

    34

    文章

    1199

    瀏覽量

    120429
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2000

    瀏覽量

    61130
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    用FPGA芯片實(shí)現(xiàn)高速異步FIFO的一種方法

    現(xiàn)代集成電路芯片中,隨著設(shè)計(jì)規(guī)模的不斷擴(kuò)大。一個(gè)系統(tǒng)往往含有數(shù)個(gè)時(shí)鐘。多時(shí)鐘帶來(lái)的一個(gè)問(wèn)題就是,如何設(shè)計(jì)異步時(shí)鐘之間的接口電路。異步 FIFO(First In First Out)
    發(fā)表于 05-28 10:56 ?3831次閱讀

    如何用VHDL語(yǔ)言實(shí)現(xiàn)幀同步的設(shè)計(jì)?

    幀同步是什么工作原理?如何用VHDL語(yǔ)言實(shí)現(xiàn)幀同步的設(shè)計(jì)?
    發(fā)表于 04-08 06:33

    請(qǐng)問(wèn)一下異步FIFOVHDL實(shí)現(xiàn)方法

    本文討論了ASIC設(shè)計(jì)數(shù)據(jù)不同時(shí)鐘之間傳遞數(shù)據(jù)所產(chǎn)生的亞穩(wěn)態(tài)問(wèn)題,并提出了一種新的異步FIFO
    發(fā)表于 04-29 06:54

    如何利用VHDL語(yǔ)言實(shí)現(xiàn)FPGA與單片機(jī)的串口異步通信電路?

    本文介紹利用VHDL語(yǔ)言實(shí)現(xiàn) FPGA與單片機(jī)的串口異步通信電路。
    發(fā)表于 04-29 06:34

    如何利用FPGA和VHDL語(yǔ)言實(shí)現(xiàn)PCM碼的解調(diào)?

    利用現(xiàn)場(chǎng)可編程門陣列(FPGA)和VHDL 語(yǔ)言實(shí)現(xiàn)了PCM碼的解調(diào),這樣不改變硬件電路的情況下,能夠適應(yīng)PCM碼傳輸速率和幀結(jié)構(gòu)變化,從而正確解調(diào)數(shù)據(jù)。
    發(fā)表于 05-07 06:58

    高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)

    本文主要研究了用FPGA 芯片內(nèi)部的EBRSRAM 來(lái)實(shí)現(xiàn)異步FIFO 設(shè)計(jì)方案,重點(diǎn)闡述了異步FIFO 的標(biāo)志信號(hào)——空/滿狀態(tài)的設(shè)計(jì)思路
    發(fā)表于 01-13 17:11 ?40次下載

    異步FIFOVHDL設(shè)計(jì)

    給出了一個(gè)利用格雷碼對(duì)地址編碼的羿步FIFO實(shí)現(xiàn)方法,并給出了VHDL 程序,以解決異步讀寫時(shí)鐘引起的問(wèn)題。
    發(fā)表于 07-16 15:15 ?26次下載

    Camera Link接口的異步FIFO設(shè)計(jì)與實(shí)現(xiàn)

    介紹了異步FIFOCamera Link接口中的應(yīng)用,將Camera Link接口中的幀有效信號(hào)FVAL和行有效信號(hào)LVAL引入到異步FIFO
    發(fā)表于 07-28 16:08 ?32次下載

    VHDL語(yǔ)言實(shí)現(xiàn)3分頻電路

    VHDL語(yǔ)言實(shí)現(xiàn)3分頻電路 標(biāo)簽/分類: 眾所周知,分頻器是FPGA設(shè)計(jì)中使用頻率非常高的基本設(shè)計(jì)之一,盡管目前大部分設(shè)計(jì),廣泛使用芯片廠家集成的鎖相
    發(fā)表于 08-21 15:28 ?5696次閱讀

    VHDL語(yǔ)言實(shí)現(xiàn)3分頻電路(占空比為2比1)

    VHDL語(yǔ)言實(shí)現(xiàn)3分頻電路(占空比為2比1) 分頻器是FPGA設(shè)計(jì)中使用頻率非常高的基本設(shè)計(jì)之一,盡管目前大部分設(shè)計(jì),廣泛使用芯片廠家集成的鎖
    發(fā)表于 06-22 07:46 ?8460次閱讀

    FM收音機(jī)的解碼及控制器VHDL語(yǔ)言實(shí)現(xiàn)

    Xilinx FPGA工程例子源碼:FM收音機(jī)的解碼及控制器VHDL語(yǔ)言實(shí)現(xiàn)
    發(fā)表于 06-07 14:13 ?11次下載

    使用Quartus和VHDL語(yǔ)言實(shí)現(xiàn)的LPC時(shí)序的工程文件

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用Quartus和VHDL語(yǔ)言實(shí)現(xiàn)的LPC時(shí)序的工程文件免費(fèi)下載。
    發(fā)表于 09-18 16:49 ?20次下載
    使用Quartus和<b class='flag-5'>VHDL</b><b class='flag-5'>語(yǔ)言實(shí)現(xiàn)</b>的LPC時(shí)序的工程文件

    基于VHDL硬件描述語(yǔ)言實(shí)現(xiàn)CPSK調(diào)制的程序及仿真

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于VHDL硬件描述語(yǔ)言實(shí)現(xiàn)CPSK調(diào)制的程序及仿真。
    發(fā)表于 01-19 14:34 ?11次下載
    基于<b class='flag-5'>VHDL</b>硬件描述<b class='flag-5'>語(yǔ)言實(shí)現(xiàn)</b>CPSK調(diào)制的程序及仿真

    如何使用VHDL硬件描述語(yǔ)言實(shí)現(xiàn)基帶信號(hào)的MPSK調(diào)制

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用VHDL硬件描述語(yǔ)言實(shí)現(xiàn)基帶信號(hào)的MPSK調(diào)制。
    發(fā)表于 01-19 14:34 ?2次下載
    如何使用<b class='flag-5'>VHDL</b>硬件描述<b class='flag-5'>語(yǔ)言實(shí)現(xiàn)</b>基帶信號(hào)的MPSK調(diào)制

    基于VHDL語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程防盜報(bào)警設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于VHDL語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程防盜報(bào)警設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 11-08 14:33 ?0次下載
    基于<b class='flag-5'>VHDL</b><b class='flag-5'>語(yǔ)言實(shí)現(xiàn)</b>遠(yuǎn)程防盜報(bào)警設(shè)計(jì)
    RM新时代网站-首页