《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業(yè)界動態(tài) > 異步時鐘亞穩(wěn)態(tài)及FIFO標志位的產生

異步時鐘亞穩(wěn)態(tài)及FIFO標志位的產生

2008-03-27
作者:徐世偉, 劉嚴嚴, 劉紅俠

  摘 要: 在實際工作中常常遇到由異步時鐘產生" title="時鐘產生">時鐘產生亞穩(wěn)態(tài)的問題。針對這個問題闡述了幾種解決方案,其中異步FIFO應用更廣泛。在FIFO中關鍵的問題是標志位的產生, 提出了一種新的異步比較產生空滿標志位,然后再利用鎖存器" title="鎖存器">鎖存器實現標志位與時鐘的同步,同時在Cadence的EDA平臺上實現了邏輯仿真和時序仿真。
  關鍵詞: 異步 FIFO 亞穩(wěn)態(tài) 格雷碼" title="格雷碼">格雷碼 繩解法


  隨著信息技術的飛速發(fā)展,特別是在二十世紀90年代以后,美國在南斯拉夫戰(zhàn)爭和兩次海灣戰(zhàn)爭中成功地運用了電子戰(zhàn)、信息戰(zhàn),以及近年來我國在航天航空事業(yè)方面的高速發(fā)展,使我國開始重視和發(fā)展信息技術。與此同時對高速、大容量、高可靠性的靜態(tài)存儲器的需求越來越多,對軍用的數據存儲器的設計也提出了更高的要求。目前軍用計算機傳輸數據的最快方式——DMA方式的傳輸速率最大也只是在5Mbps以下。對于幾十Mbps的超高速采樣速率,往往是上一次數據還沒有被計算機讀取,下一次的采集過程就結束了。因此采用傳統的計算機傳輸處理數據的方法,顯然會造成數據的丟失與混亂。所以對于快速采集,慢速處理的系統必然要用到緩存。本文就是針對數據存儲器FIFO解決亞穩(wěn)態(tài)問題的設計,經過對不同方法的比較, 設計了一種新型的邏輯標志的同步電路。
1 亞穩(wěn)態(tài)問題的解決方案
1.1問題的產生

  在數字集成電路中,觸發(fā)器要滿足setup/hold的時間要求。當一個信號被寄存器鎖存時,如果信號和時鐘之間不滿足這個要求,Q端的值是不確定的,并且在未知的時刻會固定到高電平或低電平,這個過程稱為亞穩(wěn)態(tài),如圖1所示。圖中clka和clkb即為異步時鐘,亞穩(wěn)態(tài)必定會發(fā)生在異步時鐘電路中。在圖1的異步電路中,電路外部的輸入和內部的時鐘之間是毫無時間關系的,因此setup/hold沖突是必然的;同在電路內部的兩個沒有關系的時鐘域之間的信號傳遞,也必然會導致setup/hold沖突。亞穩(wěn)態(tài)雖然是不可避免的,但采用下面幾種設計方法可以將其發(fā)生的概率降低到一個可以接受的程度。


1.2 常見的解決方法
1.2.1格雷碼編碼法
  寫地址/讀地址采用格雷碼。由實踐可知,同步多個異步輸入信號出現亞穩(wěn)態(tài)的概率遠遠大于同步一個異步信號的概率。對于多個觸發(fā)器的輸出所組成的寫地址/讀地址可以采用格雷碼。由于格雷碼每次只變化一位,因此采用格雷碼可以很好地節(jié)約功耗,有效地減少亞穩(wěn)態(tài)的產生,特別是在地址位比較多的情況下可以更好地解決亞穩(wěn)態(tài)的問題。
格雷碼是對二進制地址輸出進行轉換,下面是四位代碼之間轉換的邏輯表達式:
  B碼轉G碼的邏輯表達式: G碼轉B碼的邏輯表達式:
    B4=G4         G4=B4
    B3=B4⊕G3      G3=B4⊕B3
    B2=B3⊕G2      G2=B3⊕B2
    B1=B2⊕G1      G1=B2⊕B1
  但采用格雷碼編碼法需要在地址位的每一位增加一級的異或門,這樣在計數比較前增大了延時和版圖面積。同時在地址分配到其他邏輯單元前要把格雷碼轉換成二進制代碼,這同樣也會增大版圖設計面積和延時。


1.2.2 雙觸發(fā)器法
  采用觸發(fā)器來同步異步輸入信號,如圖2中的兩級觸發(fā)器可以將出現亞穩(wěn)態(tài)的概率降低到一個很小的程度。由于增加了一級觸發(fā)器,這樣在最后的輸出就延遲了一個時鐘,使前一個時鐘產生的數據被b_clk連續(xù)鎖存兩次。雖然第一次鎖存產生亞穩(wěn)態(tài),但經過一段時間的延時可以有效地解決這個問題。這種方法同時帶來了對輸入信號的一級延時,需要在設計時鐘的時候加以注意。
  雖然兩級觸發(fā)器能有效地抑制亞穩(wěn)態(tài),但增加了一級的D觸發(fā)器,這和格雷碼編碼法一樣會增加版圖面積。這種方法在clka與clkb的采樣周期相差不大的情況下比較適合。
