專利名稱:根據初始狀態門控時鐘脈沖觸發的狀態機、計數器及方法
技術領域:
本發明提供一種計數器、狀態機與相關方法,尤指一種具有狀態單元、并能根據一初始狀態而選擇性地停止將時鐘脈沖提供至狀態不會變化的狀態單元以節省功率消耗的計數器、狀態機與相關方法。
當一微處理機系統要使用順序控制時,會以一狀態機(state machine)來依據一時鐘脈沖的觸發,產生出依預設順序遞變的狀態,并以這些狀態來觸發微處理機系統中其他的構成功能塊來依序進行不同的功能。請參考
圖1。圖1為一公知狀態機10的功能方塊圖。狀態機10中設有多個狀態單元12(圖1中示出三個做為代表),各狀態單元12中設有一順序邏輯(sequential logic)電路14及一組合邏輯(combinational logic)電路16。一般來說,每個狀態單元能產生一位(bit)的狀態位18作為該狀態單元對應的狀態輸出,集合狀態機10中各狀態單元產生的狀態位18,就能組合為一數字數據形式的多位狀態20。為了協調各狀態單元的統一工作,狀態機10中會以一時鐘脈沖CLK0做為一觸發的時鐘脈沖來觸發各狀態單元工作。時鐘脈沖CLK0中具有多個周期的脈沖(pulse),每一周期的脈沖會觸發狀態機10更新其狀態20。
在各個狀態單元12中,順序邏輯電路14通常為一觸發器(flip-flop),其設有一用來接收輸入數據的輸入端口D0、一用來輸出狀態位的輸出端口Q0、一設定端口S0及一時鐘脈沖端T0。順序邏輯電路14能由時鐘脈沖端T0接收時鐘脈沖CLK0的觸發,在時鐘脈沖CLK0的每個周期中由其輸入端口D0接收輸入數據,并由其輸出端口Q0輸出更新后的狀態位18。順序邏輯電路14的工作特性,是當其在時鐘脈沖CLK0的某一周期中輸出一更新后的狀態位18時,該狀態位18不僅與輸入端口D0接收的輸入數據有關,也和輸出端口Q0在前一周期輸出的狀態位18(也就是更新前的狀態位18)有關。換句話說,順序邏輯電路14能“記憶”之前輸出的狀態位。此外,順序邏輯電路14中的設定端口S0則用來接收一初始狀態22,使順序邏輯電路14能根據該初始狀態,將輸出端口Q0輸出的狀態位設定為一特定的初始值;當順序邏輯電路14接收時鐘脈沖CLK0后續各周期脈沖的觸發后,其輸出端口Q0輸出的狀態位18就會由該特定的初始值開始依序變化更新。各個狀態單元12中的組合邏輯電路16則通常由各種邏輯門所組成,以依據狀態20來產生對應順序邏輯電路14的輸入數據。
狀態機10的工作原理可描述如下。當狀態機10要開始工作時,會將初始狀態22傳輸至各個狀態單元12,使得各狀態單元12輸出的狀態20為特定的初始值;隨著時鐘脈沖CLK0中各周期脈沖的觸發,各狀態單元12會更新各自的狀態位18,狀態20也就隨之更新。在時鐘脈沖CLK0的某一周期中,該周期對應的狀態20會經由各狀態單元12中的組合邏輯電路16產生對各個順序邏輯電路14的輸入數據;到了下一個周期時,各狀態單元12就能依據組合邏輯電路16的輸入數據(也就是依據前一周期的狀態20),再加上各順序邏輯電路14本身的“記憶”功能,來更新狀態20。電路設計者只要設計各狀態單元12中的組合邏輯電路,就能使狀態機10在時鐘脈沖CLK0的觸發下,依照特定的順序更新狀態20的內容。
在微處理機系統中,計數器(counter)可說是狀態機的一種特例。請參考圖2。圖2為一公知的倒計數(counting down)二進制(binary)計數器30的功能方塊示意圖。在圖2的示意例中,計數器30設有多個狀態單元(圖2中示出四個做為代表)31及一輔助電路35,而此四個狀態單元即分別用來產生位B1至B4,并形成計數器30的狀態36(也就是計數器30的計數值);換句話說,位B1至B4就分別是計數器30中各狀態單元31的狀態位。而輔助電路35則能在接收一初始值啟動訊號EN1后,根據初始狀態34設定各狀態單元對應狀態位的初始值,并在接收一計數啟動訊號EN2后,將一作為觸發時鐘脈沖的時鐘脈沖CLK統一傳輸至各個狀態單元31。在各狀態單元31中,觸發器32作為各狀態單元的順序邏輯電路,與門(AND gate)37則組合出各個狀態單元31中的相異組合邏輯電路。其中觸發器32可以是T觸發器,輸入端T為其輸入端口,分別用來輸出兩互為反相的位的輸出端Q、Q′則為其輸出端口;設定端S為其設定端口,用來接收輔助電路35的初始狀態設定,以設定各順序邏輯電路的對應狀態位的初始值;而時鐘脈沖端CK則用來接收時鐘脈沖CLK的觸發。
當一微處理機系統要使用公知的計數器30來計數時,會在計數開始之前先以初始值載入啟動訊號EN1來觸發輔助電路35,以根據初始狀態34設定各狀態單元31對應狀態位的初始值;要開始計數時,就會以計數啟動訊號EN2觸發輔助電路35將時鐘脈沖CLK統一傳輸至各狀態單元31,計數器30就會根據時鐘脈沖CLK的觸發開始計數了。
請參考圖3(并同時參考圖3)。在計數器30中,經由各狀態單元中組合邏輯電路的設計,計數器30的狀態36隨時鐘脈沖CLK的觸發而依序改變的情形,即示于圖3。圖3的縱軸即為時間;波形38則是時鐘脈沖CLK隨時間變化的波形(波形38的橫軸即為波形的大小)。如圖3所示,時鐘脈沖CLK中具有多個周期的脈沖,每一周期的時間長短為時段T;隨著時鐘脈沖CLK中的周期T1、T2、T3等等的觸發,由位B1至B4組合出的狀態36,也會由“1111”、“1110”、“1101”等等依序變化,就如圖3中所示。換句話說,若把狀態36當作是計數器30的計數值,圖3中的狀態36就會由“1111”開始倒計數,直到“0000”。
計數器在微處理機及計算機系統中有很廣泛的用途。舉例來說,參照圖2、圖3的計數器30,若微處理機中的某一第一構成功能塊要每隔一段特定的時間(譬如說是16個時鐘脈沖周期的時間)就發出一特殊的指令給另一個第二構成功能塊,第一構成功能塊就可以設定計數器30由某個初始的計數值開始倒計數(像是由圖3中的“1111”開始),等數到某一計數值之后(譬如說是圖3中的“0000”),第一構成功能塊就知道時間已經經過了多少個時鐘脈沖周期,并可依照計數值的指示來發出該特殊的指令。另外,舉例來說,若微處理機中某一第一構成功能塊要傳輸特定數量成批數據(譬如說是16批)至另一第二構成功能塊,第一構成功能塊就可以隨著每一批數據的傳輸觸發計數器30一次,等到計數器30的計數值由“1111”倒計數至“0000”,第一構成功能塊就知道已經傳輸了16批數據了。
為了要使微處理機系統更具有功能上的彈性,在各構成功能塊利用計數器時,只要對計數器設定不同的初始計數值,就能彈性的運用計數器來定量計數。延伸前述的例子,若第一構成功能塊原本要每隔16個時鐘脈沖周期的時間就發出一特殊的指令,但因工作上的需求,要改為每隔8個時鐘脈沖周期就發出一特殊指令,此時第一構成功能塊就可將計數器30的初始狀態設為“0111”,并由“0111”開始倒計數,同樣地,當數到“0000”后,第一構成功能塊就知道已經經過8個周期的時間了,就如圖4中所示。請參考圖4;圖4即為計數器30的狀態36由計數值“0111”一直倒計數至“0000”時狀態遞變的示意圖,圖4的縱軸為時間。同理,若第一構成功能塊要傳輸在傳輸16批數據后,又要傳輸4批數據,那么第一構成功能塊可將計數器的初始狀態設為“0011”,并隨著每批數據的傳輸由“0011”、“0010”、“0001”同樣地也是倒計數至“0000”,此時第一構成功能塊就能由計數值回到“0000”而知道已經傳輸了4批數據。而一般的狀態機也能達成類似的功能。
不過,在以上述的方式來彈性地運用計數器時,某些狀態單元會一直維持相同的狀態而不改變。舉例來說,在圖4的例子中,當計數器30被用來數出8時(就是8個周期脈沖),用來產生位B4的狀態單元就一直不會改變其狀態輸出,使得位B4一直為“0”。同理,若只要用計數器30來數出4,就只有位B2、B1對應的狀態單元會工作而更新位B2、B1的值,位B4、B3對應的狀態單元并不會隨時鐘脈沖的觸發而改變位B4、B3的值。更進一步地,若要增加計數器的使用彈性,可增加計數器中計數單元的個數,使得計數器的狀態(也就是計數值)能具有更多的狀態位。舉例來說,一個具有8位的計數器,在由“11111111”倒計數至“00000000”的過程中會經過256個時鐘脈沖周期,而該計數器使用的彈性也會更大,可經由對初始狀態的控制數出1到256中任何一個數目。不過,同樣地,在以8位計數器來數出少于256的數目時,該計數器中也會有狀態不改變的狀態單元;要數出的數目越小,狀態不改變的狀態單元也會越多。若是以8位計數器用來數出8時,就會有5個狀態單元不會改變狀態;用來數出4時,則會有6個狀態單元不會改變狀態。同理,在彈性運用狀態機時,也會發生類似的情況;也就是說,有某些狀態單元的狀態輸出會維持不變。
不過,如圖1或圖2中所示,因為狀態機或計數器中的各個狀態單元都要同步協調工作,所以公知技術中各狀態單元都會統一由一時鐘脈沖觸發;即使有某一狀態單元不會改變狀態,該時鐘脈沖還是要驅動該狀態單元。一般來說,在現行技術下,狀態單元都是以互補金屬氧化物半導體晶體管(CMOS)來實際實現,像是狀態單元中會接收時鐘脈沖觸發的順序邏輯電路,也就是由互補金屬氧化物半導體晶體管實現的。請參考圖5。圖5為一典型互補金屬氧化物半導體晶體管所實現的邏輯門40。邏輯門40以偏置源Vd及地端G作為直流偏置,其中n型金屬氧化物半導體晶體管M1、M2的柵極分別電連接到節點N1、N2,p型金屬氧化物半導體晶體管M3、M4的柵極亦分別電連接到節點N1、N2,以分別接收位A及位B的輸入;輸出的位C則由節點N3取出,以實現一與非門(NAND)的功能。當輸入的位A為一在數字“0”、“1”交替的時鐘脈沖,而位B為固定的數字“0”時,輸出的位C不會隨位A的改變而改變,并會一直維持于數字“1”。在這種情況下,雖然邏輯門40輸出的位C不會改變,但驅動位A在數字“1”、“0”(也就是高低電平間)間互換時,還是要消耗功率。由于金屬氧化物半導體晶體管的柵極等效上可視為一個電容,當要將位A要由數字“0”提升為數字“1”時,就要消耗能量來對晶體管M1、M3的柵極充電;當要將位A由數字“1”拉低至數字“0”時,同樣地也要消耗能量來對晶體管M1、M3的柵極放電。換句話說,即使一狀態單元的狀態輸出不隨時鐘脈沖的觸發而改變,但是由邏輯門組成的狀態單元還是會消耗時鐘脈沖的驅動能量。
換句話說,在彈性利用上述討論的公知計數器或狀態機時,僅會利用到一部分的狀態單元,其他多余的狀態單元則不會改變其狀態輸出,但當時鐘脈沖驅動計數器或狀態機中的各個狀態單元時,狀態不變的狀態單元還是會消耗時鐘脈沖驅動的能量,舉例來說,當圖2中的計數器30用來以圖4中的方式數出8時,位B4不會改變,但位B4對應的狀態單元還是會持續地消耗時鐘脈沖的驅動能量。這樣一來,不僅平白增加微處理機系統的功率消耗,對于微處理系統芯片的電路集成度的提升,也會有不良的影響。
本發明提供一種計數器,其包含有多個狀態單元,各狀態單元用來產生一狀態輸出;而每一狀態單元具有一對應的時鐘脈沖端,用來接收一具有多個脈沖的時鐘脈沖;其中當每一狀態單元由對應的時鐘脈沖端接收一時鐘脈沖時,該狀態單元可根據一預設的原則以在接收該時鐘脈沖的不同脈沖時更新其對應的狀態輸出;以及一時鐘脈沖門控電路,電連接到該多個狀態單元,用來僅根據一固定的初始值于該多個狀態單元中選擇出至少一第一狀態單元及至少一第二狀態單元,以將一觸發時鐘脈沖提供至各第一狀態單元的時鐘脈沖端,并停止提供該觸發時鐘脈沖至各第二狀態單元的時鐘脈沖端,使得當各第一狀態單元依據該觸發時鐘脈沖的不同脈沖而更新各第一狀態單元的對應狀態輸出時,各第二狀態單元對應的狀態輸出會維持不變;且該時鐘脈沖門控電路不會依據各第一狀態單元的狀態輸出變化而將該觸發時鐘脈沖提供至各第二狀態單元,亦不會停止提供該觸發時鐘脈沖至各第一狀態單元。
在公知的狀態機或計數器中,各個用來產生遞變狀態的狀態單元會統一以一時鐘脈沖觸發;即使在狀態遞變的過程中某些狀態單元會一直維持同樣的狀態輸出,時鐘脈沖還是要耗費功率來驅動這些狀態單元。因此公知技術的狀態機或計數器無法避免這些狀態單元消耗功率帶來的負面影響,包括消費能量、增加系統驅動時鐘脈沖的負擔等等。
而在本發明的狀態機或計數器中,則另設有一時鐘脈沖門控電路,能依據初始狀態來判斷在后續狀態遞變的過程中有哪些狀態單元的狀態輸出會維持不變,并停止將時鐘脈沖傳輸至這些狀態單元,使得時鐘脈沖不需驅動這些狀態輸出不會改變的狀態單元,以減少系統驅動時鐘脈沖的負擔及能量消耗。
圖2為一公知計數器的功能方塊圖。
圖3、4為圖2中計數器狀態遞變的時序圖。
圖5為一典型互補金屬氧化物半導體晶體管的電路示意圖。
圖6為本發明中狀態機功能方塊的示意圖。
圖7、圖8為本發明中計數器功能方塊的示意圖。附圖符號說明10、50狀態機12、31、52、71、U(1)-U(N)狀態單元14、54順序邏輯電路16、56組合邏輯電路18、58狀態位20、36、60狀態22、34、62、74初始狀態24位30、70、90計數器32觸發器35、75輔助電路37、A1-A4、A(1)-A(N)與門38波形40邏輯門66、80時鐘脈沖門控電路76鎖存電路EN1、EN3、EN5初始值載入啟動訊號EN2、EN4、EN6計數啟動訊號G地端Vd偏壓源T時段
M1-M4晶體管B1-B4、A-C、D1-D4、D1i-D4i、D(1)-D(N)、Di(1)-Di(N)位O1-O3、O(1)-O(N)或門D0、D1輸入端口Q0、Q1輸出端口T0、T1、CK、TK時鐘脈沖端S0、S1設定端口Q、Q′輸出端T輸入端CLK0-CLK2、CLK時鐘脈沖S、St設定端N1-N3、Na-Nd節點本發明與公知狀態機最主要的不同處,在于本發明中增設有一時鐘脈沖門控電路66,用來依據初始狀態62判斷在狀態60由初始狀態62開始遞變的過程中,有哪些狀態單元52的狀態輸出會維持不變。找出狀態輸出維持不變的狀態單元后,時鐘脈沖門控電路66就會停止提供時鐘脈沖到這些狀態單元52,以減少時鐘脈沖的功率消耗。當然,對于狀態輸出會遞變的狀態單元,時鐘脈沖門控電路66還是會統一以一時鐘脈沖CLK1來當作觸發時鐘脈沖,以觸發各狀態單元的狀態輸出隨時間遞變。
請參考圖7。為具體說明本發明的實施情形,現以本發明的構思實施于一4位倒計數二進制計數器時的相關配置來進一步描述本發明的實施方法;圖7即為本發明中計數器70的電路方塊圖。類似于圖2中計數器30的配置,計數器70中具有四個狀態單元71,每一狀態單元分別用來產生一對應的位D1至D4作為其狀態輸出;集合位D1至D4,就形成計數器70的狀態76(也就是計數器70的計數值,其中位D4為最重要位,MSB,即MostSignificant Bit)。各狀態單元71中的基本結構(如順序邏輯電路、組合邏輯電路)可以由圖2中各狀態單元31類推而得,在不妨礙本發明技術公知的情形下,于此不再重復。為了突出本發明的重點,圖7中各狀態單元71僅示出一對應的設定端St及一時鐘脈沖端TK,各狀態單元71可依據設定端St輸入的數據設定對應狀態輸出的初始值,并由時鐘脈沖端TK輸入的時鐘脈沖觸發而使對應狀態輸出隨時間遞變。此外,計數器70中也設有一輔助電路75,用來接收一初始值載入啟動訊號EN3的觸發而根據一初始狀態74來設定各狀態單元狀態輸出的初始值。對應于由位D1至D4所組合出來的狀態76,初始狀態74也是由四個位D1i至D4i所形成。而位D1i至D4i就分別為位D1至D4的初始值。
本發明的計數器70與圖2中公知計數器30最重要的相異處,在于本發明的計數器70另設有一時鐘脈沖門控電路80。時鐘脈沖門控電路80可將一時鐘脈沖CLK2選擇性地供應至特定的狀態單元71。在本實施例中,時鐘脈沖門控電路80設有與門(AND gate)A1至A5、或門(OR gate)O1至O3以及一鎖存(latch)電路76。其中與門A1至A4分別電連接到用來產生位D1至D4的四個狀態單元的時鐘脈沖端TK;換句話說,與門A1至A4及運算(ANDoperation)的結果就分別是各狀態單元71的觸發時鐘脈沖。與門A5則用來依據一計數啟動訊號EN4的觸發而將時鐘脈沖CLK2導入至時鐘脈沖門控電路80。當輔助電路74受初始值載入啟動訊號EN3的觸發而設定各狀態單元71的初始值時,也同樣會觸發鎖存電路76將初始狀態74的各個位D1i至D4i儲存鎖存至鎖存電路76中;而時鐘脈沖門控電路80中的各個或門與與門就能依據鎖存電路76中的位D1i至D4i來選擇性地將時鐘脈沖CLK2提供至某些狀態單元71。舉例來說,當計數器70用來數出8時,初始狀態74會是“0111”(即圖4中所示的情形);換句話說,位D4i至D1i分別是數字的“0”、“1”、“1”、“1”。此時或門O1至O3的輸出分別是“1”、“1”、“1”。等到計數啟動訊號EN4由數字“0”轉變為“1”而觸發計數器70開始計數時,時鐘脈沖CLK2就會由與門A5傳輸至與門A1,并分別由與門A1、A2、A3將時鐘脈沖CLK2供應至位D1、D2及D3對應的狀態單元。至于對應于位D4、狀態在倒計數過程中一直不會改變的狀態單元,由于與門A4一輸入端為位D4i的數字“0”,所以與門A4就會將時鐘脈沖CLK2門控,不會將其傳輸至位D4對應的狀態單元,使得該狀態單元不會受到時鐘脈沖觸發,并使位D4能一直維持初始值(也就是位D4i的值)。這樣一來,時鐘脈沖CLK2就不會因為要驅動位D4對應狀態單元而多消耗功率,計數器70也還是能正常地依據圖4中的狀態遞變而由初始狀態“0111”倒計數至“0000”。
同理,若計數器70要由“0011”倒計數至“0000”而數出4,則時鐘脈沖門控電路80中的或門O3至O1的或運算結果分別是數字“0”、“1”、“1”,使得時鐘脈沖CLK2僅會由與門A2與A1傳輸至位D2、D1對應的狀態單元;而與門A3的輸出則為數字“0”,與門A4的兩輸入端都是數字“0”,故時鐘脈沖CLK2就不需觸發位D3、D4分別對應的兩個狀態單元。計數器70也能由初始狀態“0011”隨時鐘脈沖的觸發而遞變為“0010”、“0001”最后數至“0000”。
請參考圖8。圖8為本發明的構思運用于一N位倒計數二進制計數器90時,其時鐘脈沖門控電路94主要相關配置的示意圖。計數器90中具有多個狀態單元U(N)、U(N-1)、等等至U(n)、U(1);分別用來產生位D(N)、D(N-1)等等至D(n)、D(1)等的狀態輸出,并由這些位形成計數器90的狀態92。為突出時鐘脈沖門控電路94的基本設計構思,在此一般化的情形中,各狀態單元僅示出對應的時鐘脈沖端TK,用來接收時鐘脈沖的觸發;用來設定各狀態位初始值的輔助電路則予以省略。而時鐘脈沖門控電路94中設有與門A(N)、A(N-1)至A(n)、A(1)、A(0),以及或門O(N-1)、O(n)等等至O(1);鎖存電路96則用來配合初始值載入啟動訊號EN5的觸發而儲存各狀態單元對應位的初始值,也就是位Di(N)、Di(N-1)等等至Di(n)、Di(1)。與門A(0)配合計數啟動訊號EN6將一時鐘脈沖CLK3引入時鐘脈沖門控電路94,與門A(N)至A(1)則分別對應于狀態單元U(N)至U(1)。如圖8中狀態單元U(n)一般性配置所顯示的,狀態單元U(n)的時鐘脈沖端TK由與門A(n)的輸出來觸發,與門A(n)的輸出端也于節點Na電連接到與門A(n+1)的一個輸入端;而與門A(n)的一輸入端連接于或門O(n)的輸出端,另一輸入端則于節點Nb連接于與門A(n-1)的輸出端。或門O(n)的輸出端另外于節點Nd電連接到或門O(n-1)的一個輸入端,或門O(n)的兩個輸入端則分別用來接收位Di(n)(也就是位D(n)的初始值),以及于節點Nc電連接到或門O(n+1)的輸出端。當此N位計數器90用來數出2L(2的L次方)時,Di(1)至Di(L)為數字“1”,Di(L+1)至Di(N)為數字“0”(即以數字D(n)為狀態92最重要位)。因此,或門O(1)至O(L)或運算的輸出皆為數字“1”,而其余或門O(L+1)至O(N-1)皆輸出數字“0”。而與門A(1)至A(L)的一個輸入端為數字“1”,就可將時鐘脈沖CLK3傳輸至狀態單元U(1)至U(L),以觸發這些狀態單元更新位D(1)至D(L)。而與門A(L+1)一輸入端會接收與門A(L)輸出的時鐘脈沖,但另一輸入端為數字“0”而停止將時鐘脈沖傳輸至狀態單元U(L+1)。而與門A(L+2)至A(N)兩輸入端都為數字“0”,當然也不會觸發狀態單元U(L+2)至U(N)。這樣一來,計數器90就不必觸發狀態不會改變的狀態單元U(L+1)至U(N),而狀態單元U(1)至U(1)也就能遞變倒計數至各位皆為數字“0”的狀態92以數出2L。當然,圖7、圖8所顯示的僅為本發明中時鐘脈沖門控電路一實施例,其他可達同樣功能的電路也可應用于本發明的時鐘脈沖門控電路,最重要的是能夠達到以初始狀態來判斷各狀態單元的狀態輸出是否會改變,并正確的將時鐘脈沖供應給狀態輸出會改變的狀態單元,并停止供應時鐘脈沖至狀態輸出不會改變的狀態單元。
總結來說,在公知計數器或狀態機在使用時,即使有某些狀態單元的狀態輸出不會改變,這些狀態單元也都還會被時鐘脈沖觸發;使得時鐘脈沖還要消耗額外的功率來驅動這些狀態單元,會造成系統資源的額外消耗。與之比較,本發明則以一時鐘脈沖門控電路來根據初始狀態找出狀態輸出不會改變的狀態單元,并停止將時鐘脈沖提供給這些狀態單元,僅需將時鐘脈沖提供至狀態會改變的狀態單元;這樣一來,就可減少時鐘脈沖驅動的功率需求,避免系統功率及資源的無謂消耗,提升微處理機系統資源運用的效率。
以上所述僅為本發明的較佳實施例,凡依本發明權利要求書所進行的等效變化與修改,皆應屬本發明的涵蓋范圍。
權利要求
1.一種計數器,其包含有多個狀態單元,各狀態單元用來產生一狀態輸出;而每一狀態單元具有一對應的時鐘脈沖端,用來接收一具有多個脈沖的時鐘脈沖;其中當每一狀態單元由對應的時鐘脈沖端接收一時鐘脈沖時,該狀態單元可根據一預設的原則以在接收該時鐘脈沖的不同脈沖時更新其對應的狀態輸出;以及一時鐘脈沖門控電路,電連接到該多個狀態單元,用來僅根據一固定的初始值于該多個狀態單元中選擇出至少一第一狀態單元及至少一第二狀態單元,以將一觸發時鐘脈沖提供至各第一狀態單元的時鐘脈沖端,并停止提供該觸發時鐘脈沖至各第二狀態單元的時鐘脈沖端,使得當各第一狀態單元依據該觸發時鐘脈沖的不同脈沖而更新各第一狀態單元的對應狀態輸出時,各第二狀態單元對應的狀態輸出會維持不變;且該時鐘脈沖門控電路不會依據各第一狀態單元的狀態輸出變化而將該觸發時鐘脈沖提供至各第二狀態單元,亦不會停止提供該觸發時鐘脈沖至各第一狀態單元。
2.如權利要求1所述的計數器,其中當該初始值改變時,該時鐘脈沖門控電路會于該多個狀態單元中對應地選擇出不同的第一狀態單元及第二狀態單元。
3.如權利要求1所述的計數器,其中每一狀態單元另有一設定端,用來接收一初始狀態,使得當該狀態單元由對應的時鐘脈沖端接收一時鐘脈沖的觸發時,會先輸出一對應該初始狀態的初始狀態輸出,再依據該預設的原則于接收該時鐘脈沖的后續脈沖時,更新對應的狀態輸出。
4.如權利要求3所述的計數器,其中當該時鐘脈沖門控電路依據該初始值選擇該第一狀態單元及該第二狀態單元時,該計數器另可根據該初始值由各狀態單元的設定端設定各狀態單元的初始狀態。
5.如權利要求1所述的計數器,其另包含有一鎖存電路,連接于該時鐘脈沖門控電路,用來儲存該初始值。
6.如權利要求1所述的計數器,其中各狀態單元包含有一觸發器。
7.一種使用于一種計數器的方法,其中該計數器包含有多個狀態單元,各狀態單元用來產生一狀態輸出;而每一狀態單元具一對應的時鐘脈沖端,用來接收一具有多個脈沖的時鐘脈沖;其中每一各狀態單元由對應的時鐘脈沖端接收一時鐘脈沖時,該狀態單元可根據一預設的原則以在接收該時鐘脈沖的不同脈沖時更新其對應的狀態輸出;而該方法包含有僅根據一固定的初始值于該多個狀態單元中選擇出至少一第一狀態單元及至少一第二狀態單元,以將一觸發時鐘脈沖提供至各第一狀態單元的時鐘脈沖端,并停止提供該觸發時鐘脈沖至各第二狀態單元的時鐘脈沖端,使得當各第一狀態單元依據該觸發時鐘脈沖的不同脈沖而更新各第一狀態單元的對應狀態輸出時,各第二狀態單元對應的狀態輸出會維持不變。
8.如權利要求7所述的方法,其中當根據該初始值選擇出第一狀態單元及第二狀態單元時,不會依據各第一狀態單元的狀態輸出變化而將該觸發時鐘脈沖提供至各第二狀態單元,亦不會停止提供該觸發時鐘脈沖至各第一狀態單元。
9.如權利要求7所述的方法,其中當根據該初始值選擇出第一狀態單元及第二狀態單元時,針對不同的初始值,于該多個狀態單元中對應地選擇出不同的第一狀態單元及第二狀態單元。
10.如權利要求7所述的方法,其中每一狀態單元另有一設定端,用來接收一初始狀態,使得當該狀態單元由對應的時鐘脈沖端接收一時鐘脈沖的觸發時,會先輸出一對應該初始狀態的初始狀態輸出,再依據該預設的原則于接收該時鐘脈沖的后續脈沖時,更新對應的狀態輸出。
11.如權利要求10所述的方法,其另包含有當依據該初始值選擇該第一狀態單元及該第二狀態單元時,另根據該初始值由各狀態單元的設定端設定各狀態單元的初始狀態。
12.如權利要求7所述的方法,其中該計數器另包含有一鎖存電路,連接于該時鐘脈沖門控電路,用來儲存該初始值。
13.如權利要求7所述的方法,其中各狀態單元包含有一觸發器。
全文摘要
本發明提供一種狀態機、計數器及相關裝置與方法。本發明中的狀態機設有多個狀態單元及一時鐘脈沖門控電路,各狀態單元用來接收一時鐘脈沖的觸發以產生對應的遞變狀態輸出,該時鐘脈沖門控電路則用來根據一初始狀態選擇性地將一觸發時鐘脈沖不提供至該多個狀態單元中的某些狀態單元,使得當其他狀態單元受該觸發時鐘脈沖觸發而更新對應的狀態輸出時,所述狀態單元不會受觸發而改變對應的狀態輸出。
文檔編號G06M1/27GK1395218SQ0212983
公開日2003年2月5日 申請日期2002年8月15日 優先權日2002年8月15日
發明者陳永暉, 洪珊婷 申請人:威盛電子股份有限公司