(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-12
(54)【発明の名称】クロック信号生成回路、駆動方法および電子装置
(51)【国際特許分類】
G06F 1/06 20060101AFI20230405BHJP
【FI】
G06F1/06 590
G06F1/06 510
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022549567
(86)(22)【出願日】2020-07-21
(85)【翻訳文提出日】2022-08-18
(86)【国際出願番号】 CN2020103276
(87)【国際公開番号】W WO2021184623
(87)【国際公開日】2021-09-23
(31)【優先権主張番号】202010190170.6
(32)【優先日】2020-03-18
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】520412486
【氏名又は名称】深▲セン▼市紫光同創電子有限公司
(74)【代理人】
【識別番号】100205936
【氏名又は名称】崔 海龍
(74)【代理人】
【識別番号】100132805
【氏名又は名称】河合 貴之
(72)【発明者】
【氏名】廖 英豪
(72)【発明者】
【氏名】張 衛波
(57)【要約】
本発明は、デジタル回路の技術分野に属するクロック信号生成回路、駆動方法および電子装置を提供し、本発明で生成されたクロック信号の位相が動的に調整および切り替えることが可能であり、位相を動的に調整および切り替えるときにグリッチが発生しない。前記クロック信号生成回路は、クロック位相調整要求に応じてカウント値から位相設定値を生成するためのカウンタと、位相初期値をロードし、位相調整過程中カウンタから前記位相設定値を受信し、位相初期値または位相設定値をイネーブル制御信号に復号し、イネーブル制御信号を同期化処理して出力するための復号・同期化モジュールと、同期化処理されたイネーブル制御信号を受信し、イネーブル制御信号に応じてマルチチャンネル入力クロック信号から位相初期値または位相設定値の位相に対応する入力クロック信号を選択し合成して出力するためのクロックセレクタと、を含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
クロック位相調整要求に応じてカウント値から位相設定値を生成するためのカウンタと、
初期位相実現過程中、位相初期値をロードし、位相調整過程中、カウンタから前記位相設定値を受信し、前記位相初期値または前記位相設定値をイネーブル制御信号に復号し、前記イネーブル制御信号を同期化処理して出力し、前記同期化処理により、前記イネーブル制御信号を調整する必要のあるクロックドメインに同期させる、復号・同期化モジュールと、
同期化処理されたイネーブル制御信号を受信し、前記イネーブル制御信号に応じてマルチチャンネル入力クロック信号から、前記位相初期値または前記位相設定値の位相に対応する入力クロック信号を出力として選択し、前記マルチチャンネル入力クロック信号の位相が連続し、1クロック周期をカバーできるクロックセレクタと、を含むことを特徴とするクロック信号生成回路。
【請求項2】
前記クロックセレクタは、1つまたは複数のクロックセレクタユニットを含み、前記復号・同期化モジュールは1つまたは複数のイネーブル制御信号を出力し、前記イネーブル制御信号は前記クロックセレクタユニットに1対1で対応し、前記クロックセレクタユニットは、前記復号・同期化モジュールから対応の同期処理されたイネーブル制御信号を受信し、対応の同期処理された前記イネーブル制御信号に応じて前記マルチチャンネル入力クロック信号から、前記位相初期値または前記位相設定値の位相に対応する入力クロック信号を出力として選択するために使用される、ことを特徴とする請求項1に記載のクロック信号生成回路。
【請求項3】
前記復号・同期化モジュールは、
前記初期位相設定値または前記位相設定値を複数のイネーブル制御信号に復号し、前記複数のイネーブル制御信号のうち1つのみがハイレベルであり、残りはローレベルであるデコーダと、
前記イネーブル制御信号を同期化処理して出力し、同期化処理されたイネーブル制御信号は入力クロックの立下がりエッジでトリガされる、同期回路と、を含む、ことを特徴とする請求項2に記載のクロック信号生成回路。
【請求項4】
前記デコーダは3-8復号回路であり、前記同期回路は第1フリップフロップ、第2フリップフロップおよび8つの出力フリップフロップを含み、
前記第1フリップフロップのトリガ端に前記入力クロック信号中の第1入力クロック信号が入力され、前記第1フリップフロップの入力端は前記3-8復号回路の出力端に接続され、前記第1フリップフロップ出力信号のうちローレベルからハイレベルまでの第1~第4の信号が、前記8つの出力フリップフロップ中の第1~第4出力フリップフロップの入力端に出力され、前記第1フリップフロップは、前記第1入力クロック信号の立上りエッジでトリガされて前記3-8復号回路の出力信号をサンプリングするために使用され、
前記第2フリップフロップのトリガ端に前記第1入力クロック信号が入力され、前記第1フリップフロップの入力端は前記第1フリップフロップの出力信号中のローレベルからハイレベルまでの第4~第8信号を受信し、前記第2フリップフロップの出力端は前記8つの出力フリップフロップ中の第5~第8出力フリップフロップの入力端に接続され、前記第2フリップフロップは、前記第1フリップフロップ出力信号のローレベルからハイレベルまでの第4~第8出力信号をサンプリングするために使用され、前記第1入力クロック信号の立下がりエッジでサンプリングされた後出力し、
前記8つの出力フリップフロップ中のトリガ端にそれぞれ前記入力クロック信号中の1つが入力され、前記8つの出力フリップフロップはそれぞれ対応の入力クロック信号のクロック立下がりエッジでサンプリングされた後出力する、ことを特徴とする請求項3に記載のクロック信号生成回路。
【請求項5】
前記クロックセレクタユニットは、
入力端から切り替えられたクロック信号に対応するイネーブル制御信号を受信する第1ANDゲートと、
入力端から目標切り替えクロック信号対応のイネーブル制御信号を受信する第2ANDゲートと、
2つの入力端に前記第1ANDゲートの出力端と前記第2ANDゲートの出力端がそれぞれ接続され、かつ出力端が前記クロックセレクタの出力端であるORゲートとを含み、
そのうちに、前記クロック選択ユニットは出力チャンネルに1対1で対応し、前記切り替えられたクロック信号とは位相調整前に出力チャンネルに対応する出力クロックの位相と同様である入力クロックを指し、前記目標切り替えクロック信号とは、位相調整後に出力チャンネルに対応する出力クロックの位相と同様である入力クロックを指す、ことを特徴とする請求項1に記載のクロック信号生成回路。
【請求項6】
請求項1~5のいずれか1項に記載のクロック信号生成回路の駆動方法であって、
前記カウンタは、動的位相調整トリガ信号STEP_N、動的位相調整方向DIRECTION、動的位相調整チャンネル選択信号SEL<m:0>、動的位相調整選択チャンネル位相選択信号のロード信号LOADおよび動的位相調整選択チャンネルの現在位相選択信号PHASENOW<m:0>を受信し、前記復号・同期化モジュールは前記カウンタの出力端から動的位相調整後の新しい位相選択信号PHASENEW<m:0>を受信し、前記復号・同期化モジュールは、入力クロック信号CLKIN<n:0>、動的位相調整トリガ信号STEP_N、動的位相調整チャンネル選択信号SEL<m:0>および各チャンネルクロック位相初期設定値PHASEINIT0/1/・・・/x<m:0>をさらに受信し、前記クロックセレクタは前記復号・同期化モジュールの出力端から各チャンネルクロックセレクタのイネーブル制御信号CLKEN0/1/・・・/x<n:0>を受信し、前記クロックセレクタは前記入力クロック信号CLKIN<n:0>をさらに受信し、
前記駆動方法は、前記復号・同期化モジュールによって各チャンネルクロック位相初期設定値PHASEINIT0/1/・・・/x<m:0>を通じて位相初期値をロードし保存し、前記位相初期値を対応のイネーブル制御信号に復号し、次に各イネーブル制御信号を同期化処理し、同期化処理された各イネーブル制御信号CLKEN0/1/・・・/x<n:0>をそれぞれ対応のクロックセレクタユニットに送信し、前記クロックセレクタユニットは前記位相初期値に応じて入力クロック信号CLKIN<n:0>から対応位相の入力クロック信号を出力として選択するステップを含む、を特徴とする駆動方法。
【請求項7】
前記駆動方法は、動的位相調整ステップをさらに含み、前記動的位相調整ステップでは、
前記カウンタ出力の動的位相調整後の新しい位相選択信号PHASENEW<m:0>を受信し、選択チャンネルイネーブル信号(EN0/1/2・・・/x<n:0>)に復号し、その中でn+1チャンネルのイネーブル信号のうち1チャンネルのみがハイレベルであり、残りのnチャンネルはローレベルであり、次に前記イネーブル信号(EN0/1/2・・・/x<n:0>)を同期化処理し、同期化処理後、イネーブル制御信号CLKEN0/1...x<n:0>を出力し、前記同期化処理は前記入力クロックCLKIN<n:0>の立下がりエッジでトリガされ、前記イネーブル制御信号CLKEN0/1...x<n:0>をそれぞれ対応のクロック選択ユニットに同期入力制御として送信する、ことを特徴とする請求項6に記載の駆動方法。
【請求項8】
位相調整時に出力チャンネルを変更しない場合、前記動的位相調整ステップは、
カウンタが動的位相調整方向DIRECTIONから動的位相調整の方向を取得し、この時動的位相調整チャンネル選択信号SEL<m:0>は変更せず、動的位相調整選択チャンネル位相選択信号をトリガするロード信号LOADがローレベルのままであり、次に現在チャンネル位相選択値PHASENOW<m:0>を前記カウンタにロードした後、STEP_N信号がトリガされ、動的位相調整方向に応じて、前記カウンタはSTEP_N立上りエッジでカウントアップまたはカウントダウンし、カウンタから新しい位相選択値PHASENEW<m:0>を出力して前記復号・同期化モジュールに送信し、前記復号・同期化モジュール内で復号されて入力クロックのクロックドメインに同期され、新しいイネーブル制御信号を出力し、前記イネーブル制御信号を対応のクロックセレクタユニットに送信し、前記クロックセレクタユニットは前記イネーブル制御信号に応じて新しい位相クロックに切り替えるステップをさらに含む、ことを特徴とする請求項6に記載の駆動方法。
【請求項9】
位相調整時に出力チャンネルを変更しない場合、前記位相調整ステップは、
前記カウンタが動的位相調整方向DIRECTIONに応じて動的位相調整方向を選択する場合、動的位相調整チャンネル選択信号SEL<m:0>から位相調整のチャンネルを選択し、前記カウンタの動的位相調整選択チャンネルの現在位相選択信号PHASENOW<m:0>を前記カウンタに送信した後、LOAD信号をトリガして一定時間でハイレベルに保持し、現在チャンネル位相選択値PHASENOW<m:0>をカウンタにロードした後、STEP_N信号をトリガし、調整方向に応じて、前記カウンタはSTEP_N立上りエッジでカウントアップまたはカウントダウンし、前記カウンタは新しい位相選択値PHASENEW<m:0>を復号・同期化モジュールに出力し、このモジュール内で復号されて入力クロックCLKINのクロックドメインに同期され、新しいイネーブル制御信号を出力し、イネーブル制御信号を対応の前記クロックセレクタユニットに送信し、前記クロックセレクタユニットは新しい位相クロックに切り替えるステップをさらに含む、ことを特徴とする請求項6に記載の駆動方法。
【請求項10】
請求項1~5のいずれか1項に記載のクロック信号生成回路を含む、ことを特徴とする電子装置。
【請求項11】
プロセッサによって実行されると請求項6~9のいずれか1項に記載の駆動方法を実施するコンピューター指令が記憶される、ことを特徴とするコンピューター可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタル回路の技術分野に関し、特にクロック信号生成回路、駆動方法および電子装置に関する。
【背景技術】
【0002】
クロック信号は、デジタル回路システムに不可欠な信号であり、異なる設計によってクロック信号のクロック周波数、デューティ比や位相に対する要求も異なる。デジタル回路の集積化や複雑化が進むにつれて、同期回路システムのクロック信号生成もますます複雑になってきている。FPGA(Field Programmable Gate Array、フィールドプログラマブルゲートアレイ)のようなVLSI(Very Large Scale Integration、超大規模集積回路)システムの場合、異なる位相の複数のクロック信号が必要であり、同時にあるシステムアプリケーションではデータ信号とクロック信号が一定の位相関係を保持する要求があるため、一般にクロック信号の位相を動的に調整して回路のシーケンスや機能の正確性を保証する必要がある。
【0003】
よく使用されているクロック信号位相選択方法は、
図1に示すように、入力クロックCLKIN<n:0>間に特定の位相関係を持ち、つまりクロック間の位相が連続し、1クロック周期をカバーでき、この方法ではMUX(マルチプレクサー)によって目標位相クロックを出力として選択する。この方法では、選択信号SELx<m:0>は非同期信号であるため、選択信号を変更することによって異なる位相のクロックを切り替える場合、出力クロックにグリッチが発生し、その後の論理回路の機能が異常となる可能性がある。
【発明の概要】
【0004】
本発明の実施例はクロック信号生成回路、駆動方法および電子装置を提供し、本発明で生成されたクロック信号の位相は動的に調整および切り替えられ、かつ位相を動的に調整および切り替える場合グリッチ現象が発生しない。
【0005】
第1側面によれば、本発明の実施例はクロック信号生成回路を提供し、
クロック位相調整要求に応じてカウント値から位相設定値を生成するためのカウンタと、
初期位相実現過程中、位相初期値をロードし、位相調整過程中、カウンタから前記位相設定値を受信し、前記位相初期値または前記位相設定値をイネーブル制御信号に復号し、前記イネーブル制御信号を同期化処理して出力し、前記同期化処理により、前記イネーブル制御信号を調整する必要のあるクロックドメインに同期させる、復号・同期化モジュールと、
同期化処理されたイネーブル制御信号を受信し、前記イネーブル制御信号に応じてマルチチャンネル入力クロック信号から、前記位相初期値または前記位相設定値の位相に対応する入力クロック信号を出力として選択し、前記マルチチャンネル入力クロック信号の位相が連続し、1クロック周期をカバーできるクロックセレクタと、を含む。
【0006】
選択可能に、前記クロックセレクタは、1つまたは複数のクロックセレクタユニットを含み、前記復号・同期化モジュールは1つまたは複数のイネーブル制御信号を出力し、前記イネーブル制御信号は前記クロックセレクタユニットに1対1で対応し、前記クロックセレクタユニットは、前記復号・同期化モジュールから対応の同期処理されたイネーブル制御信号を受信し、対応の同期処理された前記イネーブル制御信号に応じて前記マルチチャンネル入力クロック信号から、前記位相初期値または前記位相設定値の位相に対応する入力クロック信号を出力として選択するために使用される。
【0007】
選択可能に、前記復号・同期化モジュールは、前記初期位相設定値または前記位相設定値を複数のイネーブル制御信号に復号し、前記複数のイネーブル制御信号のうち1つのみがハイレベルであり、残りはローレベルであるデコーダと、前記イネーブル制御信号を同期化処理して出力し、同期化処理されたイネーブル制御信号は入力クロックの立下がりエッジでトリガされる、同期回路と、を含む。
【0008】
選択可能に、前記デコーダは3-8復号回路であり、前記同期回路は第1フリップフロップ、第2フリップフロップおよび8つの出力フリップフロップを含み、
前記第1フリップフロップのトリガ端に前記入力クロック信号中の第1入力クロック信号が入力され、前記第1フリップフロップの入力端は前記3-8復号回路の出力端に接続され、前記第1フリップフロップ出力信号のうちローレベルからハイレベルまでの第1~第4の信号が、前記8つの出力フリップフロップ中の第1~第4出力フリップフロップの入力端に出力され、前記第1フリップフロップは、前記第1入力クロック信号の立上りエッジでトリガされて前記3-8復号回路の出力信号をサンプリングするために使用され、
前記第2フリップフロップのトリガ端に前記第1入力クロック信号が入力され、前記第1フリップフロップの入力端は前記第1フリップフロップの出力信号中のローレベルからハイレベルまでの第4~第8信号を受信し、前記第2フリップフロップの出力端は前記8つの出力フリップフロップ中の第5~第8出力フリップフロップの入力端に接続され、前記第2フリップフロップは、前記第1フリップフロップ出力信号のローレベルからハイレベルまでの第4~第8出力信号をサンプリングするために使用され、前記第1入力クロック信号の立下がりエッジでサンプリングされた後出力し、
前記8つの出力フリップフロップ中のトリガ端にそれぞれ前記入力クロック信号中の1つが入力され、前記8つの出力フリップフロップはそれぞれ対応の入力クロック信号のクロック立下がりエッジでサンプリングされた後出力する。
【0009】
選択可能に、前記クロックセレクタユニットは、入力端から切り替えられたクロック信号に対応するイネーブル制御信号を受信する第1ANDゲートと、入力端から目標切り替えクロック信号対応のイネーブル制御信号を受信する第2ANDゲートと、2つの入力端に前記第1ANDゲートの出力端と前記第2ANDゲートの出力端がそれぞれ接続され、かつ出力端が前記クロックセレクタの出力端であるORゲートとを含み、そのうちに、前記クロック選択ユニットは出力チャンネルに1対1で対応し、前記切り替えられたクロック信号とは位相調整前に出力チャンネルに対応する出力クロックの位相と同様である入力クロックを指し、前記目標切り替えクロック信号とは、位相調整後に出力チャンネルに対応する出力クロックの位相と同様である入力クロックを指す。
【0010】
第2側面によれば、本発明の実施例は、前記クロック信号生成回路の駆動方法を提供し、前記カウンタは、動的位相調整トリガ信号STEP_N、動的位相調整方向DIRECTION、動的位相調整チャンネル選択信号SEL<m:0>、動的位相調整選択チャンネル位相選択信号のロード信号LOADおよび動的位相調整選択チャンネルの現在位相選択信号PHASENOW<m:0>を受信し、前記復号・同期化モジュールは前記カウンタの出力端から動的位相調整後の新しい位相選択信号PHASENEW<m:0>を受信し、前記復号・同期化モジュールは、入力クロック信号CLKIN<n:0>、動的位相調整トリガ信号STEP_N、動的位相調整チャンネル選択信号SEL<m:0>および各チャンネルクロック位相初期設定値PHASEINIT0/1/・・・/x<m:0>をさらに受信し、前記クロックセレクタは前記復号・同期化モジュールの出力端から各チャンネルクロックセレクタのイネーブル制御信号CLKEN0/1/・・・/x<n:0>を受信し、前記クロックセレクタは前記入力クロック信号CLKIN<n:0>をさらに受信し、
前記駆動方法は、前記復号・同期化モジュールによって各チャンネルクロック位相初期設定値PHASEINIT0/1/・・・/x<m:0>を通じて位相初期値をロードし保存し、前記位相初期値を対応のイネーブル制御信号に復号し、次に各イネーブル制御信号を同期化処理し、同期化処理された各イネーブル制御信号CLKEN0/1/・・・/x<n:0>をそれぞれ対応のクロックセレクタユニットに送信し、前記クロックセレクタユニットは前記位相初期値に応じて入力クロック信号CLKIN<n:0>から対応位相の入力クロック信号を出力として選択するステップを含む。
【0011】
前記駆動方法は、動的位相調整ステップをさらに含み、前記動的位相調整ステップでは、
前記カウンタ出力の動的位相調整後の新しい位相選択信号PHASENEW<m:0>を受信し、選択チャンネルイネーブル信号(EN0/1/2・・・/x<n:0>)に復号し、その中でn+1チャンネルのイネーブル信号のうち1チャンネルのみがハイレベルであり、残りのnチャンネルはローレベルであり、次に前記イネーブル信号(EN0/1/2・・・/x<n:0>)を同期化処理し、同期化処理後、イネーブル制御信号CLKEN0/1...x<n:0>を出力し、前記同期化処理は前記入力クロックCLKIN<n:0>の立下がりエッジでトリガされ、前記イネーブル制御信号CLKEN0/1...x<n:0>をそれぞれ対応のクロック選択ユニットに同期入力制御として送信する。
【0012】
位相調整時に出力チャンネルを変更しない場合、前記動的位相調整ステップは、カウンタが動的位相調整方向DIRECTIONから動的位相調整の方向を取得し、この時動的位相調整チャンネル選択信号SEL<m:0>は変更せず、動的位相調整選択チャンネル位相選択信号をトリガするロード信号LOADがローレベルのままであり、次に現在チャンネル位相選択値PHASENOW<m:0>を前記カウンタにロードした後、STEP_N信号がトリガされ、動的位相調整方向に応じて、前記カウンタはSTEP_N立上りエッジでカウントアップまたはカウントダウンし、カウンタから新しい位相選択値PHASENEW<m:0>を出力して前記復号・同期化モジュールに送信し、前記復号・同期化モジュール内で復号されて入力クロックのクロックドメインに同期され、新しいイネーブル制御信号を出力し、前記イネーブル制御信号を対応のクロックセレクタユニットに送信し、前記クロックセレクタユニットは前記イネーブル制御信号に応じて新しい位相クロックに切り替えるステップをさらに含む。
【0013】
位相調整時に出力チャンネルを変更しない場合、前記位相調整ステップは、前記カウンタが動的位相調整方向DIRECTIONに応じて動的位相調整方向を選択する場合、動的位相調整チャンネル選択信号SEL<m:0>から位相調整のチャンネルを選択し、前記カウンタの動的位相調整選択チャンネルの現在位相選択信号PHASENOW<m:0>を前記カウンタに送信した後、LOAD信号をトリガして一定時間でハイレベルに保持し、現在チャンネル位相選択値PHASENOW<m:0>をカウンタにロードした後、STEP_N信号をトリガし、調整方向に応じて、前記カウンタはSTEP_N立上りエッジでカウントアップまたはカウントダウンし、前記カウンタは新しい位相選択値PHASENEW<m:0>を復号・同期化モジュールに出力し、このモジュール内で復号されて入力クロックCLKINのクロックドメインに同期され、新しいイネーブル制御信号を出力し、イネーブル制御信号を対応の前記クロックセレクタユニットに送信し、前記クロックセレクタユニットは新しい位相クロックに切り替えるステップをさらに含む。
【0014】
第3側面によれば、本発明の実施例は、上記いずれか1項に記載のクロック信号生成回路を含む電子装置をさらに提供する。
【0015】
第4側面によれば、本発明の実施例は、プロセッサによって実行されると、上記のいずれか1項に記載の駆動方法を実施するコンピューター指令が記憶されるコンピューター可読記憶媒体をさらに提供する。
【発明の効果】
【0016】
本発明の実施例によって提供されるクロック信号生成回路、駆動方法および電子装置では、カウンタがクロック位相調整要求に応じて位相設定値を生成し、復号・同期化モジュールを通じてクロックセレクタに送信し、クロックセレクタは位相設定値に応じてマルチチャンネル入力クロック信号から前記位相設定値の位相に対応する入力クロック信号を出力として選択し、その中で前記マルチチャンネル入力クロック信号の位相が連続し、1クロック周期をカバーできる。入力クロックセレクタの制御信号は復号・同期化モジュール出力の信号で制御されるため、位相を動的に調整および切り替える場合にグリッチが発生しない。
【図面の簡単な説明】
【0017】
【
図1】よく使用されているクロック信号位相選択方法の概略図である。
【
図2】本発明の実施例によって提供されるクロック信号生成回路の概略図である。
【
図3】本発明の実施例によって提供される復号・同期化モジュールを構成する例示的な3-8復号回路の概略図である。
【
図4】本発明の実施例によって提供される復号・同期化モジュールを構成する例示的な同期回路の概略図である。
【
図5】本発明の実施例によって提供される
図2に示すクロック信号生成回路に適用される例示的なクロックセレクタの簡単な論理概略図である。
【
図6】本実施例のクロック信号生成回路に適用されるクロック初期位相シーケンスの概略図である。
【
図7】本実施例のクロック信号生成回路に適用されるクロック位相調整シーケンスの概略図である。
【
図8】本実施例のクロック信号生成回路に適用されるクロック位相調整内部信号シーケンスの概略図である。
【発明を実施するための形態】
【0018】
本発明の実施例の目的、技術的解決手段および利点をより明らかにするために、以下、本発明の実施例の図面を参照して、本発明の実施例の技術的解決手段を明確かつ完全に説明するが、説明される実施例は本発明の一部の実施例に過ぎず、すべての実施例ではないことは言うまでもない。本発明の実施例に基づいて、当業者は、創造的な労働をすることなく得られた他の実施例は、すべて本発明の保護範囲に含まれる。
【0019】
現在、
図1に示すクロック信号位相選択方法では選択信号SELx<m:0>は非同期信号であるため、選択信号を変更することにより異なる位相クロックを切り替える場合、出力クロックにグリッチが発生する可能性があり、その後の論理回路の機能が異常となるため、
図1に示す方法は、通常静的選択クロックを実現する。本発明者は、本発明を実現する過程中、現在、主に、(1)クロックの位相を動的に調整することができない、(2)クロックの位相を動的に調整および切り替えても、切り替えるときクロックにグリッチglitchが発生する可能性があるという技術的課題があることを見だした。
【0020】
上記の主な問題を解決するために、本発明者は、クロック位相を動的に調整する回路の新しい設計案を提出し、クロック信号生成回路は1つのカウンタとクロックセレクタ回路のみで、他の論理回路と組み合わせてクロック信号位相を調整することができ、動的な正逆サイクル調整(1クロックサイクル以上の遅延または前進を累積可能)を実現し、出力クロックにグリッチが発生しない。以下、図面を参照して本出願の解決手段を説明する。
【0021】
図2に示すように、本発明の実施例によって提供されるクロック信号生成回路は、カウンタ(COUNT)11、復号・同期化モジュール(DECODE&SYNC)12とクロックセレクタ(PHASESEL0/1../x)13を含む。
【0022】
カウンタ11は、クロック位相調整要求に応じてカウント値から位相設定値を生成するために使用される。
【0023】
復号・同期化モジュール12は、初期位相実現過程中、位相初期値をロードし、位相調整過程中カウンタ11から前記位相設定値を受信し、前記位相初期値または前記位相設定値をイネーブル制御信号に復号し、前記イネーブル制御信号を同期化処理した後出力するために使用され、前記同期化処理は前記イネーブル制御信号を調整する必要のあるクロックドメインに同期させることである。
【0024】
クロックセレクタ13は、同期化処理されたイネーブル制御信号を受信し、前記イネーブル制御信号に応じてマルチチャンネル入力クロック信号から前記位相初期値または前記位相設定値の位相に対応する入力クロック信号を出力として選択し、前記マルチチャンネル入力クロック信号の位相が連続し、1クロック周期をカバーできる。
【0025】
本実施例は、カウンタ11は、1周期ずつカウントアップまたはカウントダウンし、または他のステップでカウントするために使用される。クロック位相調整要求に応じて、インターフェース信号を調整し、一定のシーケンスでカウンタ値をカウンタカウント値することにより、位相調整情報をデジタル位相設定値に変換することができる。例えば、調整後の位相が大きいほど、カウント時間が長くなり、位相設定値を表す出力数は大きくなる。
【0026】
図2および
図6に示すように、いくつかの実施例では、カウンタ11は、例えばカウンタ11が動的位相調整トリガ信号STEP_N、動的位相調整方向DIRECTION、動的位相調整チャンネル選択信号SEL<m:0>、動的位相調整選択チャンネル位相選択信号のロード信号LOADおよび動的位相調整選択チャンネルの現在位相選択信号PHASENOW<m:0>を受信し、前記復号・同期化モジュールに動的位相調整後の新しい位相選択信号PHASENEW<m:0>を出力してもよい。カウンタの実現過程は以下のとおりであり:カウンタ11はDIRECTION(動的位相調整方向情報を含む)でカウンタをカウントアップまたはカウントダウンし、その後LOAD信号をトリガし(一定時間にハイレベルで保持する)、選択チャンネル位相選択値PHASENOW<m:0>をカウンタにロードし、クロック信号STEP_Nの立上りエッジで、PHASENOW<m:0>の基にカウントアップまたはカウントダウンして、新しい位相選択信号PHASENEW<m:0>を出力する。
【0027】
本実施例の復号・同期化モジュール12は、初期位相設定値を記憶し、カウンタ11の出力を受信して、どのチャンネルの出力クロックが位相調整必要があるかを判定した後位相設定値を更新し、前記位相初期値または前記位相設定値に基づいてイネーブル制御信号を生成するために使用される。
【0028】
図2および
図6に示すように、選択可能な実施例では、復号・同期化モジュール12は、初期位相過程中、初期位相設定値PHASEINIT0/1...x <m:0>をロードし、各チャンネルに対応する制御信号EN0/1...x<n:0>に復号した後、これらの制御信号EN0/1...x<n:0>を調整する必要のあるクロックドメインに同期させ、さらに同期後のイネーブル制御信号CLKEN0/1...x<n:0>を出力して、初期位相過程のクロックセレクタモジュール(後のモジュール)から制御信号を入力する同期化処理を実現し、また、位相を動的に調整する過程中、カウンタ11から出力されたPHASENEW<m:0>を受信した後、選択チャンネルEN0/1...x<n:0>イネーブル制御信号に復号し、次に制御信号EN0/1...x<n:0>を調整する必要のあるクロックドメインに同期させ、さらに同期後のイネーブル制御信号CLKEN0/1...x<n:0>を出力して、位相を動的に調整する過程中クロックセレクタモジュールから制御信号を入力する同期化処理を実現するために使用される。
【0029】
選択可能な実施例では、クロックセレクタ13は、1つまたは複数のクロックセレクタユニット(PHASESEL0/1../x)を含み、前記復号・同期化モジュール12は1つまたは複数のイネーブル制御信号を出力し、前記イネーブル制御信号は前記クロックセレクタユニットに1対1で対応し、前記クロックセレクタユニットは、前記復号・同期化モジュール12から対応の同期処理されたイネーブル制御信号を受信し、対応の同期処理された前記イネーブル制御信号に応じて前記マルチチャンネル入力クロック信号CLKIN<n:0>から、前記位相初期値または前記位相設定値の位相に対応する入力クロック信号を出力として選択する。
【0030】
選択可能な実施例では、前記復号・同期化モジュール12は、前記初期位相設定値または前記位相設定値を複数のイネーブル制御信号に複合し、前記複数のイネーブル制御信号のうち1チャンネルのみがハイレベルであり、残りはローレベルであるデコーダと、前記イネーブル制御信号を同期化処理して出力するために使用され、同期化処理されたイネーブル制御信号は入力クロックCLKIN<n:0>の立下がりエッジでトリガされる同期回路とを含む。
【0031】
図3に示すように、前記デコーダは3-8復号回路であってもよい。
【0032】
図4に示すように、前記同期回路は、第1フリップフロップ、第2フリップフロップおよび8つの出力フリップフロップを含み、前記第1フリップフロップのトリガ端に前記入力クロック信号CLKIN<n:0>中の第1入力クロック信号CLCK<0>が入力され、前記第1フリップフロップの入力端は前記3-8復号回路の出力端に接続され、前記第1フリップフロップ出力信号中のローレベルからハイレベルまでの第1~第4位<3:0>が前記8つの出力フリップフロップ中の第1~第4出力フリップフロップの入力端に出力され、前記第1フリップフロップは、前記第1入力クロック信号CLCK<0>立上りエッジでトリガされて前記3-8復号回路の出力信号をサンプリングするために使用され、前記第2フリップフロップのトリガ端に前記第1入力クロック信号CLCK<0>が入力され、前記第1フリップフロップの入力端は前記第1フリップフロップの出力信号のうちローレベルからハイレベルまでの第4~第8信号<7:4>を受信し、前記第2フリップフロップの出力端は前記8つの出力フリップフロップ中の第5~第8出力フリップフロップの入力端に接続され、前記第2フリップフロップは、前記第1フリップフロップ出力信号のローレベルからハイレベルまでの第4~第8出力信号<7:4>をサンプリングするために使用され、前記第1入力クロック信号CLCK<0>の立下がりエッジでサンプリングされた後出力し、前記8つの出力フリップフロップ中のトリガ端にそれぞれ前記入力クロック信号CLKIN<n:0>中の1つが入力され、前記8つの出力フリップフロップはそれぞれ対応の入力クロック信号CLKIN<n:0>のクロック立下がりエッジでサンプリングされた後出力する。
【0033】
本実施例のクロックセレクタは、復号・同期化モジュールから出力されたイネーブル制御信号CLKEN0/1...x<n:0>を受信し、入力されたイネーブル制御信号CLKEN0/1...x<n:0>(クロック同期済)に応じて変化し、クロックセレクタモジュール内で適切な論理設計に従って、新しい位相クロックに切り替えて出力する。新しい位相とはイネーブル制御信号CLKEN0/1...x<n:0>に含まれる位相初期値または前記位相設定値のことである。
【0034】
クロックセレクタは、1つまたは複数のクロック選択ユニットを含み、クロック選択ユニットは出力チャンネル(または出力クロック)に1対1で対応する。クロック選択ユニットは復号・同期化モジュールから対応の出力チャンネルの位相設定値を取得した後、マルチチャンネル入力クロック信号から前記位相設定値の位相に対応する入力クロック信号を出力として選択する。
【0035】
図5に示すように、選択可能な実施例では、前記クロックセレクタユニットは、入力端が切り替えられたクロック信号と対応のイネーブル制御信号を受信する第1ANDゲートと、入力端が目標切り替えクロック信号と対応のイネーブル制御信号を受信する第2ANDゲートと、2つの入力端に前記第1ANDゲートの出力端と前記第2ANDゲートの出力端が接続され、出力端が前記クロックセレクタの出力端であるORゲートと、を含む。ここでの切り替えられたクロック信号とは位相調整前にこのチャンネルの出力クロック位相と同様である入力クロックを指し、目標切り替えクロック信号とは相調整後にこのチャンネルの出力クロック位相と同様である入力クロックを指す。
【0036】
本発明の実施例は、上記クロック信号生成回路の駆動方法をさらに提供し、初期位相調整の実現過程中、この駆動方法は、前記復号・同期化モジュール12が各チャンネルクロック位相初期設定値PHASEINIT0/1/・・・/x<m:0>を通じて位相初期値をロードおよび記憶し、前記位相初期値を対応のイネーブル制御信号に復号した後、各イネーブル制御信号を同期化処理し、同期化処理された各イネーブル制御信号CLKEN0/1/・・・/x<n:0>をそれぞれ対応のクロックセレクタユニットに送信し、前記クロックセレクタユニットは前記位相初期値に応じて入力クロック信号CLKIN<n:0>から対応位相の入力クロック信号を出力として選択するステップを含む。
【0037】
前記駆動方法は、動的位相調整ステップをさらに含み、前記動的位相調整ステップは、前記カウンタ11から出力された動的位相調整後の新しい位相選択信号PHASENEW<m:0>を受信し、選択チャンネルイネーブル信号(EN0/1/2・・・/x<n:0>)に復号し、その中でn+1チャンネルのイネーブル信号のうち1チャンネルのみがハイレベルであり、残りのnチャンネルがローレベルであり、次に前記イネーブル信号(EN0/1/2・・・/x<n:0>)を同期化処理し、同期化処理後、イネーブル制御信号CLKEN0/1...x<n:0>を出力し、前記同期化処理は前記入力クロックCLKIN<n:0>の立下がりエッジでトリガされ、前記イネーブル制御信号CLKEN0/1...x<n:0>をそれぞれ対応のクロック選択ユニットに同期入力制御として送信するステップを含む。
【0038】
以下、図面を参照して、本発明によって提供されるクロック信号生成回路およびその駆動方法をさらに説明する。
【0039】
図2に示すように、いくつかの実施例では、カウンタ11は動的位相調整トリガ信号STEP_N、動的位相調整方向DIRECTION、動的位相調整チャンネル選択信号SEL<m:0>、動的位相調整選択チャンネル位相選択信号のロード信号LOADおよび動的位相調整選択チャンネルの現在位相選択信号PHASENOW<m:0>を受信し、復号・同期化モジュール12に動的位相調整後の新しい位相選択信号PHASENEW<m:0>を出力する。
【0040】
前記復号・同期化モジュール12はカウンタ11の出力端から動的位相調整後の新しい位相選択信号PHASENEW<m:0>を受信し、前記復号・同期化モジュールは、入力クロック信号CLKIN<n:0>、動的位相調整トリガ信号STEP_N、動的位相調整チャンネル選択信号SEL<m:0>および各チャンネルクロック位相初期設定値PHASEINIT0/1/・・・/x<m:0>をさらに受信する。前記クロックセレクタ13に各チャンネルクロックセレクタのイネーブル制御信号CLKEN0/1/・・・/x<m:0>を出力する。
【0041】
前記クロックセレクタ13は、複数のクロックセレクタユニット(PHASESEL0/1../x)を含み、各クロックセレクタユニット(PHASESEL0/1../x)は前記復号・同期化モジュール12の出力端からそれぞれ対応チャンネルのイネーブル制御信号CLKEN0/1/・・・/x<m:0>を受信し、前記クロックセレクタは、入力クロック信号CLKIN<n:0>をさらに受信し、出力信号は出力クロックはCLKOUT0/1/・・・/xである。
【0042】
カウンタの実現過程は以下のとおりであり:動的位相調整方向DIRECTIONでカウンタのカウントアップまたはカウントダウンを制御し、次にLOAD信号をトリガし(一定時間にハイレベルで保持する)、選択チャンネル位相選択値PHASENOW<m:0>をカウンタにロードし、クロック信号STEP_Nの立上りエッジで、PHASENOW<m:0>の基にカウントアップまたはカウントダウンして、新しい位相選択信号PHASENEW<m:0>を出力する。
【0043】
復号・同期化モジュールの実現過程は以下のとおりであり:初期位相の実現過程中、まず位相初期値(PHASEINIT0/1/2・・・/x<m:0>)をロードし、各イネーブル信号(EN0/1/2・・・/x<n:0>)に復号し、その中でn+1チャンネルのイネーブル信号のうち1チャンネルのみがハイレベルであり、残りのnチャンネルがローレベルであり、その後イネーブル信号(EN0/1/2・・・/x<n:0>)を同期化処理し、同期後イネーブル制御信号CLKEN0/1...x<n:0>を出力し、この出力信号が入力クロックCLKIN<n:0>の立下がりエッジでトリガされ、最後にイネーブル信号CLKEN0/1...x<n:0>をそれぞれ各クロック選択ユニットに同期入力制御として送信する。
【0044】
図3に示すように、m=2の場合を例にすると、3-8復号回路によって復号し、PHASE<2:0>設定値が決定されると、出力されたイネーブル信号EN<7:0>の1チャンネルのみがハイレベルであり、残りの7チャンネルがすべてローレベルである。その後、イネーブル信号(EN0/1/2・・・/x<n:0>)を同期化処理し、同期後イネーブル制御信号CLKEN0/1...x<n:0>を出力する。
図4に示すように、n=7の場合を例にすると、復号回路はEN<7:0>を出力し、まずCLKIN<0>の立上りエッジでDFF0をトリガしサンプリングして出力し、入力クロックCLKIN<7:0>の位相関係およびクロックとイネーブル制御信号間の制御関係に従って、サンプリング後のイネーブル信号<7:0>を2組に分け、その中でローbit<3:0>を直接対応のDFFに送信し、対応のクロック立下がりエッジでサンプリングされた後出力し、ハイbit<7:4>についてはCLKIN<0>立下がりエッジでDFF1をトリガし再度サンプリングした後対応DFFに送信し、対応クロック立下がりエッジでサンプリングされた後出力する。最後にイネーブル信号CLKEN0/1...x<n:0>をそれぞれ各クロックセレクタに同期入力制御として送信する。
【0045】
動的位相調整の実現過程中、カウンタ11から出力されたPHASENEW<m:0>を受信し選択チャンネルイネーブル信号(EN0/1/2・・・/x<n:0>)に復号し、その中でn+1チャンネルのイネーブル信号のうち1チャンネルのみがハイレベルであり、残りのnチャンネルがローレベルであり、その後イネーブル信号(EN0/1/2・・・/x<n:0>)を同期化処理し、同期後イネーブル制御信号CLKEN0/1...x<n:0>を出力し、この出力信号は入力クロックCLKIN<n:0>の立下がりエッジでトリガされ、最後にイネーブル制御信号CLKEN0/1...x<n:0>をそれぞれ各クロックセレクタに同期入力制御として送信する。
【0046】
図6に示すように、出力クロックCLKOUT0/1/2初期位相の実現過程の場合を例にすると、その位相初期値PHASEINIT0/1/2<m:0>はそれぞれ(m+1)’b0・・・000/0・・・001/0・・・010であり、隣接する2つのクロックの初期値の差が(m+1)’b0・・・001であり、つまり出力クロックCLKOUT0/1/2の隣接する2つのクロック位相差がT/(n+1)であり、それぞれ復号・同期処理して生成されたイネーブル制御信号CLKEN0/1/2<n:0>はそれぞれ(n+1)’b0・・・000/0・・・010/0・・・100である。その中で各イネーブル信号のうち1チャンネルのみが1であり、残りのnチャンネルがすべて0である。イネーブル制御信号をそれぞれ各クロックセレクタに送信して対応の位相クロックを出力として選択する。
【0047】
クロックセレクタの実現過程は以下のとおりであり:切り替えられたクロック信号と対応のイネーブル制御信号をAND演算(AND論理処理)して信号Aを取得し、目標切り替えクロック信号と対応のイネーブル制御信号をAND演算(AND論理処理)して信号Bを取得し、次に信号A+BでOR演算(OR論理処理)して、グリッチフリーのクロック切り替え過程を実現でき、簡単な論理が
図5に示される。
【0048】
クロック位相を動的に調整する過程はデジタルインターフェースを通じて一定のシーケンスで実現され、
図7にクロック位相調整シーケンスの概略図を示す。
【0049】
チャンネルを変更せず動的に調整する過程は以下のとおりであり:まずDIRECTIONを通じて動的位相調整方向を選択し、この時SEL<m:0>は変更せず、次にLOAD信号をトリガして一定時間にハイレベルで保持し、現在チャンネル位相選択値PHASENOW<m:0>をカウンタにロードした後、STEP_N信号をトリガし、調整方向に応じて、カウンタがSTEP_N立上りエッジでカウントアップまたはカウントダウンし、カウンタは新しい位相選択値PHASENEW<m:0>を出力して復号・同期化モジュールに送信し、このモジュール内で復号してCLKINクロックドメインに同期させ、新しいイネーブル制御信号を出力し、最後にイネーブル制御信号を対応のクロックセレクタモジュールに送信して、新しい位相クロックに切り替える。
【0050】
図8に示すように、出力クロックCLKOUT0/1の場合を例にすると、その位相初期値PHASEINIT0/1<m:0>はそれぞれ(m+1)’b0・・・000/0・・・001であり、2つのクロック初期値の差が(m+1)’b0・・・001であり、つまり出力クロックCLKOUT0/1初期位相差がT/(n+1)であり、CLKOUT0を選択して動的に後進調整し、この時に、PHASENOWはPHASEINIT0<m:0>、つまり(m+1)’b0・・・000に相当し、STEP_N信号をトリガして新しい位相選択値を生成し、カウンタはPHASENOWの基にカウントアップしてPHASENEWに更新し、この時に、PHASENEWは(m+1)’b0・・・000から(m+1)’b0・・・001に変わり、新しい位相選択値を復号・同期化モジュールで複合および同期化した後入力クロックCLKIN<7:0>クロックドメインに切り替え、この時に、CLKEN0<0>はハイレベルからローレベルに切り替えられ、CLKEN0<0>はローレベルからハイレベルに切り替えられ、イネーブル制御信号をクロックセレクタPHASESEL0に送信しCLKIN<1>を出力クロックとして選択し、動的な調整後、出力クロックCLKOUT0/1位相差が初期T/(n+1)から同位クロックに変わる。
【0051】
動的な調整によりチャンネルを変更する過程は以下のとおりであり、DIRECTIONから動的位相調整方向を選択する場合、同時にSEL<m:0>を変更し、目標チャンネル現在位相選択値をPHASENOW<m:0>に送信し、次にLOAD信号をトリガして一定時間にハイレベルで保持し、現在チャンネル位相選択値PHASENOW<m:0>をカウンタにロードした後、STEP_N信号をトリガし、調整方向に応じて、カウンタがSTEP_N立上りエッジでカウントアップまたはカウントダウンし、カウンタが新しい位相選択値PHASENEW<m:0>を出力して復号・同期化モジュールに送信し、このモジュール内で復号してCLKINクロックドメインに同期させ、新しいイネーブル制御信号を出力し、最後にイネーブル制御信号を対応のクロックセレクタモジュールに送信し、新しい位相クロックに切り替える。
【0052】
図7に示すように、各信号は対応のシーケンス関係を満たすことで、現在の動的な調整が効果的に行われる。
【0053】
本発明の実施例によって提供されるクロック信号生成回路およびその駆動方法は、タイマーの設計思想を採用し、クロック位相の正逆サイクル調整を実現し、出力クロックにグリッチが発生しなく、また、マルチチャンネルクロック間で動的に切り替えて位相調整が可能である。
【0054】
本発明の実施例によって提供されるクロック信号生成回路は、あるチャンネルの出力クロック信号位相を連続的に調整する必要があるマルチクロックの分野に特に好適であり、アプリケーション要求に応じて、本実施例によって提供されるクロック信号生成回路は、特定のデジタルインターフェースを通じて一定のシーケンスでクロック位相を連続的に調整することができる。
【0055】
本発明の実施例は、電子装置をさらに提供し、前記電子装置は、上記のいずれか1項に記載のクロック信号生成回路を含む。
【0056】
本発明の実施例は、コンピューター可読記憶媒体をさらに提供し、その中で、前記コンピューター可読記憶媒体にコンピューター指令が記憶され、前記コンピューター指令がプロセッサによって実行されると、上記のいずれか1項に記載の駆動方法を実施する。
【0057】
本発明は、デジタル回路システム(Digital Circuit System)のクロック位相を動的に調整する回路に関し、特にあるチャンネルのクロック位相を連続的に調整する必要があるマルチクロックの分野に特に好適であり、アプリケーション要求に応じて、特定のデジタルインターフェースを通じて一定のシーケンスでクロック位相を連続的に調整することができる。提案された設計シーケンスと思想によれば、クロック位相の正逆サイクル調整を実現し、出力クロックにグリッチが発生しなく、また、マルチチャンネルクロック間で切り替えて位相を調整することができる。
【0058】
当業者であれば、上記方法の実施例を実現する全部または一部の流れは、コンピュータープログラムを通じて関連するハードウェアに指示することで実施でき、前記プログラムがコンピューター可読取記憶媒体に記憶され、このプログラムが実行されると、上記のような各方法の実施例の手順を含むことを理解されたい。その中で、前記記憶媒体は、磁気ディスク、光ディスク、読み出し専用メモリ(Read-Only Memory、ROM)またはランダムアクセスメモリ(Random Access Memory、RAM)などであってもよい。
【0059】
以上、本発明の具体的な実施形態を説明したが、本発明の保護範囲はこれに限定されなく、当業者であれば、本発明で開示された技術的範囲内で、容易に想到した変更や置換は、すべて本発明の保護範囲に含まれる。したがって、本発明の保護範囲は特許請求の範囲の保護範囲に従うものとする。
【国際調査報告】