|
摘要:介紹了一個(gè)基于mcu內(nèi)核的時(shí)鐘系統(tǒng)的設(shè)計(jì),給出了其電路結(jié)構(gòu)并詳細(xì)地分析了系統(tǒng)的工作原理。該系統(tǒng)能生成兩相不重疊時(shí)鐘,利用靜態(tài)鎖存器保存動(dòng)態(tài)信息,提供三種電源管理方式以適應(yīng)低功耗應(yīng)用。在上華(csmc)0.6μm工藝庫下,利用cadence eda工具對(duì)電路進(jìn)行了仿真,仿真結(jié)果驗(yàn)證了設(shè)計(jì)的準(zhǔn)確性。 關(guān)鍵詞:微控制器 時(shí)鐘系統(tǒng) 兩相不重疊時(shí)鐘 時(shí)鐘系統(tǒng)是微控制器(mcu)的一個(gè)重要部分,它產(chǎn)生的時(shí)鐘信號(hào)要貫穿整個(gè)芯片。時(shí)鐘系統(tǒng)設(shè)計(jì)得好壞關(guān)系到芯片能否正常工作。 在工作頻率較低的情況下,時(shí)鐘系統(tǒng)可以通過綜合產(chǎn)生,即用verilog/vhdl語言描述電路,并用eda工具進(jìn)行綜合。然而,用工具綜合存在電路性能低、優(yōu)化率不高的問題,不適合應(yīng)用在各種高性能微處理器芯片上。而采用人工設(shè)計(jì)邏輯并手工輸入電路圖甚至物理版圖的方式,能使設(shè)計(jì)的電路靈活,性能更好;谶@些考慮,設(shè)計(jì)了一個(gè)mcu時(shí)鐘系統(tǒng)。 1 基本時(shí)鐘輸入的選擇 cpu核分微處理器(mpu)和微控制器(mcu),兩者的基本時(shí)鐘一般都以單頻方波的形式提供。時(shí)鐘有三種產(chǎn)生方式: (1)用晶體振蕩器產(chǎn)生精確而穩(wěn)定的時(shí)鐘信號(hào); (2)用壓控振蕩器產(chǎn)生可調(diào)頻率范圍較寬的時(shí)鐘信號(hào); (3)結(jié)合以上兩種技術(shù),用壓控振蕩器生成時(shí)鐘信號(hào)。 基本時(shí)鐘信號(hào)的產(chǎn)生可以有芯片外和芯片內(nèi)兩種方法。但是時(shí)鐘信號(hào)必須是穩(wěn)定的信號(hào),對(duì)于穩(wěn)定度要求特別高的場合(如mpu和mcu),采用芯片外提供是必不可少的。故本設(shè)計(jì)采用外接晶振的方法。
 2 兩相時(shí)鐘方案 時(shí)鐘技術(shù)是決定和影響電路功耗的主要因素,時(shí)鐘偏差是引起電路競爭冒險(xiǎn)的主要原因。為了消除競爭、提高頻率、降低功耗,在基本時(shí)鐘方案方面,mpu和mcu一般有三種選擇:單相時(shí)鐘、多相時(shí)鐘和沿觸發(fā)方案。在當(dāng)前的設(shè)計(jì)中,沿觸發(fā)方案由于在數(shù)據(jù)傳遞方面有一定困難已很少被使用。單相時(shí)鐘方案因?yàn)樵跁r(shí)序和傳輸上比較簡單可靠,在所有的方案中使用的晶體管也是最少,所以被一些高性能芯片使用,如dec公司現(xiàn)被hp公司并購的alpha21664微處理器。但是,對(duì)cmos電路來說,采用單相時(shí)鐘就無法使用動(dòng)態(tài)電路,而且因組合邏輯塊中邏輯元件的速度高低都受到限制而呈現(xiàn)困難。 圖1是一個(gè)單相有限狀態(tài)機(jī),圓圈內(nèi)為組合邏輯塊cl。
 設(shè)tl+th=tp,其中tp為時(shí)鐘周期,th和tl分別為時(shí)鐘高電平和低電平時(shí)間。如果要使時(shí)鐘定時(shí)與數(shù)據(jù)無關(guān),則最長的傳播延遲必須小于tp,信號(hào)(甚至可能是由于內(nèi)部競爭冒險(xiǎn)產(chǎn)生的尖峰所造成的假信號(hào))到達(dá)cl輸出端可能取的最短時(shí)間必須大于th。令τcl代表cl延遲范圍,則: th < τcl < tp (1) (1)式表明,信號(hào)通過cl的每一個(gè)延遲都必須介于th和tp之間。正是這種雙邊約束特性使單相時(shí)鐘難以實(shí)現(xiàn)。對(duì)于多相時(shí)鐘,則可以消除這種雙邊約束,而使其轉(zhuǎn)化為單邊約束。圖2(a)所示為采用兩相非重疊時(shí)鐘φ1和φ2(φ1×φ2=0),對(duì)應(yīng)時(shí)鐘波形示于圖2(b),t1和t3分別是φ1和φ2為高電平時(shí)的時(shí)間,t2是φ1到φ2之間電平為低的時(shí)間,t4則是φ2到φ1之間電平為低的時(shí)間。當(dāng)φ2電平變高時(shí)信號(hào)開始通過cl傳輸,并且必須在φ1電平變低之前結(jié)束。于是得: τcl<t1+t3+t4 或 τcl<tp-t2 (2) 其中,tp=t1+t2+t3+t4
