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