(57)【要約】【課題】電源を分離した領域ごとに電源ノイズの影響を考慮してそれらの領域間を接続する電源乗り換えパスのマージンを過不足なく設定すること。【解決手段】電源を分離した送信側領域と受信側領域のそれぞれについて電圧の変動幅を見積もる（ステップＳ１）。その電圧の変動幅に基づいて、送信側領域および受信側領域のそれぞれについてタイミング検証用の遅延係数を求める（ステップＳ２）。送信側領域と受信側領域を接続する電源乗り換えパスを抽出する（ステップＳ３）。送信側領域において電源乗り換えパスに接続されたセルに対して送信側領域の遅延係数をかけ、受信側領域において電源乗り換えパスに接続されたセルに対して受信側領域の遅延係数をかけることによって、電源乗り換えパスのタイミング検証用のスクリプトを作成する（ステップＳ４）。このスクリプトを用いて、例えばＳＴＡツールによりタイミング検証を行う（ステップＳ５）。【選択図】図１
2007200042.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域のそれぞれについて電圧の変動幅を見積もるノイズ見積工程と、
前記送信側領域と前記受信側領域のそれぞれについて前記見積工程で見積もられた電圧の変動幅に基づいてタイミング検証用の遅延係数を求める係数算出工程と、
前記送信側領域と前記受信側領域を接続する電源乗り換えパスを抽出するパス抽出工程と、
前記送信側領域の、前記パス抽出工程で抽出された電源乗り換えパスに接続されたセルに対して、前記係数算出工程で算出された送信側領域の遅延係数をかけるとともに、前記受信側領域の、前記電源乗り換えパスに接続されたセルに対して、前記係数算出工程で算出された受信側領域の遅延係数をかけることにより、前記電源乗り換えパスのタイミング検証を行うためのスクリプトを生成するスクリプト生成工程と、
を含むことを特徴とする回路設計方法。
【請求項２】
半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域のそれぞれについて電圧の変動幅を見積もるノイズ見積工程と、
前記送信側領域と前記受信側領域のそれぞれについて前記見積工程で見積もられた電圧の変動幅に基づいてタイミング検証用の遅延係数を求める係数算出工程と、
前記送信側領域と前記受信側領域を接続する電源乗り換えパスを抽出し、前記送信側領域の、前記電源乗り換えパスに接続されたセルに対して、前記係数算出工程で算出された送信側領域の遅延係数をかけるとともに、前記受信側領域の、前記電源乗り換えパスに接続されたセルに対して、前記係数算出工程で算出された受信側領域の遅延係数をかけることにより、前記電源乗り換えパスのタイミング検証を行う検証工程と、
を含むことを特徴とする回路設計方法。
【請求項３】
半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域のそれぞれについて電圧の変動幅を見積もるノイズ見積工程と、
前記ノイズ見積工程で見積もられた送信側の電圧の変動幅に基づいて、前記送信側領域の、同送信側領域と前記受信側領域を接続する電源乗り換えパスに接続されたフリップフロップ回路の遅延の変動分を求めるとともに、前記ノイズ見積工程で見積もられた受信側の電圧の変動幅に基づいて、前記受信側領域の、前記電源乗り換えパスに接続されたフリップフロップ回路のホールドマージンの変動分を求め、送信側の前記遅延の変動分と受信側の前記ホールドマージンの変動分を、タイミング解析において考慮するホールドマージンに追加することにより、タイミング検証を行う検証工程と、
を含むことを特徴とする回路設計方法。
【請求項４】
半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域のそれぞれについて電圧の変動幅の最大値を定め、前記送信側領域の、同送信側領域と前記受信側領域を接続する電源乗り換えパスに接続されたフリップフロップ回路の、送信側の電圧の変動幅が最大であるときの遅延の変動分を求めるとともに、前記受信側領域の、前記電源乗り換えパスに接続されたフリップフロップ回路の、受信側の電圧の変動幅が最大であるときのホールドマージンの変動分を求め、送信側の前記遅延の変動分と受信側の前記ホールドマージンの変動分を追加したホールドマージンを有するフリップフロップ回路を作成するライブラリ作成工程と、
前記ライブラリ作成工程で作成されたフリップフロップ回路を、前記電源乗り換えパスに接続された受信側のフリップフロップ回路に用いることにより、タイミング検証を行う検証工程と、
を含むことを特徴とする回路設計方法。
【請求項５】
請求項１〜４のいずれか一つに記載の回路設計方法をコンピュータに実行させることを特徴とする回路設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する設計を行う回路設計方法および回路設計プログラムに関する。
【背景技術】
【０００２】
一般に、半導体集積回路は、その設計段階においてチップ内での電源のノイズを求め、そのノイズが大きくなりすぎないように考慮して、設計される。そして、チップに配置されたセルごとに、ＩＲドロップを考慮してセルにかかる電圧を求め、その電圧から算出された遅延係数を用いて、タイミング検証が行われる。その遅延係数に相当する遅延値を求める方法として、電源バンプからセルまでの距離とその電源バンプに印加される電圧に基づいて標準状態の遅延値に対する変動率を求め、標準状態の遅延値とその変動率に基づいて、実際にセルに印加されると推定される電圧を考慮した遅延値を求める方法が公知である（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２００３−２７１６９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する設計の場合、同じ電圧で電源を分離しても、ＩＲドロップや共振ノイズなどの影響により、各領域で電圧が異なることがある。例えば、一方の領域では、電源ノイズによって電圧が上がり、もう一方の領域では、電圧が下がるということが起こり得る。２つの領域間での電圧の差が、通常考慮されているオンチップ変動（ＯＣＶ）よりも大きい場合には、タイミングマージン不足によりエラーになる可能性がある。逆に、２つの領域間での電圧の差が通常考慮されているＯＣＶよりも小さい場合には、過剰なタイミングマージンを保証していることになる。
【０００５】
一般に、タイミング検証を行う際には、静的タイミング解析ツール（以下、ＳＴＡツールとする）や論理シミュレーターが用いられる。これらのツールは、電源を分離した領域間でのノイズの影響を考慮していない。上記特許文献に開示された方法も同様である。電源が分離された異なる領域間を接続する電源乗り換えパスでは、タイミングマージンを十分に持つように設計されるが、全てのパスで過不足なくマージンを持って設計することは難しい。
【０００６】
この発明は、上述した従来技術による問題点を解消するため、半導体集積回路内の複数の領域ごとに電源を分離する設計において、電源が分離された領域ごとに電源ノイズの影響を考慮してそれらの領域間を接続する電源乗り換えパスのマージンを過不足なく設定することができる回路設計方法、およびその回路設計方法をコンピュータに実行させるための回路設計プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明は、以下の特徴を有する。半導体集積回路内を分割した複数の領域のうち、送信側領域と受信側領域のそれぞれについて電圧の変動幅を見積もる。見積もられた送信側の電圧の変動幅に基づいて、送信側領域に対するタイミング検証用の遅延係数を求める。受信側領域についても同様に、見積もられた受信側の電圧の変動幅に基づいて、タイミング検証用の遅延係数を求める。
【０００８】
また、送信側領域と受信側領域を接続する電源乗り換えパスを抽出する。送信側領域において電源乗り換えパスに接続されたセルに対して送信側領域の遅延係数をかける。受信側領域についても同様に、電源乗り換えパスに接続されたセルに対して受信側領域の遅延係数をかける。このようにして、電源乗り換えパスのタイミング検証を行うためのスクリプトを生成し、そのスクリプトを用いて、例えばＳＴＡツールによりタイミング検証を行う。あるいは、スクリプトを生成しないで、直接、ＳＴＡツールにより電源乗り換えパスのタイミング検証を行ってもよい。
【０００９】
また、電源乗り換えパスの両端に接続されたセルをフリップフロップ回路で構成してもよい。この場合、送信側の電圧の変動幅に基づいて、送信側領域のフリップフロップ回路の遅延の変動分を求めるとともに、受信側の電圧の変動幅に基づいて、受信側領域のフリップフロップ回路のホールドマージンの変動分を求める。そして、送信側の遅延の変動分と受信側のホールドマージンの変動分を、タイミング解析において考慮するホールドマージンに追加する。
【００１０】
また、電源乗り換えパスの両端に接続されたセルとしてフリップフロップ回路を用いる場合、予め送信側領域と受信側領域のそれぞれについて電圧の変動幅の最大値を定めておき、送信側の電圧の変動幅が最大であるときの送信側の遅延の変動分と、受信側の電圧の変動幅が最大であるときの受信側のホールドマージンの変動分を追加したホールドマージンを有するフリップフロップ回路を用意する。そして、このホールドマージンが追加されたフリップフロップ回路を受信側のフリップフロップ回路として予めライブラリ化しておいてもよい。
【００１１】
また、電源乗り換えパスとしてフリップフロップ回路を用いてもよい。この場合、フリップフロップ回路の前段のラッチを送信側領域に配置し、前段のラッチに送信側領域の電源を供給する。また、フリップフロップ回路の後段のラッチを受信側領域に配置し、後段のラッチに受信側領域の電源を供給する。そして、このフリップフロップ回路の前段のラッチと後段のラッチの間のマージンを、送信側領域の電圧の変動幅および受信側領域の電圧の変動幅により生じる遅延の変化分を見積もったマージンとする。
【００１２】
あるいは、フリップフロップ回路の後段のラッチを構成するトランジスタのうち、ハイ側のトランジスタの閾値が、このフリップフロップ回路の前段のラッチを構成するトランジスタの、送信側領域の電圧の変動幅を考慮した出力電圧よりも低くなるようにする。このようなフリップフロップ回路を電源乗り換え用のセルとしてライブラリ化しておき、このライブラリを用いて回路設計を行う。上述したいずれの方法においても、送信側領域および受信側領域のそれぞれで電圧の変動幅を見積もった結果、送信側領域と受信側領域との電圧差が、電源乗り換えパスで信号の授受を行えないほどに大きい場合には、再設計を行う。
【００１３】
また、回路設計時には、送信側領域の電圧の変動幅および受信側領域の電圧の変動幅のそれぞれについて、予め許容できる範囲を定めて設計を行う。そして、タイミング検証時には、電圧の最大の変動幅を用いてタイミング検証を行うようにしてもよい。この発明によれば、送信側領域の電圧の変動幅および受信側領域の電圧の変動幅を考慮して、送信側領域と受信側領域を接続する電源乗り換えパスに対してタイミング検証を行うことができる。
【発明の効果】
【００１４】
本発明にかかる回路設計方法および回路設計プログラムによれば、半導体集積回路内の複数の領域ごとに電源を分離する設計を行う際に、電源乗り換えパスに対してタイミング検証を行うことができるので、電源が分離された領域ごとに電源ノイズの影響を考慮してそれらの領域間を接続する電源乗り換えパスのマージンを過不足なく設定することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に添付図面を参照して、この発明にかかる回路設計方法および回路設計プログラムの好適な実施の形態を詳細に説明する。実施の形態１〜４では、例えば、送信側領域と受信側領域を接続する電源乗り換えパスが、送信側領域に配置されたフリップフロップ回路から受信側領域に配置されたフリップフロップ回路までのパスであるとする。この場合、送信側のフリップフロップ回路は送信側領域に属し、受信側のフリップフロップ回路は受信側領域に属するとする。また、実施の形態５および６では、電源乗り換えパスがフリップフロップ回路で構成されており、このフリップフロップ回路の前段のラッチが送信側領域に属し、後段のラッチが受信側領域に属するとする。
【００１６】
（実施の形態１）
図１は、本発明の実施の形態１にかかる回路設計方法を示すフローチャートである。図１に示すように、配線容量情報１、回路規模情報２、動作周波数情報３およびトランジスタ特性などのその他の必要情報４を読み込み、電源乗り換えパスを介して相互に接続された送信側領域および受信側領域のそれぞれについて、電源ノイズを見積もり、電圧の変動幅（ノイズ電圧）ΔＰｏｗｅｒを求める（ステップＳ１）。例えば送信側領域と受信側領域の基準電圧が１．２Ｖである場合、送信側領域の電圧の変動幅ΔＰｏｗｅｒ１は０．０５Ｖであり、受信側領域の電圧の変動幅ΔＰｏｗｅｒ２は０．１Ｖであるというように求められる。
【００１７】
次いで、ステップＳ１で求められた送信側領域および受信側領域のノイズ電圧情報５に基づいて、ＳＴＡ用遅延係数ΔＤｅｌａｙの計算を行う（ステップＳ２）。送信側領域および受信側領域の各電圧は、電源ノイズによって上がる方向に振れる場合と下がる方向に振れる場合がある。そのため、ステップＳ２では、電圧が上下した場合の遅延係数ΔＤｅｌａｙを求める。
【００１８】
例えば、上述した例のように、送信側領域の電圧の変動幅ΔＰｏｗｅｒ１が０．０５Ｖである場合、［Ｐｏｗｅｒ１＋ΔＰｏｗｅｒ１］から求まる送信側領域の遅延係数ΔＤｅｌａｙ１は０．９５倍である。ただし、Ｐｏｗｅｒ１は送信側領域の基準電圧（例えば、１．２Ｖ）である。また、［Ｐｏｗｅｒ１−ΔＰｏｗｅｒ１］から求まる遅延係数ΔＤｅｌａｙ１は１．０６倍である。
【００１９】
同様に、受信側領域の電圧の変動幅ΔＰｏｗｅｒ２が０．１Ｖである場合、［Ｐｏｗｅｒ２＋ΔＰｏｗｅｒ２］から求まる受信側領域の遅延係数ΔＤｅｌａｙ２は０．９０倍である。ただし、Ｐｏｗｅｒ２は受信側領域の基準電圧（例えば、１．２Ｖ）である。また、［Ｐｏｗｅｒ２−ΔＰｏｗｅｒ２］から求まる遅延係数ΔＤｅｌａｙ２は１．１５倍である。
【００２０】
なお、ＩＲドロップを含めて遅延係数を求めることもできる。この場合、基準電圧ＰｏｗｅｒからＩＲドロップ分の電圧ΔＰｏｗｅｒ＿ＩＲＤを引いた値に対して、電圧の変動幅ΔＰｏｗｅｒを加算または減算した［Ｐｏｗｅｒ−ΔＰｏｗｅｒ＿ＩＲＤ±ΔＰｏｗｅｒ］に基づいて遅延係数を求める。このようにして、ステップＳ２によりＳＴＡ用遅延係数情報６が得られる。
【００２１】
一方、論理回路情報７および電源回路情報８を読み込み、電源乗り換えパスの抽出を行う（ステップＳ３）。得られた電源の乗り換えパス情報９に基づいて、電源乗り換えパスの両端に接続された各セルのうち、送信側領域に属するセルには遅延係数ΔＤｅｌａｙ１をかけ、受信側領域に属するセルには遅延係数ΔＤｅｌａｙ２をかけることにより、タイミング検証を行うためのＳＴＡ用スクリプト作成する（ステップＳ４）。
【００２２】
そして、生成されたＳＴＡ用スクリプトを出力する。ここまでは、ＳＴＡ用スクリプト作成プログラムをコンピュータで実行することにより、実現される。出力されたＳＴＡスクリプト情報１０を用いて、ＳＴＡツールを実行し、電源乗り換えパスのタイミング検証を行う（ステップＳ５）。以上のようにすることによって、電源乗り換えパスのみを対象としてタイミング検証を実施することができる。従って、電源乗り換えパスに対して、必要かつ十分なノイズ量を考慮してマージンを設定することができる。
【００２３】
（実施の形態２）
図２は、本発明の実施の形態２にかかる回路設計方法を示すフローチャートである。図２に示すように、実施の形態２は、ＳＴＡ用スクリプトを作成しないで、ＳＴＡツール内で送信側領域および受信側領域のそれぞれの遅延係数を考慮して電源乗り換えパスのタイミング検証を行うものである。
【００２４】
ＳＴＡツールに配線容量情報１、回路規模情報２、動作周波数情報３、論理回路情報７および電源回路情報８などを読み込む。そして、ＳＴＡツールにより、送信側領域および受信側領域のそれぞれについて、実施の形態１と同様にして、電源ノイズを見積もって電圧の変動幅ΔＰｏｗｅｒ１、ΔＰｏｗｅｒ２を求め（ステップＳ１）、ＳＴＡ用遅延係数ΔＤｅｌａｙ１、ΔＤｅｌａｙ２を計算する（ステップＳ２）。
【００２５】
一方、ＳＴＡツールにより、電源乗り換えパスを抽出する。そして、その電源乗り換えパスに接続された、送信側領域のセルに送信側領域の遅延係数ΔＤｅｌａｙ１をかけ、受信側領域のセルに受信側領域の遅延係数ΔＤｅｌａｙ２をかけることにより、電源乗り換えパスのタイミング検証を行う（ステップＳ５）。このように、ＳＴＡツールにより直接、電源乗り換えパスのみを対象としてタイミング検証を実施することができるので、実施の形態１と同様に、電源乗り換えパスに対して、必要かつ十分なノイズ量を考慮してマージンを設定することができる。
【００２６】
（実施の形態３）
図３は、本発明の実施の形態３にかかる回路設計方法を示すフローチャートである。図３に示すように、実施の形態３は、遅延変動分を、電源乗り換えパスに接続されたフリップフロップ回路のホールドマージンとして扱い、電源乗り換えパスのタイミング検証を行うものである。電源乗り換えパスに接続された送信側領域のフリップフロップ回路と受信側領域のフリップフロップ回路の間にはセルを配置しない。
【００２７】
ＳＴＡツールに配線容量情報１、回路規模情報２、動作周波数情報３、論理回路情報７および電源回路情報８などを読み込み、ＳＴＡツールにより、送信側領域および受信側領域のそれぞれについて、実施の形態１と同様にして、電源ノイズを見積もり、電圧の変動幅ΔＰｏｗｅｒ１、ΔＰｏｗｅｒ２を求める（ステップＳ１）。次いで、ステップＳ１で求められた送信側領域および受信側領域のノイズ電圧情報５に基づいて、電源乗り換えパスに接続されたフリップフロップ回路のホールドマージンに追加するマージンの計算を行う（ステップＳ６）。
【００２８】
その際、送信側領域のフリップフロップ回路では遅延値が小さくなる場合を考慮し、受信側領域のフリップフロップ回路ではホールドマージンが大きくなる場合を考慮する。送信側のセルの遅延Ｃｅｌｌ＿Ｄｅｌａｙ１と［Ｐｏｗｅｒ１＋ΔＰｏｗｅｒ１］から求まる送信側の遅延値の変化［Ｃｅｌｌ＿Ｄｅｌａｙ１−Ｃｅｌｌ＿Ｄｅｌａｙ１・ΔＤｅｌａｙ１］を見積もる。また、受信側のセルのホールドマージンＨｏｌｄ＿Ｍａｒｇｉｎ２と［Ｐｏｗｅｒ２−ΔＰｏｗｅｒ２］から求まる受信側のホールドマージンの変化［Ｈｏｌｄ＿Ｍａｒｇｉｎ２・ΔＤｅｌａｙ２−Ｈｏｌｄ＿Ｍａｒｇｉｎ２］を見積もる。
【００２９】
そして、送信側の遅延値の変化［Ｃｅｌｌ＿Ｄｅｌａｙ１−Ｃｅｌｌ＿Ｄｅｌａｙ１・ΔＤｅｌａｙ１］と受信側のホールドマージンの変化［Ｈｏｌｄ＿Ｍａｒｇｉｎ２・ΔＤｅｌａｙ２−Ｈｏｌｄ＿Ｍａｒｇｉｎ２］を合わせて、ＳＴＡで考慮するホールドマージンへ追加する。フリップフロップ回路のセットアップ・ホールドマージンとして、この計算により得られたセットアップ・ホールドマージン情報１１を用いてタイミング検証を行う（ステップＳ５）。このように、送信側では遅延値が小さくなり、受信側ではホールドマージンが大きくなる場合を考慮してフリップフロップ回路のセットアップ・ホールドマージンを設定するので、電源乗り換えパスに対して、ノイズが発生した場合でも影響のないマージンを確保することができる。
【００３０】
なお、実施の形態１のように、ステップＳ６で求められたセットアップ・ホールドマージン情報１１を用いてＳＴＡ用スクリプト作成プログラムによりＳＴＡ用スクリプトを作成し、出力して、そのスクリプトをＳＴＡツールに与えるようにしてもよい。また、送信側のフリップフロップ回路と受信側のフリップフロップ回路の間にバッファを挿入してもよい。その場合には、ステップＳ６で、挿入されたバッファを含めたマージンの計算を行う。
【００３１】
（実施の形態４）
図４は、本発明の実施の形態４にかかる回路設計方法を示すフローチャートである。図４に示すように、実施の形態４は、遅延変動分を、電源乗り換えパスに接続されたフリップフロップ回路のホールドマージンへ一律に定義してタイミング検証を行うものである。電源乗り換えパスに接続された送信側回路のフリップフロップ回路と受信側回路のフリップフロップ回路の間にはセルを配置しない。
【００３２】
予め、チップを設計する際に送信側領域および受信側領域でそれぞれ許容されるノイズの最大量を定めておく。そして、実施の形態３と同様にして、送信側領域および受信側領域のそれぞれでノイズが最大になった場合のフリップフロップ回路のホールドマージンの変化を求める。受信側回路のフリップフロップ回路として専用のセルを用意し、このセルをライブラリ化して専用タイミングライブラリ情報１２とする。この専用のセルには、ノイズが最大になった場合のホールドマージンを追加しておく。
【００３３】
ＳＴＡツールに配線容量情報１、回路規模情報２および動作周波数情報３などを読み込み、ＳＴＡツールにより、送信側領域および受信側領域のそれぞれについて、実施の形態１と同様にして、電源ノイズを見積もり、電圧の変動幅ΔＰｏｗｅｒ１、ΔＰｏｗｅｒ２を求める（ステップＳ１）。得られたノイズ電圧情報５に基づいてノイズ量の判定を行い、ステップＳ１で求められた送信側領域および受信側領域の各ノイズ電圧が、それぞれ送信側領域および受信側領域で許容されるノイズの最大値を超えていないか否かを判定する（ステップＳ７）。送信側領域のノイズおよび受信側領域のノイズの両方ともノイズの最大値を超えていない場合（ステップＳ７：ＯＫ）には、専用タイミングライブラリ情報１２を用いてタイミング検証を行う（ステップＳ５）。
【００３４】
送信側領域のノイズおよび受信側領域のノイズの少なくとも一方がノイズの最大値を超えている場合（ステップＳ７：ＮＧ）には、超えないように再設計を行う（ステップＳ８）。このように、送信側領域および受信側領域のそれぞれでノイズが最大になった場合のホールドマージンを追加したフリップフロップ回路を、受信側回路のフリップフロップ回路として専用に用意しておき、この専用のセルを用いてタイミング設計を行うことによって、ノイズが起こった場合のタイミング変動を電源乗り換えパスのみに適用して考慮することができる。また、ノイズが予め設定された最大値を超える場合には再設計を行うので、ノイズを影響のない範囲に抑えることができる。
【００３５】
（実施の形態５）
図５は、本発明の実施の形態５にかかる回路設計方法において用いられる電源乗り換えパス専用セルの一例を示す回路図である。図５に示すように、実施の形態５は、チップの設計を行う際に、電源乗り換えパスを構成する専用セルとして、タイミング違反対策を施したフリップフロップ回路２１を用いるものである。このフリップフロップ回路２１は、前段のラッチ２２と後段のラッチ２３から構成されている。前段のラッチ２２は、送信側領域に配置され、送信側領域から電源を供給される。後段のラッチ２３は、受信側領域に配置され、受信側領域から電源を供給される。図５には、Ｄタイプのフリップフロップ回路が示されているが、Ｄタイプに限らない。
【００３６】
図６は、本発明の実施の形態５における電源乗り換えパス専用セルの作成手順を示すフローチャートである。図６に示すように、まず、セル内で電源分離したセル、すなわち前段のラッチ２２に送信側領域の電源が供給され、後段のラッチ２３に受信側領域の電源が供給されるフリップフロップ回路２１を形成する（ステップＳ９）。そして、作成されたセルのタイミング調整を行う（ステップＳ１０）。一方、予め、送信側領域および受信側領域でそれぞれ許容されるノイズの最大量を定めておく。この許容できる電源ノイズの最大値と、送信側領域および受信側領域（電源領域間）で想定される電圧効果から最大の電位差を定義する（ステップＳ１１）。
【００３７】
そして、ステップＳ１０で得られたセル情報１３、ステップＳ１１で定義された最大の電位差情報１４、および通常考慮するばらつき情報１５に基づいて、タイミング検証を行う（ステップＳ１２）。検証の結果、送信側領域の電圧と受信側領域の電圧の差が最大であるときでもタイミング違反が起こらない場合（ステップＳ１２：ＯＫ）には、セルライブラリを作成する（ステップＳ１３）。
【００３８】
一方、タイミング違反が起こる場合（ステップＳ１２：ＮＧ）には、タイミング違反が起こらなくなるまで、ステップＳ１０のタイミング調整とステップＳ１２のタイミング検証を繰り返し行う。タイミング調整を行う際には、前段のラッチ２２と後段のラッチ２３の間でホールドエラーが起こらないように、前段と後段でクロックスキューを大きくするか、前段から後段へのデータの遅延を大きくする。
【００３９】
図７は、本発明の実施の形態５における電源乗り換えパス専用セルの使用手順を示すフローチャートである。図７に示すように、論理回路のネットリスト情報またはＲＴＬ（レジスタトランスファレベル）情報１６と電源回路情報８に基づいて、置き換えスクリプトまたは論理合成ＣＡＤにより、通常の１電源のセルを、セル内で電源が分離されたセル、すなわち前段のラッチ２２に送信側領域の電源が供給され、後段のラッチ２３に受信側領域の電源が供給されるフリップフロップ回路２１に置き換える（ステップＳ１４）。
【００４０】
これによって、上述した電源乗り換えパス専用セルとして２電源で駆動されるフリップフロップ回路２１を用いた論理回路情報７が得られる。なお、チップの設計時には、送信側領域と受信側領域のそれぞれで予め、定められたノイズの最大値を超えないようにする。このように、タイミング違反対策を施した電源乗り換えパス専用セルを用いることによって、電源乗り換えパスにおいてタイミング違反が起こるのを防ぐことができる。
【００４１】
（実施の形態６）
電源ノイズにより起こり得る問題として、タイミング違反による誤動作の他に、電圧レベルによる誤動作がある。図８は、電圧レベルによる誤動作を説明するために電圧レベルを示す模式図であり、縦軸は電圧を表す。図８左側の正常状態の模式図８０に示すように、送信側トランジスタ（送信Ｔｒ．）の出力電圧ＶＯＨが受信側のハイ側のトランジスタ（受信Ｔｒ．）の閾値ＶｔｈＨよりも高ければ、受信側で誤動作が起こらない。
【００４２】
しかし、図８右側の誤動作状態の模式図８１に示すように、電源ノイズの影響により、送信側の電圧が下がり、受信側の電圧が上がると、送信側トランジスタの出力電圧ＶＯＨが受信側のハイ側のトランジスタの閾値ＶｔｈＨよりも低くなることがある。このような場合、受信側で誤動作が起こる。受信側がＣＭＯＳトランジスタで構成される場合には、そのＣＭＯＳトランジスタの出力が不定となり、電源とグランドの間に大きな貫通電流が流れるかＣＭＯＳトランジスタが動作しないことになる。
【００４３】
そこで、実施の形態６では、チップの設計を行う際に、電源乗り換えパスを構成する専用セルとして、信号の受け渡し対策を施したフリップフロップ回路を用いる。このフリップフロップ回路において、前段のラッチを構成するトランジスタのうち、後段のラッチに接続されている部分のトランジスタを送信側トランジスタと呼び、後段のラッチを構成するトランジスタのうち、前段のラッチに接続されている部分のトランジスタを受信側トランジスタと呼ぶ。
【００４４】
フリップフロップ回路の構成および電源の供給については、実施の形態５の電源乗り換えパス専用セルを構成するフリップフロップ回路と同じである。ただし、実施の形態６のフリップフロップ回路では、タイミング違反が起こらないようにマージンが確保されている（実施の形態５）代わりに、図９に示すように、受信側トランジスタのうち、ハイ側のトランジスタの閾値ＶｔｈＨの絶対値が低く、送信側トランジスタの出力電圧ＶＯＨが低くなった場合でも、［ＶＯＨ＞ＶｔｈＨ］となるトランジスタが用いられている。
【００４５】
図９は、本発明の実施の形態６にかかる回路設計方法において用いられる電源乗り換えパス専用セルの電圧レベルを示す模式図である。電圧レベルの変動があっても正常に動作することを説明する模式図であり、縦軸は電圧を表す。図９において、左側の図は、電圧レベルの変動がない状態の模式図９０であり、右側の図は、電圧レベルが変動した状態の模式図９１である。このように、送信側領域および受信側領域の一方または両方で電圧が変動しても、受信側で［ＶＯＨ＞ＶｔｈＨ］となるトランジスタを用いることによって、誤動作することなく受信側で信号を受け取ることができる。
【００４６】
図１０は、本発明の実施の形態６における電源乗り換えパス専用セルの作成手順を示すフローチャートである。図１０に示すように、まず、セル内で電源分離したセル、すなわち前段のラッチに送信側領域の電源が供給され、後段のラッチに受信側領域の電源が供給されるフリップフロップ回路を作成する（ステップＳ９）。そして、作成されたフリップフロップ回路を構成するトランジスタ（Ｔｒ．）を、予め用意されているトランジスタ群の中から選択するか、あるいは作成する（ステップＳ１５）。一方、予め、送信側領域および受信側領域でそれぞれ許容されるノイズの最大量を定めておき、この許容できる電源ノイズの最大値と、送信側領域および受信側領域（電源領域間）で想定される電圧効果から最大の電位差を定義する（ステップＳ１１）。
【００４７】
そして、ステップＳ１５で得られたセル情報１３、ステップＳ１１で定義された最大の電位差情報１４、および通常考慮するばらつき情報１５に基づいて、出力値および電源リーク値の検証を行う（ステップＳ１６）。検証の結果、出力値および電源リーク値のいずれにも問題がない場合（ステップＳ１６：ＯＫ）には、セルライブラリを作成する（ステップＳ１３）。一方、出力値および電源リーク値の少なくとも一方に問題がある場合（ステップＳ１６：ＮＧ）には、その問題がなくなるまで、ステップＳ１５のトランジスタの選択または作成と、ステップＳ１６の出力値および電源リーク値の検証を繰り返し行う。電源乗り換えパス専用セルの使用手順は、実施の形態５で説明した通りであり、フローチャートは、図７に示す通りである。
【００４８】
なお、電源乗り換えパス専用セルとして用いる、信号の受け渡し対策を施したフリップフロップ回路は、上述した構成に限らない。ここで、信号受け渡し対策を施したフリップフロップ回路の他の構成について示す。図１１は、本発明の実施の形態６にかかる回路設計方法において用いられる電源乗り換えパス専用セルの一例を示す回路図である。図１１に示すように、送信側トランジスタの電源電圧ＶＤＤ１を、受信側トランジスタのうちのハイ側のトランジスタｐＭＯＳ２のバックバイアスＶｂｓｐ２に印加する構成としたフリップフロップ回路を用いてもよい。なお、図１１には、フリップフロップ回路の送信側トランジスタと受信側トランジスタの接続部分のみが示されている。
【００４９】
図１１において、ｐＭＯＳ１およびｎＭＯＳ１は、それぞれ送信側トランジスタのハイ側およびロー側のトランジスタであり、ｎＭＯＳ２は、受信側トランジスタのロー側のトランジスタである。また、ＶＤＤ２は受信側トランジスタの電源電圧であり、ＶＳＳはグランドである。Ｖｂｓｐ１は、送信側トランジスタのうちのハイ側のトランジスタｐＭＯＳ１のバックバイアスであり、Ｖｂｓｎは、送信側のロー側のトランジスタｎＭＯＳ１と受信側のロー側のトランジスタｎＭＯＳ２のバックバイアスである。
【００５０】
受信側トランジスタのうち、ハイ側のトランジスタｐＭＯＳ２について、そのバックバイアスへ送信側トランジスタの電源電圧ＶＤＤ１を印加したときの閾値の変化をΔＰｏｗｅｒ１＿Ｂとし、閾値をＶｔｈＨとする。送信側の電圧ＶＤＤ１が上がると、受信側トランジスタの閾値の絶対値が上がり、［ＶｔｈＨ＋ΔＰｏｗｅｒ１＿Ｂ］となる。一方、送信側の電圧ＶＤＤ１が下がると、受信側トランジスタの閾値の絶対値が下がり、［ＶｔｈＨ−ΔＰｏｗｅｒ１＿Ｂ］となる。送信側トランジスタの出力電圧をＶＯＨとし、送信側の電圧ＶＤＤ１の変動幅をΔＰｏｗｅｒ１とすると、［ＶＯＨ±ΔＰｏｗｅｒ１＞ＶｔｈＨ±ΔＰｏｗｅｒ１＿Ｂ］の関係を満足することによって、誤動作することなく受信側で信号を受け取ることができる。
【００５１】
（実施の形態７）
図１２は、本発明の実施の形態７にかかる回路設計方法を示すフローチャートである。図１２に示すように、実施の形態７は、電源乗り換えパスで信号を受け渡せないほど電圧差が大きくなった場合に再設計を行う方法であり、実施の形態１、２、３、５または６に適用可能である。
【００５２】
予め、電源乗り換えパスで送信側トランジスタの電源電圧がノイズで変化したときの送信側トランジスタの出力電圧に対して、受信側トランジスタが誤動作する受信側トランジスタの電源電圧を求めておく。そして、チップの設計時に、配線容量情報１、回路規模情報２および動作周波数情報３などに基づいて、送信側領域および受信側領域のそれぞれについて、実施の形態１と同様にして、電源ノイズを見積もり、電圧の変動幅ΔＰｏｗｅｒ１、ΔＰｏｗｅｒ２を求める（ステップＳ１）。
【００５３】
得られたノイズ電圧情報５に基づいてノイズ量の判定を行い、ステップＳ１で求められた送信側領域および受信側領域の各ノイズ電圧が、それぞれ送信側領域および受信側領域で許容されるノイズの最大値以下であり、かつ受信側トランジスタが誤動作するノイズ量よりも小さいか否かを判定する（ステップＳ１７）。送信側領域のノイズおよび受信側領域のノイズの両方ともノイズの最大値以下であり、かつ受信側トランジスタが誤動作するノイズ量よりも小さい場合（ステップＳ１７：ＯＫ）には、設計を続行する（ステップＳ１８）。
【００５４】
送信側領域のノイズおよび受信側領域のノイズの少なくとも一方がノイズの最大値を超えているか、または受信側トランジスタが誤動作するノイズ量以上である場合（ステップＳ１７：ＮＧ）には、再設計を行う（ステップＳ８）。送信側および受信側のそれぞれの電圧の変動幅をΔＰｏｗｅｒ１およびΔＰｏｗｅｒ２とすると、受信側トランジスタが誤動作しないノイズ量を、［ΔＰｏｗｅｒ１＜ｘ１］および［ΔＰｏｗｅｒ２＜ｘ２］というように、送信側と受信側で別々の関数で表してもよい。
【００５５】
あるいは、［ΔＰｏｗｅｒ１＋ΔＰｏｗｅｒ２＜ｘ３］というように、受信側トランジスタが誤動作しないノイズ量を１つの関数で表してもよい。ただし、ｘ１、ｘ２およびｘ３は、予めセル特性のシミュレーションや実測などから求めておく。このようにすることによって、誤動作することなく受信側で信号を受け取ることができる。また、再設計を行うことによって、ノイズを影響のない範囲に抑えることができる。
【００５６】
（実施の形態８）
図１３は、本発明の実施の形態８にかかる回路設計方法を示すフローチャートである。図１３に示すように、実施の形態８は、送信側領域および受信側領域のそれぞれについてノイズの上限を定め、そのノイズの上限から一律に遅延係数をかけてタイミング検証を行うものであり、実施の形態１または２に適用可能である。
【００５７】
予め、実施の形態７と同様にして、誤動作しないノイズ量を［ΔＰｏｗｅｒ１＜ｘ１］および［ΔＰｏｗｅｒ２＜ｘ２］というように定義しておく。そして、配線容量情報１、回路規模情報２および動作周波数情報３などに基づいて、送信側領域および受信側領域のそれぞれについて、実施の形態１と同様にして、電源ノイズを見積もり、電圧の変動幅ΔＰｏｗｅｒ１、ΔＰｏｗｅｒ２を求める（ステップＳ１）。
【００５８】
得られたノイズ電圧情報５に基づいてノイズ量の判定を行い、ステップＳ１で求められた送信側領域および受信側領域の各ノイズ電圧が、それぞれ送信側領域および受信側領域で許容されるノイズの最大値以下であり、かつ誤動作しないノイズ量以下であるか否かを判定する（ステップＳ１９）。送信側領域のノイズおよび受信側領域のノイズの両方ともノイズの最大値以下であり、かつ誤動作しないノイズ量以下である場合（ステップＳ１９：ＯＫ）には、［ΔＰｏｗｅｒ１＝ｘ１］および［ΔＰｏｗｅｒ２＝ｘ２］として、ＳＴＡ用遅延係数ΔＤｅｌａｙの計算を行う（ステップＳ２）。
【００５９】
これ以降は、図１のステップＳ４以降の処理、すなわちＳＴＡ用スクリプトを出力してＳＴＡを実行してもよいし、最初からＳＴＡツール内で処理してる場合には、ＳＴＡツール内で図２のステップＳ５の処理を行う。一方、送信側領域のノイズおよび受信側領域のノイズの少なくとも一方がノイズの最大値を超えているか、または誤動作しないノイズ量を超えている場合（ステップＳ１９：ＮＧ）には、再設計を行う（ステップＳ８）。このようにすることによって、誤動作しない電圧振幅でタイミングを満足させることができる。
【００６０】
なお、本実施の形態で説明した回路設計方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００６１】
（付記１）半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域のそれぞれについて電圧の変動幅を見積もるノイズ見積工程と、
前記送信側領域と前記受信側領域のそれぞれについて前記見積工程で見積もられた電圧の変動幅に基づいてタイミング検証用の遅延係数を求める係数算出工程と、
前記送信側領域と前記受信側領域を接続する電源乗り換えパスを抽出するパス抽出工程と、
前記送信側領域の、前記パス抽出工程で抽出された電源乗り換えパスに接続されたセルに対して、前記係数算出工程で算出された送信側領域の遅延係数をかけるとともに、前記受信側領域の、前記電源乗り換えパスに接続されたセルに対して、前記係数算出工程で算出された受信側領域の遅延係数をかけることにより、前記電源乗り換えパスのタイミング検証を行うためのスクリプトを生成するスクリプト生成工程と、
を含むことを特徴とする回路設計方法。
【００６２】
（付記２）半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域のそれぞれについて電圧の変動幅を見積もるノイズ見積工程と、
前記送信側領域と前記受信側領域のそれぞれについて前記見積工程で見積もられた電圧の変動幅に基づいてタイミング検証用の遅延係数を求める係数算出工程と、
前記送信側領域と前記受信側領域を接続する電源乗り換えパスを抽出し、前記送信側領域の、前記電源乗り換えパスに接続されたセルに対して、前記係数算出工程で算出された送信側領域の遅延係数をかけるとともに、前記受信側領域の、前記電源乗り換えパスに接続されたセルに対して、前記係数算出工程で算出された受信側領域の遅延係数をかけることにより、前記電源乗り換えパスのタイミング検証を行う検証工程と、
を含むことを特徴とする回路設計方法。
【００６３】
（付記３）半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域のそれぞれについて電圧の変動幅を見積もるノイズ見積工程と、
前記ノイズ見積工程で見積もられた送信側の電圧の変動幅に基づいて、前記送信側領域の、同送信側領域と前記受信側領域を接続する電源乗り換えパスに接続されたフリップフロップ回路の遅延の変動分を求めるとともに、前記ノイズ見積工程で見積もられた受信側の電圧の変動幅に基づいて、前記受信側領域の、前記電源乗り換えパスに接続されたフリップフロップ回路のホールドマージンの変動分を求め、送信側の前記遅延の変動分と受信側の前記ホールドマージンの変動分を、タイミング解析において考慮するホールドマージンに追加することにより、タイミング検証を行う検証工程と、
を含むことを特徴とする回路設計方法。
【００６４】
（付記４）半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域のそれぞれについて電圧の変動幅の最大値を定め、前記送信側領域の、同送信側領域と前記受信側領域を接続する電源乗り換えパスに接続されたフリップフロップ回路の、送信側の電圧の変動幅が最大であるときの遅延の変動分を求めるとともに、前記受信側領域の、前記電源乗り換えパスに接続されたフリップフロップ回路の、受信側の電圧の変動幅が最大であるときのホールドマージンの変動分を求め、送信側の前記遅延の変動分と受信側の前記ホールドマージンの変動分を追加したホールドマージンを有するフリップフロップ回路を作成するライブラリ作成工程と、
前記ライブラリ作成工程で作成されたフリップフロップ回路を、前記電源乗り換えパスに接続された受信側のフリップフロップ回路に用いることにより、タイミング検証を行う検証工程と、
を含むことを特徴とする回路設計方法。
【００６５】
（付記５）半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域を接続する電源乗り換えパスとしてフリップフロップ回路を用い、該フリップフロップ回路の前段のラッチを前記送信側領域に配置し、該前段のラッチに前記送信側領域の電源を供給し、前記フリップフロップ回路の後段のラッチを前記受信側領域に配置し、該後段のラッチに前記受信側領域の電源を供給し、前記送信側領域の電圧の変動幅および前記受信側領域の電圧の変動幅により生じる遅延の変化分を見積もったマージンを有するフリップフロップ回路を作成するライブラリ作成工程と、
前記送信側領域と前記受信側領域を接続する電源乗り換え用のセルとして、前記ライブラリ作成工程で作成されたフリップフロップ回路を用いて、回路設計を行う設計工程と、
を含むことを特徴とする回路設計方法。
【００６６】
（付記６）半導体集積回路内を複数の領域に分割し、領域ごとに電源を分離する回路設計を行うにあたって、
送信側領域と受信側領域を接続する電源乗り換えパスとしてフリップフロップ回路を用い、該フリップフロップ回路の前段のラッチを前記送信側領域に配置し、該前段のラッチに前記送信側領域の電源を供給し、前記フリップフロップ回路の後段のラッチを前記受信側領域に配置し、該後段のラッチに前記受信側領域の電源を供給し、前記フリップフロップ回路の後段のラッチを構成するトランジスタのうち、ハイ側のトランジスタの閾値が、前記フリップフロップ回路の前段のラッチを構成するトランジスタの、前記送信側領域の電圧の変動幅を考慮した出力電圧よりも低いフリップフロップ回路を作成するライブラリ作成工程と、
前記送信側領域と前記受信側領域を接続する電源乗り換え用のセルとして、前記ライブラリ作成工程で作成されたフリップフロップ回路を用いて、回路設計を行う設計工程と、
を含むことを特徴とする回路設計方法。
【００６７】
（付記７）前記送信側領域および前記受信側領域のそれぞれで電圧の変動幅を見積もった結果、前記送信側領域と前記受信側領域との電圧差が、前記電源乗り換えパスで信号の授受を行えないほどに大きい場合に、再設計を行うことを特徴とする付記１〜６のいずれか一つに記載の回路設計方法。
【００６８】
（付記８）前記送信側領域および前記受信側領域のそれぞれについて、設計時には予め電圧の変動幅の許容できる範囲を定めて設計し、タイミング検証時には電圧の最大の変動幅を用いてタイミング検証を行うことを特徴とする付記１〜７のいずれか一つに記載の回路設計方法。
【００６９】
（付記９）付記１〜８のいずれか一つに記載の回路設計方法をコンピュータに実行させることを特徴とする回路設計プログラム。
【産業上の利用可能性】
【００７０】
以上のように、本発明にかかる回路設計方法および回路設計プログラムは、集積回路のタイミング解析ツールに有用であり、特に、静的タイミング解析を行うツールに適している。
【図面の簡単な説明】
【００７１】
【図１】実施の形態１にかかる回路設計方法を示すフローチャートである。
【図２】実施の形態２にかかる回路設計方法を示すフローチャートである。
【図３】実施の形態３にかかる回路設計方法を示すフローチャートである。
【図４】実施の形態４にかかる回路設計方法を示すフローチャートである。
【図５】実施の形態５にかかる回路設計方法において用いられる電源乗り換えパス専用セルの一例を示す回路図である。
【図６】実施の形態５における電源乗り換えパス専用セルの作成手順を示すフローチャートである。
【図７】実施の形態５における電源乗り換えパス専用セルの使用手順を示すフローチャートである。
【図８】電圧レベルによる誤動作を説明するために電圧レベルを示す模式図である。
【図９】実施の形態６にかかる回路設計方法において用いられる電源乗り換えパス専用セルの電圧レベルを示す模式図である。
【図１０】実施の形態６における電源乗り換えパス専用セルの作成手順を示すフローチャートである。
【図１１】実施の形態６にかかる回路設計方法において用いられる電源乗り換えパス専用セルの一例を示す回路図である。
【図１２】実施の形態７にかかる回路設計方法を示すフローチャートである。
【図１３】実施の形態８にかかる回路設計方法を示すフローチャートである。
【符号の説明】
【００７２】
Ｓ１  ノイズ見積工程
Ｓ２  係数算出工程
Ｓ３  パス抽出工程
Ｓ４  スクリプト作成工程
Ｓ５  検証工程
Ｓ１３  ライブラリ作成工程
【図１】
2007200042.tif 000003
【図２】
2007200042.tif 000004
【図３】
2007200042.tif 000005
【図４】
2007200042.tif 000006
【図５】
2007200042.tif 000007
【図６】
2007200042.tif 000008
【図７】
2007200042.tif 000009
【図８】
2007200042.tif 000010
【図９】
2007200042.tif 000011
【図１０】
2007200042.tif 000012
【図１１】
2007200042.tif 000013
【図１２】
2007200042.tif 000014
【図１３】
2007200042.tif 000015