1.2.3 結繩法
  如圖3所示,如果aclk的頻率比bclk頻率高,將可能會出現因為adat變化太快而使bclk無法采到的問題,即在信號從快時鐘域向慢時鐘域過渡時,如果信號變化太快,慢時鐘將可能無法對該信號進行正確采樣,即采樣失敗。所以在使用雙鎖存器法時,應該使原始信號保持足夠長的時間,以便另一個時鐘域的鎖存器對其進行正確的采樣。
對上述問題,一般采用“結繩法" title="結繩法">結繩法”的設計方法,將慢時鐘周期信號通過分頻的方式將其周期增長,經過雙鎖存采樣以后再使其恢復原來的時鐘周期。即用“結繩”將信號延長,用“同步”實現雙latch采樣,用“解繩”還原為原來的時鐘,保證另一個時鐘域也可以正確采樣,而接收方用相反的流程送回響應信號。


  “結繩法”可以解決快時鐘域向慢時鐘域過渡的問題,適用的范圍也很廣。但是“結繩法”實現較為復雜,特別是其頻率不高,所以在對設計性能要求較高的場合應該慎用。
2 基于異步比較FIFO邏輯標志的產生
2.1 設計思想

  異步FIFO可以很好地解決時鐘速度相差懸殊的時鐘間的數據傳輸問題。異步FIFO存儲器在結構上可劃分為存儲陣列和外圍電路兩大部分,它由幾個主要模塊組成:存儲單元RAM、寫控制邏輯、讀控制邏輯、標志邏輯、擴展邏輯、復位邏輯以及并/串轉換邏輯。這里主要考慮產生空、滿標志的同步。
  標志邏輯是用以產生反映器件內部RAM陣列占用情況的狀態(tài)標志信號,使系統可以及時采取措施以免數據溢出。在FIFO中標志位的產生是關鍵的一步,如果能夠及時判斷出每一個時鐘下寫入和讀出的位置,就可以防止產生誤操作,做到寫滿不再寫、讀空則停止讀。在異步FIFO中的標志位主要包括空標志、滿標志、半滿標志和將近滿、將近空標志。異步FIFO邏輯框圖如圖4所示。


2.2 標志位的產生
2.2.1 空、滿標志位的產生標志邏輯

  滿標志是為了防止FIFO在滿狀態(tài)時被寫,空標志是為了防止FIFO在空狀態(tài)時被讀。對于異步FIFO而言,數據是由某一個時鐘域的控制信號寫入FIFO,而由另一個時鐘域的控制信號將數據讀出FIFO。也就是說,讀寫指針的變化動作是由不同的時鐘產生的。因此,對FIFO空或滿的判斷是跨時鐘域的。如何根據異步的指針信號對FIFO的滿狀態(tài)或空狀態(tài)進行正確的判斷是研究的重點之一。
  當讀指針和寫指針相等也就是指向同一個內存位置時,FIFO可能處于滿或空兩種狀態(tài)??梢酝ㄟ^不同的方法判斷或區(qū)分FIFO究竟是處于滿狀態(tài)還是空狀態(tài),也就是說究竟是寫指針從后趕上了讀指針,還是讀指針從后趕上了寫指針。本文采用設置一個額外的狀態(tài)位的方法,即指針由它的地址位以及狀態(tài)位組成。地址位隨著相應的操作遞增,指針由內存的最后位置返回到初始位置時,狀態(tài)位取反。因此,當讀寫指針的地址位和狀態(tài)位全部吻合的時候,讀寫指針經歷了相同次數的循環(huán)移動,也就是說,FIFO處于空狀態(tài);如果讀寫指針的地址位相同而狀態(tài)位相反,寫指針比讀指針多循環(huán)一次,標志FIFO處于滿狀態(tài)。
2.2.2 異步比較FIFO邏輯標志與時鐘的同步
  一般的異步FIFO是先將讀地址與寫地址同步以后(以上提到的方法)再進行比較,這種方法一般效率不高,不能很好地節(jié)省制版面積。本文采用一種異步比較法,能夠有效地解決這一問題。目前IDT公司的系列產品一般都采用這種異步比較法。
  在異步FIFO中,由FIFO讀時鐘產生讀地址rptr,寫時鐘產生寫地址wptr。當rptr與wptr進行異步比較時,由于rptr的變化(assert)產生aempty_n(FIFO空標志),即aempty_n的下降沿是與rptr同屬于一個時鐘域的;同理,由于wptr的變化(assert)使aempty_n無效(de-assert),即aempty_n的上升沿" title="上升沿">上升沿是與wptr同屬于一個時鐘域的。異步比較的時鐘域如圖5所示。

