張 為,趙 創(chuàng),苗 林
(1.天津大學微電子學院,天津 300072;2.長江存儲科技有限公司設計部門,湖北武漢 430223)
計數(shù)器是典型的時序邏輯電路[1],幾乎應用于所有的數(shù)字電路和系統(tǒng),如頻率合成器、測量系統(tǒng)、模擬數(shù)字轉換器和通信系統(tǒng)[2]。高速并行計數(shù)器在算術運算中有許多應用,包括神經網(wǎng)絡和觸發(fā)核儀器[3]。相比于大寬度的計數(shù)器,同步高速并行計數(shù)器應用更廣泛[4]。在設計高速計數(shù)器的過程中,寬頻帶和高速的計數(shù)器會同時增大芯片面積,這是需要解決的問題。在VLSI規(guī)模下實現(xiàn)計數(shù)器的理想和重要的關鍵特性包括相對恒定的計數(shù)時間和更高的計數(shù)速度、數(shù)字輸出和穩(wěn)定的VLSI實現(xiàn)[5]。
在時序邏輯電路中,基本存儲元件是觸發(fā)器,它可以在脈沖的上升沿或下降沿存儲數(shù)據(jù)。傳統(tǒng)的主從D觸發(fā)器設計使用8個NAND門和一個反相器[6],如圖1所示。
圖1 傳統(tǒng)主從D觸發(fā)器
傳統(tǒng)D觸發(fā)器所含晶體管數(shù)目很多,使得其面積太大,所以需要設計一個含有少數(shù)目晶體管的D觸發(fā)器,因此設計選擇了正邊沿觸發(fā)TSPC(true single-phase clock)觸發(fā)器。除此之外,TSPC觸發(fā)器還具有功耗低和工作速度快的優(yōu)點,但是缺點是有電荷共享現(xiàn)象且容易產生毛刺。
本文中選用一種消除毛刺和電荷共享的TSPC型D觸發(fā)器,晶體管級的實現(xiàn)如圖2所示[7],它由13個晶體管構成,分為3級,其中NMOS管MN1的尺寸大于NMOS管MN2的尺寸和NMOS管MN3的尺寸。當時鐘信號為低電平時,第1級作為一個開啟的鎖存器接受輸入信號,而第2級的輸出節(jié)點被預充電,在此期間,第3級保持原來的輸出狀態(tài)。當時鐘信號由低電平變換到高電平時,第1級不再開啟且第2級開始定值,同時第3級變?yōu)殚_啟而且將采樣值傳送到輸出。在第1級加入一個PMOS管,第1級和第2級之間加入1個NMOS管,用來輸入復位信號(RST)。其中MN1的尺寸要大于MN2和MN3的尺寸,以保證消除毛刺和電荷共享。
圖2 TSPC型D觸發(fā)器
本文提出的12位計數(shù)器的并行計數(shù)器架構如圖3所示。主要結構包括SLA路徑(虛線框內所有邏輯)和計數(shù)路徑(在虛線框外的所有邏輯)[8],將計數(shù)器設計為單模式計數(shù)器,它通過固定的順序排列一組預先指定的計數(shù)狀態(tài),其中計數(shù)狀態(tài)依次表示計數(shù)器值。計數(shù)器被劃分為統(tǒng)一的3位同步計數(shù)模塊。使用來自SLA路徑的激勵,在狀態(tài)轉換之前的時鐘周期上啟用計數(shù)較高有效模塊的狀態(tài)轉換。因此,所有計數(shù)模塊在時鐘下降沿同時轉換到其下一個狀態(tài)。該計數(shù)器共含有536個晶體管。
圖3 具有SLA結構的12位并行計數(shù)器的功能框圖
計數(shù)路徑的計數(shù)邏輯控制計數(shù)操作,SLA(state look ahead)路徑的邏輯預測未來狀態(tài),從而為這些未來狀態(tài)準備計數(shù)路徑。圖3顯示了3種模塊類型M1,M2_S(S=1,2,3),M3用于構造2條路徑。模塊M1和模塊M2_S只存在計數(shù)路徑中,均表示3位并行計數(shù)器,模塊M2是正邊沿觸發(fā)的TSPC觸發(fā)器,在兩種路徑中都存在。在計數(shù)路徑中,每個M2之前都有一個關聯(lián)的M3。M3有2個主要用途:生成與它們的有序位置相關聯(lián)的所有計數(shù)器位;在隨后的M2(更高的值)中啟用(與來自SLA路徑的激勵相關聯(lián))未來狀態(tài)。
(a)M1原理圖
M3在計數(shù)路徑中的位置對于計數(shù)器結構的新穎性至關重要。計算路徑中的M3作為M1和M2_1以及后面的M2_S之間的通道 (見圖3)。放置的M3通過消除冗長AND門的延遲和在大寬度并行計數(shù)器的大型AND門扇入和扇出,來增加計數(shù)器工作頻率。因此,更高有效位的模塊(M2_S)只是通過前一個M3和SLA邏輯來啟用,而不是要求所有來自較低有效位模塊的使能信號一起通過AND門。計數(shù)路徑中的M3提供了一個用于觸發(fā)M2_S的1-cycle循環(huán)的SLA機制,使M3對所有階段保持恒定的延遲,所有M2在時鐘上升沿并行計數(shù)。
圖5(a)為M2的硬件原理圖,圖5(b)為狀態(tài)圖,共含有117個晶體管。M2是一個并行同步二進制3位計數(shù)器,其計數(shù)由IN控制。IN連接到前面M3的輸出Q。M2輸出Q2,Q1和Q0,輸出QEN2=Q2×Q1×Q0×QC。SLA邏輯提供QC輸入,QEN2連接到后續(xù)M3的D輸入,并提供單周期SLA機制。
(a)M2原理圖
2.2.2 SLA路徑
如圖3所示,SLA路徑的操作類似于進位預估加法器,因為它解碼低階計數(shù)狀態(tài),并在幾個時鐘周期內進行解碼,以觸發(fā)高階計數(shù)狀態(tài)。通過SLA路徑中M3的時鐘周期的早期溢出流水線操作,啟用下一個狀態(tài)的計數(shù)路徑的高比特位。SLA邏輯等價于計數(shù)路徑中的單周期SLA機制。這種SLA的邏輯組織和操作避免了使用額外延時檢測電路,并對低階模塊進行解碼,為高階模塊生成使能信號,并使所有模塊在時鐘上升沿同時觸發(fā),從而避免了毛刺和長延時。
圖6為圖3中12位計數(shù)器的時序圖,圖6中的每個信號均在圖3中表示出來,由于Q11Q10Q9跳變周期太長,因此只顯示了前九位計數(shù)輸出,開始計數(shù)狀態(tài)為111110011(Q8~Q0),然后以111111111(Q8~Q0)計數(shù)狀態(tài)結束的9個后續(xù)計數(shù)。假設所有模塊的訪問時間相等都為TM,AND門的單位延遲為TA,并且所有TSPC觸發(fā)器都是正邊緣觸發(fā)的。
圖6 時序圖分析
在第1時鐘周期的上升沿,經過TM的延時,計數(shù)狀態(tài)更新為111110100。M1的Q2Q1Q0從011變?yōu)?00,Q2Q1Q0的跳變觸發(fā)了SLA路徑的三輸入AND門,經過Td(Td=TM+TA)的延遲,早期溢出檢測信號QC1從0變?yōu)?。
在第2時鐘周期的上升沿,經過TM的延時,計數(shù)狀態(tài)更新為111110101。M1的Q2Q1Q0從100變?yōu)?01,Q2Q1Q0的跳變觸發(fā)了SLA路徑的三輸入AND門,經過Td(Td=TM+TA)的延遲,早期溢出檢測信號QB1從0變?yōu)?。同時,SLA路徑的QC2經過TM的延時從0變?yōu)?。流水線早期溢出檢測信號在上一個時鐘周期的QC1=1,而由于M1狀態(tài)變化,QC1在Td的延遲后變?yōu)?。
又過了10分鐘,門鈴又響了。思雨打開門,這回真進來一位長發(fā)飄逸的美女。思雨急不可奈地拉著美女坐在床上,借著床頭燈認真地看起她的頭發(fā)。這位小姐的頭發(fā)的確很美,在燈光下閃著栗紅色的光澤。而且還飄出一股淡淡的香味,這大概是一種進口香水的味道。
在第3時鐘周期的上升沿,經過TM的延時,計數(shù)狀態(tài)更新為111110110.。經過Td的延時,Q2Q1Q0的變化觸發(fā)了M1內的三輸入AND門,使得QEN1=QA1=D=1(其中D為M1右邊M3的輸入)。同時,SLA路徑的QB2經過TM的延時從0變?yōu)?,因此流水線早期溢出檢測信號在上一個時鐘周期的QB1=1,而由于M1狀態(tài)變化,QB1在Td的延遲后變?yōu)?。
在第4時鐘周期的上升沿,經過TM的延時,計數(shù)狀態(tài)更新為111110111,M1的Q2Q1Q0從110變?yōu)?11,計數(shù)路徑上的QD1由0變?yōu)?,同時,由于M1的狀態(tài)變化,計數(shù)路徑上的QA1在Td的延遲后變?yōu)?。
第5時鐘周期揭示了本文計數(shù)器的并行更新機制。在第5周期時鐘邊緣上升后,由于上個時鐘周期QD1=1,根據(jù)圖5的狀態(tài)表,經過TM的延時,M2_1啟動,計數(shù)狀態(tài)更新到111111000。同時,由于上一周期QA1=0,因此QD1變?yōu)?。
第6到8個時鐘周期,由于不涉及流水線早期溢出信號的跳變,因此不做分析。
在第9時鐘周期的上升沿,經過TM延時,計數(shù)狀態(tài)更新為111111100,Q2Q1Q0=100。Q2Q1Q0的跳變觸發(fā)了SLA路徑的三輸入AND門,經過Td的延遲,QC1變?yōu)?。
在第10時鐘周期的上升沿,經過TM延時,計數(shù)狀態(tài)更新為111111101,M1的Q2Q1Q0=101,Q2Q1Q0的跳變觸發(fā)了SLA路徑的三輸入AND門,經過Td的延遲,QB1=1。同時,SLA路徑的QC2經過TM的延時從0變?yōu)?,此時Q5Q4Q3=111,因此經過Td的延遲,QC3=1。
在第11時鐘周期的上升沿,經過TM延時,計數(shù)狀態(tài)更新為111111110,經過Td的延時,Q2Q1Q0的變化觸發(fā)了M1內的三輸入AND門,使得QEN1=QA1=D=1(其中D為M2_1右邊M3的輸入)。同時,SLA路徑的QB2經過TM的延時從0變?yōu)?,QB2=1作用于M2_1使得經過Td的延時,QA2=1。同時,上一個周期QC3=1,使得QC4經過TM的延時變?yōu)?。QB1和QC2在Td的延遲后變?yōu)?。
在第12時鐘周期的上升沿,經過TM延時,計數(shù)狀態(tài)更新為111111111,由于上一周期QA=1,因此QD1=1,同時QA1=QB2=QC4=0。同時,由于上一周期QA2=1,經過TM的延時,QD2=1,經過Td的延時,QA2=0。
對于80 nm CMOS工藝的電路,正常工作條件是1.2 V和25 ℃,為了得到本設計的極限工作頻率,在1.08 V和100 ℃條件下進行仿真。在Cadence Virtuoso中畫出電路圖后,生成電路網(wǎng)表,然后為了布局該并行計數(shù)器,使用了Perl腳本文件將寄生電阻和電容加入電路網(wǎng)表。采用HSPICE 80 nm CMOS技術在1.08 V和100 ℃下運行瞬態(tài)仿真,提供最壞情況下的工藝角。圖7顯示了使用Verdi波形查看器捕獲的HSPICE仿真波形。HSPICE仿真結果顯示了設計的12位并行計數(shù)器最高能達到1.03 GHz的工作頻率,平均功耗為169.13 μW。
圖7 12位并行計數(shù)器仿真波形
本文提出了一種基于數(shù)字CMOS門邏輯器件的12位高速并行計數(shù)器。計數(shù)器邏輯僅由3位并行計數(shù)模塊,TSPC觸發(fā)器和3個輸入門組成。計數(shù)器結構的主要特性是流水線范式和SLA路徑邏輯,它們的互操作在系統(tǒng)時鐘邊緣并發(fā)地激活所有模塊,初始模塊負責為更高位模塊生成所有早期溢出狀態(tài),從而在完全相同的時間提供所有計數(shù)器狀態(tài)值,產生均勻的頻率延遲,而不會產生毛刺,計數(shù)器頻率將顯著提高。并且通過增加本設計計數(shù)路徑的M2,M3和SLA路徑中的M2的個數(shù),可以構造12+3N(其中N≤4)位的寬長度的并行計數(shù)器。實驗結果在80 nm CMOS工藝條件下,用HSPICE進行了1.08 V、100 ℃條件下的仿真。顯示該工藝下極限工作頻率為1.03 GHz,平均功耗為169.13 μW,達到了高頻率、低功耗、性能穩(wěn)定的要求。