(57)【要約】【課題】最大遅延データパスによって決定される最大動作周波数よりも高速に動作させることを可能とし、結果としてパフォーマンスを向上させることができる順序回路及びその高速化方法を提供する。【解決手段】組み合わせ回路を含む順序回路は、クロック周期を超える遅延値を有するデータパスの動作開始を検出する検出回路（ＦＦ＿ＬとＸＮＯＲ）と、検出回路がそのデータパスの動作開始を検出した時のクロック周期のみを当該データパスのタイミングを満たすようなクロック周期へ変更する変更回路（ＧＣＢ）とを備える。【選択図】図１
2008245164.tif 000002
【特許請求の範囲】
【請求項１】
組み合わせ回路を含む順序回路であって、
クロック周期を超える遅延値を有するデータパスの動作開始を検出する検出手段と、
前記検出手段が前記データパスの動作開始を検出した時のクロック周期のみを、当該データパスのタイミングを満たすようなクロック周期へ変更する変更手段と、
を備えることを特徴とする順序回路。
【請求項２】
前記変更手段はＧＣＢ（Gated Clock Buffer）であって、当該ＧＣＢによりクロックパルスがゲイティングされることによってクロック周期が変更される、
ことを特徴とする請求項１記載の順序回路。
【請求項３】
前記変更手段はクロックコントローラであって、当該クロックコントローラの制御によって直接的にクロック周期が変更される、
ことを特徴とする請求項１記載の順序回路。
【請求項４】
前記検出手段及び前記変更手段は、前記順序回路の論理設計段階又は物理設計段階に挿入される、
ことを特徴とする請求項１乃至３の何れか一項記載の順序回路。
【請求項５】
組み合わせ回路を含む順序回路の高速化方法であって、
クロック周期を超える遅延値を有するデータパスの動作開始を検出し、
前記データパスの動作開始を検出した時のクロック周期のみを、当該データパスのタイミングを満たすようなクロック周期へ変更する、
ことを特徴とする順序回路の高速化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、順序回路を高速化する技術に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）の多くは、フリップフロップ回路（以下単に「ＦＦ」と言う）とランダムロジック回路（以下単に「ランダムロジック」と言う）とで構成されるクロック同期回路である。なお、ランダムロジック回路は組み合わせ回路であり、クロック同期回路は順序回路である。このクロック同期回路のパフォーマンスは、そのクロックの動作周波数で決定される。
【０００３】
図１１は、一般的なクロック同期回路の一例を模式的に示す図である。同図に示したように、一般的なクロック同期回路は、ＦＦ（クロック同期ＲＡＭ（Random Access Memory)／クロック同期ＲＯＭ（Read Only Memory）を含む）の間にランダムロジック（Random Logic）が挿入された回路構成を有する。このような構成のクロック同期回路において、クロック（Clock）の最大動作周波数は、ＦＦ−ＦＦ間の最も遅延の大きいデータパス（「最大遅延データパス」とも言う）によって決定される。
【０００４】
図１２は、図１１に示したクロック同期回路の一部である部分回路を抜き出した図である。図１３は、その部分回路中の各ＦＦ間のデータパスの遅延値（Delay time）を示す図である。
【０００５】
図１２に示した部分回路は、ソース（Source）側に３つのＦＦ（ＦＦ＿Ｓ１、ＦＦ＿Ｓ２、ＦＦ＿Ｓ３）と、エンド（End)側に３つのＦＦ（ＦＦ＿Ｄ１、ＦＦ＿Ｄ２、ＦＦ＿Ｄ３)と、更にその間にランダムロジック（Random Logic）とを有した回路である。この部分回路内にマルチサイクルパスが存在しない場合、部分回路の最大動作周波数は最も遅延値が大きいデータパスによって決定される。従って、図１３に示した各ＦＦ間のデータパスの遅延値の中でＦＦ＿Ｓ３からＦＦ＿Ｄ１へのデータパスの遅延値が最も大きくその値が5000psであることから、この部分回路の最大動作周波数は200MHz（クロック周期5000ps）となる。なお、ＦＦ＿Ｓ３からＦＦ＿Ｄ１以外のデータパスは全て4000ps以下の遅延値であるが、最大動作周波数は最大遅延データパス（ＦＦ＿Ｓ３からＦＦ＿Ｄ１）の遅延値（5000ps）のみによって決定される。
【０００６】
図１４は、その部分回路の200MHz動作時のタイミングチャートの一例を示す図である。同図に示したように、この場合のクロック周期は5000psとなることから、全てのデータパスのタイミングが満たされ、この部分回路は正常に動作する。
【０００７】
一方、図１５は、その部分回路の250MHz動作時のタイミングチャートの一例を示す図である。同図に示したように、この場合のクロック周期は4000psとなることから、5000psの遅延値を有するＦＦ＿Ｓ３からＦＦ＿Ｄ１へのデータパスのタイミングが満たされなくなり、この部分回路は正常に動作しなくなる。
【０００８】
なお、論理回路のタイミング解析に関し、特許文献１には、与えられた論理回路における検証対象の始点と終点の間の全てのパスがマルチサイクルパスであるかどうかの解析を高速化すると共に計算量を削減し、大規模な論理回路のマルチサイクルパスの検出を実現するための手法が提案されている。
【特許文献１】特開２００３−１５７２９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述のように、従来のクロック同期回路においては、最も遅延の大きいデータパスが存在する場合、そのデータパスの遅延値によってクロックの最大動作周波数が決定する。そのため、従来では、最大遅延データパスは常に動作しているわけではないにも関わらず、最大動作周波数は最大遅延データパスの遅延値によって決定されていた。
【００１０】
その一方で、近年のＬＳＩでは高いパフォーマンスが求められており、最大動作周波数を向上させることが大きな課題になっている。
本発明は、上記実情に鑑み、最大遅延データパスによって決定される最大動作周波数よりも高速に動作させることを可能とし、結果としてパフォーマンスを向上させることができる順序回路及びその高速化方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の第１の態様に係る順序回路は、ランダムロジック回路を含む順序回路であって、クロック周期を超える遅延値を有するデータパスの動作開始を検出する検出手段と、前記検出手段が前記データパスの動作開始を検出した時のクロック周期のみを、当該データパスのタイミングを満たすようなクロック周期へ変更する変更手段と、を備えることを特徴とする。
【００１２】
本回路によれば、クロック周期を超える遅延値を有するデータパスの動作開始が検出されたときには、その時のクロック周期が、そのデータパスのタイミングを満たすようなクロック周期へ変更される。従って、最大遅延データパスが動作するクロック周期を検出してそのクロック周期のみ一時的に動作周波数を低下させることができる。これにより、最大遅延データパスが動作するクロック周期以外の動作周波数を向上させることができる。
【００１３】
本発明の第２の態様に係る順序回路は、上記第１の態様において、前記変更手段はＧＣＢ（Gated Clock Buffer）であって、当該ＧＣＢによりクロックパルスがゲイティングされることによってクロック周期が変更される、ことを特徴とする。
【００１４】
本回路によれば、データパスのタイミングを満たすようなクロック周期への変更が、ＧＣＢによって行われる。
本発明の第３の態様に係る順序回路は、上記第１の態様において、前記変更手段はクロックコントローラであって、当該クロックコントローラの制御によって直接的にクロック周期が変更される、ことを特徴とする。
【００１５】
本回路によれば、データパスのタイミングを満たすようなクロック周期への変更が、クロックコントローラによって行われる。
本発明の第４の態様に係る順序回路は、上記第１乃至３の何れか一つの態様において、前記検出手段及び前記変更手段は、前記順序回路の論理設計段階又は物理設計段階に挿入される、ことを特徴とする。
また、本発明は、上記順序回路のほか、順序回路の高速化方法として構成することもできる。
【発明の効果】
【００１６】
本発明によれば、順序回路を、最大遅延データパスによって決定される最大動作周波数よりも高速に動作させることができ、結果としてパフォーマンスを向上させることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照しながら本発明の実施の形態を説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る順序回路であるクロック同期回路を示す図である。
【００１８】
なお、同図に示したクロック同期回路は、図１２に示した回路に本発明を適用した例であり、そのソース側ＦＦからエンド側ＦＦへのデータパスにおける遅延値は図１３に示したとおりである。
【００１９】
図１に示したように、本実施形態に係るクロック同期回路は、図１２に示した回路に加えて、ＦＦ＿Ｓ３の出力を入力とするＦＦ＿Ｌと、ＦＦ＿Ｓ３の出力およびＦＦ＿Ｌの出力を入力とする排他的論理和の否定であるＸＮＯＲ回路（以下単に「ＸＮＯＲ」と言う）と、そのＸＮＯＲの出力がEnable信号として入力されるGated Clock Buffer（EnableつきGated Clock Buffer）であるＧＣＢとを有する。
【００２０】
本実施形態において、ＦＦ＿ＬとＸＮＯＲは、クロック周期を超える遅延値を有するデータパスの動作開始を検出するための回路であって、遅延値が最も大きいデータパスがＦＦ＿Ｓ３からＦＦ＿Ｄ１へのデータパスであることに着目して、ソース側ＦＦをＦＦ＿Ｓ３とするデータパスの動作開始を検出する。ＧＣＢは、そのデータパスの動作開始を検出した時のクロック周期のみを、当該データパスのタイミングを満たすようなクロック周期へ変更するための回路である。
【００２１】
図２は、ＧＣＢの動作を説明するためのタイミングチャートの一例を示す図である。同図に示したように、ＧＣＢは、入力されたクロック信号の立ち上がり時（例えば時刻t1）にEN pinに入力されたEnable信号がハイレベルであれば、そのクロック周期（例えばクロック周期T1）については、入力されたクロック信号のとおりクロックパルスをX pinから出力し、一方、クロック信号の立ち上がり時（例えば時刻t2）にEN pinに入力されたEnable信号がローレベルであれば、そのクロック周期（例えばクロック周期T2）については、クロックパルスを出力せずローレベルをX pinから出力するように構成されている。
【００２２】
以上のような構成により、ＦＦ＿Ｓ３の出力値が変化した時（ソース側ＦＦをＦＦ＿Ｓ３とするデータパスの動作開始を検出した時）には、次のクロックパルスをゲイティング、すなわち、次のクロックパルスを出力させないようにすることによって、ＦＦ＿Ｓ３の出力値が変化した時のクロック周期を、ソース側ＦＦをＦＦ＿Ｓ３とするデータパスのタイミングを満たすようなクロック周期へ変更することが可能になっている。
【００２３】
図３は、本実施形態に係るクロック同期回路における250MHz動作時のタイミングチャートの一例を示す図である。
同図に示した例では、時刻t1のクロック立ち上がり時にＧＣＢに入力されるEnable信号（ＧＣＢ．ＥＮ）がハイレベルであることから、そのクロック周期（クロック周期T1）についてのＧＣＢの出力（ＧＣＢ．Ｘ）は、入力されたクロック信号のとおりとなる。また、時刻t1のクロック立ち上がりに同期してＦＦ＿Ｓ３の出力（ＦＦ＿Ｓ３．Ｑ）がローからハイレベルに変化することに伴って、ＸＮＯＲの出力（＝ＧＣＢの入力（ＧＣＢ．ＥＮ））がハイからローレベルに変化する。
【００２４】
これにより、次の時刻t2のクロック立ち上がり時にＧＣＢに入力されるEnable信号（ＧＣＢ．ＥＮ）がローレベルになることから、そのクロック周期（クロック周期T2）についてのＧＣＢの出力（ＧＣＢ．Ｘ）はローレベルとなる。また、時刻t2のクロック立ち上がりに同期してＦＦ＿Ｌの出力（ＦＦ＿Ｌ．Ｑ）がローからハイレベルに変化することに伴って、ＸＮＯＲの出力（＝ＧＣＢの入力（ＧＣＢ．ＥＮ））がローからハイレベルに変化
する。
【００２５】
これにより、次の時刻t3のクロック立ち上がり時にＧＣＢに入力されるEnable信号（ＧＣＢ．ＥＮ）がハイレベルになることから、そのクロック周期（クロック周期T3）についてのＧＣＢの出力（ＧＣＢ．Ｘ）は入力されたクロック信号のとおりとなる。
【００２６】
このように、図３に示した例では、ＦＦ＿Ｓ３の出力値が変化すると、次のクロックパルスがゲイティングされ、ＦＦ＿Ｓ３の出力値が変化した時のクロック周期だけが4000psから8000ps（=T1+T2）へ変更されるので、ＧＣＢに入力されるクロック周期（4000ps）を超える遅延値を有するデータパス、すなわち最も大きい遅延値（5000ps）を有するＦＦ＿Ｓ３からＦＦ＿Ｄ１のデータパスのタイミングを満たすことができ、回路を正常に動作させることができる。
【００２７】
これにより、図１５に示した従来のクロック同期回路では不可能であった250MHz動作が、本実施形態に係るクロック同期回路では可能になり、ＦＦ＿Ｓ３の出力値変化の頻度が一定以下（図３に示した例では５サイクルに１回以下の頻度）の場合には、従来のクロック同期回路よりも高いパフォーマンスで回路を動作させることが可能になる。
【００２８】
以上、本実施形態に係るクロック同期回路によれば、最大遅延データパスが動作するクロック周期を検出してそのクロック周期のみ一時的に動作周波数を低下させることができるので、そのクロック周期以外の動作周波数を向上させることができる。従って、最大遅延データパスによって決定される最大動作周波数よりも高速に動作させることができ、結果としてパフォーマンスを向上させることができる。
【００２９】
＜第２の実施形態＞
図４は、本発明の第２の実施形態に係る順序回路であるクロック同期回路を示す図である。
なお、同図に示したクロック同期回路も、図１２に示した回路に本発明を適用した例であり、そのソース側ＦＦからエンド側ＦＦへのデータパスにおける遅延値は図１３に示したとおりである。
【００３０】
図４に示したように、本実施形態に係るクロック同期回路は、図１に示したクロック同期回路に加えて、ＦＦ＿Ｓ１の出力を入力とするＦＦ＿Ｌ２と、ＦＦ＿Ｓ１の出力およびＦＦ＿Ｌ２の出力を入力とする排他的論理和の否定であるＸＮＯＲ＿２と、ＸＮＯＲ＿１の出力およびＸＮＯＲ＿２の出力を入力とするＡＮＤ回路（以下単に「ＡＮＤ」と言う）とを有し、そのＡＮＤの出力がEnable信号としてＧＣＢに入力されるように構成されている。なお、ＦＦ＿Ｌ１とＸＮＯＲ＿１は、図１に示したＦＦ＿ＬとＸＮＯＲである。
【００３１】
本実施形態において、ＦＦ＿Ｌ１とＦＦ＿Ｌ２、ＸＮＯＲ＿１とＸＮＯＲ＿２、及びＡＮＤは、クロック周期を超える遅延値を有するデータパスの動作開始を検出するための回路であって、遅延値が最も大きいデータパスがＦＦ＿Ｓ３からＦＦ＿Ｄ１であり、その次に遅延値が大きいデータパスがＦＦ＿Ｓ１からＦＦ＿Ｄ１、ＦＦ＿Ｓ１からＦＦ＿Ｄ３、及びＦＦ＿Ｓ３からＦＦ＿Ｄ３であることに着目して、ソース側ＦＦをＦＦ＿Ｓ１とするデータパスの動作開始とソース側ＦＦをＦＦ＿Ｓ３とするデータパスの動作開始を検出する回路である。ＧＣＢは、そのデータパスの動作開始を検出した時のクロック周期のみを、当該データパスのタイミングを満たすようなクロック周期へ変更するための回路である。
【００３２】
以上のような構成により、ＦＦ＿Ｓ１の出力値が変化した時（ソース側ＦＦをＦＦ＿Ｓ１とするデータパスの動作開始を検出した時）には、次のクロックパルスをゲイティング
、すなわち、次のクロックパルスを出力させないようにすることによって、ＦＦ＿Ｓ１の出力値が変化した時のクロック周期を、ソース側ＦＦをＦＦ＿Ｓ１とするデータパスのタイミングを満たすようなクロック周期へ変更すること、及び、ＦＦ＿Ｓ３の出力値が変化した時（ソース側ＦＦをＦＦ＿Ｓ３とするデータパスの動作開始を検出した時）には、次のクロックパルスをゲイティング、すなわち、次のクロックパルスを出力させないようにすることによって、ＦＦ＿Ｓ３の出力値が変化した時のクロック周期を、ソース側ＦＦをＦＦ＿Ｓ３とするデータパスのタイミングを満たすようなクロック周期へ変更することが可能になっている。
【００３３】
図５は、本実施形態に係るクロック同期回路における333MHz動作時のタイミングチャートの一例を示す図である。
同図に示した例では、時刻t1のクロック立ち上がり時にＧＣＢに入力されるEnable信号（ＧＣＢ．ＥＮ）がハイレベルであることから、そのクロック周期（クロック周期T1）についてのＧＣＢの出力（ＧＣＢ．Ｘ）は、入力されたクロック信号のとおりとなる。また、時刻t1のクロック立ち上がりに同期してＦＦ＿Ｓ３の出力（ＦＦ＿Ｓ３．Ｑ）がローからハイレベルに変化することに伴って、ＸＮＯＲ＿１の出力がハイからローレベルに変化してＡＮＤの出力（＝ＧＣＢの入力（ＧＣＢ．ＥＮ））がハイからローレベルに変化する。
【００３４】
これにより、次の時刻t2のクロック立ち上がり時にＧＣＢに入力されるEnable信号（ＧＣＢ．ＥＮ）がローレベルになることから、そのクロック周期（クロック周期T2）についてのＧＣＢの出力（ＧＣＢ．Ｘ）はローレベルとなる。また、時刻t2のクロック立ち上がりに同期してＦＦ＿Ｌ１の出力（ＦＦ＿Ｌ１．Ｑ）がローからハイレベルに変化することに伴って、ＸＮＯＲ＿１の出力がローからハイレベルに変化してＡＮＤの出力（＝ＧＣＢの入力（ＧＣＢ．ＥＮ））がローからハイレベルに変化する。
【００３５】
これにより、次の時刻t3のクロック立ち上がり時にＧＣＢに入力されるEnable信号（ＧＣＢ．ＥＮ）がハイレベルになることから、そのクロック周期（クロック周期T3）についてのＧＣＢの出力（ＧＣＢ．Ｘ）は、入力されたクロック信号のとおりとなる。また、時刻t3のクロック立ち上がりに同期してＦＦ＿Ｓ１の出力（ＦＦ＿Ｓ１．Ｑ）がローからハイレベルに変化することに伴って、ＸＮＯＲ＿２の出力がハイからローレベルに変化してＡＮＤの出力（＝ＧＣＢの入力（ＧＣＢ．ＥＮ））がハイからローレベルに変化する。
【００３６】
これにより、次の時刻t4のクロック立ち上がり時にＧＣＢに入力されるEnable信号（ＧＣＢ．ＥＮ）がローレベルになることから、そのクロック周期（クロック周期T4）についてのＧＣＢの出力（ＧＣＢ．Ｘ）はローレベルとなる。また、時刻t4のクロック立ち上がりに同期してＦＦ＿Ｌ２の出力（ＦＦ＿Ｌ２．Ｑ）がローからハイレベルに変化することに伴って、ＸＮＯＲの出力がローからハイレベルに変化しＡＮＤの出力（＝ＧＣＢの入力（ＧＣＢ．ＥＮ））がローからハイレベルに変化する。
【００３７】
これにより、次の時刻t5のクロック立ち上がり時にＧＣＢに入力されるEnable信号（ＧＣＢ．ＥＮ）がハイレベルになることから、そのクロック周期（クロック周期T5）についてのＧＣＢの出力（ＧＣＢ．Ｘ）は入力されたクロック信号のとおりとなる。
【００３８】
このように、図５に示した例では、ＦＦ＿Ｓ１の出力値が変化した時およびＦＦ＿Ｓ３の出力値が変化した時に、次のクロックパルスがゲイティングされ、その時のクロック周期だけが3000psから6000ps（例えばT1+T2）へ変更されるので、ＧＣＢに入力されるクロック周期（3000ps）を超える遅延値を有するデータパス（遅延値が5000psのＦＦ＿Ｓ３からＦＦ＿Ｄ１と、遅延値が4000psのＦＦ＿Ｓ１からＦＦ＿Ｄ１、ＦＦ＿Ｓ１からＦＦ＿Ｄ３、及びＦＦ＿Ｓ３からＦＦ＿Ｄ３）のタイミングを満たすことができ、回路を正常に動作させることができる。
【００３９】
これにより、ソース側ＦＦをＦＦ＿Ｓ１とするデータパスとソース側ＦＦをＦＦ＿Ｓ３とするデータパスのタイミングを満たすことができるので、それ以外のデータパスの中で遅延値が最も大きいデータパスは、ソース側ＦＦをＦＦ＿Ｓ２とする、ＦＦ＿Ｓ２からＦＦ＿Ｄ１およびＦＦ＿Ｓ２からＦＦ＿Ｄ３のデータパスとなり、その遅延値が3000psとなることから、回路の最高動作周波数を333MHzまで高めることが可能になる。
【００４０】
以上、本実施形態に係るクロック同期回路によれば、最大遅延データパスが動作するクロック周期とその次に遅延値が大きいデータパスが動作するクロック周期を検出してそのクロック周期のみ一時的に動作周波数を低下させることができるので、そのクロック周期以外の動作周波数を向上させることができる。従って、最大遅延データパスによって決定される最大動作周波数よりも高速に動作させることができ、結果としてパフォーマンスを向上させることができる。
【００４１】
＜第３の実施形態＞
図６は、本発明の第３の実施形態に係る順序回路であるクロック同期回路を示す図である。
なお、同図に示したクロック同期回路も、図１２に示した回路に本発明を適用した例であり、そのソース側ＦＦからエンド側ＦＦへのデータパスにおける遅延値は図１３に示したとおりである。
【００４２】
図６に示したように、本実施形態に係るクロック同期回路は、ＸＮＯＲの出力がＧＣＢではなくクロックコントローラ（Clock Controller）に接続されることが、図１に示したクロック同期回路と異なる。クロックコントローラは、詳しくは図７を用いて説明するが、図６に示した回路に供給するクロックの周波数をＸＮＯＲの出力に応じて動的に変化させることが可能な回路である。
【００４３】
本実施形態において、ＦＦ＿ＬとＸＮＯＲは、クロック周期を超える遅延値を有するデータパスの動作開始を検出するための回路であって、遅延値が最も大きいデータパスがＦＦ＿Ｓ３からＦＦ＿Ｄ１へのデータパスであることに着目して、ソース側ＦＦをＦＦ＿Ｓ３とするデータパスの動作開始を検出する回路である。クロックコントローラは、そのデータパスの動作開始を検出した時のクロック周期のみを、当該データパスのタイミングを満たすようなクロック周期へ変更するための回路である。
【００４４】
図７は、クロックコントローラの構成例とタイミングチャートの一例を示す図である。
同図に示したように、このクロックコントローラは、ＰＬＬ（Phase Locked Loop）１と、カウンター回路２と、ＦＦ３とを有して構成される。ＰＬＬ１は、ソースクロック（Source Clock）を供給する回路である。なお、本例ではＰＬＬからのソースクロックを用いるが、ＰＬＬ以外からのソースクロックを用いることも可能である。カウンター回路２は、図６に示したＸＮＯＲの出力信号であるギアダウン（Gear Down）信号に応じて最大カウント値を設定し、その最大カウント値に応じてＰＬＬ１からのソースクロックを分周して出力する回路である。ＦＦ３は、カウンター回路２の出力とＰＬＬ１からのソースクロックに応じて、図６に示した回路に供給するクロックを出力する回路である。
【００４５】
このような構成のクロックコントローラにおいて、ＰＬＬ１から供給されるソースクロックを1GHzとし、カウンター回路１は、ギアダウン信号がハイレベルのときにはソースクロックを４分周させるような値を最大カウント値として設定し、ギアダウン信号がローレベルのときにはソースクロックを５分周させるような値を最大カウント値として設定するものとすると、クロックコントローラの動作は、例えば、図７に示したタイミングチャー
トのようになる。すなわち、ギアダウン信号がハイレベルの時（通常動作時）には、カウンター回路２に1GHzのソースクロックを４分周させるような値が最大カウント値として設定され、250MHz（クロック周期4000ps）のClockを生成して出力し、ギアダウン信号がローレベルの時には、カウンター回路に1GHzのソースクロックを５分周させるような値が最大カウント値として設定され、200MHz（クロック周期5000ps）のClockを生成し出力する。
【００４６】
このような構成により、クロックコントローラは、ＦＦ＿Ｓ３の出力値が変化した時（ソース側ＦＦをＦＦ＿Ｓ３とするデータパスの動作開始を検出した時）のみ、一時的に出力するクロックの周波数を下げることが可能になる。
【００４７】
図８は、本実施形態に係るクロック同期回路における250MHz動作時のタイミングチャートの一例を示す図である。なお、このときのクロックコントローラの動作は、上述の図７に示したタイミングチャートのとおりとする。
【００４８】
図８に示した例では、時刻t1のクロック立ち上がりに同期してＦＦ＿Ｓ３の出力（ＦＦ＿Ｓ３．Ｑ）がローからハイレベルに変化することに伴って、ＸＮＯＲの出力（＝Gear Down）がハイからローレベルに変化する。これにより、クロックコントローラは、200MHz（クロック周期5000ps）のClockを生成し出力する（クロック周期T1参照）。
【００４９】
次に、時刻t2のクロック立ち上がりに同期してＦＦ＿Ｌの出力（ＦＦ＿Ｌ．Ｑ）がローからハイレベルに変化することに伴って、ＸＮＯＲの出力（＝Gear Down）がローからハイレベルに変化する。これにより、クロックコントローラは、250MHz（クロック周期4000ps）のClockを生成し出力する（クロック周期T2参照）。
【００５０】
このように、図８に示した例では、ＦＦ＿Ｓ３の出力値が変化すると、クロックの周波数が250MHzから200MHzに一時的に低下してＦＦ＿Ｓ３の出力値が変化した時のクロック周期（クロック周期T1参照）だけが4000psから5000psへ変更されるので、想定されている250MHzのクロック周期（4000ps）を超える遅延値を有するデータパス、すなわち最も大きい遅延値（5000ps）を有するＦＦ＿Ｓ３からＦＦ＿Ｄ１のデータパスのタイミングを満たすことができ、回路を正常に動作させることができる。これにより、従来のクロック同期回路よりも高いパフォーマンスで回路を動作させることが可能になる。
【００５１】
以上、本実施形態に係るクロック同期回路によれば、上述の第１の実施形態と同様に、最大遅延データパスが動作するクロック周期を検出してそのクロック周期のみ一時的に動作周波数を低下させることができるので、そのクロック周期以外の動作周波数を向上させることができる。従って、最大遅延データパスによって決定される最大動作周波数よりも高速に動作させることができ、結果としてパフォーマンスを向上させることができる。
【００５２】
ところで、上述の第１乃至３の各実施形態に係るクロック同期回路における、クロック周期を超える遅延値を有するデータパスの動作開始を検出するための回路（以下単に「検出回路」と言う）、及び、そのデータパスの動作開始を検出した時のクロック周期のみを当該データパスのタイミングを満たすようなクロック周期へ変更するための回路（以下単に「変更回路」と言う）は、当該クロック同期回路を含むＬＳＩの設計フローにおける論理設計段階又は物理設計段階に挿入されるものである。
【００５３】
図９は、その検出回路及び変更回路を論理設計段階に挿入するようにしたときのＬＳＩの設計フローを示す図であり、図１０は、その検出回路及び変更回路を物理設計段階に挿入するようにしたときのＬＳＩの設計フローを示す図である。
【００５４】
まず、図９及び図１０に示した設計フローに共通するＬＳＩの設計手順を説明する。
図９及び図１０において、Ｓ１では、論理設計が行われる。詳しくは、回路の設計が行われる。通常は、Verilog-HDLやVHDLなどのハードウェア記述言語を用いてその設計が行われる。
【００５５】
Ｓ２では、論理合成が行われる。詳しくは、論理設計で設計した回路が、Ｇａｔｅ（ＡＮＤやＯＲやＦＦ）で記述されたNetlistに変換される。通常は、論理合成ツールを用いてその変換が行われる。また、ライブラリとゲート規模から遅延値の計算が行われ、到達周波数の見積もりが行われる。但し、この時点での遅延値（つまり到達周波数）は、配置配線情報が含まれていないため、最終的なＬＳＩとは誤差を生じることになる。そして、この時点で見積もられた到達周波数が所望の到達周波数に達していた場合にはＳ３へ進み、そうでない場合にはＳ１へ戻って設計変更が行われる。Ｓ１へ戻って行われる設計変更では、論理合成の結果がフィードバックされて回路修正が行われる。
【００５６】
Ｓ３では、物理設計が行われる。詳しくは、論理合成で生成されたNetlistから、配置配線が行われる。
Ｓ４では、ＳＴＡ（Static Timing Analysis）が行われる。ＳＴＡは、物理設計後のタイミング解析である。ここでは、遅延値が抽出されることにより、正確な到達周波数が得られる。そして、この時点で得られた到達周波数が所望の到達周波数に達していた場合にはＳ５へ進み、そうでない場合にはＳ３へ戻って設計変更が行われる。Ｓ３へ戻って行われる設計変更では、ＳＴＡの結果がフィードバックされて回路修正が行われる。
【００５７】
Ｓ５では、物理検証が行われる。詳しくは、ＬＳＩ製造のための様々な設計ルールを満たしているか否かの検証が行われる。
基本的にこのような設計手順を有するＬＳＩの設計フローにおいて、図９に示した設計フローでは、Ｓ２の論理合成からＳ１の論理設計へ戻って行われる設計変更において、論理合成の結果がフィードバックされて回路修正が行われる際に、論理合成で見積もられた正常動作に支障をきたすタイミングのデータパスに対して上述の検出回路及び変更回路の組み込みが行われる。これにより、上述のとおり実質的な動作周波数を向上させることができる。
【００５８】
他方、図１０に示した設計フローでは、Ｓ４のＳＴＡからＳ３の物理設計へ戻って行われる設計変更において、ＳＴＡの結果がフィードバックされて回路修正が行われる際に、ＳＴＡで得られた正常動作に支障をきたすタイミングのデータパスに対して上述の検出回路及び変更回路の組み込みが行われる。これにより、上述のとおり実施的な動作周波数を向上させることができる。
【００５９】
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。
【００６０】
（付記１）
組み合わせ回路を含む順序回路であって、
クロック周期を超える遅延値を有するデータパスの動作開始を検出する検出手段と、
前記検出手段が前記データパスの動作開始を検出した時のクロック周期のみを、当該データパスのタイミングを満たすようなクロック周期へ変更する変更手段と、
を備えることを特徴とする順序回路。
【００６１】
（付記２）
前記変更手段はＧＣＢ（Gated Clock Buffer）であって、当該ＧＣＢによりクロックパ
ルスがゲイティングされることによってクロック周期が変更される、
ことを特徴とする付記１記載の順序回路。
【００６２】
（付記３）
前記変更手段はクロックコントローラであって、当該クロックコントローラの制御によって直接的にクロック周期が変更される、
ことを特徴とする付記１記載の順序回路。
【００６３】
（付記４）
前記検出手段は、クロック周期を超える遅延値を有する第１のデータパスの始点となる回路の出力を入力とする第１のフリップフロップ回路と、前記第１のデータパスの始点となる回路の出力と前記第１のフリップフロップ回路の出力とを入力とする第１のＸＮＯＲ回路とを有する、
ことを特徴とする付記１記載の順序回路。
【００６４】
（付記５）
前記検出手段は、更に、クロック周期を超える遅延値を有する第２のデータパスの始点となる回路の出力を入力とする第２のフリップフロップ回路と、前記第２のデータパスの始点となる回路の出力と前記第２のフリップフロップ回路の出力とを入力とする第２のＸＮＯＲ回路と、前記第１のＸＮＯＲ回路の出力と前記第２のＸＮＯＲ回路の出力とを入力とするＡＮＤ回路とを有する、
ことを特徴とする付記４記載の順序回路。
【００６５】
（付記６）
前記検出手段及び前記変更手段は、前記順序回路の論理設計段階又は物理設計段階に挿入される、
ことを特徴とする付記１乃至５の何れか一項記載の順序回路。
【００６６】
（付記７）
組み合わせ回路を含む順序回路の高速化方法であって、
クロック周期を超える遅延値を有するデータパスの動作開始を検出し、
前記データパスの動作開始を検出した時のクロック周期のみを、当該データパスのタイミングを満たすようなクロック周期へ変更する、
ことを特徴とする順序回路の高速化方法。
【図面の簡単な説明】
【００６７】
【図１】第１の実施形態に係るクロック同期回路を示す図である。
【図２】ＧＣＢの動作を説明するためのタイミングチャートの一例を示す図である。
【図３】第１の実施形態に係るクロック同期回路における250MHz動作時のタイミングチャートの一例を示す図である。
【図４】第２の実施形態に係るクロック同期回路を示す図である。
【図５】第２の実施形態に係るクロック同期回路における333MHz動作時のタイミングチャートの一例を示す図である。
【図６】第３の実施形態に係るクロック同期回路を示す図である。
【図７】クロックコントローラの構成例とタイミングチャートの一例を示す図である。
【図８】第３の実施形態に係るクロック同期回路における250MHz動作時のタイミングチャートの一例を示す図である。
【図９】検出回路及び変更回路を論理設計段階に挿入するようにしたときのＬＳＩの設計フローを示す図である。
【図１０】検出回路及び変更回路を物理設計段階に挿入するようにしたときのＬＳＩの設計フローを示す図である。
【図１１】一般的なクロック同期回路の一例を模式的に示す図である。
【図１２】図１１に示したクロック同期回路の一部である部分回路を抜き出した図である。
【図１３】部分回路中の各ＦＦ間のデータパスの遅延値（Delay time）を示す図である。
【図１４】部分回路の200MHz動作時のタイミングチャートの一例を示す図である。
【図１５】部分回路の250MHz動作時のタイミングチャートの一例を示す図である。
【符号の説明】
【００６８】
１      ＰＬＬ
２      カウンター回路
３      ＦＦ
【図１】
2008245164.tif 000003
【図２】
2008245164.tif 000004
【図３】
2008245164.tif 000005
【図４】
2008245164.tif 000006
【図５】
2008245164.tif 000007
【図６】
2008245164.tif 000008
【図７】
2008245164.tif 000009
【図８】
2008245164.tif 000010
【図９】
2008245164.tif 000011
【図１０】
2008245164.tif 000012
【図１１】
2008245164.tif 000013
【図１２】
2008245164.tif 000014
【図１３】
2008245164.tif 000015
【図１４】
2008245164.tif 000016
【図１５】
2008245164.tif 000017