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

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

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

3天內不再提示

在ASIC中采用VHDL語言實現異步FIFO的設計

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-06-11 08:00 ? 次閱讀

1 、引言

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

2、 異步FIFO介紹

異步FIFO廣泛應用于計算機網絡工業中進行異步數據傳送,這里的異步是指發送用一種速率而接收用另一速率,因此異步FIFO有兩個不同的時鐘,一個為讀同步時鐘,一個為寫同步時鐘。

當數據從一個時鐘驅動的模塊進入另一個時鐘驅動的模塊時,問題就有可能出現了。例如當寫時鐘比讀時鐘快時,未讀走的數據有可能被新數據覆蓋,因而導至數據丟失。為此,必須增加一些控制信號和狀態信號,控制信號如push、pop,狀態信號如empty,almost-empty,full,almost-full等。

典型的異步FIFO由異步雙端口RAM和控制邏輯構成,后者包含讀指針和寫指針,如圖1。當FIFO中有數據而非空時,POP信號用于控制數據的讀出,所讀數據來自讀指針所指的dualportRAM中的存儲單元,并且讀指針加1。當讀指針趕上寫指針時,FIFO為空并且用empty信號來指示這種情況。當FIFO中有空間而非滿時,PUSH信號用于控制數據的寫入,所寫數據寫入寫指針所指的雙端口RAM中的存儲單元,并且寫指針加1。當寫指針趕上讀指針時,FIFO為滿并且用full信號來指示這種情況。

在ASIC中采用VHDL語言實現異步FIFO的設計

3、 亞穩態問題

數字集成電路中,觸發器要滿足setup/hold的時間要求。當一個信號被寄存器鎖存時,如果信號和時鐘之間不滿足這個要求,Q端的值是不確定的,并且在未知的時刻會固定到高電平或低電平。這個過程稱為亞穩態(Metastability)。

當數據信號通過兩個時鐘域的交界處時,將會分別由這兩個時鐘來控制信號的值。此時如果兩時鐘信號的敏感沿非常接近并超過了允許的額度,則將出現數據信號的不穩定,即電路陷入亞穩態,也稱為同步失敗。亞穩態是在兩時鐘敏感沿靠得很近、第二級時鐘敏感沿到來時其輸入數據不穩時發生,可將其視為僅僅是第二級觸發器輸入信號不穩定所導致的結果。只要使輸入信號穩定,就能解決亞穩態問題。不同時鐘域間數據傳遞的最重要問題就是亞穩態問題。下面從觸發器的物理特性方面對亞穩態進行描述。

觸發器進入亞穩態的時間可以用參數MTBF(mean time between failures)來描述,MTBF即觸發器采樣失敗的時間間隔,其計算公式為:

在ASIC中采用VHDL語言實現異步FIFO的設計

由上面的推導可知,一個信號(a_clk)在過渡到另一個時鐘域(b_clk)時,如果僅僅用一個觸發器將其鎖存,那么用b_clk進行采樣的結果將可能是亞穩態。這也是信號在跨時鐘域時應該注意的問題。

4 、亞穩態問題的解決

雖然亞穩態是不可避免的,但是,下面的設計改進可以將其發生的概率降低到一個可以接受的程度。

a、對寫地址/讀地址采用格雷碼。由實踐可知,同步多個異步輸入信號出現亞穩態的概率遠遠大于同步一個異步信號的概率。對多個觸發器的輸出所組成的寫地址/讀地址可以采用格雷碼如表一,其中4位格雷碼的最高位可以用來標示對那個ram進行操作,而實際的操作地址由4位格雷碼的最高兩位異或再加上后兩位得到。由于格雷碼每次只變化一位,采用格雷碼可以有效地減少亞穩態的產生。

在ASIC中采用VHDL語言實現異步FIFO的設計

b、采用觸發器來同步異步輸入信號,如圖2中的兩極觸發器可以將出現亞穩態的幾率降低到一個很小的程度。但是,正如圖2所示,這種方法同時帶來了對輸入信號的一級延時,需要在設計時鐘的時候加以注意。另外,雖然采用兩級時鐘同步可以在一定程度消除亞問題,但如果在信號從快時鐘域向慢時鐘域過渡的時候,如果信號變化太快,慢時鐘將可能無法對信號進行采樣。所以,在使用兩級時鐘同步的時候,應該使原始信號保持足夠長的時間,以便另一個時鐘域的鎖存器可以正確的對其進行采樣。

在ASIC中采用VHDL語言實現異步FIFO的設計

5 、異步FIFO的VHDL實現

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

讀地址產生模塊:

在ASIC中采用VHDL語言實現異步FIFO的設計

在ASIC中采用VHDL語言實現異步FIFO的設計

6 、結論

