<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于Verilog HDL的異步FIFO設計與實(shí)現

基于Verilog HDL的異步FIFO設計與實(shí)現

作者:山東大學(xué) | 信息科學(xué)與工程學(xué)院 魏 芳 劉志軍 馬克杰 時(shí)間:2008-05-26 來(lái)源:電子技術(shù)應用 收藏

  在現代設計中,特別是在模塊與外圍芯片的通信設計中,多時(shí)鐘域的情況不可避免。當數據從一個(gè)時(shí)鐘域傳遞到另一個(gè)域,并且目標時(shí)鐘域與源時(shí)鐘域不相關(guān)時(shí),這些域中的動(dòng)作是不相關(guān)的,從而消除了同步操作的可能性,并使系統重復地進(jìn)入亞穩定狀態(tài)[1]。在有大量的數據需要進(jìn)行跨時(shí)鐘域傳輸且對數據傳輸速度要求比較高的場(chǎng)合,是一種簡(jiǎn)單、快捷的解決方案。

本文引用地址:http://dyxdggzs.com/article/83024.htm

  用一種時(shí)鐘寫(xiě)入數據,而用另外一種時(shí)鐘讀出數據。讀寫(xiě)指針的變化動(dòng)作由不同的時(shí)鐘產(chǎn)生。因此,對空或滿(mǎn)的判斷是跨時(shí)鐘域的。如何根據的指針信號產(chǎn)生正確的空、滿(mǎn)標志,是異步FIFO設計成敗的關(guān)鍵。本文提出一種新穎的異步FIFO設計方案,它通過(guò)先比較讀寫(xiě)地址并結合象限檢測法產(chǎn)生異步的空/滿(mǎn)標志,再把異步的空/滿(mǎn)標志同步到相應的時(shí)鐘域。通過(guò)仿真驗證,該方法是穩定有效的。

  1 異步信號傳輸問(wèn)題的分析

  在一個(gè)AS或FPGA庫中,每種觸發(fā)器都有時(shí)序要求。對于使用上升沿觸發(fā)的觸發(fā)器來(lái)說(shuō),建立時(shí)間(Setup Time)是在時(shí)鐘上升沿到來(lái)之前,觸發(fā)器數據保持穩定的最小時(shí)間;而保持時(shí)間(Hold Time)是在時(shí)鐘上升沿到來(lái)之后,觸發(fā)器數據還應該保持的最小時(shí)間[2]。如圖1所示,在時(shí)鐘上升沿前后的這個(gè)窗口內數據應該保持不變,否則會(huì )使觸發(fā)器工作在一個(gè)不確定的狀態(tài),即。當觸發(fā)器處于,且處于的時(shí)間超過(guò)了一個(gè)時(shí)鐘周期時(shí),這種不確定的狀態(tài)將會(huì )影響到下一級的觸發(fā)器,最終導致連鎖反應,從而使整個(gè)系統功能失常。當一個(gè)信號跨越某個(gè)時(shí)鐘域時(shí),對新時(shí)鐘域的電路來(lái)說(shuō)它就是一個(gè)異步信號。由于異步信號之間的時(shí)序是毫無(wú)關(guān)系的,因此必然存在Setup Time/Hold Time沖突。為了避免亞穩態(tài)問(wèn)題,采用如圖2所示的雙鎖存器法[3],即在一個(gè)信號進(jìn)入另一個(gè)時(shí)鐘域前,將該信號用兩個(gè)鎖存器連續鎖存兩次,最后得到的采樣結果就可以消除亞穩態(tài)。

       

       

  消除亞穩態(tài)只是保證了信號電平的穩定,要在不同時(shí)鐘域中準確傳輸數據還需要一個(gè)接口電路。異步FIFO就是一種不同時(shí)鐘域之間傳遞多位數據的常用方法。

  2 異步FIFO設計

  異步FIFO是一種先進(jìn)先出電路,用在需要實(shí)時(shí)數據接口的部分,用來(lái)存儲、緩沖在兩個(gè)異步時(shí)鐘之間的數據傳輸。主要由雙口存儲器、讀地址產(chǎn)生邏輯、寫(xiě)地址產(chǎn)生邏輯、空/滿(mǎn)標志產(chǎn)生邏輯四部分構成。圖3是一種常用的異步FIFO設計方案,其中,讀地址(rptr)和空標志(rempty)由讀時(shí)鐘 (rclk)產(chǎn)生,而寫(xiě)地址(wptr)和滿(mǎn)標志(wfull)由寫(xiě)時(shí)鐘(wclk)產(chǎn)生。把寫(xiě)地址與讀地址相互比較以產(chǎn)生空/滿(mǎn)標志。由于讀寫(xiě)地址的變化由不同的時(shí)鐘產(chǎn)生,所以對FIFO空或滿(mǎn)的判斷是跨時(shí)鐘域的。如何避免異步傳輸帶來(lái)的亞穩態(tài)以及正確地產(chǎn)生空/滿(mǎn)標志是設計異步FIFO的難點(diǎn)。

        

  2.1 讀寫(xiě)地址產(chǎn)生邏輯

  讀寫(xiě)地址線(xiàn)一般有多位,如果在不同的時(shí)鐘域內直接同步二進(jìn)制碼的地址指針,則有可能產(chǎn)生亞穩態(tài)。例如,讀指針從011變化到100時(shí),所有位都要變化,讀指針的每一位在讀時(shí)鐘的作用下,跳變不一致,即產(chǎn)生毛刺。如果寫(xiě)時(shí)鐘恰好在讀指針的變化時(shí)刻采樣,得到的采樣信號可能是000~111中的任何一個(gè),從而導致空/滿(mǎn)信號判斷錯誤。由實(shí)踐可知,同步多個(gè)異步輸入信號出現亞穩態(tài)的概率遠遠大于同步一個(gè)異步信號的概率[3]。解決這一問(wèn)題的有效方法是采用格雷碼。格雷碼的主要特點(diǎn)是相鄰的兩個(gè)編碼之間只有一位變化。圖4是格雷碼產(chǎn)生的邏輯框圖。在讀使能或寫(xiě)使能信號有效、并且空/滿(mǎn)標志無(wú)效的情況下,讀寫(xiě)指針開(kāi)始累加,進(jìn)行FIFO讀或寫(xiě)操作。二進(jìn)制碼與格雷碼的轉換是一個(gè)“異或”運算:gnext=(bnext>>1)^bnext。格雷碼gnext 經(jīng)寄存器輸出格雷碼指針ptr。這種方法采用了兩組寄存器,雖然面積較大,但是有助于提高系統的工作頻率。

  2.2 空/滿(mǎn)標志產(chǎn)生邏輯

  正確地產(chǎn)生空/滿(mǎn)標志是設計任何類(lèi)型FIFO的關(guān)鍵點(diǎn)???滿(mǎn)標志產(chǎn)生的原則是:寫(xiě)滿(mǎn)而不溢出,能讀空而不多讀。傳統的異步FIFO把讀寫(xiě)地址信號同步后再進(jìn)行同步比較以產(chǎn)生空滿(mǎn)標志,由于讀寫(xiě)地址的每一位都需要兩級同步電路,大量使用寄存器必然要占用很大的面積。這種方法不適合設計大容量的FIFO。當讀、寫(xiě)指針相等也就是指向同一個(gè)內存位置時(shí),FIFO可能處于滿(mǎn)或空兩種狀態(tài),必須區分FIFO是處于空狀態(tài)還是滿(mǎn)狀態(tài)。傳統的做法是把讀、寫(xiě)地址寄存器擴展一位,最高位設為狀態(tài)位,其余低位作為地址位。當讀寫(xiě)指針的地址位和狀態(tài)位全部吻合時(shí),FIFO處于空狀態(tài);當讀寫(xiě)指針的地址位相同而狀態(tài)位相反時(shí), FIFO處于滿(mǎn)狀態(tài)。傳統的異步FIFO工作頻率低、面積大。下面將介紹一種產(chǎn)生空/滿(mǎn)標志的新方法。

         


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FIFO 異步 Verilog HDL IC 亞穩態(tài)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>