?


  因此可以利用上述的理論基礎來實現從aempty_n到empty的過渡。其中, empty是屬于rclk時鐘域的。由于aempty_n的下降沿是屬于rclk時鐘域的,所以可以用它來作為empty的復位信號;而aempty_n的上升沿是屬于wclk時鐘域的,因此可以用雙鎖存器法將其過渡到rclk時鐘域,最后得到的empty信號就屬于rclk時鐘域。同理可以得到full信號??刂菩盘柾饺鐖D6所示。
  如圖6所示,異步比較法的關鍵是用異步比較的結果——信號的下降沿作為最終比較結果的復位信號,而其上升沿則用傳統的雙鎖存器法進行同步,最終得到的信號的上升沿與下降沿都是屬于同一個時鐘域。同時增加的兩級鎖存器也增加了一個時鐘周期的延時輸出,這樣在滿有效狀態(tài)下,同時來自讀寫時鐘的讀寫指令存在潛在的亞穩(wěn)態(tài)問題就可以避免。在與傳統的先將地址信號同步然后進行同步比較的方法相比,異步比較法簡單、高效、節(jié)省版圖面積,而且實現起來更簡單。
2.2.3 半滿、將近滿、將近空的產生
  半滿、將近滿和將近空是對FIFO芯片容量的一種提前判斷。半滿標志是一個雙用輸出端口,在單片模式下,當擴展輸入端接地時,這個端口就作為半滿標志。在字擴展模式下,該端口為擴展輸出端。


  以2K字容量的FIFO為例來說明異步FIFO的半滿與將近滿。如圖7所示:半滿是指當寫指針的位置與讀指針的位置相比較,如果w_point和r_point距離超過總容量的一半,那么輸出半滿為有效輸出。當2K字的FIFO半滿有效時,標志w_point 地址減去 r_point地址的范圍在1K~2K字之間。在具體電路實現上, 2K字的FIFO計數器的輸出共有12個地址線,其中第12根是為了判斷滿和空標志用的。所以判斷半滿主要是對第11根地址的讀和寫計數輸出相同情況和不同情況下進行判斷。
  將近空和將近滿一般是讀和寫總容量相差在0~1/8和7/8~1之間,也有的設計是相差在幾個比特范圍之內。這個電路一般用的是比較器判斷。在2K字的FIFO中一般把后高4位放在一起,先判斷正在讀的高4位和寫的高4位的大小關系,再對應判斷其他低位的大小關系,看是否符合設計要求。當高4位寫地址減去讀地址小于1、其低位讀地址大于寫地址時,產生將近空。同樣,將近滿也是先判斷:若高4位寫地址減去讀地址大于15、低位讀地址大于寫地址時,將近滿輸出有效。圖7為設計2K字的 FIFO將近空和半滿標志位在Candence軟件下的仿真結果圖。
  對于標志信號都是采用異步比較輸出下降沿作為最終比較結果的復位信號,而其上升沿則采用傳統的雙鎖存器法進行同步的方法。此外,在FIFO的設計中還要考慮寫入和讀出的位寬是否相等,在不相等的情況下要設計輸入輸出的自動匹配,使輸出位寬等于輸入位寬。同時為FIFO的深度擴展和寬度擴展設計擴展邏輯,以適應多位寬和大容量的要求。
  一般的異步FIFO通常所采用的是先將讀、寫地址同步后比較的方法,而本文提出的異步比較以后利用觸發(fā)器同步的方法相對前者可以減少延時,從而使系統有更充裕的時間去進行讀、寫操作,有利于提高時鐘頻率,減少邏輯器件個數,從根本上節(jié)約了版圖面積。因此在以面積決定成本的今天,對FIFO標志位的產生采用異步比較法具有極其重要的現實意義。
參考文獻
1 Goor V D, Schanstra A J, Zorian I Y. Fault models and tests for ring address type FIFOs. proc. 12th IEEE VLSI Test Symposium, 1994:300~305
2 Feldman A R, Duzer T V. Hybrid josephson-CMOS FIFO.IEEE Transactions on Aplied Superconductivity,1995:2648~2651
3 Shibata N, Watanabe M. A currentsensed hight speed and low-power first in first out memory using a wordline/bitline-swapped dual-port sram cell.IEEE Journal of Solid State Circuits,2002;37(6):735~750
4 Uyemura J P,Introduction to VLSI circuits and systems.Biejing:Publishing House of Electronics Industy, 2004:360~372
5 Hodges D A,Jackson H G, Saleh R A. Anal-ysis and design of digital integrated circuits in deep submicron technology.Biejing:Publishing House of Electronics Industy,2005:280~286
6 Martin K. Digital Integrated Circuit Design. biejing:Publishing House of Electronics Industy,2002:437~447
7 Sharma A K. Advanced semiconductor memories: architec-tures, designs,and applications. Biejing: Publishing House of Electronics Industy, 2005:13~83
8 Rabaey J M. Anantha chandrakason borivoje nikolic. digital integrated circuits: a design perspective. Biejing: Publishing House of Electronics Industy,2004:461~467

本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。