本文討論了在ASIC設計中數據在不同時鐘之間傳遞數據所產生的亞穩態問題,并提出了一種新的異步FIFO的設計方法,并用VHDL語言進行描述,利用Altera公司的Cyclone系列的EP1C6進行硬件實現,該電路軟件仿真和硬件實現已經通過驗證,并應用到各種電路中。實踐證明它可以解決由于異步產生的錯誤,同時增加了應用的靈活性。


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

    關注

    114

    文章

    16972

    瀏覽量

    182938
  • asic
    +關注

    關注

    34

    文章

    1243

    瀏覽量

    121992
  • 觸發器
    +關注

    關注

    14

    文章

    2032

    瀏覽量

    61883
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    用FPGA芯片實現高速異步FIFO的一種方法

    現代集成電路芯片中,隨著設計規模的不斷擴大。一個系統往往含有數個時鐘。多時鐘帶來的一個問題就是,如何設計異步時鐘之間的接口電路。異步 FIFO(First In First Out)
    發表于 05-28 10:56 ?4112次閱讀

    如何用VHDL語言實現幀同步的設計?

    幀同步是什么工作原理?如何用VHDL語言實現幀同步的設計?
    發表于 04-08 06:33

    請問一下異步FIFOVHDL實現方法

    本文討論了ASIC設計數據不同時鐘之間傳遞數據所產生的亞穩態問題,并提出了一種新的異步FIFO
    發表于 04-29 06:54

    如何利用VHDL語言實現FPGA與單片機的串口異步通信電路?

    本文介紹利用VHDL語言實現 FPGA與單片機的串口異步通信電路。
    發表于 04-29 06:34

    如何利用FPGA和VHDL語言實現PCM碼的解調?

    利用現場可編程門陣列(FPGA)和VHDL 語言實現了PCM碼的解調,這樣不改變硬件電路的情況下,能夠適應PCM碼傳輸速率和幀結構變化,從而正確解調數據。
    發表于 05-07 06:58

    高速異步FIFO的設計與實現

    本文主要研究了用FPGA 芯片內部的EBRSRAM 來實現異步FIFO 設計方案,重點闡述了異步FIFO 的標志信號——空/滿狀態的設計思路
    發表于 01-13 17:11 ?40次下載

    異步FIFOVHDL設計

    給出了一個利用格雷碼對地址編碼的羿步FIFO實現方法,并給出了VHDL 程序,以解決異步讀寫時鐘引起的問題。
    發表于 07-16 15:15 ?26次下載

    Camera Link接口的異步FIFO設計與實現

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

    VHDL語言實現3分頻電路

    VHDL語言實現3分頻電路 標簽/分類: 眾所周知,分頻器是FPGA設計中使用頻率非常高的基本設計之一,盡管目前大部分設計,廣泛使用芯片廠家集成的鎖相
    發表于 08-21 15:28 ?5821次閱讀

    VHDL語言實現3分頻電路(占空比為2比1)

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

    FM收音機的解碼及控制器VHDL語言實現

    Xilinx FPGA工程例子源碼:FM收音機的解碼及控制器VHDL語言實現
    發表于 06-07 14:13 ?11次下載

    使用Quartus和VHDL語言實現的LPC時序的工程文件

    本文檔的主要內容詳細介紹的是使用Quartus和VHDL語言實現的LPC時序的工程文件免費下載。
    發表于 09-18 16:49 ?20次下載
    使用Quartus和<b class='flag-5'>VHDL</b><b class='flag-5'>語言實現</b>的LPC時序的工程文件

    基于VHDL硬件描述語言實現CPSK調制的程序及仿真

    本文檔的主要內容詳細介紹的是基于VHDL硬件描述語言實現CPSK調制的程序及仿真。
    發表于 01-19 14:34 ?11次下載
    基于<b class='flag-5'>VHDL</b>硬件描述<b class='flag-5'>語言實現</b>CPSK調制的程序及仿真

    如何使用VHDL硬件描述語言實現基帶信號的MPSK調制

    本文檔的主要內容詳細介紹的是如何使用VHDL硬件描述語言實現基帶信號的MPSK調制。
    發表于 01-19 14:34 ?2次下載
    如何使用<b class='flag-5'>VHDL</b>硬件描述<b class='flag-5'>語言實現</b>基帶信號的MPSK調制

    基于VHDL語言實現遠程防盜報警設計

    電子發燒友網站提供《基于VHDL語言實現遠程防盜報警設計.pdf》資料免費下載
    發表于 11-08 14:33 ?0次下載
    基于<b class='flag-5'>VHDL</b><b class='flag-5'>語言實現</b>遠程防盜報警設計
    主站蜘蛛池模板: 性欧美videofree丝袜 | 欧美在线天堂 | 激情综合激情五月 | 欧美高清一区 | 婷婷激情小说网 | 亚洲邪恶天堂影院在线观看 | 一级特黄aaa大片 | 涩涩涩丁香色婷五月网视色 | 在线视频 二区 | 黄视频网站免费看 | 国产农村妇女毛片精品久久 | 操你啦网站 | 在线观看一级毛片 | 日本成人在线网址 | 久久久久久毛片免费播放 | 国产成人精品免费视频大全可播放的 | 婷婷国产在线 | 欧美精品video | 国产精品护士 | 直接在线观看的三级网址 | 日韩三级中文 | 久久亚洲精品国产亚洲老地址 | 免费人成网站线观看合集 | www.色婷婷 | 深夜影院一级毛片 | 天天色天天操天天 | 欧美视频亚洲色图 | 日本黄色片段 | 成人网在线视频 | 黄网站视频 | 免费看成年视频网页 | 一级视频片 | 欧美 日韩 中文字幕 | 亚洲专区一路线二 | 国产精品久久久久国产精品三级 | 中国一级特黄视频 | 香蕉视频在线观看黄 | 成人在线天堂 | 欧美女同在线 | 97菊爱网 | 精品国产自在现线看久久 |