圖4 二分頻電路及時(shí)鐘驅(qū)動(dòng)器
這樣就可把雙邊約束(1)式簡化為單邊約束(2)式了。無論是有效信號(hào)或是無效信號(hào),都可以以任意快的速度通過cl而不會(huì)造成競爭。 當(dāng)然,相數(shù)過多又會(huì)使設(shè)計(jì)復(fù)雜度提高,因此這里選擇了兩相不重疊時(shí)鐘。 3 時(shí)鐘系統(tǒng)邏輯電路設(shè)計(jì) 3.1 兩相不重疊時(shí)鐘產(chǎn)生的方法 兩相不重疊時(shí)鐘產(chǎn)生電路如圖3所示。clk為外部晶振產(chǎn)生的送入mcu的單相時(shí)鐘,i1是mcu內(nèi)部產(chǎn)生的保護(hù)信號(hào),正常工作時(shí)i1為低電平,發(fā)生故障時(shí)如由于噪聲干擾導(dǎo)致psen和rd、wr同時(shí)有效的錯(cuò)誤發(fā)生時(shí)i1變成高電平而關(guān)閉時(shí)鐘;當(dāng)系統(tǒng)復(fù)位時(shí),會(huì)使得圖3中i1為低電平,恢復(fù)clk的輸入。由于正常情況下pd為低電平,所以clk等同于經(jīng)過三個(gè)非門變成圖中的單相輸入信號(hào),加到用“或非”門交叉而構(gòu)成的r-s觸發(fā)器,單相時(shí)鐘從左邊加到一個(gè)“或非”門上,反相后加到另一個(gè)“或非”門上,這樣得到的ck1和ck2是不重疊的。單相時(shí)鐘與雙相時(shí)鐘的對(duì)應(yīng)關(guān)系如圖3所示。 當(dāng)信號(hào)v變成高電平時(shí)(因?yàn)檎9ぷ鲿r(shí)pd一直保持為0),m1管關(guān)斷,信號(hào)就一直保存在靜態(tài)鎖存器中。每當(dāng)時(shí)鐘信號(hào)變高時(shí),就把靜態(tài)鎖存器的輸出傳給w,使得w一直處于低電平而不影響“或非”門a1,故圖3中a1可以簡化為二輸入。 在時(shí)鐘受到一個(gè)邏輯信號(hào)(也就是門控時(shí)鐘)控制的情況下,可能會(huì)有一些動(dòng)態(tài)節(jié)點(diǎn)不被刷新。為了避免這種錯(cuò)誤,采用由一個(gè)nmos控制管m2加兩個(gè)交叉耦合反相器組成靜態(tài)鎖存器。其中反饋管采用的倒比w/l很。ǎ迹保梢宰鳛殡娖交謴(fù)器件,這樣有利于保存信息。 3.2 二分頻電路 通常把一周期指令的執(zhí)行時(shí)間稱為一個(gè)機(jī)器周期,并進(jìn)一步劃分為2~6個(gè)狀態(tài)(高速mcu到標(biāo)準(zhǔn)mcu),每一狀態(tài)有兩相時(shí)鐘,即為兩個(gè)節(jié)拍,每個(gè)節(jié)拍持續(xù)一個(gè)振蕩周期。如何向芯片內(nèi)部提供一個(gè)兩節(jié)拍的時(shí)鐘信號(hào)呢?這就需要二分頻電路對(duì)外部振蕩信號(hào)進(jìn)行分頻,使得在每個(gè)時(shí)鐘的前半周期,節(jié)拍1信號(hào)有效;后半周期,節(jié)拍2信號(hào)有效。 二分頻電路是由兩個(gè)靜態(tài)鎖存器組成的觸發(fā)器,如圖4所示。其中ck1和ck2是兩相不重疊時(shí)鐘,當(dāng)ck1=0,ck2=1時(shí),靜態(tài)鎖存器b的輸出經(jīng)過一個(gè)反相器提供ck3和ck4,使得ck3=0,ck4=1;經(jīng)過半個(gè)周期后,ck1=1,ck2=0,m4斷開,低電平信號(hào)存儲(chǔ)在靜態(tài)鎖存器a中,使ck3的值不變,這樣ck3延續(xù)了一個(gè)周期的低電平(高電平),就形成了兩分頻,如此形成的時(shí)鐘信號(hào)周期增加一倍。ck4由ck3經(jīng)過一個(gè)反相器形成,兩者相位相反。 3.3 時(shí)鐘驅(qū)動(dòng)器及分配 影響時(shí)鐘偏差主要有以下幾個(gè)因素: ·連接時(shí)鐘數(shù)的連線; ·時(shí)鐘數(shù)的拓?fù)浣Y(jié)構(gòu); ·時(shí)鐘的驅(qū)動(dòng); ·時(shí)鐘線的負(fù)載; ·時(shí)鐘的上升及下降時(shí)間。 在mcu內(nèi)部,時(shí)鐘信號(hào)要驅(qū)動(dòng)大的負(fù)載,是負(fù)載最重的信號(hào),有可能導(dǎo)致電路延時(shí)和時(shí)鐘偏差。消除的方法之一是增強(qiáng)驅(qū)動(dòng)能力。設(shè)計(jì)的驅(qū)動(dòng)器如圖4(二分頻電路除外)所示。最初的時(shí)鐘信號(hào)由二分頻電路輸出的ck3和ck4提供。值得注意的是,為了提高翻轉(zhuǎn)速度增加了旁路管,即pmos晶體管m5、m7和nmos晶體管m6、m8,而且它們的w/l比要取得足夠大如設(shè)計(jì)的為350/1,這樣就不需要外部附加自舉電容。當(dāng)然為了防止導(dǎo)通電流過激(di/dt),可以加入電阻起穩(wěn)定作用。該時(shí)鐘驅(qū)動(dòng)器的一個(gè)重要特點(diǎn),就是所產(chǎn)生的兩相不重疊時(shí)鐘的相位與時(shí)鐘負(fù)載無關(guān),輸出clk3和clk4能高到vdd電平和低到地電平。
圖6 idl控制通生cpu內(nèi)部的時(shí)鐘信號(hào)
在mcu內(nèi)部合理分配時(shí)鐘網(wǎng)絡(luò)。通常有兩種方法:線形緩沖和樹形緩沖?紤]到mcu內(nèi)部時(shí)鐘負(fù)載比較大,采用圖5所示的樹形緩沖將時(shí)鐘電路分成若干分支。時(shí)鐘分配的各個(gè)分支在各級(jí)之間具有相同的相對(duì)扇出,同時(shí)每個(gè)分支所帶負(fù)載數(shù)目基本相同,因?yàn)椴黄胶獾姆种菚r(shí)鐘歪斜的主要原因。 3.4 低功耗設(shè)計(jì) 低功耗設(shè)計(jì)要求時(shí)鐘網(wǎng)絡(luò)盡量簡單,晶體管尺寸盡量小,并且應(yīng)盡量減少不必要的電路節(jié)點(diǎn)翻轉(zhuǎn),所以設(shè)計(jì)的mcu一方面要大量采用只有三個(gè)元件組成的靜態(tài)鎖存器,參見圖3;另一方面要有三種工作功率管理模式,即正常、空閑、掉電三種方式,以滿足低功耗方式的應(yīng)用。因此,內(nèi)部所使用的時(shí)鐘分三類,第一類送入部分控制器和數(shù)據(jù)通道(cpu核),在低功耗方式(空閑)下時(shí)鐘關(guān)閉,如圖6中的clk5和clk6;第二類用于控制定時(shí)器,如clk1和clk2;第三類則用于控制中斷電路和串行口的時(shí)鐘,如clk3和clk4。后兩類不受低功耗方式的限制。 (1)在掉電方式(pd=1)下,時(shí)鐘信號(hào)發(fā)生器及內(nèi)部所有的功能部件都停止工作。如圖3所示,pd=1時(shí),封鎖一個(gè)“與非”門和一個(gè)“或非”門,使v一直為低電平,輸給r-s觸發(fā)器的單相時(shí)鐘的狀態(tài)被固定,或?yàn)榈碗娖交驗(yàn)楦唠娖剑@樣整個(gè)芯片的時(shí)鐘信號(hào)被凍結(jié)。 (2)在空閑方式(idl=1)下,時(shí)鐘信號(hào)繼續(xù)提供給中斷邏輯、串行口、定時(shí)器,但cpu 的時(shí)鐘被切斷了。如圖6所示,idl=1時(shí),“或非”門輸出為低電平,“與非”門輸出為高電平,通過時(shí)鐘驅(qū)動(dòng)器使得clk5=1、clk6=0,這樣通往cpu的信號(hào)就被凍結(jié)了。
圖7 用csmc 0.6um工藝庫對(duì)時(shí)鐘電路的邏輯仿真
4 設(shè)計(jì)驗(yàn)證與總結(jié) 綜合圖3、圖4、圖6就構(gòu)成了整個(gè)時(shí)鐘系統(tǒng)。為了對(duì)電路進(jìn)行邏輯仿真,首先在cadence 的 composer-schematic中調(diào)用csmc 0.6μm標(biāo)準(zhǔn)單元工藝庫,設(shè)置好管子參數(shù),畫出電路圖。然后進(jìn)入analog artist simulation環(huán)境進(jìn)行參數(shù)較理想化的電路仿真。其中clk的脈寬為0.5μs,周期為1μs,將各種信號(hào)(如pd、idl)的上升時(shí)間和下降時(shí)間設(shè)置為0.002μs整個(gè)仿真時(shí)間。保μs,參考電壓為5v,得到的仿真結(jié)果如圖7所示?梢钥吹剑椋保剑睍r(shí),通往內(nèi)部的各時(shí)鐘信號(hào)被封鎖;pd=1時(shí),所有時(shí)鐘(clk1~clk6)被凍結(jié);而idl=1時(shí)只有通往cpu的clk5和clk6被凍結(jié),因此各信號(hào)滿足設(shè)計(jì)要求。 |