(57)【要約】【課題】ノイズ発生による回路性能の変化を把握するとともに、ノイズによる性能劣化を回避するクロックツリーの設計を支援する。【解決手段】設計支援装置１００は、対象回路設計情報１０１を取得すると、ノイズによる影響を把握するためアナログ回路に関する情報を取得して、ノイズ入力タイミングと性能変化との関係を検証する（ステップＳ１１０）。また、ノイズを発生させる回路を把握するためデジタル回路に関する情報を取得し、回路内で発生するノイズを算出する（ステップＳ１２０）。そして、ステップＳ１１０，１２０にて得た情報を用いてノイズの入力タイミングを回路性能への影響の小さいタイミングに調整する（ステップＳ１３０）。最後に、回路全体の動作タイミングを、特定した入力タイミングの期間と、ステップＳ１２０によって算出されたノイズのピークとが重複しないようなタイミングに調整したクロックツリーを設計する（ステップＳ１４０）。【選択図】図１
2011076192.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
対象回路のネットリストと、前記対象回路内のノイズに影響される回路についてのノイズ入力タイミングと回路性能との特性情報とを取得する回路情報取得手段、
前記回路情報取得手段によって取得されたネットリストを用いて前記対象回路内のデジタル回路に関するクロックの分配を表す第１のクロックツリーを取得する第１のクロックツリー取得手段、
前記第１のクロックツリー取得手段によって取得された第１のクロックツリーと、前記ネットリストとの構成に応じて、前記対象回路内のデジタル回路にて発生する１クロックサイクルごとの電源ノイズの波形を算出する算出手段、
前記回路情報取得手段によって取得されたノイズ入力タイミングと回路性能との特性情報の中から、前記対象回路の回路性能がしきい値以下になるノイズ入力タイミングの期間を特定する特定手段、
前記対象回路の動作タイミングを、前記算出手段によって算出された電源ノイズの波形のピークと、前記特定手段によって特定されたノイズ入力タイミングの期間とが重複しないタイミングに設定する設定手段、
前記対象回路のネットリストと前記第１のクロックツリーとを用いて、前記設定手段によって設定された動作タイミングにて動作する場合の回路全体に関するクロックの分配を表す第２のクロックツリーを取得する第２のクロックツリー取得手段、
前記第２のクロックツリー取得手段によって取得された第２のクロックツリーを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項２】
前記コンピュータを、さらに、
動作タイミングの設定可能期間の制約がある場合、前記設定可能期間の中の任意のタイミングを前記対象回路の動作タイミングに初期設定する初期設定手段、
前記初期設定手段によって初期設定された動作タイミングで前記対象回路を動作させた場合に、前記電源ノイズの波形のピークと、前記ノイズ入力タイミングの期間とが重複しないか否かを判断する判断手段、として機能させ、
前記設定手段は、
前記判断手段によって前記電源ノイズの波形のピークと、前記ノイズ入力タイミングの期間とが重複しないと判断された場合に、前記初期設定された前記任意のタイミングを前記対象回路の動作タイミングに設定することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記コンピュータを、さらに、
前記判断手段によって前記電源ノイズの波形のピークと、前記ノイズ入力タイミングの期間とが重複すると判断された場合に、前記任意のタイミングを前記設定可能期間の中で修正する修正手段、として機能させ、
前記判断手段は、
前記修正手段によって修正されたタイミングで前記対象回路を動作させた場合に、前記電源ノイズの波形のピークと、前記ノイズ入力タイミングの期間とが重複しないか否かを判断し、
前記設定手段は、
前記判断手段によって前記電源ノイズの波形のピークと、前記ノイズ入力タイミングの期間とが重複しないと判断された場合に、前記修正された前記任意のタイミングを前記対象回路の動作タイミングに設定することを特徴とする請求項２に記載の設計支援プログラム。
【請求項４】
対象回路のネットリストと、前記対象回路内のノイズに影響される回路についてのノイズ入力タイミングと回路性能との特性情報とを取得する回路情報取得手段と、
前記回路情報取得手段によって取得されたネットリストを用いて前記対象回路内のデジタル回路に関するクロックの分配を表す第１のクロックツリーを取得する第１のクロックツリー取得手段と、
前記第１のクロックツリー取得手段によって取得された第１のクロックツリーと、前記ネットリストとの構成に応じて、前記対象回路内のデジタル回路にて発生する１クロックサイクルごとの電源ノイズの波形を算出する算出手段と、
前記回路情報取得手段によって取得されたノイズ入力タイミングと回路性能との特性情報の中から、前記対象回路の回路性能がしきい値以下になるノイズ入力タイミングの期間を特定する特定手段と、
前記対象回路の動作タイミングを、前記算出手段によって算出された電源ノイズの波形のピークと、前記特定手段によって特定されたノイズ入力タイミングの期間とが重複しないタイミングに設定する設定手段と、
前記対象回路のネットリストと前記第１のクロックツリーとを用いて、前記設定手段によって設定された動作タイミングにて動作する場合の回路全体に関するクロックの分配を表す第２のクロックツリーを取得する第２のクロックツリー取得手段と、
前記第２のクロックツリー取得手段によって取得された第２のクロックツリーを出力する出力手段と、
を備えたことを特徴とする設計支援装置。
【請求項５】
コンピュータが、
対象回路のネットリストと、前記対象回路内のノイズに影響される回路についてのノイズ入力タイミングと回路性能との特性情報とを取得する回路情報取得工程と、
前記回路情報取得工程によって取得されたネットリストを用いて前記対象回路内のデジタル回路に関するクロックの分配を表す第１のクロックツリーを取得する第１のクロックツリー取得工程と、
前記第１のクロックツリー取得工程によって取得された第１のクロックツリーと、前記ネットリストとの構成に応じて、前記対象回路内のデジタル回路にて発生する１クロックサイクルごとの電源ノイズの波形を算出する算出工程と、
前記回路情報取得工程によって取得されたノイズ入力タイミングと回路性能との特性情報の中から、前記対象回路の回路性能がしきい値以下になるノイズ入力タイミングの期間を特定する特定工程と、
前記対象回路の動作タイミングを、前記算出工程によって算出された電源ノイズの波形のピークと、前記特定工程によって特定されたノイズ入力タイミングの期間とが重複しないタイミングに設定する設定工程と、
前記対象回路のネットリストと前記第１のクロックツリーとを用いて、前記設定工程によって設定された動作タイミングにて動作する場合の回路全体に関するクロックの分配を表す第２のクロックツリーを取得する第２のクロックツリー取得工程と、
前記第２のクロックツリー取得工程によって取得された第２のクロックツリーを出力する出力工程と、
を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、半導体集積回路の設計を支援する設計支援プログラム、設計支援装置および設計支援方法に関する。
【背景技術】
【０００２】
従来より、半導体集積回路の設計工程には、回路内の各素子（ＦＦ回路や論理回路など）へのクロック伝搬を適切なタイミングにするために、クロックツリー設計という工程が存在する。クロックツリーとは、回路内の各素子へのクロックの伝搬のタイミングを調整する機能を備えたクロックの分配網である。具体的には、分配網を構成するパス上に適宜遅延素子を配置することによって、クロックの入力されるタイミングを調整することができる。したがって、クロックツリーを設計することによって、半導体集積回路内の素子のうちデジタル回路など同じタイミングで動作させたい素子へのクロック入力のタイミングを揃えることができる。
【０００３】
図１４は、従来のクロックツリー設計手順を示すフローチャートである。図１４のフローチャートが示すように、従来のクロックツリー設計手順では、回路設計情報としてＲＴＬ記述ネットリスト１を取得して論理合成をおこない（ステップＳ１０）、ゲートレベル記述ネットリスト２を取得する。そして、ゲートレベル記述ネットリスト２を用いて、クロックツリー合成処理（以下、「ＣＴＳ（Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ）」とよぶ）がおこなわれる（ステップＳ２０）。なお、ステップＳ２０のＣＴＳでは、あらかじめ与えられたＣＴＳ制約条件３を満たすクロックツリーが設計される。設計されたクロックツリーは、ゲートレベル記述ネットリストに追加され、クロックツリーを含んだゲートレベル記述ネットリスト４が出力される。
【０００４】
図１５は、半導体集積回路の一例を示す回路図である。また、図１６は、半導体集積回路内のクロック入力タイミングの一例を示すタイミングチャートである。図１５の回路図１５００は、３つのフリップ・フロップ回路（ＦＦ１〜３）と、アナログ−デジタル変換回路（ＡＤＣ）１５１０とを含んだ半導体集積回路であり、ＣＴＳによるクロックツリー設計前の回路構成である。そして、回路図１５００をそのまま実行させた場合、各素子（ＦＦ１〜３、ＡＤＣ１５１０）へのクロックの伝搬は、図１６のタイミングチャート１６００の矢印部分に示すようなばらつきが生じてしまう。
【０００５】
図１７は、クロックツリー設計例を示す説明図である。上述したＣＴＳでは、回路図１５００の素子のうちデジタル回路（ＦＦ１〜３）の動作タイミングが同一になるようなクロックツリー１７００が設計される。クロックツリー１７００の追加は、デジタル回路の動作時間を揃えられるという利点を生む。反面、クロックツリー１７００の追加によって半導体集積回路内で同一のタイミングで動作するデジタル回路の数が増えるため、発生するノイズ量（特に電源ノイズ）が増加してしまうという欠点も生んでしまう。
【０００６】
さらに、近年では、半導体集積回路の微細化が進み、１つの回路内に低電圧で動作するアナログ回路が多く搭載される傾向にある。アナログ回路は、ノイズによる性能劣化が大きく、デジタル回路のクロックとアナログ回路の動作タイミングによっては、性能劣化によって正しい動作が期待できない。
【０００７】
そこで、半導体集積回路の設計の際のノイズ対策としては、主なノイズ発生源であるデジタル回路から、ノイズに弱い回路であるアナログ回路へのノイズ伝搬を解析する技術が用いられる。ノイズ伝搬を解析することによって、アナログ回路などの被ノイズ回路が受けるノイズ量と、被ノイズ回路がノイズに影響された場合の回路性能を計算することができ、クロックツリー設計に役立てることができる（たとえば、下記特許文献１参照。）。
【０００８】
また、ＣＴＳによるクロックツリー設計に関しても、クロック分配網の空間的ばらつき（クロックスキュー）を、タイミングが許すだけ大きくすることによって電源ノイズの量を減少させる技術も提供されている。クロックツリー設計時のタイミング調整によって、内部で発生する電源ノイズを調整前よりも減少させる効果が期待される（たとえば、下記特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−４０６８号公報
【特許文献２】特開２００８−１５２５５０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来技術は、いずれもノイズによる回路性能の劣化を確実に回避できるものではない。たとえば、特許文献１の技術では、発生するノイズやノイズによる性能劣化を正確に見積もることが可能であるが、見積もられた回路性能が、半導体集積回路の要求仕様に満たなかった場合の対処策は提供されていない。したがって、ノイズの影響が大きい場合には、個別の設計修正が必要となり、設計者に大きな処理負荷がかかるとともに、設計期間の増加を招くという問題があった。
【００１１】
また、特許文献２の技術では、クロックツリーを調整してノイズ発生のタイミングをずらすことはできるが、この調整処理は、ＡＤＣ回路などノイズに弱い回路に与える影響を十分小さくする効果は保証されていない。むしろ、クロックツリーの調整具合によっては、ノイズ発生のタイミングがＡＤＣ回路の回路性能への影響がより大きくなるようなタイミングに変更されてしまうこともある。すなわち、ＡＤＣ回路の回路性能がクロックツリーの調整前よりも悪化する可能性があり、ノイズ発生への対処策としては不十分であるという問題があった。
【００１２】
上述のように、ノイズ発生による回路性能の劣化を確実に回避する技術は提供されていない。また、ノイズ発生による回路性能の変化をシミュレーションで確認するためには、半導体集積回路全体をシミュレーションする必要がある。ところが、上述したように、近年の半導体集積回路は、高集積化が進み規模が大きいため、回路全体のシミュレーションを実行するには、膨大な処理時間を要する。すなわち、シミュレーションによる確認を実用的に利用するのは不可能である。したがって、現状では回路性能の劣化の問題が製造後に露見し、設計のやり直しが迫られるような事態が多々生じているという問題があった。
【００１３】
本開示技術は、上述した従来技術による問題点を解消するため、ノイズ発生による回路性能の変化を把握するとともに、ノイズによる性能劣化を回避するクロックツリーの設計を支援する設計支援プログラム、設計支援装置および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、本開示技術は、コンピュータにおいて、対象回路のネットリストと、前記対象回路内のノイズに影響される回路についてのノイズ入力タイミングと回路性能との特性情報とを取得する処理と、取得されたネットリストを用いて前記対象回路内のデジタル回路に関するクロックの分配を表す第１のクロックツリーを取得する処理と、取得された第１のクロックツリーの構成に応じて、前記対象回路内のデジタル回路にて発生する１クロックサイクルごとの電源ノイズの波形を算出する処理と、取得されたノイズ入力タイミングと回路性能との特性情報の中から、前記対象回路の回路性能がしきい値以下になるノイズ入力タイミングの期間を特定する処理と、前記対象回路の動作タイミングを、算出された電源ノイズの波形のピークと、ノイズ入力タイミングの期間とが重複しないタイミングに設定する処理と、前記対象回路のネットリストと前記第１のクロックツリーとを用いて、設定された動作タイミングにて動作する場合の回路全体に関するクロックの分配を表す第２のクロックツリーを取得する処理と、取得された第２のクロックツリーを出力する処理と、を含むことを要件とする。
【発明の効果】
【００１５】
本設計支援プログラム、設計支援装置および設計支援方法によれば、ノイズ発生による回路性能の変化を把握するとともに、ノイズによる性能劣化を回避するクロックツリーの設計を支援することができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態にかかる設計支援処理の一例を示す説明図である。
【図２】ノイズ入力タイミング−回路性能特性の一例を示すグラフである。
【図３】設計支援装置のハードウェア構成を示すブロック図である。
【図４】設計支援装置の機能的構成を示すブロック図である。
【図５】設計支援装置による設計支援処理手順を示すフローチャートである。
【図６】実施例におけるクロックツリー設計手順を示す説明図である。
【図７】ＦＦと各ＦＦの遷移で動作する論理回路を示す回路図である。
【図８】デジタル回路のクロックツリーを含む回路図である。
【図９】テスト用半導体回路の実装例を示す回路図である。
【図１０】インバータ回路の発生ノイズ例を示すデータテーブルである。
【図１１】ＮＡＮＤ回路の発生ノイズ例を示すデータテーブルである。
【図１２】ノイズ入力禁止期間の特定例を示す説明図である。
【図１３】動作タイミングの修正例を示す説明図である。
【図１４】従来のクロックツリー設計手順を示すフローチャートである。
【図１５】半導体集積回路の一例を示す回路図である。
【図１６】半導体集積回路内のクロック入力タイミングの一例を示すタイミングチャートである。
【図１７】クロックツリー設計例を示す説明図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援装置および設計支援方法の好適な実施の形態を詳細に説明する。
【００１８】
（実施の形態）
図１は、本実施の形態にかかる設計支援処理の一例を示す説明図である。図１のように、本実施の形態では、設計支援装置１００を用いて、対象回路設計情報１０１から、対象回路のノイズ発生による回路性能低下を抑制する機能を備えたクロックツリー設計情報１０２を生成する。クロックツリー設計情報１０２は、対象回路内に配置されるクロックツリーの構成を表す情報である。したがって、クロックツリー設計情報１０２を含んだネットリストを生成することによって、設計者の所望する回路性能を備えた半導体集積回路の設計が可能となる。
【００１９】
設計支援装置１００は、対象回路設計情報１０１を取得すると、ノイズに影響される回路の把握と、ノイズを発生させる回路の把握とをおこなう。設計支援装置１００は、まず、ノイズに影響される回路を把握するため対象回路設計情報１０１の中からアナログ回路に関する情報を取得して、ノイズ入力タイミングと性能変化との関係を検証する（ステップＳ１１０）。同じく、設計支援装置１００は、ノイズを発生させる回路を把握するため、対象回路設計情報１０１の中からデジタル回路に関する情報を取得して、回路内で発生するノイズを算出する（ステップＳ１２０）。
【００２０】
図２は、ノイズ入力タイミング−回路性能特性の一例を示すグラフである。図２のグラフは、１０ビットのアナログ−デジタル変換回路（ＡＤＣ回路）の電源線に、大きさ約１００ｍＶと約５０ｍＶとの２種類の電源ノイズを印加した場合の実測結果の一例を表している。本実施の形態では、回路性能の判断基準として、ＡＤＣ回路のＳｉｇｎａｌ  Ｎｏｉｓｅ  Ｄｉｓｔｏｒｔｉｏｎ  Ｒａｔｉｏ（以下、「ＳＮＤＲ」とよぶ）を参照する。
【００２１】
図２のグラフにおいて、縦軸の「ＳＮＤＲ［ｄＢ］」は、ＡＤＣ回路からの出力信号の品質を表す。ＳＮＤＲは、値が大きいほど、元のアナログデータに忠実にデジタル変換ができていることを意味する。また、横軸の「ノイズ入力タイミングのずれ［ｎｓ］」は、ＡＤＣ回路にクロックが入力するタイミングに対して、ノイズが入力するタイミングがどの程度遅れているかを表す（正の値は入力タイミングの先行、負の値は入力タイミングの遅延を意味する）。
【００２２】
図２の実測結果からも明らかなように、一般的にＡＤＣ回路（対象回路）へのクロック入力タイミングの直前にノイズが入力した場合、ＳＮＤＲの値は急落し、回路性能が大きく劣化する傾向にある。反対に、クロック入力タイミングの後にノイズが入力しても、ＳＮＤＲの値に急激な変化はなく、回路性能には大きな影響を及ぼさないことが知られている。図１のステップＳ１１０では、対象回路設計情報１０１の中から取得たアナログ回路について、図２にて説明したようなノイズ入力タイミング−回路性能特性についての検証をおこなう。
【００２３】
図１の説明に戻り、ステップＳ１１０，Ｓ１２０が実行されると、これらの処理によって取得した情報を用いて、ノイズの入力タイミングを回路性能への影響の小さいタイミングに調整する（ステップＳ１３０）。すなわち、ステップＳ１１０によって検証された特性のうち、回路性能の劣化が著しい入力タイミング期間を特定する。そして、回路全体の動作タイミングを、特定した入力タイミングの期間と、ステップＳ１２０によって算出されたノイズのピークとが重複しないようなタイミングに調整する。
【００２４】
ステップＳ１３０による調整が完了すると、調整したタイミングで動作するようにクロックツリーを設計する（ステップＳ１４０）。ステップＳ１４０によって設計されたクロックツリー設計情報１０２は、ゲートレベル記述のネットリストを作成する際に利用される。すなわち、クロックツリー設計情報１０２をゲートレベル記述のネットリストに追加することによってクロックツリーを含んだ半導体集積回路のネットリストを作成することができる。
【００２５】
以上説明したように、本実施の形態にかかる設計支援処理を用いることによって、検証対象となる半導体集積回路が動作する際のノイズの振る舞い（ノイズ発生状況とノイズ入力による回路への影響）を把握することによって、ノイズによる回路性能の劣化が少ないタイミングで動作するクロックツリーが設計可能となる。したがって、半導体集積回路の設計工程に本実施の形態にかかる設計支援処理を適用することによって、ノイズ発生による回路性能の変化を把握するとともに、ノイズによる性能劣化を回避するクロックツリーの設計を支援することができる。
【００２６】
つぎに、図１にて説明した設計支援処理を実現する設計支援装置１００の構成について詳しく説明する。
【００２７】
（設計支援装置のハードウェア構成）
図３は、設計支援装置のハードウェア構成を示すブロック図である。図３において、設計支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３と、を備えている。また、各構成部はバス３００によってそれぞれ接続されている。
【００２８】
ここで、ＣＰＵ３０１は、設計支援装置１００の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムや、設計支援処理を実現する設計支援プログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００２９】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００３０】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３１】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からの設計に用いるデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００３２】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３３】
スキャナ３１２は、画像を光学的に読み取り、設計支援装置１００内に設計用の各種データを取り込む。なお、スキャナ３１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３１３は、半導体集積回路の設計に関する画像データや文書データを印刷する。プリンタ３１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３４】
（設計支援装置の機能的構成）
図４は、設計支援装置の機能的構成を示すブロック図である。設計支援装置１００は、回路情報取得部４０１と、第１のクロックツリー取得部４０２と、算出部４０３と、特定部４０４と、設定部４０５と、第２のクロックツリー取得部４０６と、出力部４０７と、初期設定部４０８と、判断部４０９と、修正部４１０と、生成部４１１と、原因特定部４１２と、を含む構成である。上述したように設計支援装置１００における制御部となる機能（回路情報取得部４０１〜原因特定部４１２）は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶装置に記憶された設計支援プログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０９により、その機能を実現する。
【００３５】
回路情報取得部４０１は、クロックツリーの設計に必要な回路情報を取得する機能を有する。具体的には、回路情報取得部４０１では、回路情報４００として、対象回路のネットリストと、ノイズ入力タイミング−回路性能の特性情報とを取得する。ノイズ入力タイミング−回路性能の特性情報とは、回路にクロックが入力するタイミングとノイズが入力するタイミングとのずれと回路性能の変化を表す特性情報である。
【００３６】
一般的に回路性能の変化を表す特性は、図２に例示したように、通常ノイズの入力タイミングが遅れると回路性能の劣化を示すことが多いが、対象回路の構成の詳細な振る舞いには差異がある。したがって、設計支援装置１００の場合には、あらかじめ回路ごとに特性を測定したデータベースを用意しておくとよい。なお、取得された回路情報４００は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００３７】
第１のクロックツリー取得部４０２は、クロックツリー設計ツール４２０を利用して、クロックツリーの設計情報を取得する機能を有する。第１のクロックツリー取得部４０２の場合、回路情報４００に含まれる対象回路のネットリストを用いることによって、クロックツリー設計ツール４２０から対象回路内のデジタル回路に関するクロックの分配を表す第１のクロックツリーを取得する。なお、取得された第１のクロックツリーは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００３８】
算出部４０３は、１クロックサイクルごとに電源ノイズの波形を算出する機能を有する。算出部４０３では、第１のクロックツリー取得部４０２によって取得された第１のクロックツリーと、回路情報４００のネットリストとによって特定される対象回路内のデジタル回路の構成に応じて、対象回路内のデジタル回路にて発生する電源ノイズの波形を算出する。
【００３９】
具体的には、算出部４０３は、まず、対象回路内のデジタル回路ごとに発生するノイズ量を特定する。ノイズ量はあらかじめ個別に測定した実測値をデータベースとして用意してもよいし、仕様書や、各種ツールによって取得した値を用いてもよい。そして、算出部４０３は、クロックの入力タイミングごとに同時にノイズが発生する回路ごと特定したノイズ量を加算すれば、１クロックサイクルの電源ノイズの波形を得ることができる。なお、算出された電源ノイズの波形は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００４０】
特定部４０４は、対象回路へのノイズ入力タイミング中から、回路性能への影響が大きくなる期間を特定する機能を有する。具体的には、特定部４０４は、回路情報４００として提供されたノイズ入力タイミングと回路性能との特性情報の中から、対象回路の回路性能がしきい値以下になるノイズ入力タイミングの期間を特定する。しきい値は設計者によって調整可能であり、対象回路内の回路性能の目標性能として定めた値を採用すればよい。特定部４０４によって特定された期間が、すなわち、ノイズの入力を避けたい期間である。なお、特定された期間は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００４１】
設定部４０５は、対象回路の動作タイミングを設定する機能を有する。具体的には、設計部４０５は、算出部４０３によって算出された電源ノイズの波形のピークと、特定部４０４によって特定されたノイズ入力タイミングの期間とが重複しないタイミングを動作タイミングに設定する。すなわち、設定部４０５は、特定の１タイミングを動作タイミングとして設定するのではなく、動作タイミングとして設定したくないタイミング（特定部４０４によって特定された期間）を除いた期間の中から動作タイミングを設定する。なお、設定された動作タイミングは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００４２】
第２のクロックツリー取得部４０６は、設定部４０５によって特定された動作タイミングにて動作するようなクロックツリーを取得する機能を有する。第１のクロックツリー取得部４０２と同様に、第２のクロックツリー取得部４０６も、クロックツリー設計ツール４２０に接続されている。そして、第２のクロックツリー取得部４０６は、クロックツリー設計ツール４２０に対象回路のネットリストと第１のクロックツリーの情報を提供して、設定された動作タイミングにて動作する場合の回路全体のクロックの分配を表す第２のクロックツリーを設計させる。なお、設計された第２のクロックツリーは、第２のクロックツリー取得部４０６に取得され、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００４３】
なお、図４に例示した設計支援装置１００の構成では、装置内に第１のクロックツリー取得部４０２と第２のクロックツリー取得部４０６とがクロックツリーを取得するためのクロックツリー設計ツール４２０を内蔵した構成を採用している。しかしながら、クロックツリー設計ツール４２０の内蔵は必須ではなく、設計支援装置１００から接続可能な外部の装置に配置してもよい。クロックツリー設計ツール４２０自体が既存の技術であるため、クロックツリーを取得する手法については特に限定はない。
【００４４】
出力部４０７は、設計支援装置１００において作成されたクロックツリーに関する情報を出力する機能を有する。クロックツリーに関する情報とは、具体的には、たとえば、取得部４０６によって取得された第２のクロックツリーが挙げられる。第２のクロックツリーは、ネットリスト用クロックツリー設計情報４３０として出力され、クロックツリーを含んだネットリストの作成に利用される。
【００４５】
また、出力部４０７では、第２のクロックツリー以外にもクロックツリー設計に関する各種情報を出力するが、詳しくは、各種情報の作成する機能部の説明の際に合わせて述べる。また、出力部４０７の出力形式としては、たとえば、ディスプレイ３０８への表示、プリンタ３１３への印刷出力、Ｉ／Ｆ３０９による外部装置への送信がある。また、出力情報をＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶することとしてもよい。
【００４６】
つぎに、設定部４０５による動作タイミングの設定を補助する機能部である、初期設定部４０８、判断部４０９、修正部４１０、生成部４１１および原因特定部４１２について説明する。
【００４７】
初期設定部４０８は、設定部４０５が動作タイミングを設定する際に動作タイミングの初期設定をおこなう機能を有する。一般的に、半導体集積回路のデジタル回路の動作タイミングを自由に設定できることは少なく、実際には、仕様書や動作設計に応じて、動作タイミングには、設定可能期間の制約がある。したがって、初期設定部４０８は、回路情報４００から設定可能期間についての制約情報を取得すると、設定可能期間の中の任意のタイミングを対象回路の動作タイミングに初期設定する。
【００４８】
なお、初期設定された動作タイミングは、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。また、設定可能期間のどこに初期設定するかは、設計者によって個別に調整できる。たとえば、任意のタイミングを設定可能期間の中間地点に設定すれば、修正時にタイミングを早めることも遅らせることもできるので設計の自由度が高い。
【００４９】
判断部４０９は、初期設定された動作タイミングが適切か否かを判断する機能を有する。具体的には、判断部４０９は、初期設定部４０８によって初期設定された動作タイミングで対象回路を動作させた場合に、電源ノイズの波形のピークと、ノイズ入力タイミングの期間とが重複しないか否かを判断する。判断部４０９によって重複しないと判断された場合は、初期設定された動作タイミングが適切であることを意味する。判断部４０９によって、初期設定された動作タイミングが適切であると判断された場合、設定部４０５は、初期設定されたタイミングを対象回路の動作タイミングに設定する。
【００５０】
反対に、判断部４０９によって、電源ノイズの波形のピークと、ノイズ入力タイミングの期間とが重複すると判断された場合、初期設定された動作タイミングが不適切であることを意味する。初期設定された動作タイミングが不適切な場合は、後述する修正部４１０によって動作タイミングが修正される。なお、判断部４０９による判断結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００５１】
修正部４１０は、設定された動作タイミングが不適切な場合に、動作タイミングを適宜修正する機能を有する。具体的には、修正部４１０によって電源ノイズの波形のピークと、ノイズ入力タイミングの期間とが重複すると判断された場合に、動作タイミングを設定可能期間の中で修正する。動作タイミングの修正の手法としては、たとえば、あらかじめ定めた時間Δｔ分動作タイミングを早める（−Δｔ）／遅らせる（＋Δｔ）といった処理がある。他にも設計者が任意に設定してもよい。
【００５２】
修正部４１０による修正がおこなわれると、判断部４０９では、修正したタイミングについて、再度、適切か否かの判断をおこなう。そして、適切であれば、修正したタイミングを動作タイミングとして第２のクロックツリーが設計される。一方、不適切であると判断された場合には、再度修正部４１０による修正処理に移行する。すなわち、動作タイミングが適切なタイミングに修正されるまで、修正処理が繰り返される。
【００５３】
上述したように、判断部４０９と修正部４１０とを備えることによって、動作タイミングが適切なタイミングとなるように自動的にチューニングされる。しかしながら、検証支援回路の回路構成や、動作制約の設定によっては、チューニングを繰り返しても、適切な動作タイミングに収束しない場合も想定される。そこで、設計支援装置１００では、所定の条件を満たした場合に、自動的な修正は不可能であると判断する機能を備えている。
【００５４】
具体的には、たとえば、判断部４０９によって所定回数以上、動作タイミングが不適切であると判断された場合、修正部４１０による自動チューニングは無理であると判断するように設定してもよい。また、設定部４０５によって所定時間以上、対象回路の動作タイミングが設定されない場合、修正部４１０による自動チューニングは無理であると判断するように設定してもよい。
【００５５】
生成部４１１は、上述のように自動チューニングが無理であると判断された場合に、再設計指示を生成する機能を有する。生成部４１１によって生成された再設計指示は、出力部４０７から出力される。生成部４１１によって再設計指示を生成することによって、設計者に対象回路の再設計を促すことができる。なお、生成された再設計指示は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００５６】
原因特定部４１２は、生成部４１１によって再設計指示が生成された場合、再設計を要する原因となった可能性の高い回路を特定する機能を有する。具体的には、原因特定部４１２は、対象回路の中から電源ノイズの波形のピークの時刻に遷移するデジタル回路を特定する。特定されたデジタル回路によって発生したノイズが、すなわち電源ノイズの波形のピーク部分のノイズを構成していることになる。なお、特定された回路の情報は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００５７】
なお、出力部４０７は、原因特定部４１２によって、再設計の原因となった可能性の高いデジタル回路が特定された場合、生成部４１１によって生成された再設計指示とともに、特定されたデジタル回路の情報を出力する。原因特定部４１２を備えることによって、性能劣化を抑制できない原因となる回路の情報が提供されるため、設計者による効率的な再設計に役立てることができる。
【００５８】
（設計支援処理手順）
図５は、設計支援装置による設計支援処理手順を示すフローチャートである。図５のフローチャートでは、回路情報としてＲＴＬ記述のネットリストを取得して、ノイズによる性能劣化を回避するためのクロックツリーを含んだゲートレベル記述のネットリストを出力するまでの手順を表している。図５の各処理を実行することによって、ノイズ発生による回路性能の劣化を抑制する機能を備えたクロックツリーを含んだネットリストを生成することができる。
【００５９】
図５において、まず、回路情報取得部４０１が回路情報４００として、ＲＴＬ記述のネットリストが入力されたか否かを判断する（ステップＳ５０１）。このステップＳ５０１において、ネットリストが入力されるまで待ち（ステップＳ５０１：Ｎｏのループ）、ネットリストが入力されると（ステップＳ５０１：Ｙｅｓ）、回路情報取得部４０１は、ネットリストをコンパイルして、ゲートレベル記述のネットリストを作成する（ステップＳ５０２）。
【００６０】
ステップＳ５０２によってゲートレベル記述のネットリストが作成されると、作成されたネットリストを用いて、２系統の処理が実行される。まず、１つめの処理系統として、ステップＳ５０３〜Ｓ５０４によって、デジタル回路のクロックツリー生成処理がおこなわれる。同時に、２つめの処理系統として、ステップＳ５０５〜Ｓ５０７によって、ノイズ発生源の特定処理がおこなわれる。
【００６１】
まず、１つめの処理系統では、第１のクロックツリー取得部４０２において、まず、ステップＳ５０２によって作成されたゲートレベル記述のネットリストからデジタル回路を抽出する（ステップＳ５０３）。そして、抽出したデジタル回路に関するクロックツリーを取得する（ステップＳ５０４）。なお、ステップＳ５０４によって取得されたクロックツリーは、図４にて説明した第１のクロックツリーに相当する。以上の処理によって、ノイズ発生源となるデジタル回路についてのクロックツリーが取得される。取得されたクロックツリーは、対象回路に１クロック入力されるたびにどのような波形のノイズが生じるかを算出する際に利用される。
【００６２】
一方、２つめの処理系統では、第１のクロックツリー取得部４０２において、まず、ステップＳ５０２によって作成されたゲートレベル記述のネットリストから対象回路内のＦＦ（フリップ・フロップ回路）とＦＦ関連パスとを抽出する（ステップＳ５０５）。ＦＦ関連パスとは、抽出したＦＦからの出力が伝搬されるパスを指す。そして、ステップＳ５０５によって抽出されたパスに接続された論理回路を検索する（ステップＳ５０６）。
【００６３】
ステップＳ５０６において、論理回路が検索されると、検索された論理回路をステップＳ５０５にて抽出したＦＦの遷移で動作する論理回路として特定する（ステップＳ５０７）。以上の処理によって、対象回路内の回路の中から、ノイズの影響を受ける回路が特定される。
【００６４】
つぎに、算出部４０３では、ステップＳ５０４によって取得されたクロックツリーに基づいて、ＦＦと特定した論理回路との遷移タイミングを特定する（ステップＳ５０８）。そして、ステップＳ５０８の遷移タイミングを参照して対象回路内で１クロックサイクルごとに生じるノイズ波形を算出する（ステップＳ５０９）。続いて、特定部４０４では、つぎに、ノイズ入力タイミングと回路性能との特性情報を参照して、回路性能がしきい値以下となるノイズ禁止期間を特定する（ステップＳ５１０）。
【００６５】
つぎに、動作タイミングの設定処理へ移行する。まず、初期設定部４０８は、動作タイミング制約の中の中間のタイミングを動作開始タイミングに設定する（ステップＳ５１１）。そして、判断部４０９によって、設定した動作タイミングの場合に、ノイズ波形のピークとノイズ禁止期間とが重複するか否かを判断する（ステップＳ５１２）。
【００６６】
ステップＳ５１２によって、ノイズ波形のピークとノイズ禁止期間とが重複しないと判断された場合（ステップＳ５１２：Ｎｏ）、さらに、すべての電圧のノイズ波形について判定したか否かを判断する（ステップＳ５１３）。一方、ノイズ波形のピークとノイズ禁止期間とが重複すると判断された場合には（ステップＳ５１２：Ｙｅｓ）、ステップＳ５１６のタイミング修正処理に移行する。以下、場合分けしながら順に説明する。
【００６７】
まず、ステップＳ５１３において、すべての電圧のノイズ波形についての判定が終了するまで、ステップＳ５１２の判断処理を繰り返す（ステップＳ５１３：Ｎｏのループ）。そして、すべての電圧のノイズ波形についての判定が終了したと判断された場合（ステップＳ５１３：Ｙｅｓ）、設定部４０５によって動作タイミングを設定し、第２のクロックツリー取得部４０６は、設定した動作タイミングにて処理をおこなうようなアナログ回路のクロックツリーを取得する（ステップＳ５１４）。
【００６８】
なお、ステップＳ５１４にて取得されたクロックツリーは、図４にて説明した第２のクロックツリーに相当する。そして、最後に、出力部４０７から、ステップＳ５１４によって取得したクロックツリーを含むネットリストを出力して（ステップＳ５１５）、一連の処理を終了する。
【００６９】
また、ステップＳ５１２によって、ノイズ波形のピークとノイズ禁止期間とが重複すると判断された場合には（ステップＳ５１２：Ｙｅｓ）、まず、修正部４１０によって動作タイミングが修正される（ステップＳ５１６）。その後、生成部４１１によって、動作タイミングを所定回数修正しているか否かを判断する（ステップＳ５１７）。ステップＳ５１７は、修正部４１０による修正では、適切な修正が望めない回路を抽出する役割を担う。したがって、動作タイミングを所定回数修正していると判断された場合には（ステップＳ５１７：Ｙｅｓ）、生成部４１１によって生成した再設計指示を出力させ（ステップＳ５１８）、修正処理を中断する。
【００７０】
また、ステップＳ５１７において、動作タイミングの修正が所定回数に満たないと判断された場合には（ステップＳ５１７：Ｎｏ）、ステップＳ５１２によって動作タイミングが適切であると判断されるまで、可能な限り修正処理を繰り返すことができる。
【００７１】
以上説明したように、本実施の形態にかかる設計支援処理は、図３，４にて説明した構成を備えることによって設計支援装置１００として提供される。
【００７２】
（実施例）
つぎに、具体的な実施例を挙げて、設計支援装置１００が、ＲＴＬ記述のネットリストを取得して、クロックツリーを含んだゲートレベル記述のネットリストを生成するまでの手順について、順を追って説明する。
【００７３】
＜１，全体の処理の流れ＞
図６は、実施例におけるクロックツリー設計手順を示す説明図である。図６のように、設計支援装置１００では、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述されたネットリスト６００を論理合成することによってゲートレベル記述ネットリスト６１０を生成する（ステップＳ６０１）。その後、生成したゲートレベル記述ネットリスト６１０から、ＦＦと関連パスとを抽出して（ステップＳ６０２）、各ＦＦの遷移で動作する論理回路の情報６３０を取得する。
【００７４】
図７は、ＦＦと各ＦＦの遷移で動作する論理回路を示す回路図である。ステップＳ６１０によって取得された情報によって、対象回路内のＦＦと各ＦＦの遷移で動作する論理回路を抽出した回路７００が特定される。なお、図７に示すように、回路７００内には、アナログ回路としてＡＤＣ７０１が含まれていることがわかる。ＡＤＣ７０１は、ノイズの影響を受ける回路とみなされる。
【００７５】
また、設計支援装置１００では、ステップＳ６０１によって作成されたゲートレベル記述ネットリスト６１０について、第１のＣＴＳ（クロックツリー生成プログラム（Ｃｌｏｃｋ  Ｔｒｅｅ  Ｓｙｎｔｈｅｓｉｓ））を実行する（ステップＳ６０３）。なお、ステップＳ６０３の実行の際には、デジタル回路の動作タイミングに関する制約条件を表すＣＴＳ制約条件６２０が与えられる。第１のＣＴＳでは、発生するノイズの波形を特定するため、デジタル回路に関連する部分のクロックツリーのみ生成し、アナログ回路のクロックツリーに関しては生成しない。
【００７６】
図８は、デジタル回路のクロックツリーを含む回路図である。ステップＳ６０３によって生成されたクロックツリーによってデジタル回路のクロックツリーを含むゲートレベル記述ネットリスト６５０が生成される。クロックツリーを含むゲートレベル記述ネットリスト６５０は図８に示した回路８００のような構成になっており、図７にて説明した回路７００にクロックツリー８１０を追加した構成になっている。
【００７７】
つぎに、設計支援装置１００では、対象回路内のノイズ量を計算する（ステップＳ６０４）。ノイズ量計算のため、まず、デジタル回路のクロックツリーを含むゲートレベル記述ネットリスト６５０と、各ＦＦの遷移で動作する論理回路の情報６３０とに基づいて、各ＦＦと各ＦＦの遷移で動作する論理回路の遷移タイミングを計算する。そして、論理回路の遷移タイミング計算結果と、あらかじめ用意した各論理回路の状態遷移時の発生ノイズ量テーブル６４０の値を各論理回路が動作する時間ごとに加算する。結果として、１クロックサイクルにおける電源ノイズの波形を算出することができる。なお、各論理回路の状態遷移時の発生ノイズ量テーブル６４０の具体的な内容についは詳しく後述する。
【００７８】
ステップＳ６０４による算出結果は各クロックで発生するノイズ量６６０としてデータベースとして提供される。そして、各クロックで発生するノイズ量６６０とともに、あらかじめ取得しておいた対象回路におけるノイズ入力タイミング−回路性能特性ＤＢ６７０とを使用して、第２のＣＴＳを実行する（ステップＳ６０５）。なお、ノイズ入力タイミング−回路性能特性ＤＢ６７０の取得についての具体的な手法については、詳しく後述する。
【００７９】
ステップＳ６０５の第２のＣＴＳでは、ゲートレベル記述ネットリスト６５０から対象回路内のアナログ回路のクロックタイミングを定めてクロックツリーを設計する。なお、第２のＣＴＳにおいても、クロックタイミングを決定する際の設計制約として、アナログ回路制約条件６８０が与えられる。アナログ回路制約条件６８０は具体的には、対象回路の動作タイミング制約や、対象回路に望まれている目標性能（たとえば、ＡＤＣであれば、目標性能を満たすＳＮＤＲ値）が含まれている。
【００８０】
そして、第２のＣＴＳによって設定されクロックタイミングで動作させた場合に目標性能を満たすか否かを判断する（ステップＳ６０６）。ステップＳ６０６において、第２のＣＴＳによって設定されクロックタイミングで動作させた場合に目標性能を満たさないと判断された場合（ステップＳ６０６：Ｎｏ）、ノイズ入力のタイミングを修正するためデジタル回路のクロックツリーを設定する。具体的には、デジタル回路のＣＴＳの修正をおこない（ステップＳ６０７）、対象回路の動作タイミングを動作タイミング制約内で回路特性が良くなる方向に移動させる。
【００８１】
ステップＳ６０７の処理によって生成されたゲートレベル記述ネットリスト６５０について、再度、ステップＳ６０６の判断をおこなう。そして、目標性能を満たすと判断された場合（ステップＳ６０６：Ｙｅｓ）、他の電源電圧によるノイズ量についても同等の検証をおこなう。そして、１クロックタイミングのすべての動作時間で、対象回路の回路性能が目標性能以上となる動作タイミングを決定し、第２のＣＴＳの設定に応じたクロックツリーを含むゲートレベル記述ネットリスト６９０が出力され、一連の処理を終了する。
【００８２】
なお、ステップＳ６０７の修正処理によって動作タイミングを変更しても、対象回路の回路性能が目標性能に満たない場合もある。こういった場合の対処法として、対象回路内のデジタル回路の動作タイミングを修正して、再度クロックツリーを設計する手法がある。
【００８３】
再設計の際には、まず、対象回路の回路性能が目標性能に満たない場合のノイズの大きさ、時間タイミングの範囲から、回路性能劣化の原因となるノイズが発生している時刻を特定する。そして、ステップＳ６０２にて生成された各ＦＦの遷移で動作する論理回路の情報６３０を参照して、特定された時刻に状態遷移している論理回路を抽出する。修正処理の際には、抽出した論理回路の動作タイミングを、ＣＴＳ制約条件６２０によって定められた動作タイミング制約の許す範囲で変更することで、効果的な修正が期待できる。
【００８４】
なお、上述した手法を用いても、対象回路の回路性能の劣化が著しく、事前に与えた目標性能を満たせない場合も発生する。このような場合には、修正に関する情報を出力すると同時に設計者に対して設計の大幅な変更もしくは設計制約の緩和を促す警告を出力してもよい。
【００８５】
＜２，ノイズ入力タイミング−回路性能特性の取得＞
つぎに、図６のステップＳ６０５にて利用したノイズ入力タイミング−回路性能特性ＤＢ６７０の作成について詳しく説明する。半導体集積回路上の対象回路について、ノイズ入力タイミング−回路性能特性を取得するには、様々な手法があるが、ここでは一例として専用のテスト用半導体回路を利用する手法について説明する。
【００８６】
図９は、テスト用半導体回路の実装例を示す回路図である。図９に示すテスト用半導体回路９００は、ＡＤＣ回路９０１についてノイズ入力タイミング−回路性能特性を取得することができる。テスト用半導体回路９００では、ＡＤＣ回路９０１の電源配線部に、電源電圧変動回路９０３を挿入する。さらに、テスト用半導体回路９００上に、制御回路９０２を設けている。制御回路９０２は、制御信号Ｓ１によって電源電圧変動回路９０３が出力する電源電圧を、ＡＤＣ回路９０１へのクロック信号Ｓ２に合わせて変動させる。
【００８７】
さらに、ＡＤＣ回路９０１には外部からアナログ入力信号Ａｉｎが与えられる。そして、回路特性評価装置９０４では、ＡＤ変換後の出力信号Ｄｏｕｔの波形とアナログ入力信号Ａｉｎの波形とを比較することにより、ＡＤＣ回路９０１の主要特性であるＳＮＤＲを得ることができる。また、テスト用半導体回路９００は、ＡＤＣ回路９０１のクロックのタイミングと、電源電圧９０５の変動量と、変動するタイミングを変動させてＳＮＤＲを測定することにより、ＡＤＣ回路９０１の特定動作タイミングで様々な量の電源ノイズが入った場合のＳＮＤＲを取得することができる。
【００８８】
上述のように回路特性評価装置９０４によって取得した情報を蓄積することによって、ノイズ入力タイミング−回路性能特性ＤＢ６７０が作成される。なお、他の手法として、テスト用半導体回路９００をソフトとウェアによって模擬した回路についてのシミュレーションを実行することにより、同様にノイズ入力タイミング−回路性能特性してもよい。
【００８９】
＜ノイズ波形算出処理＞
つぎに、ノイズ波形算出処理について詳しく説明する。図６のステップＳ６０４に述べたように、実施例では、ノイズ波形を算出するために各論理回路の状態遷移時の発生ノイズ量テーブル６４０を参照している。各論理回路の状態遷移時の発生ノイズ量テーブル６４０とは、各論理回路が各状態遷移の際にそれぞれどのようなノイズを発生しているかを表したデータテーブルである。
【００９０】
図１０は、インバータ回路の発生ノイズ例を示すデータテーブルである。また、図１１は、ＮＡＮＤ回路の発生ノイズ例を示すデータテーブルである。各論理回路の状態遷移時の発生ノイズ量テーブル６４０には、論理回路ごとに図１０，１１に示したようなデータテーブル１０００，１１００が用意されている。例示したデータテーブル１０００，１１００は対象回路内の論理回路としてインバータ回路とＮＡＮＤ回路について、遷移状態ごとに発生するノイズ量が示されている。
【００９１】
なお、図１０，１１において、ｃｌは論理回路の負荷、ｔｓは入力信号の遷移時間を意味する。各ノイズ量を得るには、既存の静的タイミング解析（ＳＴＡ）ツールを用いて計算をおこなう。また、入力データによって論理回路が遷移する方向が異なるため、ノイズの計算時には、信号がｒｉｓｅ／ｆａｌｌする場合のうち、発生ノイズが大きくなる方を計算に用いる。また、ＮＡＮＤ回路のように、複数の入力がある場合には、ぞれぞれの入力データに応じて場合分けされ、ぞれぞれの状態に応じたノイズ量が特定される。
【００９２】
したがって、ステップＳ６０４では、各ＦＦと各ＦＦの遷移で動作する論理回路の遷移タイミングごとに、対象となる論理回路について、ノイズ波形を算出するために各論理回路の状態遷移時の発生ノイズ量テーブル６４０を参照してノイズ量を特定する。そして、特定されたノイズ量を遷移タイミングごとに加算することによって、対象回路内で発生するノイズ波形を得ることができる。
【００９３】
＜３，ノイズ入力禁止期間の特定処理＞
図１２は、ノイズ入力禁止期間の特定例を示す説明図である。図１２のグラフは、約１００ｍＶと約５０ｍＶとの２種類の電源ノイズを印加した場合のノイズ入力タイミング−回路性能特性である。図１２のグラフ内の実線の波形は１００ｍＶの電源電圧のノイズによる影響を表し、破線は５０ｍＶの電源電圧のノイズによる影響を表している。たとえば、設計者が定めた目標性能がＳＮＤＲ＝５２ｄＢ以上の場合、ＳＮＤＲ＝ＳＮＤＲ＝５２ｄＢ未満となるノイズ入力タイミングのずれの期間が各種ノイズの入力を避けなければならない禁止期間となる。したがって、禁止期間の特定処理は、設計者がノイズ入力タイミング−回路性能特性を参照して手動でおこなってもよいし、目標性能を設定してノイズ入力タイミング−回路性能特性から自動的に禁止期間を設定するツールを利用してもよい。
【００９４】
＜４，動作タイミングの修正処理＞
図１３は、動作タイミングの修正例を示す説明図である。図１３のように、まず、１クロックサイクルごとの電源ノイズを表す波形１３００と初期設定タイミングとが比較される。そして、電源ノイズのピークが、初期設定動作タイミング内の禁止期間と重複しないかを判断する。なお、実施例では、１００ｍＶと５０ｍＶとの２種類の電源電圧によるノイズが発生しているため、電圧ごとに電源ノイズのピークが、初期設定動作タイミング内の禁止期間と重複しないかを判断する。
【００９５】
図１３のように、初期設定タイミングは、動作タイミングｔ１で動作を開始させるため、５０ｍＶの電源電圧による電源ノイズのピークと５０ｍＶのノイズ禁止期間とが重複している。したがって、動作タイミングｔ１のままでは、５０ｍＶの電源電圧による電源ノイズによって回路性能が著しく低下してしまう。
【００９６】
そこで、動作タイミングｔ１を修正する。動作タイミングの修正可能期間は、ＡＤＣ動作タイミング制約の表す期間に限定される。ここでは、一例として、動作タイミングｔ１を遅延させた動作タイミングｔ２に修正する。修正タイミングでは、１００ｍＶと５０ｍＶとのいずれの電源電圧による電源ノイズもノイズ禁止期間と重複していない。したがって、電源ノイズが入力されたとしても、回路性能が目標機能よりも劣化するような事態を防ぐことができる。
【００９７】
以上説明したように、本実施の形態にかかる設計支援プログラム、設計支援装置および設計支援方法によれば、対象回路内で発生する電源ノイズの波形と、ノイズ入力のタイミングに応じた回路性能への影響の変化を把握することにより、電源ノイズが入力されるタイミングを回路性能への影響の小さなタイミングに調整することができる。したがって、回路内部で発生するノイズによる回路性能の劣化を、設計工数を増加させることなく、確実に回避させることできる。
【００９８】
また、上述の技術を適用する際には、従来の半導体集積回路の設計工程における論理合成およびＣＴＳをそのまま置き換えればよい。他の工程に関しては、従来通りの設計をおこなえばよい。したがって、本実施の形態にかかる設計支援処理は、従来の設計手順や設計支援装置に対して容易に導入できるという利点も併せ持っている。
【００９９】
また、上記の技術は、動作タイミングの設定可能期間の制約がある場合には、設定可能期間の中の任意のタイミングを対象回路の動作タイミングに初期設定するとともに、設定した動作タイミングが適切か否かを判断する機能を備えている。したがって、設計者の熟練度にかかわらず、自動的に動作タイミングを設定することができる。
【０１００】
また、上記の技術は、対象回路内で発生する電源ノイズの波形のピークと、設定した動作タイミングが不適切であると判断された場合に、自動的に最適な動作タイミングにチューニングする機能を備えている。したがって、回路性能を劣化させるような動作タイミングのクロックツリーの設計を防ぐことができる。
【０１０１】
また、上記の技術は、所定回数修正が繰り返された場合や、所定時間以上動作タイミングが設定できない場合には、設計者に対して再設計指示を出力する機能を備えている。したがって、自動的な動作タイミング調整が困難な場合であっても、修正処理の無限ループを防ぎ、効率的な検証処理を支援することができる。
【０１０２】
また、上記の技術は、原因特定機能によって、再設計指示が生成された場合、対象回路の中から電源ノイズの波形のピークの時刻に遷移するデジタル回路を特定して、ノイズ発生の原因となる回路の情報として設計者に提供することができる。したがって、回路性能低下の原因となる回路が特定されるため、効率的に再設計を支援することができる。
【０１０３】
また、上記の技術は、複数の電源電圧による電源ノイズが発生している場合には、電圧ごとに電源ノイズの波形を算出する。そして、算出された各波形のピークが、回路性能が低下する期間と重複しない対象回路の動作タイミング設定をすることができる。すなわち、電源電圧ごとに発生する電源ノイズのピークのタイミングが異なる場合であっても、アナログ回路への影響が少ないタイミングでノイズが入力されるようなタイミングに修正したクロックツリーを設計することができる。したがって、電源電圧の種類にかかわらず、回路性能を所定値以上に保つことができる。
【０１０４】
なお、本実施の形態で説明した設計支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネットなどのネットワークを介して配布してもよい。
【０１０５】
また、本実施の形態で説明した設計支援装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した設計支援装置１００の機能（回路情報取得部４０１〜原因特定部４１２）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、設計支援装置１００を製造することができる。
【符号の説明】
【０１０６】
１００  設計支援装置
１０１  対象回路設計情報
１０２  クロックツリー設計情報
４００  回路情報
４０１  回路情報取得部
４０２  第１のクロックツリー取得部
４０３  算出部
４０４  特定部
４０５  設定部
４０６  第２のクロックツリー取得部
４０７  出力部
４０８  初期設定部
４０９  判断部
４１０  修正部
４１１  生成部
４１２  原因特定部
４２０  クロックツリー設計ツール
４３０  ネットリスト用クロックツリー設計情報
【図１】
2011076192.tif 000003
【図２】
2011076192.tif 000004
【図３】
2011076192.tif 000005
【図４】
2011076192.tif 000006
【図５】
2011076192.tif 000007
【図６】
2011076192.tif 000008
【図７】
2011076192.tif 000009
【図８】
2011076192.tif 000010
【図９】
2011076192.tif 000011
【図１０】
2011076192.tif 000012
【図１１】
2011076192.tif 000013
【図１２】
2011076192.tif 000014
【図１３】
2011076192.tif 000015
【図１４】
2011076192.tif 000016
【図１５】
2011076192.tif 000017
【図１６】
2011076192.tif 000018
【図１７】
2011076192.tif 000019