(57)【要約】【課題】電源ノイズに対する耐性の高いクロックパスを設計する。【解決手段】設計装置１が、パラメータの異なる、クロックバッファ１１ａ，１１ｂ，１１ｃと、クロックバッファ１１ａ，１１ｂ，１１ｃに接続される配線負荷１２ａ，１２ｂ，１２ｃとの組み合わせごとの、電圧降下時の遅延増加を表す係数群（係数ライブラリ５）から、設計条件を満たす範囲で小さい係数を優先的に選択し、クロックバッファ１１ａ，１１ｂ，１１ｃと配線負荷１２ａ，１２ｂ，１２ｃのうち、選択した係数に対応付けられたパラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパス１０を設計する。【選択図】図１
2015135650.tif 000002
【特許請求の範囲】
【請求項１】
設計装置が、
パラメータの異なる、複数のクロックバッファと、前記複数のクロックバッファに接続される複数の配線負荷との組み合わせごとの、電圧降下時の遅延増加を表す係数群から、設計条件を満たす範囲で小さい係数を優先的に選択し、
前記複数のクロックバッファと前記複数の配線負荷のうち、選択した前記係数に対応付けられた前記パラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する、
ことを特徴とする設計方法。
【請求項２】
前記設計装置は、前記クロックパスの長さに基づき、選択した前記クロックバッファ及び前記配線負荷を前記クロックパス上に繰り返し配置する、ことを特徴とする請求項１に記載の設計方法。
【請求項３】
前記係数は、１つの前記クロックバッファと１つの前記配線負荷との組み合わせにおける、電圧降下の大きさに対する遅延増加量を、遅延時間で割った値である、ことを特徴とする請求項１または２に記載の設計方法。
【請求項４】
前記パラメータの異なる、前記複数のクロックバッファと前記複数の配線負荷との組み合わせごとに、電圧降下の大きさに対する遅延増加量と、遅延時間を算出し、前記電圧降下に対する前記遅延増加量を、前記遅延時間を割ることで前記係数を算出する、ことを特徴とする請求項１または２に記載の設計方法。
【請求項５】
前記設計条件は、前記クロックパスのタイミング条件を含み、前記係数群から、前記タイミング条件を満たす範囲で、最小の係数を選択する、ことを特徴とする請求項１乃至４の何れか一項に記載の設計方法。
【請求項６】
設計装置が、
パラメータの異なる、複数のクロックバッファと、前記複数のクロックバッファに接続される複数の配線負荷との組み合わせごとに、遅延時間と、電圧降下の大きさに対する遅延増加量とを算出し、前記電圧降下に対する前記遅延増加量を、前記遅延時間で割ることで、電圧降下時の遅延増加を表す係数群を算出し、
前記係数群のうち、設計条件を満たす範囲で小さい係数を優先的に選択し、
前記複数のクロックバッファと前記複数の配線負荷のうち、選択した前記係数に対応付けられた前記パラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する、
ことを特徴とする設計方法。
【請求項７】
プロセッサを有し、
前記プロセッサは、
パラメータの異なる、複数のクロックバッファと、前記複数のクロックバッファに接続される複数の配線負荷との組み合わせごとの、電圧降下時の遅延増加を表す係数群から、設計条件を満たす範囲で小さい係数を優先的に選択し、
前記複数のクロックバッファと前記複数の配線負荷のうち、選択した前記係数に対応付けられた前記パラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する、
ことを特徴とする設計装置。
【請求項８】
プロセッサを有し、
前記プロセッサは、
パラメータの異なる、複数のクロックバッファと、前記複数のクロックバッファに接続される複数の配線負荷との組み合わせごとに、遅延時間と、電圧降下の大きさに対する遅延増加量とを算出し、前記電圧降下に対する前記遅延増加量を、前記遅延時間で割ることで、電圧降下時の遅延増加を表す係数群を算出し、
前記係数群のうち、設計条件を満たす範囲で小さい係数を優先的に選択し、
前記複数のクロックバッファと前記複数の配線負荷のうち、選択した前記係数に対応付けられた前記パラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する、
ことを特徴とする設計装置。
【請求項９】
パラメータの異なる、複数のクロックバッファと、前記複数のクロックバッファに接続される複数の配線負荷との組み合わせごとの、電圧降下時の遅延増加を表す係数群から、設計条件を満たす範囲で小さい係数を優先的に選択し、
前記複数のクロックバッファと前記複数の配線負荷のうち、選択した前記係数に対応付けられた前記パラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する、
処理をコンピュータに実行させるプログラム。
【請求項１０】
パラメータの異なる、複数のクロックバッファと、前記複数のクロックバッファに接続される複数の配線負荷との組み合わせごとに、遅延時間と、電圧降下の大きさに対する遅延増加量とを算出し、前記電圧降下に対する前記遅延増加量を、前記遅延時間で割ることで、電圧降下時の遅延増加を表す係数群を算出し、
前記係数群のうち、設計条件を満たす範囲で小さい係数を優先的に選択し、
前記複数のクロックバッファと前記複数の配線負荷のうち、選択した前記係数に対応付けられた前記パラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計方法、設計装置及びプログラムに関する。
【背景技術】
【０００２】
近年、半導体集積回路の微細化に伴う電流密度の増加や、高速化、高集積化による電力増加などの影響で、電源ノイズ量が増加傾向にある。また、消費電力削減のための低電圧化によって、回路の電源ノイズ耐性は低下している。そのため、たとえば、ノイズの影響を受けやすい素子の周辺からノイズ源を遠ざけるなど、電源ノイズを考慮した設計が行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１５１１００号公報
【特許文献２】特開２０１１−８４１０号公報
【特許文献３】特開２００６−１９５７５４号公報
【特許文献４】特開２００５−４２６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
同期回路のクロックパスでは、電源ノイズにより遅延変動が生じ、タイミング制約を満たさなくなる可能性がある。そのため、たとえば、クロックパスに高速に動作するクロックバッファを使用したり、配線負荷を短くしたりして、クロックパスで発生する遅延を最小化して、電源ノイズの影響を受けにくくすることが考えられる。
【０００５】
しかし、このようなクロックパスでも、電源ノイズの影響を受けたときには遅延時間が増加し、タイミング制約を満たさなくなる可能性があり、電源ノイズに対する耐性の高いクロックパスとは言えない。
【課題を解決するための手段】
【０００６】
発明の一観点によれば、設計装置が、パラメータの異なる、複数のクロックバッファと、前記複数のクロックバッファに接続される複数の配線負荷との組み合わせごとの、電圧降下時の遅延増加を表す係数群から、設計条件を満たす範囲で小さい係数を優先的に選択し、前記複数のクロックバッファと前記複数の配線負荷のうち、選択した前記係数に対応付けられた前記パラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する、設計方法が提供される。
【０００７】
また、発明の一観点によれば、設計装置が、パラメータの異なる、複数のクロックバッファと、前記複数のクロックバッファに接続される複数の配線負荷との組み合わせごとに、遅延時間と、電圧降下の大きさに対する遅延増加量とを算出し、前記電圧降下に対する前記遅延増加量を、前記遅延時間で割ることで、電圧降下時の遅延増加を表す係数群を算出し、前記係数群のうち、設計条件を満たす範囲で小さい係数を優先的に選択し、前記複数のクロックバッファと前記複数の配線負荷のうち、選択した前記係数に対応付けられた前記パラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する、設計方法が提供される。
【発明の効果】
【０００８】
開示の設計方法、設計装置及びプログラムによれば、電源ノイズに対する耐性の高いクロックパスを設計できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態の設計方法、設計装置の一例を示す図である。
【図２】ノイズ量の算出例を示す図である。
【図３】クロックパスの遅延変動の最大値に対するシミュレーション結果と式（１）の計算値との相関の一例を示す図である。
【図４】第２の実施の形態の設計装置の一例を示す図である。
【図５】設計対象のクロックパスを含む半導体集積回路の一例を示す図である。
【図６】第２の実施の形態の設計方法の一例の流れを説明するフローチャートである。
【図７】遅延増加量と電圧降下の大きさとの関係の一例を示す図である。
【図８】係数ライブラリの一例を示す図である。
【図９】係数群の一例を示す図である。
【図１０】複数種類のクロックバッファ、配線負荷を用いたクロックパスにおけるノイズ発生時のパス遅延の変動の一例の様子を示す図である。
【図１１】複数種類のクロックバッファ、配線負荷を用いたクロックパスにおけるノイズ発生時刻とパス遅延の変動量の関係の一例を示す図である。
【図１２】同一種類のクロックバッファ、配線負荷を用いたクロックパスにおけるノイズ発生時のパス遅延の変動の一例の様子を示す図である。
【図１３】同一種類のクロックバッファ、配線負荷を用いたクロックパスにおけるノイズ発生時刻とパス遅延の変動量の関係の一例を示す図である。
【図１４】パラメータに応じた遅延時間の大きさの例を示す図である。
【発明を実施するための形態】
【００１０】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の設計方法、設計装置の一例を示す図である。
【００１１】
設計装置１は、プロセッサ２と記憶部３を有している。プロセッサ２は、記憶部３に記憶されているデータ及びプログラムに基づき、以下のような設計方法を実行する。
記憶部３は、プロセッサ２が実行するプログラムや、各種データを記憶する。たとえば、記憶部３は、後述する係数ライブラリ５を記憶する。
【００１２】
本実施の形態の設計方法は、電源ノイズに対する遅延変動が小さくなるようなクロックパス、つまり電源ノイズに対する耐性の高いクロックパスを設計するものである。
まず、プロセッサ２は、パラメータの異なる、複数のクロックバッファと、複数のクロックバッファに接続される複数の配線負荷との組み合わせごとの、電圧降下時の遅延増加を表す係数群を算出する（ステップＳ１）。
【００１３】
クロックバッファのパラメータには、クロックバッファの大きさ（クロックバッファに含まれるトランジスタサイズ）、トランジスタの閾値電圧などがある。
配線負荷のパラメータには、配線幅、配線長、隣接する配線との配線間隔、配線が使用する配線層の種類（たとえば、メタル１層、２層、…）などがある。
【００１４】
図１には、クロックパス１０の例が示されている。クロックパス１０では、クロックバッファ１１ａとそれに接続される配線負荷１２ａの組み合わせを一段のセルとして、そのセルが、クロックパス１０の長さに応じて複数段接続されている。
【００１５】
本実施の形態の例では、係数を電圧感度（Ｄｓ）／遅延時間（Ｄ）と表すものとする。ここで、電圧感度は、Ｄｓ＝ΔＤ／ΔＶと表すものとする。Ｄは、理想の電源電圧Ｖｄｄのときの上記の組み合わせ１段分の遅延時間（セルの遅延時間）を示し、ΔＤは、ΔＶの電圧降下に対する遅延増加量を示している。ＤとΔＤは、上記のようなパラメータによって変わってくる可能性があるため、係数は、パラメータの異なる、複数のクロックバッファと複数の配線負荷との組み合わせごとに、たとえば、回路シミュレーションを用いて算出される。
【００１６】
図１には、パラメータの異なる、複数のクロックバッファ１１ａ，１１ｂ，１１ｃと、複数の配線負荷１２ａ，１２ｂ，１２ｃとの組み合わせＡ，Ｂ，Ｃが示されている。
なお、配線負荷１２ａ，１２ｂ，１２ｃは、配線抵抗Ｒ１，Ｒ２，Ｒ３，Ｒ４，Ｒ５，Ｒ６、配線容量Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６を有しており、配線長や配線幅などのパラメータによってこれらの値が変わってくる。また、クロックバッファ１１ａ，１１ｂ，１１ｃは、大きさが異なっている。このように、パラメータが異なる、クロックバッファ１１ａ，１１ｂ，１１ｃと配線負荷１２ａ，１２ｂ，１２ｃとの組み合わせＡ，Ｂ，Ｃでは、ＤやΔＤも変わってくる可能性がある。
【００１７】
そのため、図１の例では、係数は、パラメータの異なる、クロックバッファ１１ａ，１１ｂ，１１ｃと、配線負荷１２ａ，１２ｂ，１２ｃとの組み合わせＡ，Ｂ，Ｃごとに算出されることになる。
【００１８】
算出された係数群は、係数ライブラリ５として、たとえば、記憶部３に記憶される。
次に、プロセッサ２は、係数群から、設計条件を満たす範囲で、小さい係数を優先的に選択する（ステップＳ２）。
【００１９】
設計条件には、クロックパスの配線長、クロックパスのタイミング条件（タイミング制約）、セル種類、配線条件（配線層、配線幅、配線間隔）などがある。たとえば、ステップＳ２の処理では、設計で使用しないクロックバッファの種類や配線条件のパラメータに対応した係数は選択されない。そして、設計で使用する条件のパラメータに対応した係数のなかで、小さい係数が優先的に選択される（たとえば、最小の係数が選択される）。
【００２０】
本願発明者らは、クロックパスの遅延変動の最大値は、あるパラメータのクロックバッファと配線負荷の組み合わせが一様に複数段繰り返し接続されて作成されるクロックパスでは、以下の式で近似できるとの知見を得た。
【００２１】
Ｍａｘ（ΔＤpath）＝（Ｄｓ／Ｄ）×Ｓ            （１）
式（１）において、Ｍａｘ（ΔＤpath）は、クロックパスの遅延変動ΔＤpathの最大値、（Ｄｓ／Ｄ）は前述した係数、Ｓはクロックパスが受けるノイズ量である。
【００２２】
ノイズ量は、以下のようにして求められる。
図２は、ノイズ量の算出例を示す図である。
横軸は時間を示し、縦軸は電圧を示している。図２の例では、タイミングＴ０からタイミングＴ１までの間にクロックパスの電源線がノイズを受け、理想の電源電圧Ｖｄｄから電圧降下していることが示されている。ノイズ量（Ｓ）は、電源電圧Ｖｄｄからの電圧降下の大きさΔＶを、ノイズを受けた時間（Ｔ０〜Ｔ１）で積分することにより求められる。
【００２３】
式（１）で求めたＭａｘ（ΔＤpath）と、回路シミュレーションで求めたＭａｘ（ΔＤpath）との関係を以下に示す。
図３は、クロックパスの遅延変動の最大値に対するシミュレーション結果と式（１）の計算値との相関の一例を示す図である。
【００２４】
横軸は遅延変動の最大値のシミュレーション値を示し、縦軸は、式（１）で求めた計算値を示している。パラメータを変化させた一段のクロックバッファと配線負荷の組み合わせと同じものを、２１段接続したクロックパスについてのシミュレーション値と式（１）による計算値との相関が示されている。
【００２５】
パラメータを変化させることで遅延変動の最大値は変化するが、図３に示すように、遅延変動の最大値の計算値は、シミュレーション値に対してよく一致している。そのため、クロックパスの変動遅延の最大値は、式（１）で近似できることがわかる。
【００２６】
式（１）からわかるように、係数（Ｄｓ／Ｄ）を最小にすることで、ノイズによるクロックパスの遅延変動の最大値を小さくできる。
ただ、後述するように係数を小さくすると、遅延時間が大きくなるため、ステップＳ２の処理では、設計条件の１つであるタイミング制約を満たす範囲で、小さい係数が優先的に選択される。タイミング制約の判定の例については、第２の実施の形態にて説明する。
【００２７】
以上のようなステップＳ２の処理が終わると、プロセッサ２は、ステップＳ３の処理を行う。ステップＳ３の処理では、プロセッサ２は、パラメータの異なる複数のクロックバッファと複数の配線負荷のうち、ステップＳ２の処理で選択した係数に対応付けられたパラメータを有する、クロックバッファ及び配線負荷を選択して、クロックパスを設計する。
【００２８】
前述したように、係数は電圧降下時の遅延増加を表すものである。そのため、設計条件を満たす範囲で小さい係数を優先的に選択し、その係数に対応付けられたパラメータのクロックバッファ及び配線負荷を用いてクロックパスを設計することで、電源ノイズによる電圧降下に対する遅延増加が小さいクロックパスを設計できる。つまり、電源ノイズによる遅延変動が起きにくい（電源ノイズに対する耐性が高い）クロックパスを設計することができる。
【００２９】
また、設計の段階で電源ノイズに対する耐性が高いクロックパスを設計できるので、配置・配線処理後に回路シミュレータでクロックパスの遅延変動を検証し、その結果に応じて配置・配線処理に戻り修正するなどの手戻りの発生を抑制できる。
【００３０】
なお、上記の例では、設計装置１が係数ライブラリ５を生成するものとして説明したがこれに限定されない。たとえば、他の装置により生成された係数ライブラリ５を設計装置１が取得して、記憶部３に格納しておき、クロックパスの設計の際に、プロセッサ２が記憶部３から読み出して使用するようにしてもよい。
【００３１】
（第２の実施の形態）
以下、第２の実施の形態の設計方法及び設計装置の一例を示す。
図４は、第２の実施の形態の設計装置の一例を示す図である。
【００３２】
設計装置は、たとえば、コンピュータ２０であり、プロセッサ２１によって装置全体が制御されている。プロセッサ２１には、バス２９を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３３】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、プロセッサ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、プロセッサ２１による処理に必要な各種データが格納される。
【００３４】
バス２９に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６、機器接続インタフェース２７及びネットワークインタフェース２８がある。
【００３５】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の補助記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００３６】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、プロセッサ２１からの命令にしたがって、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３７】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をプロセッサ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３８】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３９】
機器接続インタフェース２７は、コンピュータ２０に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース２７には、メモリ装置２７ａやメモリリーダライタ２７ｂを接続することができる。メモリ装置２７ａは、機器接続インタフェース２７との通信機能を搭載した記録媒体である。メモリリーダライタ２７ｂは、メモリカード２７ｃへのデータの書き込み、またはメモリカード２７ｃからのデータの読み出しを行う装置である。メモリカード２７ｃは、カード型の記録媒体である。
【００４０】
ネットワークインタフェース２８は、ネットワーク２８ａに接続されている。ネットワークインタフェース２８は、ネットワーク２８ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００４１】
以上のようなハードウェア構成によって、第２の実施の形態の処理機能を実現することができる。なお、図１に示した第１の実施の形態の設計装置１も、図４に示したコンピュータ２０と同様のハードウェアにより実現することができる。
【００４２】
コンピュータ２０は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施の形態の処理機能を実現する。コンピュータ２０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ２０に実行させるプログラムをＨＤＤ２３に格納しておくことができる。プロセッサ２１は、ＨＤＤ２３内のプログラムの少なくとも一部をＲＡＭ２２にロードし、プログラムを実行する。またコンピュータ２０に実行させるプログラムを、光ディスク２６ａ、メモリ装置２７ａ、メモリカード２７ｃなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ２１からの制御により、ＨＤＤ２３にインストールされた後、実行可能となる。またプロセッサ２１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４３】
（設計対象の一例）
図５は、設計対象のクロックパスを含む半導体集積回路の一例を示す図である。
半導体集積回路３０は、回路部３１、ＰＬＬ（Phase Locked Loop）３２、クロックパス３３、ＤＤＲ  ＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory）３４、Ｉ／Ｏ（Input / Output）３５を有している。
【００４４】
回路部３１は、電源ノイズの発生源となるものであり、図５の例では、フリップフロップ３１ａ，３１ｂ，３１ｃ，３１ｄを有する同期回路である。フリップフロップ３１ａ，３１ｂ，３１ｃ，３１ｄは、電源電圧Ｖｄｄと、クロックバッファ３１ｅ，３１ｆを介して入力されるクロックにより動作する。たとえば、これらのフリップフロップ３１ａ，３１ｂ，３１ｃ，３１ｄの動作によって、電源ノイズが発生する。
【００４５】
ＰＬＬ３２は、所定の周波数のクロックを生成する。
クロックパス３３は、クロックバッファ３３ａ１〜３３ａｎとそれらに接続された配線負荷３３ｂ１〜３３ｂｎを有しており、ＰＬＬ３２で生成されたクロックを伝搬する。
【００４６】
ＤＤＲ  ＳＤＲＡＭ３４は、同期回路の一例として示されているものであり、クロックパス３３を介して入力されたクロックに同期して所定の動作を行う。
Ｉ／Ｏ３５は、ＤＤＲ  ＳＤＲＡＭ３４から読み出されたデータを出力したり、外部から入力されるデータをＤＤＲ  ＳＤＲＡＭ３４に供給したりする。Ｉ／Ｏ３５は、ＰＬＬ３２で生成されたクロックを、クロックパス３３とＤＤＲ  ＳＤＲＡＭ３４を介して出力するようにしてもよい。
【００４７】
このような半導体集積回路３０において、回路部３１で電源ノイズが発生した場合、クロックパス３３はその影響をうけ、パス遅延が増加する可能性がある。以下に示す設計方法は、電源ノイズによる遅延変動が起きにくい、つまり電源ノイズ耐性が高いクロックパス３３を設計するものである。
【００４８】
（設計方法の一例）
図６は、第２の実施の形態の設計方法の一例の流れを説明するフローチャートである。
以下の処理は、図４に示したコンピュータ２０において、プロセッサ２１の制御のもと行われる。なお、第２の実施の形態の設計方法では、第１の実施の形態で説明したような係数ライブラリは予め生成されており、たとえば、ＨＤＤ２３に格納されているものとして説明する。
【００４９】
まず、簡単に各処理ステップを説明する。
たとえば、まず半導体集積回路における電源ノイズのノイズ量の算出が行われ（ステップＳ１０）、算出されたノイズ量４０は、たとえば、ＨＤＤ２３に格納される。
【００５０】
その後、クロックパスの設計が行われる（ステップＳ１１）。ステップＳ１１の処理は、たとえば、以下のステップＳ１１１，Ｓ１１２，Ｓ１１３，Ｓ１１４，Ｓ１１５の処理を含む。
【００５１】
ステップＳ１１１の処理では、係数ライブラリ４１から設計条件４２を満たす範囲で最小の係数が選択される。
ステップＳ１１２の処理では、選択された係数に対応した一段のクロックバッファと配線負荷が選択される。
【００５２】
ステップＳ１１３の処理では、クロックバッファと配線負荷の選択結果と、設計条件４２に含まれるクロックパスの配線長に基づき、クロックパスに含めるクロックバッファと配線負荷によるセルの段数が決定される。
【００５３】
ステップＳ１１４の処理では、クロックパス情報４３（クロックパスの段数を含む）が出力される。クロックパス情報４３は、たとえば、ＨＤＤ２３に格納される。
ステップＳ１１５の処理は、後述するタイミング制約の確認で、タイミング制約が満たされないと判定されたときに行われ、クロックバッファや、配線負荷が変更される。たとえば、ステップＳ１１１で選択された係数の次に小さい係数が選択され、その係数に対応したパラメータを有する一段のクロックバッファと配線負荷に変更される。
【００５４】
ステップＳ１１の処理後、タイミング制約の確認が行われる（ステップＳ１２）。ステップＳ１２の処理では、設計されたクロックパスがタイミング制約を満たしている否かが判定される。タイミング制約が満たされていないときには、ステップＳ１１５の処理が行われる。
【００５５】
タイミング制約が満たされているときには、遅延変動量の最大値の計算が行われる（ステップＳ１３）。遅延変動量の最大値は、ノイズ量４０と、ステップＳ１１１またはステップＳ１１５の処理で選択された係数４４に基づき、前述した式（１）により求められる。
【００５６】
その後、ステップＳ１３の処理で算出された遅延変動量の最大値が、クロックパスが接続される同期回路の制約を満たすか否かが確認される（ステップＳ１４）。制約が満たされていないときには、ノイズ量４０の見直しが行われる（ステップＳ１５）。ステップＳ１５の処理では、たとえば、ノイズ量４０の再計算が行われ、ノイズ量４０が更新され、その後、ステップＳ１３からの処理が繰り返される。なお、ノイズ量４０を減らすような再設計が行われたのち、ステップＳ１０からの処理が繰り返されるようにしてもよい。
【００５７】
ステップＳ１４の処理で、遅延変動量の最大値が、制約を満たしていると判定されたときには、図６に示されている設計処理が終了する。
なお、各ステップの処理の順序は、上記に限定されるものではない。たとえば、ステップＳ１０のノイズ量の算出処理は、ステップＳ１３の遅延変動量の最大値を計算する処理の直前に行うようにしてもよい。
【００５８】
以下、ステップＳ１０，Ｓ１１，Ｓ１２の処理の一例を説明する。
（ノイズ量算出処理（ステップＳ１０））
ノイズ量算出処理では、たとえば、以前に設計された半導体集積回路についてのＤｖＤ（Dynamic voltage Drop）解析結果や、クロックレイテンシとＤｖＤピーク制約などからノイズ量が算出される。たとえば、プロセッサ２１は、ＤｖＤ解析結果と、クロックパスの電源波形を取得し、図２に示したように、電源電圧Ｖｄｄからの電圧降下を、ノイズを受けた時間（Ｔ０〜Ｔ１）で積分することによりノイズ量を算出する。
【００５９】
（クロックパス設計（ステップＳ１１））
クロックパスの設計処理では、プロセッサ２１は、たとえば、ＨＤＤ２３に格納されている係数ライブラリ４１と設計条件４２を取得して、ステップＳ１１１〜Ｓ１１５の処理を行う。設計条件４２は、たとえば、クロックパスのタイミング制約や遅延変動制約のほか、クロックパスの配線長、クロックバッファの種類（トランジスタサイズやトランジスタの閾値電圧などが異なる）、配線条件を含む。
【００６０】
配線条件は、たとえば、使用可能な、配線層、配線長、配線幅、隣接配線との間隔などであり、プロセステクノロジーによって決まる。
係数ライブラリ４１で管理される係数は、前述したように、あるパラメータを有するクロックバッファと配線負荷の組み合わせによるセルでの、電圧感度（Ｄｓ）／遅延時間（Ｄ）で表される。Ｄｓは、遅延増加量（ΔＤ）と電圧降下の大きさ（ΔＶ）を用いてＤｓ＝ΔＤ／ΔＶと表される。
【００６１】
遅延増加量と電圧降下との関係は、たとえば、以下のようになる。
図７は、遅延増加量と電圧降下の大きさとの関係の一例を示す図である。
横軸が電圧降下の大きさ（ΔＶ）を示し、縦軸が遅延変動量（ΔＤ）を示している。
【００６２】
遅延増加量と電圧降下の大きさの関係は、図７に示すように非線形であり、電圧降下が大きくなると遅延増加量は急激に増大する。本実施の形態では、プロセッサ２１は、比較的線形と見なせる領域での電圧降下の大きさΔＶ１と、その時の遅延増加量ΔＤ１から、電圧感度を算出するものとする。
【００６３】
なお、遅延時間（Ｄ）や、ΔＶ１だけ電圧降下が発生したときのΔＤ１は、クロックバッファと配線負荷のパラメータの組み合わせごとに、たとえば、回路シミュレーションにより得られる。そして、これらの値に基づき算出される係数群により、たとえば、以下のような係数ライブラリ４１が得られる。
【００６４】
図８は、係数ライブラリの一例を示す図である。
たとえば、係数ライブラリ４１は、複数のテーブルａ１１，ｂ１１，ｃ１１〜ａｘｋ，ｂｘｋ，ｃｘｋを有しており、複数のパラメータの組み合わせごとの係数が管理されている。
【００６５】
テーブルａ１１では、クロックバッファの種類が“ＢＦａ”、使用配線層が“Ｍ１”、配線幅が“Ｗ１”のときの配線間隔（ｄ１，ｄ２，…，ｄｎ）と配線長（ｌ１，ｌ２，…，ｌｍ）に応じた係数群が管理されている。そして、クロックバッファの種類を“ＢＦｂ”、“ＢＦｃ”と変えて、その他のパラメータが同じときの係数群がテーブルｂ１１，ｃ１１で管理されている。
【００６６】
同様に、使用配線層をＭ１〜Ｍｘ、配線幅をＷ１〜Ｗｋの範囲で変化させたときの係数群がテーブルａ１１，ｂ１１，ｃ１１〜ａｘｋ，ｂｘｋ，ｃｘｋで管理されている。
なお、クロックバッファの種類は３種類に限定されるものではなく、４種類以上であってもよいし２種類であってもよい。
【００６７】
ステップＳ１１１の処理では、たとえば、上記のような係数ライブラリ４１から設計条件４２を満たすようなテーブルが選択され、そのテーブルで管理されている係数群のなかで、最小の係数が選択される。
【００６８】
図９は、係数群の一例を示す図である。
図９では、図８に示したテーブルａ１１の係数群の例が示されている。配線間隔をｄ１〜ｄ６、配線長をｌ１〜ｌ１６の範囲で変化させたときの係数群が示されている。配線間隔は、“ｄ１”が最も狭く、“ｄ６”が最も広い。配線長は、“ｌ１”が最も短く、“ｌ１６”が最も長い。図９の例では、配線間隔が“ｄ１”、配線長が“ｌ１５”のときの係数が最小となっている。
【００６９】
そのため、ステップＳ１１１の処理で、図９に示すようなテーブルａ１１が選択され、“ｄ１”、“ｌ１５”が設計条件を満たすとき、このときの係数が選択される。
ステップＳ１１２の処理では、選択された係数に対応したパラメータを有するクロックバッファと配線負荷が選択される。上記の例では、クロックバッファの種類が“ＢＦａ”のクロックバッファが選択される。また、使用配線層が“Ｍ１”、配線幅が“Ｗ１”、配線間隔が“ｄ１”、配線長が“ｌ１５”の配線負荷が選択される。
【００７０】
上記のように選択されたクロックバッファと配線負荷と設計条件４２に含まれるクロックパスの配線長に基づき、クロックパスに含めるクロックバッファと配線負荷によるセルの段数が決定され（ステップＳ１１３）、その情報が出力される（ステップＳ１１４）。
【００７１】
なお、本実施の形態では、ステップＳ１１２の処理で選択されたクロックバッファと配線負荷によるセルを一様に複数段繰り返してクロックパスを設計するものとする。
その理由を以下に説明する。
【００７２】
図１０は、複数種類のクロックバッファ、配線負荷を用いたクロックパスにおけるノイズ発生時のパス遅延の変動の一例の様子を示す図である。
また、図１１は、複数種類のクロックバッファ、配線負荷を用いたクロックパスにおけるノイズ発生時刻とパス遅延の変動量の関係の一例を示す図である。図１１において、横軸はノイズ発生時刻を示し、縦軸はパス遅延の変動量を示している。
【００７３】
図１０に示すように、クロックパス５０は、複数種類のクロックバッファ５１ａ，５２ａ，５３ａ，５４ａ、配線負荷５１ｂ，５２ｂ，５３ｂ，５４ｂを有している。図１０の例では、ある周期をもつノイズの発生時刻を矢印方向に走査したときのパス遅延の変動の様子が示されている。たとえば、クロックがクロックバッファ５２ａに到達した付近でノイズが発生すると、遅延時間はΔＤａだけ変動する。一方、クロックがクロックバッファ５３ａに達した付近でノイズが発生すると、遅延時間の変動量はΔＤｂとなる。各段での遅延時間の変動量の差異によって、パス遅延の変動量も、ΔＤｐ１になったり、ΔＤｐ２になったりして変動する。
【００７４】
つまり、各段のクロックバッファと配線負荷が一様でないと、パス遅延の変動量は、たとえば、図１１に示すようにノイズの発生時刻に応じて変動する。
図１２は、同一種類のクロックバッファ、配線負荷を用いたクロックパスにおけるノイズ発生時のパス遅延の変動の一例の様子を示す図である。
【００７５】
また、図１３は、同一種類のクロックバッファ、配線負荷を用いたクロックパスにおけるノイズ発生時刻とパス遅延の変動量の関係の一例を示す図である。図１３において、横軸はノイズ発生時刻を示し、縦軸はパス遅延の変動量を示している。
【００７６】
図１２に示すように、クロックパス６０は、同一種類の（パラメータが同じ）クロックバッファ６１ａ，６２ａ，６３ａ，６４ａ、配線負荷６１ｂ，６２ｂ，６３ｂ，６４ｂを有している。図１２では、ある周期をもつノイズの発生時刻を矢印方向に走査したときのパス遅延の変動の様子が示されている。
【００７７】
図１２の例では、各段のクロックバッファ６１ａ，６２ａ，６３ａ，６４ａと配線負荷６１ｂ，６２ｂ，６３ｂ，６４ｂが同一種類である。そのため、ノイズの発生時刻によらず、各段での遅延の変動量はΔＤｃとなり、パスの遅延の変動量も、一定の値（ΔＤｐ３）となる。
【００７８】
つまり、各段のクロックバッファと配線負荷が一様であると、図１３に示すようにパス遅延の変動量のばらつきを抑制できる。そのため、ジッタを抑制できる。
ステップＳ１１２の処理で選択されたクロックバッファと配線負荷によるセルを一様に複数段繰り返してクロックパスを設計する理由は、以上の通りである。
【００７９】
ステップＳ１１５の処理は、後述するタイミング制約の確認で、タイミング制約が満たされないと判定されたときに行われ、クロックバッファや、配線負荷が変更される。たとえば、ステップＳ１１１で選択された係数の次に小さい係数が選択され、その係数に対応した一段のクロックバッファと配線負荷が選択される。図９に示した例では、“１．００”の次に小さい係数は“１．０１”であるため、この係数に対応付けられた配線長“ｌ１６”、配線間隔“ｄ１”をパラメータとしてもつ配線負荷が選択される。
【００８０】
（タイミング制約の確認（ステップＳ１２））
ステップＳ１１１の処理で、最小の係数が選択されると、その係数に対応付けられたパラメータをもつクロックバッファと配線負荷を用いて作成されるクロックパスのノイズ耐性は高くなる。しかし、係数が小さくなると、遅延時間は大きくなるという傾向がある。
【００８１】
図１４は、パラメータに応じた遅延時間の大きさの例を示す図である。
図１４に示されているテーブルａ１１ｄでは、図９に示したテーブルａ１１と同じパラメータであるときの遅延時間の例が示されている。
【００８２】
前述したように、図９に示したテーブルａ１１では配線長が“ｌ１５”、配線間隔が“ｄ１”のときに係数が最小であるが、図１４に示したテーブルａ１１ｄでは、配線長が“ｌ１５”、配線間隔が“ｄ１”のとき、遅延時間は比較的大きくなっている。そのため、このようなパラメータをもつセルが複数段繰り返して接続されたクロックパスは、タイミング制約を満たさなくなる可能性がある。
【００８３】
そこで、ステップＳ１２の処理では、ステップＳ１１の処理で設計されたクロックパスが、設計条件４２に含まれるタイミング制約を満たすものであるか否かが確認される。
プロセッサ２１は、クロックパスがタイミング制約を満たしているか否かを、ＳＴＡ（Static Timing Analysis）解析を実行することで確認できる。クロックパスのタイミング制約は、クロックパルス幅が十分であるか否かと、クロックレイテンシ（クロック遅延）の制約があるが、これらの制約条件は開発するチップの仕様により決まっている。なお、ＳＴＡ解析での入力は、たとえば、セルの遅延ライブラリ、クロックパス情報４３（クロックパスの段数の情報）を含む。
【００８４】
タイミング制約が満たされていないときには、ステップＳ１１５の処理が行われ、タイミング制約が満たされているときには、ステップＳ１３の処理が行われる。小さい係数を用いると遅延時間が大きくなくため、このようなステップＳ１２，Ｓ１１５の処理を行うことで、タイミング制約を満たさなくなることを防げる。
【００８５】
このように、本実施の形態の設計方法によれば、設計条件４２を満たす範囲で、できるだけ小さい係数が選択され、その係数に対応付けられたパラメータを有するクロックバッファと配線負荷により、クロックパスが設計される。係数は、電圧降下時の遅延増加を表すものである。そのため、電源ノイズによる電圧降下に対する遅延増加が小さいクロックパスを設計できる。つまり、電源ノイズによる遅延変動が起きにくい（電源ノイズに対する耐性が高い）クロックパスを設計することができる。
【００８６】
また、設計の段階で電源ノイズに対する耐性が高いクロックパスを設計できるので、配置・配線処理後に回路シミュレータでクロックパスの遅延変動を検証し、その結果に応じて配置・配線処理に戻り修正するなどの手戻りの発生を抑制できる。
【００８７】
なお、第２の実施の形態では、係数ライブラリ４１は、予め作成されているものとして説明したが、第１の実施の形態の設計方法と同様に、図６に示す処理を行う設計装置（コンピュータ２０）が、係数ライブラリ４１を作成するようにしてもよい。また、設計装置が、他の装置で作成された係数ライブラリ４１を取得して、図６に示したような処理を行うようにしてもよい。
【００８８】
また、Ｓ１１１の処理では、係数ライブラリ４１から設計条件４２を満たす範囲で最小の係数が選択される、としたが、必ずしも最小でなくてもよく、優先的に小さい係数が選択されるようにすれば、高ノイズ耐性のクロックパスを設計できる。
【００８９】
また、上記の説明では、一段のセルをクロックバッファとその出力側に接続された配線負荷の組み合わせとしたが、クロックバッファとその入力側に接続された配線負荷の組み合わせとしてもよい。
【００９０】
以上、実施の形態に基づき、本発明の設計方法、設計装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【符号の説明】
【００９１】
１  設計装置
２  プロセッサ
３  記憶部
５  係数ライブラリ
１０  クロックパス
１１ａ，１１ｂ，１１ｃ  クロックバッファ
１２ａ，１２ｂ，１２ｃ  配線負荷
Ｒ１〜Ｒ６  配線抵抗
Ｃ１〜Ｃ６  配線容量
Ｄ  遅延時間
Ｄｓ  電圧感度
ΔＤ  遅延増加量
ΔＶ  電圧降下の大きさ
Ｖｄｄ  電源電圧
【図１】
2015135650.tif 000003
【図２】
2015135650.tif 000004
【図３】
2015135650.tif 000005
【図４】
2015135650.tif 000006
【図５】
2015135650.tif 000007
【図６】
2015135650.tif 000008
【図７】
2015135650.tif 000009
【図８】
2015135650.tif 000010
【図９】
2015135650.tif 000011
【図１０】
2015135650.tif 000012
【図１１】
2015135650.tif 000013
【図１２】
2015135650.tif 000014
【図１３】
2015135650.tif 000015
【図１４】
2015135650.tif 000016