《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 異步時(shí)鐘亞穩(wěn)態(tài)及FIFO標(biāo)志位的產(chǎn)生

異步時(shí)鐘亞穩(wěn)態(tài)及FIFO標(biāo)志位的產(chǎn)生

2008-03-27
作者:徐世偉, 劉嚴(yán)嚴(yán), 劉紅俠

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


  隨著信息技術(shù)的飛速發(fā)展,特別是在二十世紀(jì)90年代以后,美國(guó)在南斯拉夫戰(zhàn)爭(zhēng)和兩次海灣戰(zhàn)爭(zhēng)中成功地運(yùn)用了電子戰(zhàn)、信息戰(zhàn),以及近年來(lái)我國(guó)在航天航空事業(yè)方面的高速發(fā)展,使我國(guó)開(kāi)始重視和發(fā)展信息技術(shù)。與此同時(shí)對(duì)高速、大容量、高可靠性的靜態(tài)存儲(chǔ)器的需求越來(lái)越多,對(duì)軍用的數(shù)據(jù)存儲(chǔ)器的設(shè)計(jì)也提出了更高的要求。目前軍用計(jì)算機(jī)傳輸數(shù)據(jù)的最快方式——DMA方式的傳輸速率最大也只是在5Mbps以下。對(duì)于幾十Mbps的超高速采樣速率,往往是上一次數(shù)據(jù)還沒(méi)有被計(jì)算機(jī)讀取,下一次的采集過(guò)程就結(jié)束了。因此采用傳統(tǒng)的計(jì)算機(jī)傳輸處理數(shù)據(jù)的方法,顯然會(huì)造成數(shù)據(jù)的丟失與混亂。所以對(duì)于快速采集,慢速處理的系統(tǒng)必然要用到緩存。本文就是針對(duì)數(shù)據(jù)存儲(chǔ)器FIFO解決亞穩(wěn)態(tài)問(wèn)題的設(shè)計(jì),經(jīng)過(guò)對(duì)不同方法的比較, 設(shè)計(jì)了一種新型的邏輯標(biāo)志的同步電路。
1 亞穩(wěn)態(tài)問(wèn)題的解決方案
1.1問(wèn)題的產(chǎ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),如圖1所示。圖中clka和clkb即為異步時(shí)鐘,亞穩(wěn)態(tài)必定會(huì)發(fā)生在異步時(shí)鐘電路中。在圖1的異步電路中,電路外部的輸入和內(nèi)部的時(shí)鐘之間是毫無(wú)時(shí)間關(guān)系的,因此setup/hold沖突是必然的;同在電路內(nèi)部的兩個(gè)沒(méi)有關(guān)系的時(shí)鐘域之間的信號(hào)傳遞,也必然會(huì)導(dǎo)致setup/hold沖突。亞穩(wěn)態(tài)雖然是不可避免的,但采用下面幾種設(shè)計(jì)方法可以將其發(fā)生的概率降低到一個(gè)可以接受的程度。


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


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


  “結(jié)繩法”可以解決快時(shí)鐘域向慢時(shí)鐘域過(guò)渡的問(wèn)題,適用的范圍也很廣。但是“結(jié)繩法”實(shí)現(xiàn)較為復(fù)雜,特別是其頻率不高,所以在對(duì)設(shè)計(jì)性能要求較高的場(chǎng)合應(yīng)該慎用。
2 基于異步比較FIFO邏輯標(biāo)志的產(chǎn)生
2.1 設(shè)計(jì)思想

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


2.2 標(biāo)志位的產(chǎn)生
2.2.1 空、滿標(biāo)志位的產(chǎn)生標(biāo)志邏輯

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

?


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


  以2K字容量的FIFO為例來(lái)說(shuō)明異步FIFO的半滿與將近滿。如圖7所示:半滿是指當(dāng)寫指針的位置與讀指針的位置相比較,如果w_point和r_point距離超過(guò)總?cè)萘康囊话?,那么輸出半滿為有效輸出。當(dāng)2K字的FIFO半滿有效時(shí),標(biāo)志w_point 地址減去 r_point地址的范圍在1K~2K字之間。在具體電路實(shí)現(xiàn)上, 2K字的FIFO計(jì)數(shù)器的輸出共有12個(gè)地址線,其中第12根是為了判斷滿和空標(biāo)志用的。所以判斷半滿主要是對(duì)第11根地址的讀和寫計(jì)數(shù)輸出相同情況和不同情況下進(jìn)行判斷。
  將近空和將近滿一般是讀和寫總?cè)萘肯嗖钤?~1/8和7/8~1之間,也有的設(shè)計(jì)是相差在幾個(gè)比特范圍之內(nèi)。這個(gè)電路一般用的是比較器判斷。在2K字的FIFO中一般把后高4位放在一起,先判斷正在讀的高4位和寫的高4位的大小關(guān)系,再對(duì)應(yīng)判斷其他低位的大小關(guān)系,看是否符合設(shè)計(jì)要求。當(dāng)高4位寫地址減去讀地址小于1、其低位讀地址大于寫地址時(shí),產(chǎn)生將近空。同樣,將近滿也是先判斷:若高4位寫地址減去讀地址大于15、低位讀地址大于寫地址時(shí),將近滿輸出有效。圖7為設(shè)計(jì)2K字的 FIFO將近空和半滿標(biāo)志位在Candence軟件下的仿真結(jié)果圖。
  對(duì)于標(biāo)志信號(hào)都是采用異步比較輸出下降沿作為最終比較結(jié)果的復(fù)位信號(hào),而其上升沿則采用傳統(tǒng)的雙鎖存器法進(jìn)行同步的方法。此外,在FIFO的設(shè)計(jì)中還要考慮寫入和讀出的位寬是否相等,在不相等的情況下要設(shè)計(jì)輸入輸出的自動(dòng)匹配,使輸出位寬等于輸入位寬。同時(shí)為FIFO的深度擴(kuò)展和寬度擴(kuò)展設(shè)計(jì)擴(kuò)展邏輯,以適應(yīng)多位寬和大容量的要求。
  一般的異步FIFO通常所采用的是先將讀、寫地址同步后比較的方法,而本文提出的異步比較以后利用觸發(fā)器同步的方法相對(duì)前者可以減少延時(shí),從而使系統(tǒng)有更充裕的時(shí)間去進(jìn)行讀、寫操作,有利于提高時(shí)鐘頻率,減少邏輯器件個(gè)數(shù),從根本上節(jié)約了版圖面積。因此在以面積決定成本的今天,對(duì)FIFO標(biāo)志位的產(chǎn)生采用異步比較法具有極其重要的現(xiàn)實(shí)意義。
參考文獻(xiàn)
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

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