(57)【要約】【課題】本発明はタイミング解析方法に関し、クロックデューティ耐力又はＰＬＬジッタ耐力を短時間で算出することができるタイミング解析方法を提供することを目的としている。【解決手段】フリップフロップ回路のタイミング解析時に、立ち上がり駆動フリップフロップから立ち下がりクロック駆動フリップフロップへのパス及び、立下がりクロック駆動フリップフロップから立ち上がりクロック駆動フリップフロップへのパスを抽出し、これらパスの動作マージンを解析し、解析結果のワーストのマージン値より駆動クロックのデューティ耐力を算出するように構成する。【選択図】図２
2007179296.tif 000002
【特許請求の範囲】
【請求項１】
フリップフロップ回路のタイミング解析時に、立ち上がり駆動フリップフロップから立ち下がりクロック駆動フリップフロップへのパス及び、立下がりクロック駆動フリップフロップから立ち上がりクロック駆動フリップフロップへのパスを抽出し、これらパスの動作マージンを解析し、解析結果のワーストのマージン値より駆動クロックのデューティ耐力を算出することを特徴とするタイミング解析方法。
【請求項２】
ＰＬＬを含むフリップフロップ回路のタイミング解析時に、該当ＰＬＬ出力クロックで駆動されるフリップフロップのパスを抽出し、該パスの動作マージンを解析し、解析結果のセットアップタイミングのワーストのマージン値よりＰＬＬのジッタ耐力を算出することを特徴とするタイミング解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフリップフロップを用いたフリップフロップ回路又はＰＬＬとフリップフロップ（以下ＦＦと略す）を用いた回路に関するタイミング解析方法に関する。更に詳しくは、ＬＳＩやＦＰＧＡ（ザイリンクス社の登録商標）等のタイミング解析方法に関する。
【０００２】
ＬＳＩ又はＦＰＧＡの論理回路において、同一クロックで駆動されているＦＦ間のセットアップ（Ｓｅｔｕｐ）／ホールド（Ｈｏｌｄ）のタイミング規定を満足しているかどうかは、ツールを用いてタイミング解析を行なう必要がある。駆動クロックは同じであるが、片方のＦＦが反転されたクロックで駆動されている場合も、同様にタイミング解析を行なう必要がある。
【０００３】
入力クロックから見ると、論理反転されずにＦＦに到達している場合は、立ち上がりクロックで、論理反転されてＦＦに到達している場合は立下がりクロックで、それぞれデータをラッチしていることになる。立ち上がりクロックで駆動されているＦＦと、立下がりクロックで駆動されているＦＦ間、又はその逆の組み合わせの回路を使用している場合、クロックデューティ（ｄｕｔｙ）比がタイミング規定に関わってくる。従って、ＬＳＩ／ＦＰＧＡの入力クロックデューティ規定及び外部接続部品選択のため、入力クロックデューティ耐力を算出する必要がある。
【背景技術】
【０００４】
図７は立上がりクロック駆動ＦＦ回路を示す図である。ＦＦ１のデータ入力端子ＤＴにはＤＡＴＡ１が入力され、クロック入力端子ＣＬＫにはクロック（ＣＬＯＣＫ）１が入力されている。ＦＦ１のＱ出力は、ＦＦ２のデータ入力端子ＤＴに入っており、ＦＦ２のクロック入力端子ＣＬＫには、前記ＣＬＯＣＫ１が入っている。
【０００５】
図８は立下がりクロック駆動ＦＦ回路を示す図である。ＦＦ３のデータ入力端子ＤＴにはＤＡＴＡ２が入力され、クロック入力端子ＣＬＫにはＣＬＯＣＫ２がインバータＩＮＶ１で反転されて入力されている。ＦＦ３のＱ出力は、ＦＦ４のデータ入力端子ＤＴに入っており、ＦＦ４のクロック入力端子ＣＬＫには前記ＩＮＶ１の出力が入っている。
【０００６】
図９は立上がり→立下がりクロック駆動ＦＦ回路を示す図である。ＦＦ５のデータ入力端子ＤＴにはＤＡＴＡ３が入力され、クロック入力端子ＣＬＫにはＣＬＯＣＫ３が入力されている。ＦＦ５のＱ出力はＦＦ６のデータ入力端子ＤＴに入っており、ＦＦ６のクロック入力端子ＣＬＫには、前記ＣＬＯＣＫ３がインバータＩＮＶ２で反転されたクロックが入っている。この回路では、ＦＦ５はＣＬＯＣＫ３の立上がりでラッチされるのに対し、ＦＦ６はＣＬＯＣＫ３の立下がりでラッチされる。
【０００７】
図１０は立下がり→立上がりクロック駆動ＦＦ回路を示す図である。ＦＦ７のデータ入力端子ＤＴにはＤＡＴＡ４が入力され、クロック入力端子ＣＬＫには、ＣＬＯＣＫ４がインバータＩＮＶ３で反転されたものが入力されている。ＦＦ７のＱ出力は、ＦＦ８のデータ入力端子ＤＴに入っており、ＦＦ８のクロック入力端子ＣＬＫにはＣＬＯＣＫ４が入っている。この回路では、ＦＦ７はＣＬＯＣＫ４の立下がりでラッチされるのに対し、ＦＦ８はＣＬＯＣＫ４の立上がりでラッチされる。
【０００８】
図１１は図７のクロックデューティ２５％の時の動作タイムチャートである。（ａ）はＣＬＯＣＫ１を、（ｂ）はＦＦ１のクロック入力端子ＣＬＫに入るクロックの波形を、（ｃ）はＦＦ１のデータ入力端子ＤＴに入るデータの波形を、（ｄ）はＦＦ１のＱ出力波形を、（ｅ）はＦＦ２のクロック入力端子ＣＬＫに入るクロックの波形を、（ｆ）はＦＦ２のデータ入力端子ＤＴに入るデータの波形を、（ｇ）はＦＦ２のＱ出力波形をそれぞれ示している。ＦＦ１のＣＬＯＣＫ１が立ち上がってから入力データがＱ出力に現れるまでの時間がＦＦ１のセル遅延Δｔ１である。また、ＦＦ１のＱ出力がＦＦ２のデータ入力端子ＤＴに入るまでの時間が遅延Δｔ２である。Δｔ３はＦＦ２のセル遅延時間である。ＦＦ２のデータ入力端子ＤＴにおけるデータが確定していなければならない最小限の期間をセットアップ時間、ＦＦ２のクロックが立ち上がってから、ＦＦ２のデータ入力端子でデータを保持しておかなければならない時間がホールド時間である。
【０００９】
図１２は図７のクロックデューティ５０％の時の動作タイムチャートである。（ａ）〜（ｇ）までの信号は、図１１の場合と同じである。タイムチャートも図１１の場合と変わりはない。図１３は図７のクロックデューティ７５％の時の動作タイムチャートである。（ａ）〜（ｇ）までの信号は、図１１の場合と同じである。タイムチャートも図１１の場合と変わりはない。図７の回路の場合、ＦＦ２データ取り込みマージンＳｅｔｕｐ／Ｈｏｌｄはクロックデューティ比によって変わらないことが分かる。
【００１０】
図１４は図８のクロックデューティ２５％の時の動作タイムチャートである。（ａ）はＣＬＯＣＫ２を、（ｂ）はＦＦ３のクロック入力端子ＣＬＫの波形を、（ｃ）はＦＦ３のデータ入力端子ＤＴの波形を、（ｄ）はＦＦ３のＱ出力波形を、（ｅ）はＦＦ４のクロック入力端子ＣＬＫの波形を、（ｆ）はＦＦ４のデータ入力端子ＤＴの波形を、（ｇ）はＦＦ４のＱ出力波形をそれぞれ示している。ＣＬＯＣＫ２はインバータＩＮＶ１によって反転されてＦＦ３及びＦＦ４を駆動するようになっている。ＦＦ３のＣＬＯＣＫ２が立ち上がってから入力データがＱ出力に現れるまでの時間がＦＦ３のセル遅延Δｔ４である。また、ＦＦ３のＱ出力がＦＦ４のデータ入力端子ＤＴに入るまでの時間が遅延Δｔ５である。Δｔ６はＦＦ４のセル遅延時間である。
【００１１】
図８に示す回路は、ＣＬＯＣＫ２をインバータＩＮＶ１で反転したパルスでＦＦ３とＦＦ４を駆動している他は、図７の回路と同じである。図１４において、セットアップ時間は充分に確保されていることが分かる。
【００１２】
図１５は図８のクロックデューティ５０％の時の動作タイムチャートである。（ａ）〜（ｇ）までの波形は図１４の場合と同じである。タイムチャートも図１４の場合と変わりはない。図１６は図８のクロックデューティ７５％の時の動作タイムチャートである。（ａ）から（ｇ）までの波形は図１４の場合と同じである。図８に示す回路の場合、ＦＦ４データ取り込みマージンＳｅｔｕｐ／Ｈｏｌｄはクロックデューティ比によって変わらないことが分かる。
【００１３】
図１７は図９のクロックデューティ２５％の時の動作タイムチャートである。（ａ）はＣＬＯＣＫ３を、（ｂ）はＦＦ５のクロック入力端子ＣＬＫの波形を、（ｃ）はＦＦ５のデータ入力端子ＤＴの波形を、（ｄ）はＦＦ５のＱ出力波形を、（ｅ）はＦＦ６のクロック入力端子ＣＬＫの波形を、（ｆ）はＦＦ６のデータ入力端子ＤＴの波形を、（ｇ）はＦＦ６のＱ出力波形をそれぞれ示している。ＣＬＯＣＫ３はＦＦ５を駆動し、ＣＬＯＣＫ３の反転パルスがＦＦ６を駆動するようになっている。Δｔ７はＦＦ５のセル遅延時間を、Δｔ８はＦＦ５のＱ出力からＦＦ６のデータ入力端子ＤＴまでのライン遅延時間を、Δｔ９はＦＦ６のセル遅延時間をそれぞれ示している。
【００１４】
図９の場合、ＦＦ５とＦＦ６をそれぞれ異なる位相のクロックで駆動しているため、動作が図７，図８に示す回路と比べて若干複雑である。ＤＡＴＡ３はＣＬＯＣＫ３の立上がりでラッチされ、（ｄ）に示すようにＱ出力として現れる。このＱ出力はＦＦ６のデータ入力端子ＤＴに入力され、このデータをＣＬＯＣＫ３の反転信号でラッチすることになる。従って、ＦＦ５のＱ出力をＣＬＯＣＫ３の反転信号でラッチするまでに確立されていなければならないセットアップ時間は、（ｆ）に示すように極めて短かくなり、厳しくなっていることが分かる。
【００１５】
図１８は図９のクロックデューティ５０％の時の動作タイムチャートである。（ａ）〜（ｇ）までの波形は図１７の場合と同じである。ＣＬＯＣＫ３のデューティが５０％になったので、（ｅ）に示すようにセットアップ時間は長くなっている。図１９は図９のクロックデューティ７５％の時の動作タイムチャートである。（ａ）〜（ｇ）までの波形は図１７の場合と同じである。ＣＬＯＣＫ３のデューティが７５％になった結果、（ｅ）に示すようにセットアップ時間は余裕のあるものとなっている。
【００１６】
図２０は図１０のクロックデューティ２５％の時の動作タイムチャートである。（ａ）はＣＬＯＣＫ４を、（ｂ）はＦＦ７のクロック入力端子ＣＬＫの波形を、（ｃ）はＦＦ７のデータ入力端子ＤＴの波形を、（ｄ）はＦＦ７のＱ出力波形を、（ｅ）はＦＦ８のクロック入力端子ＣＬＫの波形を、（ｆ）はＦＦ８のデータ入力端子ＤＴの波形を、（ｇ）はＦＦ８のＱ出力波形をそれぞれ示している。ＣＬＯＣＫ４はＦＦ８を駆動し、ＣＬＯＣＫ４の反転パルスがＦＦ７を駆動するようになっている。Δｔ１０はＦＦ７のセル遅延時間を、Δｔ１１はＦＦ７のＱ出力からＦＦ８のデータ入力端子ＤＴまでのライン遅延時間を、Δｔ１２はＦＦ８のセル遅延時間をそれぞれ示している。
【００１７】
図１０の場合、ＦＦ７とＦＦ８をそれぞれ異なる位相のクロックで駆動しているため、動作が図７，図８に示す回路と比べて若干複雑である。ＤＡＴＡ４はＣＬＯＣＫ４の反転後の立下がりでラッチされ、（ｄ）に示すようにＱ出力として現れる。このＱ出力はＦＦ８のデータ入力端子ＤＴに入力され、このデータをＣＬＯＣＫ４でラッチすることになる。従って、ＦＦ７のＱ出力をＣＬＯＣＫ４でラッチするまでに確立されていなければならないセットアップ時間と、ホールド時間はそれぞれ（ｆ）に示すようなものとなる。セットアップ時間は余裕があるものとなっている。
【００１８】
図２１は図１０のクロックデューティ５０％の時の動作タイムチャートである。（ａ）〜（ｇ）までの波形は図２０の場合と同じである。セットアップ時間は、図２０の場合よりも短くなっている。図２２は図１０のクロックデューティ７５％の時の動作タイムチャートである。（ａ）〜（ｇ）までの波形は図２０の場合と同じである。デューティが７５％になった結果、セットアップ時間は（ｆ）に示すように非常に短かくなり、厳しくなっていることが分かる。
【００１９】
従来の技術では、デューティ耐力又はジッタ耐力を算出するものはなく、入力クロックの周期、パルス幅の定義によってクロックデューティやジッタ成分を変え、そのクロックの全パスのタイミング解析を行なうことでＯＫ／ＮＧを判断していた。
【００２０】
従来のこの種の技術としては、デューティ検証部を設けて、論理・回路設計が行われた電子回路上のクロックデータのデューティに関連する情報、例えば論理シミュレーションの実行結果より得られるプローブデータなどを抽出して、その情報に基づいて当該クロックデータのデューティが仕様を満足するかを検証するようにした技術が知られている（例えば特許文献１参照）。また、ＰＬＬブロックを有する回路をイベントドリブン方式の論理シミュレーション方法でタイミング検証を行なう場合、ターゲットとなる回路に含まれるＰＬＬブロック固有のジッタ値を遅延ライブラリーに記述し、タイミング検証により得られた結果にジッタ値を加算もしくは減算し、ターゲットとなる回路のセットアップ／ホールドを満足するか否かでジッタ値を考慮したタイミング検証を行なう段階を有する技術が知られている（例えば特許文献２参照）。
【００２１】
また、開示されるタイミング検証方法は、検証対象として指定された第１のクロックを供給するクロック供給端と検証対象として終点に設定されたＦＦのクロック入力端子との間に形成されたクロック・パス上にＰＬＬ回路が存在する場合には、第１終点クロック遅延値ＤＣＥ１と、終点ループ遅延値と、ＰＬＬにおけるジッタ及び定常位相誤差とに基づいて、第２終点クロック遅延値を求める技術が知られている（例えば特許文献３参照）。
【特許文献１】特開平９−１７９８８７号公報（段落００１５〜００２１、図１）
【特許文献２】特開２０００−３５７１７９号公報（段落００２６〜００３４、図２、図４、図５）
【特許文献３】特開２００１−１１７９５６号公報（段落００３１〜００６３、図１〜図３）
【発明の開示】
【発明が解決しようとする課題】
【００２２】
タイミング解析を実施する前に入力クロックの周期、パルス幅の定義が必要なため、デューティ耐力、又はジッタ耐力が判明するまでに、入力クロックを再定義してタイミング解析する作業を複数回実施する必要がある。ここで、ジッタとはクロック周波数の揺らぎの程度をいう。以下に、この作業例を挙げる。
【００２３】
［デューティ耐力の場合］
１回目：Ｈパルス幅を３０％、Ｌパルス幅を７０％に設定してタイミング解析→タイミング規定ＮＧ
２回目：Ｈパルス幅を４０％、Ｌパルス幅を６０％に設定してタイミング解析→タイミング規定ＯＫ
３回目：Ｈパルス幅を５０％、Ｌパルス幅を５０％に設定してタイミング解析→タイミング規定ＯＫ
４回目：Ｈパルス幅を６０％、Ｌパルス幅を４０％に設定してタイミング解析→タイミング規定ＯＫ
５回目：Ｈパルス幅を７０％、Ｌパルス幅を３０％に設定してタイミング解析→タイミング規定ＯＫ
６回目：Ｈパルス幅を８０％、Ｌパルス幅を２０％に設定してタイミング解析→タイミング規定ＮＧ
以上、示したように、６回のパルス幅再定義作業で、Ｈパルス幅が４０％〜７０％の範囲内で動作可能であることは確認できたが、正確なクロックデューティ耐力を求めるには更に複数回の再定義とタイミング解析実行が必要となる。この方法の場合、入力クロックの再定義毎に全パスのタイミング解析を実行するため、解析に時間がかかってしまう。
【００２４】
［ジッタ耐力の場合］
１回目：ＰＬＬ出力クロックジッタを±２００ｐｓに設定してタイミング解析→タイミング規定ＯＫ
２回目：ＰＬＬ出力クロックジッタを±３００ｐｓに設定してタイミング解析→タイミング規定ＯＫ
３回目：ＰＬＬ出力クロックジッタを±４００ｐｓに設定してタイミング解析→タイミング規定ＮＧ
以上、説明したように、３回目のジッタ再定義作業で、ＰＬＬ出力クロックジッタが±３００ｐｓの範囲内で動作可能であることは確認できるが、正確なジッタ耐力を求めるには更に複数回の再定義とタイミング解析実行が必要となる。
【００２５】
本発明はこのような課題に鑑みてなされたものであって、クロックデューティ耐力又はＰＬＬジッタ耐力を短時間で算出することができるタイミング解析方法を提供することを目的としている。
【課題を解決するための手段】
【００２６】
（１）請求項１記載の発明は、フリップフロップ回路のタイミング解析時に、立ち上がり駆動フリップフロップから立ち下がりクロック駆動フリップフロップへのパス及び、立下がりクロック駆動フリップフロップから立ち上がりクロック駆動フリップフロップへのパスを抽出し、これらパスの動作マージンを解析し、解析結果のワーストのマージン値より駆動クロックのデューティ耐力を算出することを特徴とする。
（２）請求項２記載の発明は、ＰＬＬを含むフリップフロップ回路のタイミング解析時に、該当ＰＬＬ出力クロックで駆動されるフリップフロップのパスを抽出し、該パスの動作マージンを解析し、解析結果のセットアップタイミングのワーストのマージン値よりＰＬＬのジッタ耐力を算出することを特徴とする。
【発明の効果】
【００２７】
（１）請求項１記載の発明によれば、クロックデューティ耐力を短時間で算出することができる。
（２）請求項２記載の発明によれば、ＰＬＬジッタ耐力を短時間で算出することができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照して本発明の実施の形態例を詳細に説明する。図１はＬＳＩ／ＦＰＧＡの回路ブロック図である。ＣＬＯＣＫ５はＬＳＩ／ＦＰＧＡに入力されるクロック、ＭＣＫは内部ＰＬＬのリファレンスに入力されるクロック、ＢＵＦＦ１はスルーバッファセル、ＩＮＶ４，ＩＮＶ５はインバータセル、ＦＦ９〜ＦＦ２４はＦＦセルである。
【００２９】
入力クロックＣＬＯＣＫ５のタイミング解析を行なう場合は、通常ＦＦ９のＱ→ＦＦ１０のＤＴ，ＦＦ１１のＱ→ＦＦ１２のＤＴ，ＦＦ１３のＱ→ＦＦ１４のＤＴ，ＦＦ１５のＱ→ＦＦ１６のＤＴのデータパスが対象になる。デューティ耐力の面から考えると、立上がりクロック駆動ＦＦ間のＦＦ９のＱ→ＦＦ１０のＤＴと、立下がりクロック駆動ＦＦ間のＦＦ１１のＱ→ＦＦ１２のＤＴは同じエッジで駆動されているため、クロックデューティ比によってマージンは変わらない。デューティ耐力を算出する時は、ＦＦ１３のＱ→ＦＦ１４のＤＴ、ＦＦ１５のＱ→ＦＦ１６のＤＴのタイミングだけ解析できればよい。
【００３０】
また、ＰＬＬ出力クロックのタイミング解析を行なう場合は、通常ＦＦ１７のＱ→ＦＦ１８のＤＴ、ＦＦ１９のＱ→ＦＦ１２のＤＴ、ＦＦ２１のＱ→ＦＦ２２のＤＴ、ＦＦ２３のＱ→ＦＦ２４のＤＴのデータパスが対象になる。ジッタ耐力の面から考えると、ＦＦ１７のＱ→ＦＦ１８のＤＴ、ＦＦ１９のＱ→ＦＦ２０のＤＴのデータパスのセットアップタイミングだけ解析できればよい。
【００３１】
［デューティ耐力の算出を行なう場合］
図１を用いてＣＬＯＣＫ５のクロックデューティ算出の実施の形態例を説明する。図２はデューティ算出処理を示すフローチャートである。以下、このフローチャートに沿って本発明の実施の形態例を説明する。
【００３２】
１．クロックの定義
デューティ耐力を算出したいクロックの周期や初期パルス幅（デューティ）の定義を行なう。ここで、ＣＬＯＣＫ５は周期１０ｎｓ（１００ＭＨｚ）とし、初期パルス幅（デューティ）は、５ｎｓ（５０％）と定義する。
【００３３】
２．対象パスの抽出
ここでは、デューティ耐力算出に必要なパスのみタイミング解析するため、下記条件でパスを抽出する。
１）立上がりクロック駆動ＦＦ→立下がりクロック駆動ＦＦの全パス
２）立下がりクロック駆動ＦＦ→立上がりクロック駆動ＦＦの全パス
図１の場合についていえば、１）はＦＦ１３からＦＦ１４のパスであり、２）はＦＦ１５からＦＦ１６のパスである。
【００３４】
３．タイミング解析
抽出したパスについて、セットアップ／ホールドのタイミング解析を行なう。
１）ＦＦ１３−ＦＦ１４
セットアップマージン２ｎｓ（ＦＦ１４のセットアップタイム＝１ｎｓ）
ホールドマージン６．５ｎｓ（ＦＦ１４のホールドタイム＝０．５ｎｓ）
図３はＦＦ１３−ＦＦ１４セットアップマージンの例を示す図である。（ａ）はＣＬＯＣＫ５の波形を、（ｂ）はＦＦ１３のクロック入力端子ＣＬＫの波形を、（ｃ）はＦＦ１３のＱ出力波形を、（ｄ）はＦＦ１４のクロック入力端子ＣＬＫの波形を、（ｅ）はＦＦ１４のデータ入力端子ＤＴの波形をそれぞれ示している。
【００３５】
図３によると、ＦＦ１４のデータセットアップ時間（データの変化点からクロックの立ち上がりエッジまで）は、３ｎｓである。ここで、ＦＦ１４の入力セットアップ規定（ＦＦに必要なセットアップタイム）を１ｎｓとすると、マージンは３ｎｓ−１ｎｓ＝２ｎｓとなる。
２）ＦＦ１５−ＦＦ１６
セットアップマージン３ｎｓ（ＦＦ１６のセットアップタイム＝１ｎｓ）
ホールドマージン５．５ｎｓ（ＦＦ１６のホールドタイムは＝０．５ｎｓ）
図４はＦＦ１５−１６ホールドマージンの例を示す図である。（ａ）はＣＬＯＣＫ５の波形を、（ｂ）はＦＦ１５のクロック入力端子ＣＬＫ波形を、（ｃ）はＦＦ１５のＱ出力波形を、（ｄ）はＦＦ１６のクロック入力端子ＣＬＫの波形を、（ｅ）はＦＦ１６のデータ入力端子ＤＴの波形をそれぞれ示している。
【００３６】
図４によると、ＦＦ１６のデータホールドタイム（クロックの立上がりエッジからデータの変化点まで）は６ｎｓである。ここで、ＦＦ１６の入力ホールド規定（ＦＦに必要なホールドタイム）を０．５ｎｓとすると、マージンは、６ｎｓ−０．５ｎｓ＝５．５ｎｓとなる。
【００３７】
４．ワーストパス抽出
解析結果から、下記分類毎にワーストパスを決定する。
１）立上がりクロック駆動ＦＦ→立下がり駆動ＦＦの
（ア）セットアップワーストパスを抽出する：ＦＦ１３−ＦＦ１４（セットアップマージン２ｎｓ）
（イ）ホールドワーストパスを抽出する：ＦＦ１３−ＦＦ１４（ホールドマージン６．５ｎｓ）
２）立下がり駆動ＦＦ→立上がりクロック駆動ＦＦ
（ア）セットアップワーストパスを抽出する：ＦＦ１５−ＦＦ１６（セットアップマージン３ｎｓ）
（イ）ホールドワーストパスを抽出する：ＦＦ１５−ＦＦ１６（ホールドマージン５．５ｎｓ）
【００３８】
５．マイナス側デューティ耐力算出
解析結果から、デューティ耐力のマイナス側の値を算出する。
１）立上がりクロック駆動ＦＦ→立下がりクロック駆動ＦＦのセットアップワーストのマージンをデューティに換算する。
（ア）セットアップワーストパスのマージン＝２ｎｓ（ＦＦ１３−ＦＦ１４）
（イ）デューティ５０％（Ｈ＝５ｎｓ，Ｌ＝５ｎｓ）で、セットアップ側に２ｎｓの余裕があるので、ＣＬＯＣＫ５の立下がりエッジを２ｎｓマイナス側に移動することができる。図５はセットアップマージンをデューティへ換算する説明図である。ＣＬＯＣＫ５がデューティ５０％であった場合、２ｎｓマイナス側に移動させる。この結果、デューティは３０％になる。また、３ｎｓプラス側に移動させると、デューティは８０％となる。
（ウ）デューティ３０％（Ｈ＝３ｎｓ、Ｌ＝７ｎｓ）が求まる（＝Ｄ（−）と表わす）。
２）Ｄ（−）が、立下がりクロック駆動ＦＦ→立上がりクロック駆動ＦＦのホールドワーストを満たすことを確認する。
（ア）ホールドワーストパスのマージン＝５．５ｎｓ（ＦＦ１５−ＦＦ１６）
（イ）ＣＬＯＣＫ５の立下がりエッジを２ｎｓマイナス側に移動することで、ホールドマージンが５．５ｎｓ−２ｎｓ＝３．５ｎｓに減少するが問題はない。
Ｄ（−）＝３０％
【００３９】
６．プラス側デューティ耐力算出
解析結果から、デューティ耐力のプラス側の値を算出する。
１）立下がりクロック駆動ＦＦ→立上がりクロック駆動ＦＦのセットアップワーストのマージンをデューティに換算する。これをＤ（＋）とする。
（ア）セットアップワーストパスのマージン＝３ｎｓ（ＦＦ１５−ＦＦ１６）
（イ）デューティ５０％（Ｈ＝５ｎｓ、Ｌ＝５ｎｓ）で、セットアップ側に２ｎｓの余裕があるので、ＣＬＯＣＫ５の立下がりエッジを３ｎｓプラス側に移動することができる。
（ウ）デューティ８０％（Ｈ＝８ｎｓ、Ｌ＝２ｎｓが求まる。（＝Ｄ（＋））とする）
２）Ｄ（＋）が、立上がりクロック駆動ＦＦ→立下がりクロック駆動ＦＦのホールドワーストを満たすことを確認する。
（ア）ホールドワーストパスのマージン＝６．５ｎｓ（ＦＦ１３−ＦＦ１４）
（イ）ＣＬＯＣＫ５の立下がりエッジを３ｎｓマイナス側に移動することで、ホールドマージンが６．５ｎｓ−３ｎｓ＝３．５ｎｓに減少するが問題はない。
Ｄ（＋）＝８０％
【００４０】
７．結果出力
算出したデューティを表示する。デューティ耐力は、例えば以下のように表される。
デューティ耐力：３０％〜８０％
このように、本発明によれば、クロックデューティ耐力を短時間で算出することができる。
【００４１】
［ジッタ耐力の算出を行なう場合］
図１を用いて、ＭＣＫのＰＬＬクロックジッタ算出の実施例を説明する。図６はジッタ算出処理を示すフローチャートである。以下、このフローチャートに沿って本発明の実施の形態例を説明する。
【００４２】
１．クロックの定義
ジッタ耐力を算出したいＰＬＬクロックの定義を行なう。クロックの周期や初期パルス幅（デューティ）、初期ジッタの定義を行なう。ここで、ＭＣＫは周期１０ｎｓ（１００ＭＨｚ）とし、パルス幅は５ｎｓ、初期ジッタは２００ｐｓとする。ここで、ｐｓはピコ・セコンド（ｐｉｃｏ  ｓｅｃｏｎｄ）の略である。
【００４３】
２．対象パスの抽出
ジッタ耐力算出に必要なパスのみタイミング解析するため、下記条件でパスを抽出する。
１）立上がりクロック駆動ＦＦ→立上がりクロック駆動ＦＦの全パス
２）立下がりクロック駆動ＦＦ→立下がりクロック駆動ＦＦの全パス
図１では、１）はＦＦ１７からＦＦ１８のパスであり、２）はＦＦ１９からＦＦ２０のパスとなる。
【００４４】
３．タイミング解析
抽出したパスについて、セットアップのタイミング解析を行なう。
１）ＦＦ１７−ＦＦ１８
セットアップマージン２００ｐｓ（ＦＦ１８セットアップタイム＝１ｎｓ）
２）ＦＦ１９−ＦＦ２０
セットアップマージン３００ｐｓ（ＦＦ２０セットアップタイム＝１ｎｓ）
４．ワーストパス抽出
解析結果から、セットアップワーストパスを決定する。
１）立上がりクロック駆動ＦＦ→立上がりクロック駆動ＦＦの全パス及び立下がりクロック駆動ＦＦ→立下がりクロック駆動ＦＦの全パスのセットアップワーストパスを抽出する。
【００４５】
セットアップワーストパスの抽出：ＦＦ１７−ＦＦ１８（セットアップマージン２００ｐｓ）
５．ジッタ耐力算出
解析結果から、ジッタ耐力を算出する。
【００４６】
セットアップワーストのマージンをジッタに換算する。セットアップワーストのマージンが２００ｐｓなので、初期ジッタ（２００ｐｓ）＋ΔＪ（２００ｐｓ）＝±Ｊ（４００ｐｓ）
６．結果出力
算出したジッタを表示する。ジッタ耐力は±４００ｐｓである。
【００４７】
以上、説明したように、本発明によれば、ＰＬＬジッタ耐力を短時間で算出することができる。
このように、本発明によれば、デューティ耐力算出機能、及びジッタ耐力算出機能を実装することで、現状のツールで行なっているようなタイミング解析を複数回行なう必要がなくなる。
【００４８】
また、耐力算出に必要なタイミング解析だけ行なえばよいので、算出時間が短く、タイミング解析に長時間必要な大規模回路等に適用すると時間短縮効果が大きい。
更に、ワーストパスを確認できることから、耐力改善に調整が必要なパスを容易に判断することができる。また、ワーストパス以降のパスの情報を利用することで、ワーストパス調整値に対する耐力改善の予測情報を提供することも可能である。
【図面の簡単な説明】
【００４９】
【図１】ＬＳＩ／ＦＰＧＡの回路ブロック図である。
【図２】デューティ算出処理を示すフローチャートである。
【図３】ＦＦ１３−１４セットアップマージンの例を示す図である。
【図４】ＦＦ１５−１６ホールドマージンの例を示す図である。
【図５】セットアップマージンをデューティへ換算する説明図である。
【図６】ジッタ算出処理を示すフローチャートである。
【図７】立上がりクロック駆動ＦＦ回路を示す図である。
【図８】立下がりクロック駆動ＦＦ回路を示す図である。
【図９】立上がり→立下がりクロック駆動ＦＦ回路を示す図である。
【図１０】立下がり→立上がりクロック駆動ＦＦ回路を示す図である。
【図１１】図７のクロックデューティ２５％の時の動作タイムチャートである。
【図１２】図７のクロックデューティ５０％の時の動作タイムチャートである。
【図１３】図７のクロックデューティ７５％の時の動作タイムチャートである。
【図１４】図８のクロックデューティ２５％の時の動作タイムチャートである。
【図１５】図８のクロックデューティ５０％の時の動作タイムチャートである。
【図１６】図８のクロックデューティ７５％の時の動作タイムチャートである。
【図１７】図９のブロックデューティ２５％の時の動作タイムチャートである。
【図１８】図９のクロックデューティ５０％の時の動作タイムチャートである。
【図１９】図９のクロックデューティ７５％の時の動作タイムチャートである。
【図２０】図１０のクロックデューティ２５％の時の動作タイムチャートである。
【図２１】図１０のクロックデューティ５０％の時の動作タイムチャートである。
【図２２】図１０のクロックデューティ７５％の時の動作タイムチャートである。
【符号の説明】
【００５０】
ＦＦ９〜ＦＦ２４  フリップフロップ
ＢＵＦＦ１        バッファ
ＩＮＶ４          インバータ
ＩＮＶ５          インバータ
【図１】
2007179296.tif 000003
【図２】
2007179296.tif 000004
【図３】
2007179296.tif 000005
【図４】
2007179296.tif 000006
【図５】
2007179296.tif 000007
【図６】
2007179296.tif 000008
【図７】
2007179296.tif 000009
【図８】
2007179296.tif 000010
【図９】
2007179296.tif 000011
【図１０】
2007179296.tif 000012
【図１１】
2007179296.tif 000013
【図１２】
2007179296.tif 000014
【図１３】
2007179296.tif 000015
【図１４】
2007179296.tif 000016
【図１５】
2007179296.tif 000017
【図１６】
2007179296.tif 000018
【図１７】
2007179296.tif 000019
【図１８】
2007179296.tif 000020
【図１９】
2007179296.tif 000021
【図２０】
2007179296.tif 000022
【図２１】
2007179296.tif 000023
【図２２】
2007179296.tif 000024