(57)【要約】【課題】半導体装置におけるクロックジッタの低減ができる半導体設計支援装置を提供することを目的とする。【解決手段】半導体設計支援装置１００は、クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路と、クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定する。そして、クロック分配回路のクロック信号の伝播遅延時間を特定する。そして、クロック信号の伝播遅延時間に調整時間を加えた調整後伝播遅延時間がノイズ周期の自然数倍となるように調整時間を決定する。クロック分配回路のクロック信号の伝播遅延時間を調整時間を加えた値とすることで、半導体装置におけるクロックジッタの低減ができる。【選択図】図１
2010191644.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置の設計を支援するための半導体設計支援プログラムであって、
コンピュータを、
クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定する調整対象回路指定手段、
前記クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定するノイズ周期特定手段、
前記クロック分配回路の前記伝播遅延時間を特定する遅延時間特定手段、
前記伝播遅延時間に調整時間を加えた調整後伝播遅延時間が前記ノイズ周期の自然数倍となるように調整時間を決定する調整時間決定手段、
として機能させることを特徴とする半導体設計支援プログラム。
【請求項２】
前記コンピュータを、さらに、
前記調整時間決定手段が決定した前記調整時間相当の遅延回路を、前記クロック分配回路に挿入して前記クロック分配回路を更新する調整対象回路更新手段、
として機能させることを特徴とする請求項１記載の半導体設計支援プログラム。
【請求項３】
複数のクロック分配回路を有する半導体装置の設計を支援するための半導体設計支援プログラムであって、
コンピュータを、
クロック信号が伝播する伝播遅延時間の調整対象となる調整対象クロック分配回路を指定する調整対象回路指定手段、
前記調整対象クロック分配回路に周期的なノイズの影響を与えるノイズ源クロック分配回路のクロック周期を特定するクロック周期特定手段、
前記調整対象クロック分配回路の前記伝播遅延時間を特定する遅延時間特定手段、
前記伝播遅延時間に調整時間を加えた調整後伝播遅延時間が前記クロック周期の自然数倍となるように調整時間を決定する調整時間決定手段、
として機能させることを特徴とする半導体設計支援プログラム。
【請求項４】
半導体装置の設計を支援するための半導体設計支援装置であって、
クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定する調整対象回路指定手段と、
前記クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定するノイズ周期特定手段と、
前記クロック分配回路の前記伝播遅延時間を特定する遅延時間特定手段と、
前記伝播遅延時間に調整時間を加えた調整後伝播遅延時間が前記ノイズ周期の自然数倍となるように調整時間を決定する調整時間決定手段と、
を備えることを特徴とする半導体設計支援装置。
【請求項５】
半導体装置の設計を支援するための半導体設計支援方法であって、
クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定するステップと、
前記クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定するステップと、
前記クロック分配回路の前記伝播遅延時間を特定するステップと、
前記伝播遅延時間に調整時間を加えた調整後伝播遅延時間が前記ノイズ周期の自然数倍となるように調整時間を決定するステップと、
からなることを特徴とする半導体設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体設計支援プログラム、半導体設計支援装置、および半導体設計支援方法に関し、特に、非同期のクロックドメインを複数持つ半導体装置で、注目するクロック信号のジッタを低減可能な半導体設計支援プログラム、半導体設計支援装置、および半導体設計支援方法に関する。
【背景技術】
【０００２】
クロック供給回路を備える半導体装置では、半導体装置の設計上の問題として、クロックジッタの抑制が知られている。近年、半導体装置は、動作速度がますます高速化し、誤動作の原因となるクロックジッタの改善の重要性がより高いものとなってきている。
【０００３】
図１０は、半導体装置の従来例であり、図１１は、クロックジッタを説明する図である。
半導体装置５００は、複数段のクロックバッファ５１１、５１２、５１３、５２１、５２２、５２９を介してクロック信号を分配するクロックツリー５１０を有する。クロックツリー５１０は、ＣＬＫ１（クロック１）５３１からクロック信号を入力して、ＦＦ（フリップフロップ）回路５４１、５４２、ＡＤＣ（Ａ／Ｄコンバータ）回路５４９などのクロック信号を必要とする回路にクロック信号を分配する。クロック信号は、クロックツリー５１０の最前段にあるクロックバッファ５１１への入力から最後段にあるクロックバッファ５２１、５２２、５２９からの出力に至るまでに遅延する。ノイズの影響のないときの伝播遅延時間ｔ１は、ノイズの影響下で伝播遅延時間ｔ１ａ、ｔ１ｂ、ｔ１ｃ、ｔ１ｄのように変動する。たとえば、ＣＬＫ１（クロック１）５３１とは非同期のＣＬＫ２（クロック２）５５１が接続されたデジタル回路５５０が動作すると、半導体装置５００内の電源線の電圧が変動するなどしてノイズ５６０が発生する。クロックツリー５１０は、ノイズ５６０の影響を受けて伝播遅延時間ｔ１が変動する。このときの、伝播遅延時間ｔ１の変動量をジッタ量Δｔ１（クロックジッタ）として評価したとき、ジッタ量Δｔ１の大きい半導体装置５００の動作は、不安定となる。また、クロックジッタは近年の高速な半導体装置５００では、安定した動作実現のために無視できない値となる場合があり、クロックジッタを抑制することが半導体装置設計上の問題となっている。
【０００４】
そこで、一般には、ノイズ源となるデジタル回路５５０の電源グランド間にパスコン（バイパスコンデンサ）５５２を挿入して、デジタル回路５５０の発生する電源変動を抑制することで、ジッタ量Δｔ１を低減させる対策が知られている。
【０００５】
また、クロックジッタの低減化については、ジッタキャンセル回路の提案などがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３１０６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年の回路の高速化や、ＡＤＣ５４９などの高精度化に呼応するように、設計現場に対するクロックジッタ抑制に対する要求は、厳しさを増している。従来技術でこれに応えるには、パスコン５５２の挿入、またはパスコンの容量を増やすこととなるが、半導体装置５００の面積を拡大する方向に作用し、半導体装置５００が高コスト化するなどの欠点を生じる。ジッタキャンセル回路を設けることも同様の欠点を有する。また、半導体装置５００の設計の見直しなどにより、開発期間の延長、開発コストの増大などの問題が生じる場合もある。
【０００８】
本発明はこのような点に鑑みてなされたものであり、半導体装置におけるクロックジッタの低減ができる半導体設計支援プログラム、半導体設計支援装置、および半導体設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、半導体装置の設計を支援するための半導体設計支援装置として、コンピュータを機能させる半導体設計支援プログラムが提供される。
半導体設計支援装置は、調整対象回路指定手段と、ノイズ周期特定手段と、遅延時間特定手段と、調整時間決定手段とを備える。
【００１０】
調整対象回路指定手段は、クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定する。ノイズ周期特定手段は、クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定する。遅延時間特定手段は、クロック分配回路の伝播遅延時間を特定する。調整時間決定手段は、伝播遅延時間に調整時間を加えた調整後伝播遅延時間がノイズ周期の自然数倍となるように調整時間を決定する。
【発明の効果】
【００１１】
上記の半導体設計支援装置では、半導体装置のクロックジッタの低減ができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態の概要を示す図である。
【図２】クロックツリーの伝播遅延時間とジッタ量の関係を表したグラフである。
【図３】実施の形態の半導体設計支援装置のハードウェア構成例を示す図である。
【図４】半導体設計支援装置の機能ブロック図である。
【図５】調整対象となるクロックツリーの調整前後の様子を表した図である。
【図６】遅延時間算出処理を示すフローチャートである。
【図７】調整時間決定処理を示すフローチャートである。
【図８】第二の実施形態における設計支援の対象となる半導体装置である。
【図９】第二の実施形態におけるノイズ源指定部の機能を説明する図である。
【図１０】半導体装置の従来例である。
【図１１】クロックジッタを説明する図である。
【発明を実施するための形態】
【００１３】
以下、実施の形態を図面を参照して説明する。
図１は、実施の形態の概要を示す図である。実施の形態に係る半導体設計支援装置１００は、半導体装置２００（図８参照）の設計を支援する装置であり、いわゆるＣＡＤ（Computer Aided Design）と呼ばれる設計支援ツールである。
【００１４】
半導体設計支援装置１００は、調整対象回路指定手段１００ａと、ノイズ周期特定手段１００ｂと、伝播遅延時間特定手段１００ｃと、調整時間決定手段１００ｄとを備える。また、各種設計情報を記憶する設計情報記憶手段１００ｅを備える。
【００１５】
調整対象回路指定手段１００ａは、クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定する。ノイズ周期特定手段１００ｂは、クロック分配回路に周期的ノイズの影響を与えるノイズ源のノイズ周期を特定する。伝播遅延時間特定手段１００ｃは、クロック分配回路の伝播遅延時間を特定する。調整時間決定手段１００ｄは、伝播遅延時間に調整時間を加えた調整後伝播遅延時間がノイズ周期の自然数倍となるように調整時間を決定する。
【００１６】
また、半導体設計支援装置１００は、設計情報記憶手段１００ｅを備える。設計情報記憶手段１００ｅは、半導体設計のための各種情報を記憶する。たとえば、設計情報記憶手段１００ｅは、調整対象回路指定手段１００ａによるクロック分配回路を指定のために参照する、およびノイズ周期特定手段１００ｂがノイズ源のノイズ周期を特定するために参照するネットリスト情報を記憶する。また、設計情報記憶手段１００ｅは、遅延時間特定手段１００ｄがクロック分配回路の伝播遅延時間を特定するために参照する遅延情報を記憶する。また、設計情報記憶手段１００ｅは、調整時間決定手段１００ｄが調整時間を決定するためのセルライブラリ情報を記憶する。
【００１７】
クロック信号は、所定の入力ノードから所定の出力ノードまでのクロック伝播経路で伝播する。クロック分配回路は、一のクロック信号の入力を複数のクロック信号の出力に分配する。したがって、クロック分配回路は、クロック信号の出力毎にクロック伝播経路を有する。クロック信号は、クロック伝播回路に入力されてから出力されるに至るまでに、経路長、分配器を原因にして遅延する。クロック分配回路は、各クロック伝播経路の伝播遅延時間が同じになるようにクロックバッファを挿入してクロック信号の伝達タイミングの最適化を図っている。
【００１８】
伝播遅延時間の調整は、周期的ノイズのクロック分配回路への影響を低減させるためになされる。図２は、クロックツリーの伝播遅延時間とジッタ量の関係を表したグラフである。観測対象のクロックツリーに入力されたクロック信号ＣＬＫ１の出力ノードにおけるジッタ量の測定値をグラフ化したものである。横軸は、クロックツリーにおけるクロック信号ＣＬＫ１の伝播遅延時間である。縦軸は、クロック信号ＣＬＫ１の出力ノードにおけるジッタ量である。ｆ２は、周期的ノイズの周波数であり、１／ｆ２は、ノイズ周期、２／ｆ２は、ノイズ周期の２倍の時間である。このとき、ジッタ量は、周期１／ｆ２で、最小値Ｔｊ１、最大値Ｔｊ２の間で周期的に変動する測定例を得る。ここで、ｔ１は、クロックツリーの設計当初の伝播遅延時間であり、ジッタ量は、Ｔｊｔである。
【００１９】
伝播遅延時間が１／ｆ２、または２／ｆ２のように１／ｆ２の自然数倍のときに、ジッタ量の最小値Ｔｊ１なので、伝播遅延時間ｔに調整時間Δｔを加えて伝播遅延時間（調整後伝播遅延時間）を２／ｆ２にするとジッタ量を低減できる。なお、伝播遅延時間を大きくする方向に調整するのは、クロックバッファを設ければ容易にできる。伝播遅延時間を小さくする方向に調整するのは、クロックツリーの設計見直しによってすることができる。一般に、クロックツリーの設計見直しよりも、クロックバッファの追加のほうが容易なため、伝播遅延時間を大きくする方向に調整することが好ましい。
【００２０】
これにより、クロック信号のジッタ量を低減した半導体装置の設計を容易に行うことができ、信頼性の高い半導体装置の提供を可能にするとともに、設計工程の手戻りによる開発期間の増大を避けることができる。
【００２１】
次に、本実施の形態の詳細を説明する。図３は、実施の形態の半導体設計支援装置のハードウェア構成例を示す図である。半導体設計支援装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００２２】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやサーバを実行するためのアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００２３】
グラフィック処理装置１０４には、モニタ１１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１１の画面に表示させる。
【００２４】
入力インタフェース１０５には、キーボード１１２とマウス１１３とが接続されている。入力インタフェース１０５は、キーボード１１２やマウス１１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００２５】
通信インタフェース１０６は、ネットワーク１１０に接続されている。通信インタフェース１０６は、ネットワーク１１０を介して、他のコンピュータ（たとえば、設計支援用サーバや、設計データベースサーバ）との間でデータの送受信を行う。
【００２６】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
次に、本実施の形態の半導体設計支援装置が提供する機能について説明する。図４は、半導体設計支援装置の機能ブロック図である。
【００２７】
半導体設計支援装置１００は、調整対象回路指定部１０、伝播遅延時間特定部２０、ノイズ源指定部３０、ノイズ周期特定部４０、調整時間決定部５０、遅延回路生成部６０、調整対象回路更新部７０を備える。また、半導体設計支援装置１００は、ＲＡＭ１０２に遅延情報８０、ネットリスト情報８１、セルライブラリ情報８２を記憶する。遅延情報８０、ネットリスト情報８１、セルライブラリ情報８２は、ＨＤＤ１０３から読み出されて、またはネットワーク１１０を介して他のコンピュータから読み出されてＲＡＭ１０２に記憶される。
【００２８】
調整対象回路指定部１０は、クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定する。具体的には、調整対象となるクロック分配回路の指定は、調整対象となる半導体装置のネットリストと調整対象となるクロックツリー（クロック分配回路）の始点（入力ノード）情報の入力を受け付けることでする。調整対象回路指定部１０は、受け付けた入力情報をネットリスト情報８１で検索することにより、指定された調整対象となるクロックツリーを特定することができる。これにより、調整対象回路指定部１０は、調整対象となるクロックツリーの始点情報と終点（出力ノード）情報とを特定することができる。なお、調整対象回路指定部１０は、終点情報が２つ以上ある場合は、そのすべてについて特定することができる。なお、調整対象回路指定部１０は、クロックツリーの終点情報の入力を受け付けて、特定の終点のみに注目するようにすることもできる。たとえば、終点にＡＤＣが接続し、ＡＤＣに入力するクロック信号に高い精度が求められる場合などに、クロックツリーの終点情報の入力を受け付けることが望ましい。なお、終点情報は、たとえば、クロックツリーの出力ノードの他に、クロック供給先回路（ＦＦ回路、ＡＤＣ回路など）のクロック端子とすることができる。
【００２９】
伝播遅延時間特定部２０は、クロックツリーの始点から終点までのクロック信号の伝播遅延時間を特定する。具体的には、伝播遅延時間特定部２０は、調整対象回路指定部１０が特定した始点情報と終点情報とから、始点から終点に至る経路の遅延時間を遅延情報８０から特定する。遅延情報８０には、クロックツリーの経路毎の遅延時間が記録されている。なお、伝播遅延時間特定部２０は、ネットリスト情報８１から遅延時間を特定することもできる。
【００３０】
ノイズ源指定部３０は、周期的ノイズを発生するノイズ源を指定する。ノイズ源指定部３０は、受け付けた入力情報をネットリスト情報８１で検索することにより、指定されたノイズ源となるクロック分配回路を特定することができる。なお、ノイズ源は、クロック分配回路に限らず、周期的なノイズを発生するノイズ源にも適用できる。
【００３１】
ノイズ周期特定部４０は、ノイズ源指定部３０が指定したノイズ源のノイズ周期をネットリスト情報８１から特定する。なお、ここでは、ノイズ周期を特定可能であれば、ノイズの周波数を特定するなど、ノイズ周期特定部４０は、ノイズ周期を間接的に特定するものであってもよい。
【００３２】
調整時間決定部５０は、伝播遅延時間特定部２０が特定した伝播遅延時間と、ノイズ周期特定部４０が特定したノイズ周期とから、伝播遅延時間に調整時間を加えた調整後伝播遅延時間がノイズ周期の自然数倍となるように調整時間を決定する。
【００３３】
遅延回路生成部６０は、セルライブラリ情報８２を用いて、遅延時間が、調整時間決定部５０が決定した調整時間となるような調整遅延回路を作成する。調整遅延回路は、一つ以上の基本回路（たとえば、クロックバッファ）により生成される。なお、基本回路により調整可能な遅延時間の値が離散的な値をとる場合は、調整遅延回路の遅延時間は、調整時間決定部５０が決定した調整時間の近似値としてもよい。
【００３４】
調整対象回路更新部７０は、遅延回路生成部６０が生成した調整遅延回路を調整対象となるクロックツリーの始点または始点に近い位置に組み込むようにネットリスト情報８１を更新する。調整遅延回路を調整対象となるクロックツリーの始点または始点に近い位置に組み込むのは、調整遅延回路の遅延時間がより後段に及ぶため、調整遅延回路の規模をより小さくすることができるからである。
【００３５】
次に、調整対象回路更新部７０が更新するクロックツリーについて、調整前後の様子を示しながら説明する。図５は、調整対象となるクロックツリーの調整前後の様子を表した図である。
【００３６】
図５（ａ）は、調整前のクロックツリーの様子を表す。調整前のクロックツリー２１０の指定は、調整対象回路指定部１０により、調整前のクロックツリー２１０の始点となる入力ノード２１５を特定する情報の入力を受け付けることでされる。調整対象回路指定部１０は、受け付けた入力情報をネットリスト情報８１で検索することにより、入力ノード２１５が属するクロックツリー２１０を特定することができる。
【００３７】
図５（ｂ）は、遅延回路生成部６０が生成する調整遅延回路を表す。調整遅延回路２９９は、遅延回路生成部６０により生成される。図５（ｃ）は、調整後のクロックツリーの様子を表す。調整後のクロックツリー２９０は、入力ノード２９５の後段に調整遅延回路２９９がレイアウトされる。これにより、クロックツリー２９０の外側を変更することなく、クロックツリー２９０の範囲を変更範囲とすることができる。
【００３８】
次に、図６を用いて遅延時間算出処理を説明する。図６は、遅延時間算出処理を示すフローチャートである。クロックツリーの始点から終点までのクロック信号の伝播遅延時間は、クロックツリーの始点から終点に至る経路が複数あるために一意に定まらない場合がある。そこで、遅延時間算出処理は、調整対象となるクロックツリーの伝播遅延時間として、どのような値で代表させるかを決定する処理である。遅延時間算出処理は、調整対象回路指定部１０による調整対象回路の指定を受けて、伝播遅延時間特定部２０が実行する。
【００３９】
［ステップＳ１１］伝播遅延時間特定部２０は、調整対象となるクロックツリーの終点情報をネットリスト情報８１から取得する。
［ステップＳ１２］伝播遅延時間特定部２０は、調整対象となるクロックツリーの始点から各終点までのクロック信号の伝播遅延時間を算出する。具体的には、伝播遅延時間特定部２０は、調整対象回路指定部１０が特定した始点情報と終点情報とから、始点から終点に至る経路の遅延時間を遅延情報８１から特定する。
【００４０】
［ステップＳ１３］伝播遅延時間特定部２０は、始点から終点に至る複数の経路のうちに重要経路があるか否かを判定する。重要経路があればステップＳ１４にすすみ、重要経路がなければステップＳ１５にすすむ。重要経路の有無の判断は、たとえば、終点に入力するクロック信号に高い精度が求められるＡＤＣが接続されている場合に、その終点に至る経路を重要経路と判断してもよい。これら判断基準は、予め設定情報などにより与えられるものであってもよいし、判断の際にオペレータに問い合わせる（重要経路の指定を受け付ける）ものであってもよい。
【００４１】
［ステップＳ１４］伝播遅延時間特定部２０は、調整対象となるクロックツリーの遅延時間に重要経路の遅延時間を設定する。そして、伝播遅延時間特定部２０は、遅延時間算出処理を終了する。
【００４２】
［ステップＳ１５］伝播遅延時間特定部２０は、始点から終点に至る複数の経路の遅延時間の標準偏差を算出し、算出した標準偏差が予め定めた所定値以下であればステップＳ１７にすすみ、算出した標準偏差が予め定めた所定値以下でなければステップＳ１６にすすむ。
【００４３】
［ステップＳ１６］伝播遅延時間特定部２０は、調整対象となるクロックツリーの遅延時間に複数の経路の遅延時間の中央値を設定する。そして、伝播遅延時間特定部２０は、遅延時間算出処理を終了する。
【００４４】
［ステップＳ１７］伝播遅延時間特定部２０は、調整対象となるクロックツリーの遅延時間に複数の経路の遅延時間の平均値を設定する。そして、伝播遅延時間特定部２０は、遅延時間算出処理を終了する。
【００４５】
このように、伝播遅延時間特定部２０は、条件に応じて適切な遅延時間を特定することで、設計者の意図に沿ってジッタ量の低減を行うことができる。
なお、ステップＳ１５で標準偏差による条件判断をしたが、遅延時間の大きさや、経路数など、その他の条件を適宜設定できる。また、条件判断によらずに一意に遅延時間を最大値や、最小値、平均値、中央値、最頻値などに決定することもできる。
【００４６】
次に、図７を用いて調整時間決定処理を説明する。図７は、調整時間決定処理を示すフローチャートである。調整時間決定処理は、伝播遅延時間特定部２０が決定した伝播遅延時間を調整する調整時間を決定する処理である。調整時間決定処理は、伝播遅延時間特定部２０が伝播遅延時間を特定し、ノイズ周期特定部４０がノイズ源のノイズ周期を特定した後に、調整時間決定部５０により実行される。
【００４７】
［ステップＳ２１］調整時間決定部５０は、伝播遅延時間特定部２０が特定した伝播遅延時間を取得する。
［ステップＳ２２］調整時間決定部５０は、ノイズ周期特定部４０が特定したノイズ源のノイズ周期を取得する。
【００４８】
［ステップＳ２３］調整時間決定部５０は、ノイズ源のノイズ周期から伝播遅延時間を減算する。
［ステップＳ２４］調整時間決定部５０は、ノイズ源のノイズ周期から伝播遅延時間を減算した値が負の値であればステップＳ２５にすすむ。調整時間決定部５０は、ノイズ源のノイズ周期から伝播遅延時間を減算した値が負の値でなければ、ステップＳ２７にすすみ、ノイズ源のノイズ周期から伝播遅延時間を減算した値を調整時間として決定する（ステップＳ２７）。
【００４９】
［ステップＳ２５］調整時間決定部５０は、ノイズ源のノイズ周期から伝播遅延時間を減算した値の絶対値が、十分に小さい場合、または設計変更で対応可能とされる程度に小さい場合は、ノイズ源のノイズ周期から伝播遅延時間を減算した値が負の値であってもステップＳ２７にすすむ。そして、調整時間決定部５０は、ノイズ源のノイズ周期から伝播遅延時間を減算した値を調整時間として決定する（ステップＳ２７）。調整時間決定部５０は、ノイズ源のノイズ周期から伝播遅延時間を減算した値の絶対値が設計変更で対応可能とされる程度に小さくない場合は、ステップＳ２６にすすむ。
【００５０】
なお、ノイズ源のノイズ周期から伝播遅延時間を減算した値の絶対値が十分に小さいか否かの判断、または設計変更で対応可能か否かの判断は、予め設定した閾値により判断することができる。
【００５１】
［ステップＳ２６］調整時間決定部５０は、ノイズ源のノイズ周期から伝播遅延時間を減算した値に、ノイズ源のノイズ周期を加算してステップＳ２４にすすむ。
このようにして、調整時間決定部５０は、伝播遅延時間を調整する調整時間を決定する。
【００５２】
なお、ここで、調整時間決定部５０が調整時間を算出する算出式は、
（伝播遅延時間＋調整時間）＝（ノイズ源のノイズ周期）×自然数
となり、算出式を満足する最小の調整時間を算出することに相当する。
【００５３】
このように、調整時間決定部５０は、伝播遅延時間と調整時間の和がノイズ源のノイズ周期の自然数倍となるように調整時間を算出する。したがって、半導体設計支援装置１００は、クロックツリーの伝播遅延時間の調整を支援し、ジッタ量を極小値とする半導体設計に貢献する。
【００５４】
次に、ノイズ源指定部３０がノイズ源を自動判別する第二の実施形態を説明する。図８は、第二の実施形態における設計支援の対象となる半導体装置である。図９は、第二の実施形態におけるノイズ源指定部の機能を説明する図である。
【００５５】
半導体装置２００は、ノイズ源の自動判別対象である複数のクロックツリー２１０、２２０、２３０を備える。クロックツリー２１０は、ＣＬＫ１０（クロック１０）２５１からクロック信号の入力を受ける。クロックツリー２２０は、ＣＬＫ２０（クロック２０）２５２からクロック信号の入力を受ける。クロックツリー２３０は、ＣＬＫ３０（クロック３０）２５３からクロック信号の入力を受ける。それぞれのクロックツリー２１０、２２０、２３０は、それぞれが入力されるクロック信号の周期のノイズ発生源となる。また、それぞれのクロックツリー２１０、２２０、２３０は、他のノイズ発生源の影響を受けてジッタ量が増大する。
【００５６】
ノイズ源指定部３０は、クロックドメイン配置情報取得部３１、クロックドメイン毎配置情報取得部３２、クロックドメイン間距離計算部３３、ノイズ源評価部３４を備える。ノイズ源指定部３０は、クロックツリー始点情報９１を入力して、ノイズ源指定情報９５を出力する。また、ノイズ源指定部３０は、ノイズ源指定情報９５を出力するにあたり、半導体設計支援装置１００のＲＡＭ１０２に記憶されたフロアプラン情報８３、ネットリスト情報８１、消費電力情報８４を参照する。フロアプラン情報８３、ネットリスト情報８１、消費電力情報８４、周波数情報８５は、ＨＤＤ１０３から読み出されて、またはネットワーク１１０を介して他のコンピュータから読み出されてＲＡＭ１０２に記憶される。
【００５７】
クロックドメイン配置情報取得部３１は、フロアプラン情報８３とネットリスト情報８１を参照して、入力されたクロックツリー始点情報９１が属するクロックツリー２１０を特定してクロックドメイン配置情報９２を取得する。
【００５８】
クロックドメイン配置情報取得部３１は、クロックツリー始点情報９１として、始点に相当する入力ノード２１５の座標情報（ｘ１１，ｙ１１）を受け付ける。そして、クロックドメイン配置情報取得部３１は、入力ノード２１５から、ネットリスト情報８１を参照して、入力ノード２１５に接続されているクロックバッファをトレースする。そして、クロックドメイン配置情報取得部３１は、トレースしたクロックバッファのレイアウトデータ上の座標情報（たとえば、ノード２１１の座標情報（ｘ１ｉ，ｙ１ｉ））を順次に抽出する。クロックドメイン配置情報取得部３１は、クロックバッファの座標情報をすべて抽出し終わったら、抽出対象としたすべてのクロックバッファを包含する領域（たとえば、（ｘ座標最小値、ｙ座標最小値）２１６、（ｘ座標最大値、ｙ座標最小値）２１８、（ｘ座標最小値、ｙ座標最大値）２１７、（ｘ座標最大値、ｙ座標最大値）２１９を頂点とする矩形）を求める。そして、クロックドメイン配置情報取得部３１は、求めた領域（クロックドメイン）の配置情報としてクロックドメイン配置情報９２を取得する。クロックドメイン配置情報９２は、たとえば、矩形の頂点座標、対角線の交点座標である。
【００５９】
クロックドメイン毎配置情報取得部３２は、フロアプラン情報８３とネットリスト情報８１を参照して、入力されたクロックツリー始点情報９１が属するクロックツリー２１０以外のクロックツリー２２０、２３０を特定してドメイン毎配置情報９３を取得する。
【００６０】
クロックドメイン毎配置情報取得部３２は、ネットリスト情報８１を参照して、すべてのクロックバッファをトレースする。そして、クロックドメイン毎配置情報取得部３２は、トレースしたクロックバッファのレイアウトデータ上の座標情報（たとえば、ノード２２１の座標情報（ｘ２ｉ，ｙ２ｉ）、ノード２３１の座標情報（ｘ３ｉ，ｙ３ｉ））を順次に抽出する。クロックドメイン毎配置情報取得部３２は、クロックバッファの座標情報をすべて抽出し終わったら、クロックドメイン毎に、抽出対象としたすべてのクロックバッファを包含する領域を求める。そして、クロックドメイン毎配置情報取得部３２は、求めた領域（クロックドメイン）の配置情報としてドメイン毎配置情報９３を取得する。クロックドメイン配置情報９３は、たとえば、矩形の頂点座標、対角線の交点座標である。
【００６１】
クロックドメイン間距離計算部３３は、クロックドメイン配置情報取得部３１が取得したクロックドメイン配置情報９２と、クロックドメイン毎配置情報取得部３２が取得したドメイン毎配置情報９３を入力する。そして、クロックドメイン間距離計算部３３は、クロックドメイン間の距離を計算し、ドメイン間距離情報９４を算出する。ここで、クロックドメイン間の距離は、クロックドメインがある範囲に分布することから距離をいくつかの方法で定義することができるが、簡便な方法として、クロックドメインの中心（クロックドメインを包含する矩形の対角線の交点座標）間の距離で定義できる。このようにして、クロックドメイン間の距離の計算ができる。
【００６２】
ノイズ源評価部３４は、クロックドメイン間距離計算部３３が算出したドメイン間距離情報９４と、消費電力情報８４を参照して、ドメイン毎のノイズ量を計算、評価してノイズ源を指定する。ノイズ量は、クロックドメイン毎の消費電力量と、クロックドメイン間の距離とから、調整対象のクロックツリーに最も大きな電源変動を与えるとみなせるクロックドメインを抽出する。なお、ノイズ源評価部３４は、等価回路を作成して、回路解析をすることで、より正確にノイズ源となるクロックドメインを抽出可能であるが、簡便方として消費電力量をクロックドメイン間の距離で除した値でノイズ量を評価することができる。そして、ノイズ源評価部３４は、ノイズ量（評価結果）が最大となるクロックドメインを抽出し、ノイズ源として指定（ノイズ源指定情報９５）する。
【００６３】
このように、ノイズ源の指定を自動抽出することで、設計者の作業負担を軽減することができる。また、設計者の予断による判断ミスを是正して、より好適なクロックジッタの低減を可能とすることもできる。
【００６４】
なお、上記の実施の形態では、半導体設計支援装置１００を１台のコンピュータとして説明したが、クライアントコンピュータとサーバコンピュータとが協働して、２台以上のコンピュータで半導体設計支援装置１００を実現することもできる。
【００６５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、半導体設計支援装置１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００６６】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６７】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【００６８】
なお、上述の実施の形態は、実施の形態の要旨を逸脱しない範囲内において種々の変更を加えることができる。
さらに、上述の実施の形態は、多数の変形、変更が当業者にとって可能であり、説明した正確な構成および応用例に限定されるものではない。
【００６９】
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
（付記１）  半導体装置の設計を支援するための半導体設計支援プログラムであって、
コンピュータを、
クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定する調整対象回路指定手段、
前記クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定するノイズ周期特定手段、
前記クロック分配回路の前記伝播遅延時間を特定する遅延時間特定手段、
前記伝播遅延時間に調整時間を加えた調整後伝播遅延時間が前記ノイズ周期の自然数倍となるように調整時間を決定する調整時間決定手段、
として機能させることを特徴とする半導体設計支援プログラム。
【００７０】
（付記２）  前記コンピュータを、さらに、
前記調整時間決定手段が決定した前記調整時間相当の遅延回路を、前記クロック分配回路に挿入して前記クロック分配回路を更新する調整対象回路更新手段、
として機能させることを特徴とする付記１記載の半導体設計支援プログラム。
【００７１】
（付記３）  複数のクロック分配回路を有する半導体装置の設計を支援するための半導体設計支援プログラムであって、
コンピュータを、
クロック信号が伝播する伝播遅延時間の調整対象となる調整対象クロック分配回路を指定する調整対象回路指定手段、
前記調整対象クロック分配回路に周期的なノイズの影響を与えるノイズ源クロック分配回路のクロック周期を特定するクロック周期特定手段、
前記調整対象クロック分配回路の前記伝播遅延時間を特定する遅延時間特定手段、
前記伝播遅延時間に調整時間を加えた調整後伝播遅延時間が前記クロック周期の自然数倍となるように調整時間を決定する調整時間決定手段、
として機能させることを特徴とする半導体設計支援プログラム。
【００７２】
（付記４）  前記コンピュータを、さらに、
前記調整時間決定手段が決定した前記調整時間相当の遅延回路を、前記クロック分配回路に挿入して前記クロック分配回路を更新する調整対象回路更新手段、
として機能させることを特徴とする付記３記載の半導体設計支援プログラム。
【００７３】
（付記５）  前記クロック周期特定手段を、さらに、
前記複数のクロック分配回路のうちから一のクロック分配回路を前記ノイズ源クロック分配回路とする指定を受け付けるノイズ源クロック分配回路指定手段、
として機能させることを特徴とする付記４記載の半導体設計支援プログラム。
【００７４】
（付記６）  前記クロック周期特定手段を、さらに、
前記複数のクロック分配回路が前記調整対象クロック分配回路に与えるノイズの影響を評価して、前記評価の結果に基づいて前記複数のクロック分配回路のうち一のクロック分配回路を前記ノイズ源クロック分配回路とするノイズ評価手段、
として機能させることを特徴とする付記４記載の半導体設計支援プログラム。
【００７５】
（付記７）  前記ノイズ評価手段は、
前記複数のクロック分配回路の各々と前記調整対象クロック分配回路の距離に基づいてノイズの影響を評価することを特徴とする付記６記載の半導体設計支援プログラム。
【００７６】
（付記８）  前記ノイズ評価手段は、
前記複数のクロック分配回路の各々の消費電力量に基づいてノイズの影響を評価することを特徴とする付記６記載の半導体設計支援プログラム。
【００７７】
（付記９）  前記ノイズ評価手段は、
前記複数のクロック分配回路の各々と前記調整対象クロック分配回路の距離と、前記複数のクロック分配回路の各々の消費電力量と、に基づいてノイズの影響を評価することを特徴とする付記６記載の半導体設計支援プログラム。
【００７８】
（付記１０）  半導体装置の設計を支援するための半導体設計支援装置であって、
クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定する調整対象回路指定手段と、
前記クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定するノイズ周期特定手段と、
前記クロック分配回路の前記伝播遅延時間を特定する遅延時間特定手段と、
前記伝播遅延時間に調整時間を加えた調整後伝播遅延時間が前記ノイズ周期の自然数倍となるように調整時間を決定する調整時間決定手段と、
を備えることを特徴とする半導体設計支援装置。
【００７９】
（付記１１）  半導体装置の設計を支援するための半導体設計支援方法であって、
クロック信号が伝播する伝播遅延時間の調整対象となるクロック分配回路を指定するステップと、
前記クロック分配回路に周期的なノイズの影響を与えるノイズ源のノイズ周期を特定するステップと、
前記クロック分配回路の前記伝播遅延時間を特定するステップと、
前記伝播遅延時間に調整時間を加えた調整後伝播遅延時間が前記ノイズ周期の自然数倍となるように調整時間を決定するステップと、
からなることを特徴とする半導体設計支援方法。
【符号の説明】
【００８０】
１００  半導体設計支援装置
１００ａ  調整対象回路指定手段
１００ｂ  ノイズ周期特定手段
１００ｃ  伝播遅延時間特定手段
１００ｄ  調整時間決定手段
１００ｅ  設計情報記憶手段
【図１】
2010191644.tif 000003
【図２】
2010191644.tif 000004
【図３】
2010191644.tif 000005
【図４】
2010191644.tif 000006
【図５】
2010191644.tif 000007
【図６】
2010191644.tif 000008
【図７】
2010191644.tif 000009
【図８】
2010191644.tif 000010
【図９】
2010191644.tif 000011
【図１０】
2010191644.tif 000012
【図１１】
2010191644.tif 000013