專利名稱:數字時鐘切換裝置的制作方法
技術領域:
本發明的第一方面涉及一種數字時鐘切換裝置,工作中能免死鎖地切換集成電路的數字時鐘源。
本發明的第二方面涉及一種方法,用于免死鎖地切換集成電路的數字時鐘源。
本發明的第三方面涉及至少一種計算機程序產品,用于免死鎖地切換集成電路的數字時鐘源。
背景技術:
大多數數字集成電路需要時鐘信號來同步它們的工作。往往,將電路設計成使時鐘信號能來自一個以上的時鐘源。例如,時鐘源或是在芯片內部產生,或是由外部供給。此種設計的動力在于靈活性和減少功耗。某些應用中,已經有外部產生的時鐘可予使用,這樣產生另一個片上時鐘就是能量浪費。而另一些應用中,沒有此種外部時鐘可予使用。由于生產一種集成電路的許多不同變型極其費錢,所以,通常的實踐是設計一種芯片來滿足兩種情況下的需求。
為了使此成為可能,必須有一個可用于改變數字時鐘源的電路。此種時鐘變更必須是無假閃信號的,也就是,必須能保證由數字系統看到的時鐘既沒有很短促的脈沖,也沒有間隔很緊密的時鐘脈沖。由于內部時鐘與外部時鐘間相互異步,所以,此種變更的實施必需相當小心。典型地,在容許第二時鐘信號接替之前,應確保第一時鐘信號已中止足夠時間。
按照現代技術水平,實現此種功能的電路示明于圖1。電路50由負責管理時鐘變更的兩個有限狀態機(FSM)521、522構成。FSM521和522之每一個與一路時鐘輸入Clk_A或Clk_B相關聯。FSM521、522在有關時鐘輸入的1→0跳變沿處改變它們的狀態。FSM521和522之每一個有一路輸出ClkEn,當它們置1時可使相應的時鐘轉送到時鐘輸出端Clk_Out。輸入信號(鐘選信號)假定與Clk_Out同步,它將確定哪路時鐘應工作。FSM521和522之每一個通過其輸入端“對方ClkEn”監測對方時鐘使能信號的狀態。由于假定輸入時鐘互相異步,所以對于來自對方時鐘領域的輸入信號,必需使用雙重閂鎖同步器541和542。
圖1中示明的電路50又包含兩個分別與FSM541和542連接的第二雙重閂鎖同步器561和562,它們也以鐘選信號作為其輸入。電路50中還包含兩個分別與FSM521和522及時鐘源Clk_A和Clk_B連接的與門581和582。從圖1可見,與門581和582的輸出連接到或門60上,或門60的輸出形式即為時鐘輸出Clk_Out。
通過圖2中所示明FSM521和522的狀態圖,可以最好地表明電路50的功能。FSM521與522的差別只在于它們的復位情況以及它們對鐘選信號極性的響應。假定在復位狀態下Clk_A是啟動的,且鐘選信號為0。對于與Clk_A關聯的FSM521來說,狀態圖中變量A置“1”,而對于與Clk_B關聯的FSM522來說,變量A置“0”。
復位情況下,FSM521和522按此復位狀態開始工作。上方的FSM521(A=1)進到導通狀態,給其ClkEn,并容許Clk_A轉送至Clk_Out上。下方的FSM522(A=0)則進到切斷狀態。
某種場合下,要求改變系統的時鐘源。使鐘選信號改變為“1”。上方的FSM521感知這改變,通過再給定ClkEn進到不運行其時鐘的狀態。由于FSM521和522兩者不同步,對于下方的FSM522來說,必需確保上方的FSM521已斷開時鐘輸出。所以,在感知鐘選信號變化后,下方的FSM522進入等待狀態。只當它感知上方的FSM521確實已斷開時鐘輸出(對方ClkEn=0),方才進到導通狀態,容許時鐘Clk_B轉送出去。
當要切換新的時鐘(例如,Clk_B)不存在時,標準的時鐘切換電路50隨之會發生問題。這或許是由于對應用電路理解有誤,或許是由于集成電路制造有差錯。當要求系統改變時鐘源時,上方的FSM521將斷開其輸出時鐘。然而,若下方的FSM522沒有時鐘輸出,它決不會轉變到導通狀態。由于系統時鐘不會重新啟動,因而鐘選信號不能改變。此種死鎖是非常不希望的,因為這意味著,芯片將沒有診斷信息就直接停止工作,而且不可能在交替的工作模式中使工作的功能恢復(應用Clk_A時鐘源)。
發明概要本發明的一個目的是解決上面提到的問題。
按照本發明的第一方面,提供一種數字時鐘切換裝置,工作中能免死鎖地切換集成電路的數字時鐘源。數字時鐘切換裝置中包含與第一時鐘源關聯的第一有限狀態機以及與第二時鐘源關聯的第二有限狀態機。兩個有限狀態機相互連接,以便監測對方有限狀態機的當前狀態。每個有限狀態機有一個輸入信號(鐘選信號),工作中能控制哪個時鐘源應運行而轉送到數字時鐘切換裝置的時鐘輸出端。每個有限狀態機包含一個帶有變量(Cnt1;Cnt2)的計數器裝置,其中,當所述輸入信號(鐘選信號)指明切斷工作時鐘源時,與工作時鐘源關聯的計數器裝置會使其變量(Cnt1,Cnt2)初始化到一個常數(Nfail1,Nfail2)上,由此,與工作時鐘源關聯的有限狀態機進入檢查狀態,其中,計數器裝置在每個時鐘周期內遞減一次變量(Cnt1,Cnt2)。如果對方有限狀態機在變量(Cnt1,Cnt2)遞減計數到零之前確認它們時鐘源存在,則工作時鐘源的切換將起作用。另一方面,如果變量(Cnt1,Cnt2)遞減計數到零,則工作時鐘源的切換不起作用。按照本發明的數字時鐘切換裝置其主要優點在于,當不存在一方的時鐘源時,能保證系統決不進入死鎖狀態。
就此種關系而言可得到進一步的優點,即每個有限狀態機具有一個時鐘使能信號(ClkEn1,ClkEn2)輸出,其每個輸出作為一個與門的第一輸入,其中,每個與門的第二輸入為所述時鐘源(Clk_A,Clk_B),并且,還使所述數字時鐘切換裝置中包含一個連接到每個與門輸出端上的第一或門,由它轉送所述數字時鐘切換裝置的所述時鐘輸出(Clk_Out)。
此外,就此種關系而言具有一個優點,即每個有限狀態機的所述時鐘使能信號輸出(ClkEn1,ClkEn2)通過第一雙重閂鎖同步器裝置連接到對方有限狀態機的一個輸入(對方ClkEn2;對方ClkEn1)上,由此,每個有限狀態機通過所述輸入(對方ClkEn1;對方ClkEn2)能監測所述對方時鐘使能信號(ClkEn1,ClkEn2)的狀態。
就此種關系而言可得到進一步的優點,即每個有限狀態機連接到第二雙重閂鎖同步器裝置上,由此,所述輸入信號(鐘選信號)通過所述第二雙重閂鎖同步器裝置轉送出去。
此外,就此種關系而言具有一個優點,即所述第一時鐘源(Clk_A)連接到、并控制與所述第一有限狀態機相連接的所述第一和第二雙重閂鎖同步器裝置,并且,所述第二時鐘源(Clk_B)連接到、并控制與所述第二有限狀態機相連接的所述第一和第二雙重閂鎖同步器裝置。
就此種關系而言可得到進一步的優點,即所述有限狀態機在對方有限狀態機確認。其時鐘源(Clk_B;Clk_A)存在之前,其工作中能使所述工作時鐘源(Clk_A;Clk_B)不運行。
按照另一個實施,與所述不工作的時鐘源(Clk_B;Clk_A)關聯的所述有限狀態機在所述對方有限狀態機使所述工作時鐘源(Clk_A;Clk_B)不運行之前,工作中能確認對方時鐘源(Clk_B;Clk_A)存在。
此外,就此種關系而言具有一個優點,即所述數字時鐘切換裝置還包含與每個有限狀態機之差錯輸出(Error1,Error2)相連接的第二或門。
就此種關系而言可得到進一步的優點,即所述計數器裝置使所述變量(Cnt1;Cnt2)已遞減計數到零,當前處于所述檢查狀態中的所述有限狀態機工作進入差錯狀態,其中,所述有限狀態機其工作能夠再啟動所述工作時鐘源(Clk_A;Clk_B),轉送到所述時鐘輸出端(Clk_Out),并對所述第二或門發出一個差錯信號。
此外,就此種關系而言具有一個優點,即每個有限狀態機還包含一個輸出(SwOK1;SwOK2)和一個輸入(對方SwOK1;對方SwOK2),其中,每個有限狀態機的所述輸出(SwOK1;SwOK2)通過第三雙重閂鎖同步器裝置連接到對方有限狀態機的所述輸入(對方SwOK1;對方SwOK2)上。
就此種關系而言可得到進一步的優點,即所述第一時鐘源(Clk_A)連接到、并在工作中控制與所述第一有限狀態機相連接的所述第三雙重閂鎖同步器裝置,并且,所述第二時鐘源(Clk_B)連接到、并在工作中控制與所述第二有限狀態機相連接的所述第三雙重閂鎖同步器裝置。
此外,就此種關系而言具有一個優點,即所述有限狀態機它的時鐘使能信號(ClkEn1;ClkEn2)起作用,且所述輸入信號(鐘選信號)指明切斷所述工作時鐘源(Clk_A;Clk_B),則所述有限狀態機的工作進入檢查狀態,其中,對方有限狀態機在所述計數器裝置使所述變量(Cnt1;Cnt2)遞減計數到零之前它的輸出(SwOK2;SwOK1)存在,則所述工作時鐘源(Clk_A;Clk_B)不運行,又如若對方有限狀態機在所述計數器裝置使所述變量(Cnt1;Cnt2)遞減計數到零之前它的輸出(SwOK2,SwOK1)也不存在,則所述有限狀態機的工作進入所述差錯狀態,對所述第二或門發出所述差錯信號。
就此種關系而言可得到進一步的優點,即所述有限狀態機它的時鐘使能信號(ClkEn1;ClkEn2)不工作,而所述輸入信號(鐘選信號)指明切換到它的時鐘源(Clk_A;Clk_B)上,則所述有限狀態機的運行進入等待狀態,并且工作中它的輸出(SwOK1;SwOK2)變得起作用。而當所述對方有限狀態機切斷其時鐘源(Clk_B;Clk_A)時,工作中對方時鐘源(Clk_A;Clk_B)成為有效,其輸出轉送到所述時鐘輸出端(Clk_Out)上。
本發明的另一個目的是提供一種方法,用于免死鎖地切換集成電路的數字時鐘源。該方法的實現借助于第一和第二時鐘源(Clk_A;Clk_B),其中,第一時鐘源(Clk_A)工作,而第二時鐘源(Clk_B)不工作。方法中包含步驟當指明切斷所述工作時鐘源(Clk_A)時,將變量(Cnt1)初始化到一個常數(Nfail1,Nfail2)上;在每個時鐘周期內遞減計數一次所述變量(Cnt1);如果在所述變量(Cnt1)遞減計數到零之前確認所述不工作的時鐘源(Ckl_B)存在,則所述工作時鐘源的切換將起作用(Clk_B工作);以及,第一方面,如果所述變量(Cnt1)被遞減計數到零,則所述工作時鐘源的切換不起作用(Clk_A工作)。
按照本發明之方法的主要優點在于,不存在對方時鐘源時,能保證系統決不會進入死鎖狀態。
就此種關系而言可得到進一步的優點,即所述方法還包含步驟在確認對方時鐘源(Ckl_B)存在之前,使所述工作時鐘源(Clk_A)不運行。
此外,就此種關系而言具有一個優點,即所述方法還包含步驟在使所述工作時鐘源(Clk_A)不運行之前,確認所述不工作時鐘源(Clk_B)存在。
就此種關系而言可得到進一步的優點,即所述方法還包含步驟
如果所述變量(Cnt1)遞減計數到零,再啟動所述工作時鐘源(Clk_A);以及發出差錯指示。
此外,就此種關系而言具有一個優點,即所述方法的實現借助于它含一個其中有與所述第一時鐘源(Clk_A)關聯的第一有限狀態機以及與所述第二時鐘源(Clk_B)關聯的第二有限狀態機的數字時鐘切換裝置,其中,每個有限狀態機具有一個輸入信號(鐘選信號),工作中控制哪個時鐘源(Clk_A;Clk_B)應工作,并轉送到所述數字時鐘切換裝置的時鐘輸出端(Clk_Out),又其中,每個有限狀態機包含一個具有變量(Cnt1;Cnt2)的計數器裝置,且其中所述方法還包含步驟當所述輸入信號(鐘選信號)指明切斷所述工作時鐘源(Clk_A)時,使得與所述工作時鐘源(Clk_A)關聯的所述有限狀態機進入檢查狀態。
就此種關系而言可得到進一步的優點,即每個有限狀態機具有一個時鐘使能信號(ClkEn1;ClkEn2),它們通過第一雙重閂鎖同步器裝置連接到對方有限狀態機的一個輸入端(對方ClkEn1;對方ClkEn2)上,且其中所述方法還包含步驟每個有限狀態機監測所述對方時鐘使能信號(ClkEn2;ClkEn1)的狀態。
此外,就此種關系而言具有一個優點,即每個有限狀態機還包含一個輸出(SwOK1;SwOK2)和一個輸入(對方SwOK2;對方SwOK1),其中所述方法還包含步驟如果所述有限狀態機它的時鐘使能信號(ClkEn1;ClkEn2)起作用,以及所述輸入信號(鐘選信號)指明切斷所述工作時鐘源(Clk_A;Clk_B),則所述有限狀態機進入檢查狀態;如果所述對方有限狀態機在所述計數器裝置使所述變量(Cnt1;Cnt2)遞減計數到零之前它的輸出(SwOK2;SwOK1)已起作用,則中止所述工作時鐘源(Clk_A;Clk_B);以及,如果所述對方有限狀態機在所述計數器裝置使所述變量(Cnt1;Cnt2)遞減計數到零之前它的輸出(SwOK2;SwOK1)不起作用,則進入所述有限狀態機的所述差錯狀態;并且,發出所述差錯信號。
就此種關系而言可得到進一步的優點;即所述方法還包含步驟如果所述有限狀態機它的時鐘使能信號(ClkEn1;ClkEn2)不起作用,而所述輸入信號(鐘選信號)指明切換時鐘源(Clk_A;Clk_B),則所述有限狀態機進入等待狀態,它的輸出(SwOK1;SwOK2)變為起作用;以及,當所述對方有限狀態機切斷其時鐘源(Clk_B;Clk_A)時,便激活對方時鐘源(Clk_A;Clk_B),并將它轉送到所述時鐘輸出端(Clk_Out)。
本發明的另一個目的是提供至少一種計算機程序產品,用于免死鎖地切換集成電路的數字時鐘源,計算機程序產品可直接裝入至少一臺數字計算機的內部存儲器中,它包含用于實現按照本發明之方法的軟件代碼部分,并可在所述至少一臺計算機上運行至少一種程序產品。
按照本發明的計算機程序產品的主要優點在于,程序產品能保證不存在對方時鐘源時系統決不會進入死鎖狀態。
應著重指出,用語“包含/包含有”用于本說明書中時是借以說明特征、步驟或成分的存在,但并不排除一個或多個其他特征、整體、步驟、成分或組群的存在。
現在,參考
本發明的各實施例。
圖1是已知電路50的方框圖,用于無假閃信號的時鐘源切換;圖2是圖1的電路50中包含的有限狀態機521、522、的狀態圖,用以示明電路50的功能;圖3是按照本發明第一實施例數字時鐘切換裝置10的方框圖,工作中能免死鎖地切換集成電路的數字時鐘源;圖4是按照本發明的方法流程圖,用于免死鎖地切換集成電路的數字時鐘源;圖5是按照本發明第二實施例數字時鐘切換裝置10的方框圖;圖6是圖5的數字時鐘切換裝置10中包含的有限狀態機121、122的狀態圖;圖7是按照本發明第三實施例數字時鐘切換裝置10的方框圖;圖8是圖7的數字時鐘切換裝置10中包含的有限狀態機121、122的狀態圖;以及,圖9是按照本發明的一些計算機程序產品1021......、102n的示意圖。
具體實施例方式
圖3中示明按照本發明第一實施例數字時鐘切換裝置10的方框圖。數字時鐘切換裝置10在工作中能免死鎖地切換集成電路的數字時鐘源。數字時鐘切換裝置10中包含與第一時鐘源Clk_A關聯的第一有限狀態機121以及與第二時鐘源Clk_B關聯的第二有限狀態機122。由圖3可見,有限狀態機121和122通過信號ClkEn1、ClkEn2、對方ClkEn1、對方ClkEn2相互連接,以便監測對有限狀態機122和121的當前狀態。每個有限狀態機121、122有一個輸入信號(鐘選信號),在工作中能控制哪個時鐘源Clk_A、Clk_B應起作用,轉送到數字時鐘切換裝置10的時鐘輸出Clk_Out上。每個有限狀態機121、122包含有帶變量(Cnt1;Cnt2)的計數器裝置141、142,其中,與工作時鐘源關聯的計數器裝置其變量(Cnt1;Cnt2)初始化到一個常數(Nfail1;Nfail2)上,當輸入信號(鐘選信號)指明切斷工作時鐘源Clk_A、Clk_B時,與工作時鐘源Clk_A、Clk_B關聯的有限狀態機121、122由此進入檢查狀態,其中,計數器裝置141、142使變量(Cnt1;Cnt2)在每個時鐘周期內遞減計數一次。如果在變量(Cnt1;Cnt2)遞減計數到零之前對方有限狀態機122、121確認它的時鐘源Clk_B、Clk_A存在,則工作時鐘源的切換將起作用,Clk_B、Clk_A工作。另一方面,如果變量(Cnt1;Cnt2)被遞減計數到零,則工作時鐘源Clk_A、Clk_B的切換不起作用。
圖4示明按照本發明之方法的流程圖,用于免死鎖地切換集成電路的數字時鐘源。方法的實施借助于第一和第二時鐘源Clk_A和Clk_B,其中,第一時鐘源Clk_A工作,第二時鐘源Clk_B不工作。該方法開始自方框70,在方框72上該方法繼續如下步驟當指明切斷工作時鐘源Clk_A時,將變量(Cnt1)初始化到一個常數(Nfail1;Nfail2)上。此后,在方框74上該方法繼續如下步驟在每個時鐘周期內遞減計數一次變量(Cnt1)。在方框76上,該方法查詢如下問題變量(Cnt1)大于0否?如果回答為否定,該方法在方框78上繼續如下步驟工作時鐘源的切換不起作用,也就是,Clk_A將仍然工作。另一方面,如果對方框76查詢問題的回答為肯定,則在方框80上該方法繼續查詢問題是否確認存在不工作時鐘源Clk_B?如果回答為否定,該方法繼續按照方框74再執行其步驟。另一方面,如果對方框80查詢問題的回答為肯定,則在方框82上該方法繼續如下步驟實施對工作時鐘源Clk_A的切換,也就是,時鐘源Clk_B將起作用。在方框84上,該方法完成程序。
圖5示明按照本發明第二實施例數字時鐘切換裝置10的方框圖,數字時鐘切換裝置10在工作中能免死鎖地切換集成電路的數字時鐘源。數字時鐘切換裝置10中包含與第一時鐘源Clk_A連接的第一有限狀態機121以及與第二時鐘源Clk_B連接的第二有限狀態機122。有限狀態機121和122通過信號ClkEn1、ClkEn2、對方ClkEn1、對方ClkEn2相互連接,以便監測對方有限狀態機122、121的當前工作狀態。每個有限狀態機121、122有一個輸入信號(鐘選信號),在工作中能控制哪個時鐘源Clk_A、Clk_B應起作用,轉送到數字時鐘切換裝置10的時鐘輸出Clk_Out上。每個有限狀態機121、122包含帶有變量(Cnt1;Cnt2)的計數器裝置141、142,其中,與工作時鐘源關聯的計數器裝置其變量(Cnt1;Cnt2)初始化到一個常數(Nfail1,Nfail2)上,當輸入信號(鐘選信號)指明切斷工作時鐘源Clk_A、Clk_B時,與工作時鐘源Clk_A、Clk_B連接的有限狀態機121、122由此進入檢查狀態,其中,計數器裝置141、142使變量(Cnt1;Cnt2)在每個時鐘周期內遞減一次。如果在變量(Cnt1;Cnt2)遞減計數到零之前對方有限狀態機122、121確認它的時鐘源Clk_B、Clk_A存在,則工作時鐘源的切換將起作用,Clk_B、Clk_A工作。另一方面,如果變量(Cnt1;Cnt2)被遞減計數到零,則工作時鐘源Clk_A、Clk_B的切換不起作用。數字時鐘切換裝置10中還包含兩個與門161、162,其中,與門161、162之每一個具有第一輸入端時鐘使能信號ClkEn1、ClkEn2以及形式為時鐘源Clk_A、Clk_B的第二輸入端。數字時鐘切換裝置10中還包含與門161和162所連接的第一或門18,它的輸出即是時鐘輸出Clk_Out。
由圖5可見,數字時鐘切換裝置10還包含兩個第一雙重閂鎖同步器裝置201、202,其每一個各別連接到有限狀態機121、122上。每個有限狀態機121、122分別連接第二雙重閂鎖同步器裝置221、222,由此,輸入信號(鐘選信號)通過第二雙重閂鎖同步器裝置221、222進行轉送。由圖5可見,第一時鐘源Clk_A連接到、并控制與第一有限狀態機121相連接的第一和第二雙重閂鎖同步器裝置201、221,第二時鐘源Clk_B連接到、并控制與第二有限狀態機122相連接的第一和第二雙重閂鎖同步器裝置202、222。數字時鐘切換裝置10中還包含第二或門24,其輸入連接于每個有限狀態機121、122的差錯輸出Error1、Error2上。第二或門24的輸出為差錯信號。
圖6示明圖5的數字時鐘切換裝置10內包含有限狀態機121、122的狀態圖。
為了避免出現死鎖情況,必需確認被選定的時鐘存在,并在選定的時鐘不存在的場合下,系統時鐘繼續運行。
本發明與常規時鐘切換電路之間的主要差別在于,當轉換中使相關時鐘源切斷時(從導通狀態轉變到切斷狀態),它們FSM121、122的工作狀況不同。本發明的設計中,FSM121、122必須首先經過檢查狀態。在進入檢查狀態之前,將一個變量(Cnt1;Cnt2)初始化到常數值(Nfail1;Nfail2)上。檢查狀態時期內,計數器141、142在每個時鐘周期內遞減計數一次。如果發現,對方FSM已對時鐘切換起響應,并啟動其時鐘,本方FSM可安全地進入切斷狀態。如果對方FSM無響應,計數器141、142將遞減計數到零。此種場合下,可認為對方時鐘不存在,本方FSM進入差錯狀態,再啟動其原來的輸出時鐘,并給出一個差錯指示。所述常數(Nfail1;Nfail2)應設定于一個合適值上,以使得在對方時鐘存在的情況下計數器141、142決不會遞減計數到零。
本電路預定的應用場合主要針對對方時鐘或是存在、或是不存在。但對方時鐘不能起初不存在、隨后又出現(因為這可能導致這樣的情況,即一個FSM121、122進入差錯狀態,將其原來的時鐘傳送到輸出端,而與此同時,對方FSM122、121也進入導通狀態)。
這里說明的電路10在確認對方時鐘存在之前,先中止本方時鐘輸出。
圖7示明按照本發明第三實施例數字時鐘切換裝置10的方框圖。圖7中那些與圖5中類似的部件以同樣的標號標志,且不再詳細說明。圖7與圖5之間的主要不同在于,圖7中的每個有限狀態機121、122還包含輸出端SwOK1、SwOK2和輸入端對方SwOK2、對方SwOK1,并且,每個有限狀態機121、122的輸出SwOK1、SwOK2通過第三雙重閂鎖同步器裝置262、261連接到對方有限狀態機122、121的輸入端對方SwOK1、對方SwOK2上。圖7中所示數字時鐘切換裝置10的功能將在圖8中表明。
圖8示明圖7所示數字時鐘切換裝置10內包含的有限狀態機121、122的狀態圖。
本發明之方法的另一種實施方案是首先確認對方時鐘存在,只有如此方前進到使本方時鐘不運行。此種電路將更為復雜,因為它要求每個FSM121、122有一個附加輸出和輸入,且每一通路中有兩個同步器。附加輸出SwOK用于指明有限狀態機122、121已發現切換到其時鐘上的請求,并準備如此執行。
一個FSM121、122處于“導通”狀態(時鐘輸出工作啟動)時,若得到切斷其時鐘的請求,它首先前進到“檢查”狀態,判斷對方FSM122、121是否認可SwOK。如果在規定的時間內不這樣呈現,則進入差錯狀態。否則,判定SwOK=1時,FSM121、122便斷開其自己的時鐘輸出使能信號。
一個FSM121、122處于“切斷”狀態(時鐘輸出工作不啟動)時,若得到切換到其時鐘上的請求,它首先前進到“等待”狀態。在其間,它認可SwOK時,指明能切換到其時鐘上。一旦對方FSM122、121作出響應,它的時鐘便切斷,而FSM121、122的時鐘輸出啟動。
圖9示明按照本發明某些計算機程序產品的示意圖,用于免死鎖地切換集成電路的數字時鐘源。圖中示明n個不同的數字計算機1001、......、100n,其中n為整數。
圖中還示明光盤形式的計算機程序產品1021、......、102n。不同的計算機程序產品1021、......、102n可直接裝載入n個不同的數字計算機1001、......、100n的內部存儲器中。每個計算機程序產品1021、......、102n中包含軟件代碼部分,當程序產品1021、......、102n在所述計算機1001、......、100n上運行時,軟件代碼將執行圖4中的某些步驟或全部步驟。所述計算機程序產品1021、......、102n在形式上例如可以為軟盤、RAM盤、磁帶、磁光盤或任何其他合適的產品。
本發明并不局限于上面所述的實施例。很顯然,在下面的權利要求書的范圍內,可以作出許多種不同的修改。
權利要求
1.一種數字時鐘切換裝置(10),工作中能免死鎖地切換集成電路的數字時鐘源,包含有與第一時鐘源(Clk_A)關聯的第一有限狀態機(121)以及與第二時鐘源(Clk_B)關聯的第二有限狀態機(122),其中,所述有限狀態機(121;122)相互連接,以便監測對方有限狀態機(122;121)的當前狀態,又其中,每個有限狀態機(121;122)具有一個輸入信號(鐘選信號),工作中能控制哪個時鐘源(Clk_A;Clk_B)應工作,轉送到所述數字時鐘切換裝置(10)的時鐘輸出端(Clk_Out)上,該數字時鐘切換裝置(10)的特征在于,每個有限狀態機(121;122)包含帶有變量(Cnt1;Cnt2)的計數器裝置(141;142),當所述輸入信號(鐘選信號)指明切斷所述工作時鐘源(Clk_A;Clk_B)時,與所述工作時鐘源(Clk_A;Clk_B)關聯的所述計數器裝置(141;142)其變量(Cnt1;Cnt2)初始化到一個常數(Nfail1;Nfail2)上,由此,與所述工作時鐘源(Clk_A;Clk_B)關聯的所述有限狀態機(121;122)進入檢查狀態,其中,所述計數器裝置(141;142)在每個時鐘周期內遞減計數所述變量(Cnt1;Cnt2)一次,并當對方有限狀態機(122;121)在所述變量(Cnt1;Cnt2)被遞減計數到零之前確認其時鐘源(Clk_B;Clk_A)存在時,所述的切換所述工作時鐘源(Clk_B;Clk_A)便起作用,另一方面,如果所述變量(Cnt1;Cnt2)被遞減計數到零,則所述工作時鐘源(Clk_A;Clk_B)的切換不起作用。
2.權利要求1的數字時鐘切換裝置(10),其特征在于,每個有限狀態機(121;122)具有一個輸出端時鐘使能信號(ClkEn1;ClkEn2),它們每一個作為與門(161;162)的第一輸入,其中,每個與門(161;162)的第二輸入為所述時鐘源(Clk_A;Clk_B),所述數字時鐘切換裝置(10)還包含有連接至每個與門(161;162)輸出端上的第一或門(18),它輸出所述數字時鐘切換裝置(10)的所述時鐘輸出(Clk_Out)。
3.權利要求1或2的數字時鐘切換裝置(10),其特征在于,每個有限狀態機(121;122)的所述時鐘使能信號(ClkEn1;ClkEn2)輸出通過第一雙重閂鎖同步器裝置(202;201)連接到對方有限狀態機(122;121)的一個輸入(對方ClkEn1;對方ClkEn2)上,由此,每個有限狀態機(121;122)通過所述輸入(對方ClkEn2;對方ClkEn1)能監測所述對方時鐘使能信號(ClkEn2;ClkEn1)的狀態。
4.權利要求1-3中任一個的數字時鐘切換裝置(10),其特征在于,每個有限狀態機(121;122)連接到第二雙重閂鎖同步器裝置(221;222)上,由此,所述輸入信號(鐘選信號)通過所述第二雙重閂鎖同步器裝置(221;222)轉送。
5.在權利要求3下按照權利要求4的數字時鐘切換裝置(10),其特征在于,所述第一時鐘源(Clk_A)連接到、并控制與所述第一有限狀態機(121)相連接的所述第一和第二雙重閂鎖同步器裝置(201;221),所述第二時鐘源(Clk_B)連接到、并控制與所述第二有限狀態機(122)相連接的所述第一和第二雙重閂鎖同步器裝置(202;222)。
6.權利要求1-5中任一個的數字時鐘切換裝置(10),其特征在于,所述有限狀態機(121;122)工作中,在對方有限狀態機(122;121)確認其時鐘源(Clk_B;Clk_A)存在之前,使得所述工作時鐘源(Clk_A;Clk_B)不運行。
7.權利要求1-5中任一個的數字時鐘切換裝置(10),其特征在于,與所述不工作時鐘源(Clk_B;Clk_A)關聯的所述有限狀態機(122;121)工作中,在對方有限狀態機(121;122)使所述工作時鐘源(Clk_A;Clk_B)不運行之前,要確認其時鐘源(Clk_B;Clk_A)的存在。
8.權利要求1-6中任一個的數字時鐘切換裝置(10),其特征在于,所述數字時鐘切換裝置(10)還包含第二或門(24),它連接于每個有限狀態機(121;122)的差錯輸出端(Error1;Error2)上。
9.權利要求8的數字時鐘切換裝置(10),其特征在于,如果所述計數器裝置(141;142)使所述變量(Cnt1;Cnt2)的計數遞減到零,則當時處于所述檢查狀態的所述有限狀態機(121;122)的工作進入差錯狀態,其中,所述有限狀態機(121;122)其運行再啟動所述工作時鐘源(Clk_A;Clk_B),它轉送到所述時鐘輸出端(Clk_Out)上,并對所述第二或門(24)發出一個差錯信號。
10.權利要求7的數字時鐘切換裝置(10),其特征在于,每個有限狀態機(121;122)還包含輸出(SwOK1;SwOK2)和輸入(對方SwOK2;對方SwOK1),其中,每個有限狀態機(121;122)的所述輸出(SwOK1;SwOK2)通過第三雙重閂鎖同步器裝置(262;261)連接到對方有限狀態機(122;121)的所述輸入端(對方SwOK1;對方SwOK2)上。
11.權利要求10的數字時鐘切換裝置(10),其特征在于,所述第一時鐘源(Clk_A)連接到、并在工作中控制與所述第一有限狀態機(121)連接的所述第三雙重閂鎖同步器裝置(261),所述第二時鐘源(Clk_B)連接到,并在工作中控制與所述第二有限狀態機(122)連接的所述第三雙重閂鎖同步器裝置(262)。
12.權利要求11的數字時鐘切換裝置(10),其特征在于,如果所述有限狀態機(121;122)其時鐘使能信號(ClkEn1,ClkEn2)起作用,且所述輸入信號(鐘選信號)指明切斷所述工作時鐘源(Clk_A;Clk_B),則所述有限狀態機(121;122)的工作進入檢查狀態,其中,如果所述對方有限狀態機(122;121)在所述計數器裝置(141;142)使所述變量(Cnt1;Cnt2)遞減計數到零之前其輸出(SwOK1;SwOK2)起作用,則所述工作時鐘源(Clk_A;Clk_B)中止運行,又若在所述計數器裝置(141;142)使所述變量(Cnt1;Cnt2)遞減計數到零前,所述有限狀態機(122;121)其輸出(SwOK2;SwOK1)不工作,則所述有限狀態機(121;122)的工作進入所述差錯狀態,對所述第二或門(24)發出所述差錯信號。
13.權利要求10-12中任一個的數字時鐘切換裝置(10),其特征在于,如果所述有限狀態機(121;122)其時鐘使能信號(ClkEn1,ClkEn2)不工作,且所述輸入信號(鐘選信號)指明切換到其時鐘源(Clk_A;Clk_B)上,則所述有限狀態機(121;122)的工作進入等待狀態,在工作中其輸出(SwOK1;SwOK2)變成起作用,并當所述有限狀態機(122;121)切斷其時鐘源(Clk_B;Clk_A)時,對方時鐘源(Clk_A;Clk_B)的工作成為有效,轉送到所述時鐘輸出端(Clk_Out)上。
14.一種借助于第一和第二時鐘源(Clk_A;Clk_B)免死鎖地切換集成電路數字時鐘源的方法,其中,所述第一時鐘源(Clk_A)工作,所述第二時鐘源(Clk_B)不工作,其中,所述方法包含步驟當指明切斷所述工作時鐘源(Clk_A)時,將變量(Cnt1)初始化到一個常數(Nfail1)上;在每個時鐘周期內遞減計數一次所述變量(Cnt1);在對所述變量(Cnt1)遞減計數到零之前,如果確認所述不工作的時鐘源(Clk_B)存在,則對所述工作時鐘源(Clk_A)的切換起作用;以及,另一方面,如果所述變量(Cnt1)被遞減計數到零,則所述工作時鐘源(Clk_A)的切換將不起作用。
15.權利要求14的免死鎖地切換數字時鐘源的方法,其特征在于,所述方法還包含步驟在確認對方時鐘源(Clk_B)存在之前,使所述工作時鐘源(Clk_A)不運行。
16.權利要求14的免死鎖地切換數字時鐘源的方法,其特征在于,所述方法還包含步驟在使所述工作時鐘源(Clk_A)不運行之前,確認所述不工作的時鐘源(Clk_B)存在。
17.權利要求14-16中任一個的免死鎖地切換數字時鐘源的方法,其特征在于,所述方法還包含步驟如果所述變量(Cnt1)被遞減計數到零,則再啟動所述工作時鐘源(Clk_A);以及,發出一個差錯指示。
18.權利要求14-17中任一個的免死鎖地切換數字時鐘源的方法,其特征在于,所述方法的實現借助于包含一個其中有與所述第一時鐘源(Clk_A)關聯的第一有限狀態機(121)以及與第二時鐘源(Clk_B)關聯的第二有限狀態機(122)的數字時鐘切換裝置(10),其中,每個有限狀態機(121;122)具有一個輸入信號(鐘選信號),工作中控制哪個時鐘源(Clk_A;Clk_B)應工作,并轉送到所述數字時鐘切換裝置(10)的輸出端(Clk_Out),其中,每個有限狀態機(121;122)包含一個帶有變量(Cnt1;Cnt2)的計數器裝置(141;142),其中,所述方法還包含步驟當所述輸入信號(鐘選信號)指明切斷所述工作時鐘源(Clk_A)時,使得與所述工作時鐘源(Clk_A)關聯的所述有限狀態機(121)進入檢查狀態。
19.權利要求18的免死鎖地切換數字時鐘源的方法,其特征在于,每個有限狀態機(121;122)具有一個時鐘使能信號(ClkEn1;ClkEn2)輸出端,它們通過第一雙重閂鎖同步器裝置(202;201)連接到對方有限狀態機(122;121)的一個輸入端(對方ClkEn1;對方ClkEn2)上,其中,方法中還包含步驟每個有限狀態機(121;122)監測所述對方時鐘使能信號(ClkEn2;ClkEn1)的狀態。
20.在權利要求16下,按照權利要求18或19的免死鎖地切換數字時鐘源的方法,其特征在于,每個有限狀態機(121;122)還包含輸出端(SwOK1;SwOK2)和輸入端(對方SwOK2;對方SwOK1),其中,方法中還包含步驟如果所述有限狀態機(121;122)其時鐘使能信號(ClkEn1;ClkEn2)工作,且輸入信號(鐘選信號)指明切斷所述工作時鐘源(Clk_A;Clk_B),則所述有限狀態機(121;122)進入檢查狀態;如果所述對方有限狀態機(122;121)在所述計數器裝置(141;142)對所述變量(Cnt1;Cnt2)遞減計數到零之前其輸出(SwOK2;SwOK1)工作,則使所述工作時鐘源(Clk_A;Clk_B)不運行;以及,如果所述有限狀態機(122;121)在計數器裝置(141;142)使所述變量(Cnt1;Cnt2)遞減計數到零前其輸出(SwOK2;SwOK1)不工作,則所述有限狀態機(121;122)進入所述差錯狀態;以及發出所述差錯信號。
21.在權利要求16下,按照權利要求18或19的免死鎖地切換數字時鐘源的方法,其特征在于,所述方法還包含步驟如果所述有限狀態機(121;122)其時鐘使能信號(ClkEn1;ClkEn2)不工作,又所述輸入信號(鐘選信號)指明切換到其時鐘源(Clk_A;Clk_B)上,則所述有限狀態機(121;122)進入等待狀態,且其輸出(SwOK1;SwOK2)變為工作,并當所述對方有限狀態機(122;121)切斷其時鐘源(Clk_B;Clk_A)時,激活對方的時鐘源(Clk_B;Clk_A),將它轉送到所述時鐘輸出端(Clk_Out)。
22.至少一種計算機程序產品(1021......、102n),用于免死鎖地切換集成電路的數字時鐘源,將那類計算機程序產品(1021......、102n)直接裝載入至少一臺數字計算機(1001......、100n)的內部存儲器中,當所述至少一種產品(1021......、102n)在所述至少一臺計算機(1001......、100n)上運行時,其包含的軟件代碼部分用于執行權利要求14中的諸步驟。
全文摘要
本發明涉及一種數字時鐘切換裝置,工作中能免死鎖地切換集成電路的數字時鐘源,它包含分別與第一和第二時鐘源關聯的第一和第二有限狀態機。有限狀態機相互連接,以便監測對方的當前狀態,其中,每個有限狀態機具有一個輸入信號,工作中控制哪個時鐘源應工作,并轉送到數字時鐘切換裝置的時鐘輸出端。每個有限狀態機包含一個帶有變量的計數器裝置,當輸入信號指明切斷工作時鐘源時,與之關聯的計數器裝置其變量初始化到一個常數上,由此,與工作時鐘源關聯的有限狀態機進入檢查狀態,計數器裝置在每個時鐘周期內遞減計數變量一次。如果對方有限狀態機在變量遞減計數到零之前確認其時鐘源存在,則工作時鐘源的切換將起作用運行。
文檔編號G06F1/04GK1838025SQ20061005985
公開日2006年9月27日 申請日期2006年3月21日 優先權日2005年3月22日
發明者M·路易斯 申請人:英飛凌科技股份公司