一種MCU時鐘系統的設計 上海大學微電子研究與開發中心 朱良辰 胡越黎 冉 峰
發布時間:2007/8/20 0:00:00 訪問次數:961
時鐘系統是微控制器(MCU)的一個重要部分,它產生的時鐘信號要貫穿整個芯片。時鐘系統設計得好壞關系到芯片能否正常工作。在工作頻率較低的情況下,時鐘系統可以通過綜合產生,即用Verilog/VHDL語言描述電路,并用EDA工具進行綜合。然而,用工具綜合存在電路性能低、優化率不高的問題,不適合應用在各種高性能微處理器芯片上。而采用人工設計邏輯并手工輸入電路圖甚至物理版圖的方式,能使設計的電路靈活,性能更好。基于這些考慮,設計了一個MCU時鐘系統。
1基本時鐘輸入的選擇
(1)CPU核分微處理器(MPU)和微控制器(MCU),兩者的基本時鐘一般都以單頻方波的形式提供。時鐘有三種產生方式: (1)用晶體振蕩器產生精確而穩定的時鐘信號;
(2)用壓控振蕩器產生可調頻率范圍較寬的時鐘信號;
(3)結合以上兩種技術,用壓控振蕩器生成時鐘信號。
基本時鐘信號的產生可以有芯片外和芯片內兩種方法。但是時鐘信號必須是穩定的信號,對于穩定度要求特別高的場合(如MPU和MCU),采用芯片外提供是必不可少的。故本設計采用外接晶振的方法。
2 兩相時鐘方案
時鐘技術是決定和影響電路功耗的主要因素,時鐘偏差是引起電路競爭冒險的主要原因。為了消除競爭、提高頻率、降低功耗,在基本時鐘方案方面,MPU和MCU一般有三種選擇:單相時鐘、多相時鐘和沿觸發方案。在當前的設計中,沿觸發方案由于在數據傳遞方面有一定困難已很少被使用。單相時鐘方案因為在時序和傳輸上比較簡單可靠,在所有的方案中使用的晶體管也是最少,所以被一些高性能芯片使用,如DEC公司(現被HP公司并購)的Alpha21664微處理器。但是,對CMOS電路來說,采用單相時鐘就無法使用動態電路,而且因組合邏輯塊中邏輯元件的速度高低都受到限制而呈現困難。
圖1是一個單相有限狀態機,圓圈內為組合邏輯塊CL。
設TL+TH=TP,其中TP為時鐘周期,TH和TL分別為時鐘高電平和低電平時間。如果要使時鐘定時與數據無關,則最長的傳播延遲必須小于TP,信號(甚至可能是由于內部競爭冒險產生的尖峰所造成的假信號)到達CL輸出端可能取的最短時間必須大于TH。令TCL代表CL延遲范圍,則:
TH (1)式表明,信號通過CL的每一個延遲都必須介于TH和TP之間。正是這種雙邊約束特性使單相時鐘難以實現。對于多相時鐘,則可以消除這種雙邊約束,而使其轉化為單邊約束。圖2(a)所示為采用兩相非重疊時鐘φ1和φ2(φ1×φ2=0),對應時鐘波形示于圖2(b),T1和T3分別是φ1和φ2為高電平時的時間,T2是φ1到φ2之間電平為低的時間,T4則是φ2到φ1之間電平為低的時間。當φ2電平變高時信號開始通過CL傳輸,并且必須在φ1電平變低之前結束。于是得: , TCL < T1+ T3+ T4 或 TCL 其中,TP= T1+ T2+ T3+ T4 這樣就可把雙邊約束(1)式簡化為單邊約束(2)式了。無論是有效信號或是無效信號,都可以以任意快的速度通過CL而不會造成競爭。 當然,相數過多又會使設計復雜度提高,因此這里選擇了兩相不重疊時鐘。 3.1兩相不重疊時鐘產生的方法 兩相不重疊時鐘產生電路如圖3所示。clk為外部晶振產生的送入MCU的單相時鐘,I1是MCU內部產生的保護信號,正常工作時I1為低電平,發生故障時(如由于噪聲干擾導致PSEN和RD、WR同時有效的錯誤發生時) I1變成高電平而關閉時鐘;當系統復位時,會使得圖3中I1為低電平,恢復clk的輸入。由于正常情況下PD為低電平,所以clk等同于經過三個非門變成圖中的單相輸入信號,加到用"或非"門交叉而構成的R-S觸發器,單相時鐘從左邊加到一個"或非"門上,反相后加到另一個"或非"門上,這樣得到的CK1和CK2是不重疊的。單相時鐘與雙相時鐘的對應關系如圖3所示。 在時鐘受到一個邏輯信號(也就是門控時鐘)控制的情況下,可能會有一些動態節點不被刷新。為了避免這種錯誤,采用由一個NMOS控制管M2加兩個交叉耦合反
3時鐘系統邏輯電路設計
當信號V變成高電平時(因為正常工作時PD一直保持為0),M1管關斷,信號就一直保存在靜態鎖存器中。每當時鐘信號變高時,就把靜態鎖存器的輸出傳給W,使得W一直處于低電平而不影響"或非"門A1,故圖3中A1可以簡化為二輸入。
時鐘系統是微控制器(MCU)的一個重要部分,它產生的時鐘信號要貫穿整個芯片。時鐘系統設計得好壞關系到芯片能否正常工作。在工作頻率較低的情況下,時鐘系統可以通過綜合產生,即用Verilog/VHDL語言描述電路,并用EDA工具進行綜合。然而,用工具綜合存在電路性能低、優化率不高的問題,不適合應用在各種高性能微處理器芯片上。而采用人工設計邏輯并手工輸入電路圖甚至物理版圖的方式,能使設計的電路靈活,性能更好。基于這些考慮,設計了一個MCU時鐘系統。
1基本時鐘輸入的選擇
(1)CPU核分微處理器(MPU)和微控制器(MCU),兩者的基本時鐘一般都以單頻方波的形式提供。時鐘有三種產生方式: (1)用晶體振蕩器產生精確而穩定的時鐘信號;
(2)用壓控振蕩器產生可調頻率范圍較寬的時鐘信號;
(3)結合以上兩種技術,用壓控振蕩器生成時鐘信號。
基本時鐘信號的產生可以有芯片外和芯片內兩種方法。但是時鐘信號必須是穩定的信號,對于穩定度要求特別高的場合(如MPU和MCU),采用芯片外提供是必不可少的。故本設計采用外接晶振的方法。
2 兩相時鐘方案
時鐘技術是決定和影響電路功耗的主要因素,時鐘偏差是引起電路競爭冒險的主要原因。為了消除競爭、提高頻率、降低功耗,在基本時鐘方案方面,MPU和MCU一般有三種選擇:單相時鐘、多相時鐘和沿觸發方案。在當前的設計中,沿觸發方案由于在數據傳遞方面有一定困難已很少被使用。單相時鐘方案因為在時序和傳輸上比較簡單可靠,在所有的方案中使用的晶體管也是最少,所以被一些高性能芯片使用,如DEC公司(現被HP公司并購)的Alpha21664微處理器。但是,對CMOS電路來說,采用單相時鐘就無法使用動態電路,而且因組合邏輯塊中邏輯元件的速度高低都受到限制而呈現困難。
圖1是一個單相有限狀態機,圓圈內為組合邏輯塊CL。
設TL+TH=TP,其中TP為時鐘周期,TH和TL分別為時鐘高電平和低電平時間。如果要使時鐘定時與數據無關,則最長的傳播延遲必須小于TP,信號(甚至可能是由于內部競爭冒險產生的尖峰所造成的假信號)到達CL輸出端可能取的最短時間必須大于TH。令TCL代表CL延遲范圍,則:
TH (1)式表明,信號通過CL的每一個延遲都必須介于TH和TP之間。正是這種雙邊約束特性使單相時鐘難以實現。對于多相時鐘,則可以消除這種雙邊約束,而使其轉化為單邊約束。圖2(a)所示為采用兩相非重疊時鐘φ1和φ2(φ1×φ2=0),對應時鐘波形示于圖2(b),T1和T3分別是φ1和φ2為高電平時的時間,T2是φ1到φ2之間電平為低的時間,T4則是φ2到φ1之間電平為低的時間。當φ2電平變高時信號開始通過CL傳輸,并且必須在φ1電平變低之前結束。于是得: , TCL < T1+ T3+ T4 或 TCL 其中,TP= T1+ T2+ T3+ T4 這樣就可把雙邊約束(1)式簡化為單邊約束(2)式了。無論是有效信號或是無效信號,都可以以任意快的速度通過CL而不會造成競爭。 當然,相數過多又會使設計復雜度提高,因此這里選擇了兩相不重疊時鐘。 3.1兩相不重疊時鐘產生的方法 兩相不重疊時鐘產生電路如圖3所示。clk為外部晶振產生的送入MCU的單相時鐘,I1是MCU內部產生的保護信號,正常工作時I1為低電平,發生故障時(如由于噪聲干擾導致PSEN和RD、WR同時有效的錯誤發生時) I1變成高電平而關閉時鐘;當系統復位時,會使得圖3中I1為低電平,恢復clk的輸入。由于正常情況下PD為低電平,所以clk等同于經過三個非門變成圖中的單相輸入信號,加到用"或非"門交叉而構成的R-S觸發器,單相時鐘從左邊加到一個"或非"門上,反相后加到另一個"或非"門上,這樣得到的CK1和CK2是不重疊的。單相時鐘與雙相時鐘的對應關系如圖3所示。 在時鐘受到一個邏輯信號(也就是門控時鐘)控制的情況下,可能會有一些動態節點不被刷新。為了避免這種錯誤,采用由一個NMOS控制管M2加兩個交叉耦合反
3時鐘系統邏輯電路設計
當信號V變成高電平時(因為正常工作時PD一直保持為0),M1管關斷,信號就一直保存在靜態鎖存器中。每當時鐘信號變高時,就把靜態鎖存器的輸出傳給W,使得W一直處于低電平而不影響"或非"門A1,故圖3中A1可以簡化為二輸入。