雙邊沿移位寄存器的設(shè)計原理及其應(yīng)用
隨著社會的發(fā)展,科學技術(shù)也在不斷的進步。特別是計算機產(chǎn)業(yè),可以說是日新月異,移位寄存器作為計算機的一個重要部件,從先前的只能做簡單的左移或右移功能的寄存器到現(xiàn)在廣泛應(yīng)用的具有寄存代碼、實現(xiàn)數(shù)據(jù)的串行-并行轉(zhuǎn)換、數(shù)據(jù)運算和數(shù)據(jù)處理功能的移位寄存器。移位寄存器正在向著功能強,體積小,重量輕等方向不斷發(fā)展
近年來,集成電路和計算機應(yīng)用得到了高速發(fā)展,現(xiàn)代電子設(shè)計技術(shù)已邁入一個嶄新的階段,具體表現(xiàn)在:
(1)電子器件及其技術(shù)的發(fā)展將更多地趨向于為EDA服務(wù);
(2)硬件電路與軟件設(shè)計過程已高度滲透;
(3)電子設(shè)計技術(shù)將歸結(jié)為更加標準、規(guī)范的EDA工具和硬件描述語言HDL的運用;
(4)數(shù)字系統(tǒng)的芯片化實現(xiàn)手段已成主流。
因此利用計算機和大規(guī)模復雜可編程邏輯器件進行現(xiàn)代電子系統(tǒng)設(shè)計已成為電子工程類技術(shù)人員必不可少的基本技能之一。
隨著集成電路集成度的不斷增加和工作速度的提高, 功耗急劇增加。 早在 7 年前, A lpha 處理器21164 的功耗已高達 50 W. 這給集成電路的散熱、封裝和便攜設(shè)備的使用等都帶來極大的困難。 因此,如何降低功耗成為設(shè)計集成電路時要考慮的一個重要問題。
在 CM O S 電路的功耗中決定性的一項來自于電路中對給定結(jié)點的充放電與此相應(yīng)的功耗可由下式表示:
P = 0. 5CL·V2DD·f CL K·E SW ,
式中, CL 為該結(jié)點的物理電容, V DD 為電源電壓,f CL K為時鐘頻率, E SW (稱為開關(guān)活動性) 是每個時鐘周期 1?f CL K中的平均輸出跳變數(shù)
在一個系統(tǒng)中時序電路常是功耗的主要貢獻者, 因為時序電路的輸入信號之一就是時鐘, 而它正是唯一的一直在跳變的信號。 此外, 時鐘信號的負荷總是最高的。 為分布時鐘以及控制住時鐘偏移, 就需要構(gòu)建一個含有時鐘緩沖器的遍布系統(tǒng)的時鐘網(wǎng)絡(luò)(通常稱為時鐘樹)。 所有這些均增加了時鐘網(wǎng)絡(luò)的結(jié)點電容的總和。 近年來的研究表明, 在數(shù)字計算機中時鐘信號消耗的功耗占了系統(tǒng)功耗的很大比例(15%~ 45% )。 因此, 通過減少時鐘功耗將可以大幅度降低電路的總功耗。
在對觸發(fā)器的內(nèi)部結(jié)構(gòu)的分析中發(fā)現(xiàn)時鐘信號有一半跳變是冗余的, 僅有另一半跳變才引起觸發(fā)器的狀態(tài)變化。 因此, 當前國際上對一種新型的雙邊沿觸發(fā)器提出了研究。 所謂雙邊沿觸發(fā)器是指對時鐘上下跳變敏感的一種新型觸發(fā)器。 使用該類觸發(fā)器, 時鐘信號的頻率可以降低一半就能保持原來的工作速度, 從而使得對雙邊沿觸發(fā)器的研究成為低功耗設(shè)計的一個研究熱點。
注意到觸發(fā)器是存儲單個數(shù)字信號的存儲單元, 而用觸發(fā)器串接而成的移位寄存器可以認為是一種存儲多位數(shù)字信號的存儲元件。 因此對雙邊沿觸發(fā)器的研究應(yīng)可推廣到對移位寄存器的研究中來。 本文將從雙邊沿觸發(fā)器的設(shè)計思想出發(fā)對雙邊沿移位寄存器的設(shè)計思想、工作原理、低功耗特點及應(yīng)用等方面展開深入研究, 以達成對該一新型低功耗器件的研究完整性
雙邊沿移位寄存器的設(shè)計
鎖存器(latch) 是構(gòu)成觸發(fā)器的基本單元。 鎖存器的輸入時鐘信號 clk 用于將鎖存器置于存貯狀態(tài)或輸入狀態(tài)。 若用D、Q 和Q ′分別來表示鎖存器的輸入信號、現(xiàn)態(tài)及次態(tài), 則高電平輸入與低電平輸入等兩種鎖存器的狀態(tài)方程可表示如下:
Q ′= D ·clk+ Q ·clk , (1)
Q ′= D ·clk+ Q ·clk.,(2)
式(1) 表示鎖存器在 clk = 1 時輸入數(shù)據(jù), clk = 0 時存貯數(shù)據(jù); 而相應(yīng)式(2) 為 clk = 0 時輸入數(shù)據(jù), clk= 1 時存貯數(shù)據(jù)。 圖 1 (a)、(b) 分別示出了根據(jù)式(1)、(2) 利用數(shù)據(jù)選擇器M U X 實現(xiàn)的時鐘高電平時輸入與低電平時輸入的D 型鎖存器邏輯結(jié)構(gòu)
以圖 1 (a) 所示的時鐘高電平時輸入的D 型鎖存器為例, 它的工作特點為在 clk = 0 時輸入信號無法影響鎖存器的存貯狀態(tài), 而當 clk = 1 時, 輸入信號就能影響鎖存器的存貯狀態(tài)。 這樣, 在 clk = 1期間輸入信號的多次變化將會導致鎖存器發(fā)生多次狀態(tài)轉(zhuǎn)換。 為了實現(xiàn)一次狀態(tài)轉(zhuǎn)換, 可以要求它的輸入信號在 clk = 1 時保持不變。 這一要求暗示了該鎖存器的輸入信號在 clk = 1 時應(yīng)處于一種存貯狀態(tài), 因此也就需要另外一個反相控制的鎖存器, 由此便導出了傳統(tǒng)的主從觸發(fā)結(jié)構(gòu)。 圖 2 (a) 即為用圖 1(a)、(b) 中兩種用數(shù)據(jù)選擇器M U X 組成的鎖存器串聯(lián)而構(gòu)成的單邊沿主從觸發(fā)器。 其中前級D 型鎖存器為主鎖存器, 后級D 型鎖存器為從鎖存器。 當clk = 1 時主鎖存器處于輸入狀態(tài), 而從鎖存器處于存貯狀態(tài); 當 clk = 0 時主鎖存器處于存貯狀態(tài), 而從鎖存器處于輸入狀態(tài),Q 轉(zhuǎn)換為Q ′, 即該主從觸發(fā)器僅在 clk 下跳時進行狀態(tài)轉(zhuǎn)換, 因此稱為單邊沿觸發(fā)器(SETFF)。
一次狀態(tài)轉(zhuǎn)換的要求也可以從觸發(fā)器的輸出來考慮。 只要選擇處于輸入狀態(tài)的鎖存器與輸出隔離,則該鎖存器即使在輸入狀態(tài)下發(fā)生多次狀態(tài)轉(zhuǎn)換也不會影響輸出狀態(tài)。 這暗示了可以把串聯(lián)的主從觸發(fā)器改成并聯(lián)的形式。 兩個鎖存器在時鐘 clk 的作用下交替處于輸入狀態(tài)及存貯狀態(tài), 而最后可以用另一個數(shù)據(jù)選擇器M U X 使二者中處于存貯狀態(tài)的鎖存器接通輸出端, 如圖 2 (b) 所示。 這樣, 該觸發(fā)器在 clk = 0、1 時都能夠接收輸入信號, 觸發(fā)器的狀態(tài)在時鐘脈沖的上升沿和下降沿均可以改變, 從而實現(xiàn)了時鐘信號的雙邊沿觸發(fā), 圖 2 (b) 中的圖形符號已在時鐘輸入端標志了這一特性
借鑒以上雙邊沿觸發(fā)器的設(shè)計思想, 可以設(shè)計出雙邊沿移位寄存器。 下面以設(shè)計 16 位的移位寄存器為例進行討論。 傳統(tǒng)的移位寄存器設(shè)計以 16 個單邊沿觸發(fā)器串行級聯(lián)構(gòu)成, 如圖 3 (a) 所示。 該移位寄存器要存儲或者輸出 162b it 的數(shù)據(jù)需要有 16 個時鐘周期, 在此期間各個觸發(fā)器均要受到 32 個時鐘跳變。 如果將 16 個單邊沿觸發(fā)器分成兩組, 每組由8 個反相觸發(fā)的單邊沿觸發(fā)器串行級聯(lián)構(gòu)成單邊沿移位寄存器, 再將兩組觸發(fā)器并聯(lián)就構(gòu)成了雙邊沿移位寄存器。 兩組觸發(fā)器在時鐘的作用下交替處于輸入狀態(tài)及存儲狀態(tài), 而最后可以用一個數(shù)據(jù)選擇器M U X 使處于存儲狀態(tài)的觸發(fā)器組接通輸出端,如圖 3 (b) 所示。 這樣, 162b it 數(shù)據(jù)依次在一個時鐘周期內(nèi)分別由上下二組觸發(fā)器輪流接收、存儲并輸出到移位寄存器的輸出端, 在此期間每個觸發(fā)器只接收到 16 次時鐘信號的觸發(fā) (8 個時鐘周期)。 因此, 如果保持時鐘頻率不變, 則移位寄存器處理的數(shù)據(jù)流量在能耗不變的前提下增加近 1 倍; 另外, 如果時鐘頻率降低一半, 則能在保持不變的數(shù)據(jù)流量的同時降低移位寄存器的功耗
圖 4 所示是在相同的數(shù)據(jù)流量的情況下單邊沿移位寄存器和雙邊沿移位寄存器的能耗曲線。 由圖可知, 雙邊沿移位寄存器比單邊沿移位寄存器的功耗降低了 38. 5%. 可以發(fā)現(xiàn), 雖然雙邊沿移位寄存器比單邊沿移位寄存器增加了一個M U X, 但是由于開關(guān)頻率減半所導致的功耗降低仍是主要的。
應(yīng)用雙邊沿移位寄存器的時序電路設(shè)計
以上設(shè)計的雙邊沿移位寄存器可以應(yīng)用于各種時序系統(tǒng), 如數(shù)據(jù)的移位寄存和設(shè)計移位型計數(shù)器。在數(shù)據(jù)流量不變的情況下, 時鐘頻率可以減半。 以下將以圖 5 所示的 2&TImes;2 位雙邊沿移位寄存器為例, 討論采用該移位寄存器設(shè)計移位計數(shù)器的設(shè)計過程及設(shè)計特點
如圖 5 所示, 2&TImes;2 位雙邊沿移位寄存器的控制輸入端接受控制邏輯 I 的輸出, 控制邏輯 I 的輸入為狀態(tài)變量Q 1、Q 2、Q 3、Q 4. 這樣只須設(shè)計控制邏輯I, 就可以設(shè)計出雙邊沿移位計數(shù)器, 故其設(shè)計比較簡單。 作者發(fā)現(xiàn), 將時鐘信號 clk 作為狀態(tài)變量可以設(shè)計出更多狀態(tài)數(shù)的計數(shù)器并且使電路結(jié)構(gòu)簡單。由Q 1、Q 2、Q 3、Q 4、clk 五位狀態(tài)變量, 可以設(shè)計出最大狀態(tài)數(shù)為 32 的移位計數(shù)器
由于各觸發(fā)器之間必須保持移位的關(guān)系, 移位計數(shù)器狀態(tài)遷移受到限制。 這就是說, 對任何一個目前狀態(tài)來說, 它只有兩種可能的下一狀態(tài), 因為只有首位觸發(fā)器才有兩種可能的取值供選擇, 而其余各位已由目前狀態(tài)所決定。 由于狀態(tài)遷移受到限制, 可以將一個移位寄存器的全狀態(tài)圖畫出來, 以便用它來選擇各種長度的移位計數(shù)器所使用的編碼。 五位移位計數(shù)器的全狀態(tài)圖如圖 6 所示。 圖中 I 為首位觸發(fā)器的輸入, 它只有兩種取值 0 或 1. 在圖 6 中,作者以一個最大計數(shù)環(huán)作為主干, 給出了全狀態(tài)圖。為了使用上的方便, 在全狀態(tài)圖左邊的返回線上用十進制數(shù)表明它所跨的狀態(tài)數(shù)(包括起止狀態(tài)) , 在全狀態(tài)圖右邊的分枝線上用負數(shù)表明它所跳過的狀態(tài)數(shù)(不包括起止狀態(tài))。
單獨使用返回線, 能夠獲得某種循環(huán)長度的狀態(tài)圖及其編碼。 例如 4 號返回線指出, 若起始狀態(tài)為00100, 在 I 為 1 時遷移到狀態(tài) 10001, 又在 I 為 0 時從 10001 遷到 10000, 再在 I 為 0 時遷到 00101, 最后在 I 為 0 時返回到起始狀態(tài) 00100. 僅用返回線決定的循環(huán)長度有 4、6、8、10、12、14、16、18、20、22、30、32 十二種
如果返回線和分枝線配合起來使用, 可以獲得從 2 到 32 的任何一種偶數(shù)循環(huán)長度。 設(shè)計原則是:使所有選中的返回線和分枝線上的數(shù)字的代數(shù)和,等于所需的循環(huán)長度。 例如, 要求循環(huán)長度為 28 的方案有 3 種:
方案一: 32- 4= 28, (32 號返回線和- 4 號分枝線)。
編 碼 為 00000, 00001, 01000, 01001, 00010,10011, 11000, 01101, 01110, 01011, 01010, 11011,11010, 11111, 10110, 00111, 01100, 11001, 10010,10111, 10100, 10101, 11100, 11101, 11110, 01111,00110, 00011
方案二: 30- 2= 28, (30 號返回線和圖 6 中上部的- 2 號分枝線)
編 碼 為 01000, 01001, 00010, 10011, 11000,01101, 01110, 11011, 11010, 11111, 10110, 00111,00100, 10001, 10000, 00101, 01100, 11001, 10010,10111, 10100, 10101, 11100, 11101, 11110, 01111,00110, 00011
方案三: 30- 2= 28, (30 號返回線和圖 6 中下部的- 2 號分枝線)
編 碼 為 01000, 01001, 00010, 10011, 11000,01101, 01110, 01011, 01010, 11011, 11010, 11111,10110, 00111, 00100, 10001, 10000, 00101, 01100,11001, 10010, 10111, 11100, 11101, 11110, 01111,00110, 00011
利用全狀態(tài)圖來設(shè)計移位計數(shù)器是十分方便的, 只要給定循環(huán)長度后, 就能從全狀態(tài)圖中查出所設(shè)計的計數(shù)器的狀態(tài)圖, 有了狀態(tài)圖便能設(shè)計出電路來。 而且因為對于給定的循環(huán)長度, 其設(shè)計方案有很多種, 所以可以綜合考慮各種設(shè)計方案, 找到首級觸發(fā)器的控制邏輯 I 最簡單的一種方案, 從而達到電路的最簡
以設(shè)計 30 狀態(tài)移位計數(shù)器為例, 由圖 6 可以看出循環(huán)長度為 30 的組成方案至少有 3 種, 而采用單獨使用 30 號返回線的方案, 控制邏輯 I 最簡單。 由30 號返回線構(gòu)成的狀態(tài)圖可以得到控制邏輯 I 的卡諾圖如圖 7 所示, 再由卡諾圖可以得到控制邏輯I 的表達式: I= Q 3+ Q 4. 因此, 在圖 5 中當控制邏輯部分的電路為Q 3+ Q 4 時, 就得到了 30 狀態(tài)移位計數(shù)器。 作者對設(shè)計出的 30 狀態(tài)移位計數(shù)器進行PSP ICE 模擬, 其工作波形如圖 8 所示。 圖中, 起始狀態(tài)為 11110, 中止狀態(tài)為 11101. 其邏輯功能達到了設(shè)計的要求
本文為了有效利用導致無效功耗的時鐘信號一半的冗余跳變, 借鑒雙邊沿觸發(fā)器的設(shè)計思想, 推演了雙邊沿移位寄存器的設(shè)計, 并進一步探討了其在雙邊沿移位計數(shù)器中的應(yīng)用。 通過 PSP ICE 模擬程序比較單邊沿移位寄存器和雙邊沿移位寄存器, 作者發(fā)現(xiàn)所設(shè)計出的雙邊沿移位寄存器具有正確的邏輯功能, 而且在時鐘信號頻率減半后, 仍能保持數(shù)據(jù)傳輸率不變, 達到了降低功耗的目的。 本文對 30 狀態(tài)移位計數(shù)器的設(shè)計中發(fā)現(xiàn), 如使用雙邊沿移位寄存器, 則可以只用 4 個觸發(fā)器來實現(xiàn), 這一節(jié)省一個觸發(fā)器的結(jié)果與文獻[ 9 ]的結(jié)果相吻合。 本文對雙邊沿移位寄存器的研究實際上是對雙邊沿觸發(fā)器的進一步研究, 達成了研究的完整性.