(57)【要約】  それぞれ異なるプラットフォーム上で設計された複数の回路ブロックが搭載された半導体装置において、システム全体の信号遅延を正確に評価できるようにする。  信号遅延評価プログラム（１）において、プラットフォーム判別工程（ステップＳ１）では、第１の回路ブロックのスルーレートと、この第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別する。スルーレート補正工程（ステップＳ２）では、プラットフォーム判別工程（ステップＳ１）で各レベル基準値が異なると判別された場合に、これらのレベル基準値の差に応じたスルーレート誤差に基づいて、第１の回路ブロックからの出力信号における出力スルーレートを補正する。
2008120322.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムにおいて、
第１の回路ブロックのスルーレートと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別するプラットフォーム判別工程と、
前記プラットフォーム判別工程で前記各レベル基準値が異なると判別された場合に、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第１の回路ブロックからの出力信号における出力スルーレートを補正するスルーレート補正工程と、
を含む処理をコンピュータに実行させることを特徴とする信号遅延評価プログラム。
【請求項２】
前記レベル基準値とは、信号の立ち上がりまたは立ち下がりの開始および終了の各タイミングを信号レベルから判定するための開始判定しきい値および終了判定しきい値であることを特徴とする請求の範囲第１項記載の信号遅延評価プログラム。
【請求項３】
前記スルーレート補正工程では、前記第１の回路ブロックに対応する前記開始判定しきい値と前記終了判定しきい値との差分値に対する、前記第２の回路ブロックに対応する前記開始判定しきい値と前記終了判定しきい値との差分値の割合を求め、前記第１の回路ブロックからの前記出力スルーレートに対して前記各差分値の割合を乗じた値を前記出力スルーレートの補正値として出力することを特徴とする請求の範囲第２項記載の信号遅延評価プログラム。
【請求項４】
前記第１の回路ブロックからの出力信号における前記出力スルーレートを、前記第２の回路ブロック内の入力段セルにおける信号遅延を求めるための制約条件として設定する工程であって、
前記プラットフォーム判別工程で前記各レベル基準値が異なると判別された場合には、前記スルーレート補正工程で補正された前記出力スルーレートを、前記第２の回路ブロック内の前記入力段セルに対する前記制約条件として設定する条件設定工程、
をさらに含む処理を前記コンピュータに実行させることを特徴とする請求の範囲第１項乃至第３項のいずれか１項に記載の信号遅延評価プログラム。
【請求項５】
前記第２の回路ブロックに対応する遅延評価用ライブラリを参照し、前記制約条件として設定された前記出力スルーレートに応じて、前記第２の回路ブロック内の前記入力段セルにおける前記出力スルーレートを設定するスルーレート設定工程、
をさらに含む処理を前記コンピュータに実行させることを特徴とする請求の範囲第４項記載の信号遅延評価プログラム。
【請求項６】
前記第２の回路ブロックに対応する遅延評価用ライブラリを参照し、前記制約条件として設定された前記出力スルーレートに応じて、前記第２の回路ブロック内の入力段セルにおける入出力端子間遅延データを設定する端子間遅延データ設定工程、
をさらに含む処理を前記コンピュータに実行させることを特徴とする請求の範囲第４項記載の信号遅延評価プログラム。
【請求項７】
前記第１の回路ブロック内のセルと、前記第２の回路ブロック内のセルのそれぞれに対応する入出力端子間遅延データとが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別工程と、
前記端子間遅延プラットフォーム判別工程で前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出工程と、
をさらに含む処理を前記コンピュータに実行させることを特徴とする請求の範囲第１項乃至第６項のいずれか１項に記載の信号遅延評価プログラム。
【請求項８】
前記第１の回路ブロックおよび前記第２の回路ブロックの全体の信号遅延量を計算する際に、前記第１の回路ブロック内のセル、および前記第２の回路ブロック内のセルのそれぞれの前記端子間遅延データに基づく信号遅延量を、前記補正値算出工程で出力された前記端子間遅延補正値によって補正する遅延量算出工程、
をさらに含む処理を前記コンピュータに実行させることを特徴とする請求の範囲第７項記載の信号遅延評価プログラム。
【請求項９】
前記端子間遅延用レベル基準値は、伝送される信号の全振幅に対する割合として表され、
スルーレートに対応する前記レベル基準値は、信号の立ち上がりまたは立ち下がりの開始および終了の各タイミングを判定するための信号レベルを、それぞれ信号の全振幅に対する割合で示した開始判定しきい値および終了判定しきい値として表され、
前記補正値算出工程では、前記第１の回路ブロックからの出力信号における前記出力スルーレートに対応する前記開始判定しきい値と前記終了判定しきい値との差分値で、当該出力スルーレートを除算した除算値に対して、前記第２の回路ブロックに対応する前記端子間遅延用レベル基準値から前記第１の回路ブロックに対応する前記端子間遅延用レベル基準値を差し引いた差分値を乗じることで、前記端子間遅延補正値を算出し、
前記遅延量算出工程では、前記第１の回路ブロック内のセル、および前記第２の回路ブロック内のセルのそれぞれの前記端子間遅延データに基づく信号遅延量に対して、前記端子間遅延補正値を加算する、
ことを特徴とする請求の範囲第８項記載の信号遅延評価プログラム。
【請求項１０】
前記遅延量算出工程では、前記端子間遅延補正値を、前記第１の回路ブロックと前記第２の回路ブロックとの間の領域における信号遅延量として定義しておくことを特徴とする請求の範囲第８項または第９項のいずれかに記載の信号遅延評価プログラム。
【請求項１１】
前記遅延量算出工程では、前記端子間遅延補正値を、前記第１の回路ブロック内の出力段セルの信号遅延量に加算することで、当該出力段セルの信号遅延量として定義しておくことを特徴とする請求の範囲第８項または第９項のいずれかに記載の信号遅延評価プログラム。
【請求項１２】
前記遅延量算出工程では、前記端子間遅延補正値を、前記第２の回路ブロック内の入力段セルの信号遅延量に加算することで、当該入力段セルの信号遅延量として定義しておくことを特徴とする請求の範囲第８項または第９項のいずれかに記載の信号遅延評価プログラム。
【請求項１３】
前記遅延量算出工程では、前記端子間遅延補正値を任意の割合で分割し、分割した一方の値を、前記第１の回路ブロック内の出力段セルの信号遅延量に加算することで、当該出力段セルの信号遅延量として定義し、分割した他方の値を、前記第２の回路ブロック内の入力段セルの信号遅延量に加算することで、当該入力段セルの信号遅延量として定義しておくことを特徴とする請求の範囲第８項または第９項のいずれかに記載の信号遅延評価プログラム。
【請求項１４】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムにおいて、
第１の回路ブロック内のセルと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別工程と、
前記端子間遅延プラットフォーム判別工程で前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出工程と、
を含む処理をコンピュータに実行させることを特徴とする信号遅延評価プログラム。
【請求項１５】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価するための信号遅延評価方法において、
プラットフォーム判別手段が、第１の回路ブロックのスルーレートと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別し、
前記プラットフォーム判別手段により前記各レベル基準値が異なると判別された場合に、スルーレート補正手段が、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第１の回路ブロックからの出力信号における出力スルーレートを補正する、
ことを特徴とする信号遅延評価方法。
【請求項１６】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価するための信号遅延評価方法において、
端子間遅延プラットフォーム判別手段が、第１の回路ブロック内のセルと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別し、
前記端子間遅延プラットフォーム判別手段により前記各端子間遅延用レベル基準値が異なると判別された場合に、補正値算出手段が、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する、
ことを特徴とする信号遅延評価方法。
【請求項１７】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価装置において、
第１の回路ブロックのスルーレートと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別するプラットフォーム判別手段と、
前記プラットフォーム判別手段により前記各レベル基準値が異なると判別された場合に、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第１の回路ブロックからの出力信号における出力スルーレートを補正するスルーレート補正手段と、
を有することを特徴とする信号遅延評価装置。
【請求項１８】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価装置において、
第１の回路ブロック内のセルと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別手段と、
前記端子間遅延プラットフォーム判別手段により前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出手段と、
を有することを特徴とする信号遅延評価装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置における信号遅延評価プログラム、方法、および装置に関し、特に、それぞれ異なるプラットフォーム上で設計された複数の回路ブロックを備えた半導体装置に適した信号遅延評価プログラム、方法、および装置に関する。
【背景技術】
【０００２】
半導体装置に対しては、高集積化や高機能化の要求が高まっており、そのために、半導体チップをＰＣＢ（Printed Circuit Board）に実装する形態だけなく、ＳｏＣ（System on a Chip）、ＳｉＰ（System in Package）といった様々な形態の半導体装置が実現されている。また、半導体装置の設計段階では、一般的に、回路網における信号遅延を評価し、伝達される信号のタイミングを検証することが行われているが、上記のように高集積化・高機能化された半導体装置に対しても、信号遅延を正確に評価できることが要求されている。【０００３】
ところで、半導体装置におけるタイミング検証の手法は、大別して、ＳｏＣなどのような同一プラットフォーム上でシステムが構成されている場合と、プラットフォームが異なるチップや回路によりシステムが構成されている場合とで異なる。ここで、同一のプラットフォームとは、例えば、半導体装置上の各回路ブロックが同一のベンダにより設計された場合や、同一のプロセスで製造される場合、同一の開発環境で設計された場合（例えば、遅延評価などで用いた計算式、ライブラリのパラメータ抽出条件、設計に用いたＣＡＤ（Computer Aided Design）などが同一の場合）などを指す。【０００４】
以下、これらの２種類のタイミング検証手法について概略的に述べる。まず、ＳｏＣを例に挙げて、同一プラットフォームで構成されたシステムにおけるタイミング検証手法について説明する。【０００５】
図１５は、ＳｏＣの構成例を示す図である。
図１５に示す半導体装置（ＳｏＣ）５００は、例として、それぞれ同一のプラットフォーム上で設計された２つの回路モジュールＭ１およびＭ２を備えている。回路モジュールＭ１は、バッファ１１１〜１１４とラッチ回路ＦＦ１とから構成される。半導体装置５００の入力端子ＩＮ１に対する入力データは、回路モジュールＭ１の入力端子Ａ１を介してバッファ１１１、ラッチ回路ＦＦ１、およびバッファ１１２を伝達し、出力端子Ｘ１から回路モジュールＭ２に出力される。また、半導体装置５００のクロック入力端子ＣＫからのクロックは、回路モジュールＭ１のクロック入力端子ＣＫ１を介してバッファ１１３および１１４を伝達し、クロック出力端子ＣＫＯ１から回路モジュールＭ２に出力される。なお、ラッチ回路ＦＦ１は、バッファ１１３の出力クロックにより動作する。【０００６】
回路モジュールＭ２は、回路モジュールＭ１と同様に、バッファ１２１〜１２４とラッチ回路ＦＦ２とから構成されている。回路モジュールＭ１からの出力データは、入力端子Ａ２を介してバッファ１２１、ラッチ回路ＦＦ２、およびバッファ１２２を伝達し、出力端子Ｘ２から出力され、半導体装置５００の出力端子ＯＵＴ１を介して外部に出力される。また、回路モジュールＭ１からの出力クロックは、クロック入力端子ＣＫ２を介してバッファ１２３および１２４を伝達し、クロック出力端子ＣＫＯ２から出力され、半導体装置５００のクロック出力端子ＣＫＯを介して外部に出力される。なお、ラッチ回路ＦＦ２は、バッファ１２３の出力クロックにより動作する。【０００７】
この例のように、同一プラットフォーム上で設計された回路ブロックからなるシステムでは、データおよびクロックのそれぞれについてのシステム全体のディレイ情報を求め、それを用いてシミュレーション、またはＳＴＡ（Static Timing Analysis）を行うことで、タイミングを正確に検証することができる。すなわち、システム内の各回路ブロックに対応するライブラリの仕様に整合性があるため、ライブラリから抽出した値をそのまま用いて、システムの信号遅延を求めることができる。【０００８】
ここで、図１６は、遅延検証に用いるライブラリ仕様の例について説明するための図である。
図１６では、ライブラリに登録されている回路ブロックの例として、２段のＣＭＯＳ（Complementary Metal-Oxide Semiconductor）インバータからなるバッファ１４０を挙げている。この図に示すように、遅延検証に用いられるライブラリ中のパラメータとしては、端子間遅延Ｔｐｄ、およびスルーレート（Slew-rate）が代表的である。なお、入力スルーレートＴｓｉｎ、出力スルーレートＴｓｏｕｔは、それぞれ回路ブロックの入力側、出力側に対応する。【０００９】
端子間遅延Ｔｐｄは、回路ブロックの入力と出力との間の遅延量を示す。この端子間遅延Ｔｐｄは、信号の最大振幅に対する所定の割合（図では例として５０％）を判定しきい値として、この判定しきい値を入力および出力の各信号レベルＶＩＮおよびＶＯＵＴが超えたとき（あるいは下回ったとき）のタイミングを基準として定義される。【００１０】
スルーレートは、信号の立ち上がり時（または立ち下がり時）の傾きを、信号の立ち上がり（または立ち下がり）の開始から終了までの時間によって表したものである。ただし、実際の波形では、立ち上がり（または立ち下がり）開始直後の鈍りや、終了時のオーバシュート（またはアンダシュート）が現れることから、開始直後および終了直前の区間を除いた、比較的直線性を維持している区間において、スルーレートを判定する。図では例として、立ち上がり開始および終了の判定しきい値を、それぞれ最大振幅の２０％、８０％としている。【００１１】
回路において発生する信号遅延については、例えば、入力スルーレートＴｓｉｎに応じて端子間遅延Ｔｐｄが変化する「スルー依存性の信号遅延」、入力スルーレートＴｓｉｎが固定された状態で、出力負荷容量ＣＬに応じて出力信号の傾き（すなわち出力スルーレートＴｓｏｕｔ）が変化する「出力負荷容量依存性の信号遅延」、入力スルーレートＴｓｉｎおよび出力負荷容量ＣＬのいずれにも依存しない理想状態における「ゲートディレイ」などの特性が知られている。【００１２】
図１７は、ライブラリに含まれるテーブルの例を示す図である。
ライブラリにおいては、上記の「スルー依存性の信号遅延」および「出力負荷容量依存性の信号遅延」を考慮して、図１７（Ａ）のように、出力負荷容量ＣＬおよび入力スルーレートＴｓｉｎと端子間遅延Ｔｐｄとを対応付けたＴｐｄテーブルと、図１７（Ｂ）のように、出力負荷容量ＣＬおよび入力スルーレートＴｓｉｎと出力スルーレートＴｓｏｕｔとを対応付けたＴｓｏｕｔテーブルとが、回路ブロック内のセルごとに保持される。【００１３】
また、半導体装置における信号遅延の計算方法には、ベンダやプロセス、使用するツールなどにより様々なものがある。一般的な計算方法としては、例えば、まず、外部から供給される信号のスルーレート、および後段回路（セル）までの配線容量やピン容量などを、入力バッファに対する制約条件として定義する。この制約条件を上記のようなＴｓｏｕｔテーブルに適用することで、出力スルーレートＴｓｏｕｔを求めることができる。【００１４】
また、半導体チップ内の回路（セル）間では、前段回路の出力スルーレートや、後段回路までの配線容量、ピン容量などを、後段回路に対する制約条件として定義する。また、出力バッファについては、前段回路の出力スルーレートとともに、出力負荷容量を、次段回路ブロックのライブラリに登録された入力負荷容量の値などから求めて、これらを出力バッファに対する制約条件として定義する。この後、これらの制約条件を、上記のようなＴｐｄテーブルに対して適用することで、システム内の各セルについての端子間遅延Ｔｐｄが求められる。【００１５】
次に、図１８は、ＰＣＢの構成例を示す図である。以下、この図１８を用いて、プラットフォームの異なる回路ブロックから構成されたシステムにおけるタイミング検証手法の例について説明する。【００１６】
この図に示すＰＣＢ６００には、例として、それぞれベンダの異なる２つの半導体チップＣＰ１およびＣＰ２が搭載されているものとする。なお、各半導体チップＣＰ１およびＣＰ２の内部の回路構成は、図１５に示した回路モジュールＭ１およびＭ２とそれぞれ同じであり、ここでは対応する回路ブロックに対して同じ符号を付して示している。【００１７】
このようにプラットフォームの異なる回路ブロックが搭載された半導体装置では、従来、半導体チップごとのタイミング検証と、半導体チップ間のつなぎ目におけるタイミング検証という２つの検証ステップにより、タイミングを検証していた。【００１８】
ここで、図１９は、ＰＣＢにおける半導体チップごとのタイミング検証について説明するための図である。
第１の検証ステップとしては、各半導体チップの設計時に、チップ外部からの入力信号や出力負荷容量などの情報を制約条件として定義し、それらの情報を基に半導体チップごとに信号遅延を計算し、シミュレーションやＳＴＡを実行する。例えば、図１９における半導体チップＣＰ１については、ボード外部からの信号を考慮した入力スルーレートＴｓｉｎおよびスキューを求め、入力側の制約条件として定義する（図中、ステップＳ２１）。また、半導体チップＣＰ２の入力ピン容量やそこまでの配線容量を考慮して半導体チップＣＰ１の出力負荷容量を求め、出力側の制約条件として定義する（ステップＳ２２）。これにより、半導体チップＣＰ１内の各セルの端子間遅延Ｔｐｄが求められる。【００１９】
また、半導体チップＣＰ２については、半導体チップＣＰ１の出力スルーレートＴｓｏｕｔを、入力側の制約条件として定義する。これとともに、半導体チップＣＰ１の設計時のＳＴＡ結果などに基づいて半導体チップＣＰ２への入力信号の情報（スキューなど）を生成し、半導体チップＣＰ２に対して入力側の制約条件として定義する（ステップＳ２３）。出力側の制約条件としては、ボード外部の配線容量などを基に出力負荷容量を定義する（ステップＳ２４）。このようにして、ボード内の回路ブロックごとの信号遅延を求め、シミュレーションやＳＴＡを実行していく。【００２０】
また、図２０は、ＰＣＢにおける半導体チップ間のタイミング検証について説明するための図である。
第２の検証ステップとしては、各回路ブロックの入出力経路と伝送線路モデルを用いて、ボードシミュレータによるＰＣＢのタイミング検証を行う。ここでは、図２０に示すように、半導体チップＣＰ１の出力バッファ１１５および１１６と、半導体チップＣＰ２の入力バッファ１２５および１２６とを切り出し、ボードシミュレータを用いて信号伝達タイミングを検証する。このとき、半導体チップＣＰ１におけるスルーレートやスキューの情報を、半導体チップＣＰ２の入力側の制約条件として定義する（図中、ステップＳ３１）。そして、半導体チップＣＰ２の入力バッファ１２５および１２６を介して出力される信号を観測し、タイミングを検証する（ステップＳ３２）。【００２１】
プラットフォームの異なる回路ブロックが搭載された半導体装置では、以上のような２つの検証ステップを用いることで、半導体装置の全体におけるタイミングを保証するようにしていた。しかし、半導体装置上のシステム全体に対するシミュレーションやＳＴＡを実行してはいなかった。【００２２】
なお、以上のようなタイミング検証手法に関連する従来の技術としては、異なる設計レベルが混在した設計データを用いて信号遅延を評価する際に、評価対象区間データ中に定義された評価対象区間ごとの設計データの設計レベルに応じて、適用する遅延算出方法を変えるようにした信号遅延評価方法があった（例えば、特許文献１参照）。ただし、この特許文献１の技術は、異なるベンダのプラットフォーム上の設計データを基に信号遅延を評価するものではなかった。【００２３】
また、他の関連技術としては、ＩＰ（Intellectual Property）を用いたＬＳＩ（Large Scale Integration）のレイアウト設計を行う際に、ＩＰ間にタイミング設計仕様を満たすバッファを配置しておくことで、ＩＰ内・外でタイミング設計を独立に行うことができるようにした設計方法があった（例えば、特許文献２参照）。
【特許文献１】特開平７−６５０４１号公報（段落番号〔００１７〕〜〔００２７〕、図５）
【特許文献２】特開２０００−２８６３４２号公報（段落番号〔００２５〕〜〔００３２〕、図１）
【発明の開示】
【発明が解決しようとする課題】
【００２４】
ところで、上述したＰＣＢ６００のように、プラットフォームの異なる回路ブロックが搭載された半導体装置では、システム全体のディレイ情報を求め、それを用いてシステム全体についてのシミュレーションやＳＴＡを実行することができなかった。その理由は、プラットフォームの異なる回路ブロック間では、ディレイ計算時に誤差が発生してしまうことにあった。具体的には、この誤差は、それぞれのプラットフォームにおいて、端子間遅延Ｔｐｄやスルーレートの判定しきい値などが異なることに起因して発生する。【００２５】
図２１は、回路ブロック間で発生するディレイ情報の誤差について説明するための図である。
図２１では、例として、図１８における半導体チップＣＰ１と半導体チップＣＰ２との間でのディレイ情報の誤差を模式的に示している。ここでは、半導体チップＣＰ１については、端子間遅延Ｔｐｄの判定しきい値を全振幅の５０％、スルーレートの判定しきい値を２０％〜８０％とし、半導体チップＣＰ２については、端子間遅延Ｔｐｄの判定しきい値を６０％、スルーレートの判定しきい値を１０％〜９０％としている。【００２６】
半導体チップＣＰ１では、判定しきい値５０％を基準として、出力バッファ１１５における端子間遅延が“Ｔｐｄ＿１１”と求められる。一方、半導体チップＣＰ２では、判定しきい値６０％を基準として、入力バッファ１２５における端子間遅延が“Ｔｐｄ＿１２”と求められる。このため、これらの値を用いて、半導体チップＣＰ１およびＣＰ２の全体での信号遅延量を計算しようとすると、判定しきい値の差による遅延量の誤差Ｔｐｄ＿ｅｒｒが生じることになる。すなわち、ディレイ計算の際に、誤差Ｔｐｄ＿ｅｒｒの分だけディレイ量が不足したり、あるいはその分が重複して定義されてしまう。【００２７】
また、スルーレートについても同様で、判定しきい値の差による誤差であるスルーレート誤差Ｔｓ＿ｅｒｒが生じてしまう。このため、例えば半導体チップＣＰ２の入力バッファ１２５に対して制約条件を定義する際に、半導体チップＣＰ１の出力スルーレートＴｓｏｕｔをそのまま用いてしまうと、その誤差分のディレイ量不足やディレイ量が二重に定義される事態が生じてしまい、正確なタイミング検証を行うことができなかった。【００２８】
本発明はこのような点に鑑みてなされたものであり、それぞれ異なるプラットフォーム上で設計された複数の回路ブロックが搭載された半導体装置において、システム全体の信号遅延を正確に評価できるようにした信号遅延評価プログラム、方法、および装置を提供することを目的とする。
【課題を解決するための手段】
【００２９】
本発明では上記課題を解決するために、複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムが提供される。この信号遅延評価プログラムは、図１に示すように、第１の回路ブロックのスルーレートと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別するプラットフォーム判別工程（ステップＳ１）と、前記プラットフォーム判別工程（ステップＳ１）で前記各レベル基準値が異なると判別された場合に、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第１の回路ブロックからの出力信号における出力スルーレートを補正するスルーレート補正工程（ステップＳ２）と、を含む処理をコンピュータに実行させることを特徴とする。【００３０】
このような信号遅延評価プログラムにおいて、スルーレートは、伝送される信号レベルに対する所定のレベル基準値を基準として定義されている。プラットフォーム判別工程（ステップＳ１）では、第１の回路ブロックのスルーレートと、この第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、異なるレベル基準値により定義されたものか否かを判別する。これらのレベル基準値が異なる場合、スルーレートをそのまま適用しても正確な遅延情報が得られない。そこで、スルーレート補正工程（ステップＳ２）では、各レベル基準値が異なると判別された場合には、これらのレベル基準値の差に応じたスルーレート誤差に基づいて、第１の回路ブロックからの出力信号における出力スルーレートを補正する。【００３１】
また、本発明では上記課題を解決するために、複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムにおいて、第１の回路ブロック内のセルと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別工程と、前記端子間遅延プラットフォーム判別工程で前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出工程と、を含む処理をコンピュータに実行させることを特徴とする信号遅延評価プログラムが提供される。【００３２】
このような信号遅延評価プログラムにおいて、入出力端子間遅延データは、伝送される信号レベルに対する所定のレベル基準値、すなわち端子間遅延用レベル基準値を基準として定義されている。端子間遅延プラットフォーム判別工程では、第１の回路ブロック内のセルと、この第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、異なる端子間遅延用レベル基準値により定義されたものか否かを判別する。これらの端子間遅延用レベル基準値が異なる場合、入出力端子間遅延データをそのまま適用しても正確な遅延情報が得られない。そこで、補正値算出工程では、各端子間遅延用レベル基準値が異なると判別された場合には、これらの端子間遅延用レベル基準値の差に応じた入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する。
【発明の効果】
【００３３】
本発明の信号遅延評価プログラムによれば、第１の回路ブロックのスルーレートと、その出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものである場合には、これらのレベル基準値の差に応じたスルーレート誤差に基づいて、第１の回路ブロックからの出力信号における出力スルーレートが補正される。従って、各回路ブロックがそれぞれ異なるレベル基準値を基に定義されたものである場合でも、補正後の出力スルーレートを用いることで、各回路ブロックを通る半導体装置全体の信号遅延量を、正確に評価できるようになる。【００３４】
また、本発明の信号遅延評価プログラムによれば、第１の回路ブロックに対応する入出力端子間遅延データと、その出力信号の供給を受ける第２の回路ブロックに対応する入出力端子間遅延データとが、伝送される信号レベルに対する異なる端子間遅延用レベル機運値により定義されたものである場合には、これらの端子間遅延用レベル基準値の差に応じた入出力端子間遅延データの誤差が算出され、端子間遅延補正値として出力される。従って、各回路ブロックがそれぞれ異なる端子間遅延用レベル基準値を基に定義されたものである場合でも、端子間遅延補正値を用いることで、各回路ブロックを通る半導体装置全体の信号遅延量を、正確に評価できるようになる。【００３５】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００３６】
【図１】実施の形態に係る信号遅延評価プログラムの機能について説明する機能ブロック図である。
【図２】信号遅延の評価対象とするＰＣＢの構成例を示す図である。
【図３】信号遅延を求めるための基本的な処理の流れを説明するための図である。
【図４】半導体チップ内の各セルのスペックについて説明するための図である。
【図５】スルーレート誤差およびＴｐｄ誤差の算出手法を説明するための図である。
【図６】ＰＣＢにおけるシステム全体の信号遅延量の計算について説明するための図である。
【図７】実施の形態に係る半導体設計システムの構成例を示す図である。
【図８】制約条件の初期情報として記憶されるプラットフォーム情報の例を示す図である。
【図９】補正用のディレイ計算プログラムによる処理手順を示すフローチャートである。
【図１０】ディレイ補正区間確定ルーチンによる処理手順を示すフローチャートである。
【図１１】スルーレート補正値算出ルーチンによる処理手順を示すフローチャートである。
【図１２】Ｔｐｄ補正値算出ルーチンによる処理手順を示すフローチャートである。
【図１３】制約条件生成ルーチンによる処理手順を示すフローチャートである。
【図１４】メインのディレイ計算プログラムによる処理手順を示すフローチャートである。
【図１５】ＳｏＣの構成例を示す図である。
【図１６】遅延検証に用いるライブラリ仕様の例について説明するための図である。
【図１７】ライブラリに含まれるテーブルの例を示す図である。
【図１８】ＰＣＢの構成例を示す図である。
【図１９】ＰＣＢにおける半導体チップごとのタイミング検証について説明するための図である。
【図２０】ＰＣＢにおける半導体チップ間のタイミング検証について説明するための図である。
【図２１】回路ブロック間で発生するディレイ情報の誤差について説明するための図である。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１は、実施の形態に係る信号遅延評価プログラムの機能について説明する機能ブロック図である。【００３８】
図１に示す信号遅延評価プログラムは、複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価するためのものである。このような半導体装置としては、例えば、ＰＣＢ、ＳｉＰ、ＳｏＣ、ＭＣＭ（Multi Chip Module）などを適用可能である。【００３９】
この信号遅延評価プログラムは、プラットフォーム判別手段１１、スルーレート補正手段１２、条件設定手段１３、補正値算出手段１４、および遅延量算出手段１５としての機能を備えている。これらの各手段による処理が実行される際には、評価対象の各回路ブロックに対応する設計情報やディレイ情報などが格納された遅延評価用ライブラリ２が参照される。【００４０】
なお、この実施の形態では上記各手段に対応する機能が１つの信号遅延評価プログラム１として結合された例を示すが、これらの各機能は複数のプログラムに分割されて実現されてもよく、また、これらのプログラムが別の情報処理装置におけるＣＰＵ（Central Processing Unit）により実行されてもよい。【００４１】
以下、理解しやすいように、評価対象とする半導体装置内の回路ブロックとして、第１の回路ブロックと、その出力信号の供給を受ける第２の回路ブロックとを想定して説明することとする。【００４２】
プラットフォーム判別手段１１は、第１の回路ブロックおよび第２の回路ブロックにそれぞれ対応する遅延評価用ライブラリ２内の情報のプラットフォームが同一であるか否かを判別する（ステップＳ１）。具体的には、各回路ブロックに対応するスルーレートおよび端子間遅延Ｔｐｄの各プラットフォームについて判別する。スルーレートについては、各回路ブロックに対応するスルーレートが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別する。また、端子間遅延Ｔｐｄについては、各回路ブロックに対応する端子間遅延Ｔｐｄが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別する。【００４３】
スルーレート補正手段１２は、プラットフォーム判別手段１１により、スルーレートについてのプラットフォームが異なると判別された場合に、各プラットフォームにおけるスルーレートのレベル基準値（後述する判定しきい値）の差に応じたスルーレート誤差に基づいて、第１の回路ブロックからの出力信号における出力スルーレートＴｓｏｕｔを補正する（ステップＳ２）。【００４４】
条件設定手段１３は、半導体チップ内のセルの端子間遅延Ｔｐｄや出力スルーレートＴｓｏｕｔを求めるための制約条件を設定する（ステップＳ３）。例えば、第１の回路ブロックからの出力信号における出力スルーレートＴｓｏｕｔを、第２の回路ブロック内の入力段セル（入力バッファなど）での信号遅延を求めるための制約条件として設定する。このとき、プラットフォーム判別手段１１によりスルーレートについてのプラットフォームが異なると判別された場合には、スルーレート補正手段１２により補正された出力スルーレートＴｓｏｕｔを、第２の回路ブロック内の入力段セルに対する制約条件として設定する。【００４５】
このように設定された制約条件と、遅延評価用ライブラリ２から抽出した第２の回路ブロックについての情報とから、図示しない設定手段により、第２の回路ブロックの出力信号における出力スルーレートＴｓｏｕｔや、第２の回路ブロックの入力段セルにおける端子間遅延Ｔｐｄを設定することができる（ステップＳ４）。設定された出力スルーレートＴｓｏｕｔや端子間遅延Ｔｐｄは、遅延量算出手段１５による計算に用いられる。なお、当然ながら、このような設定手段の機能を信号遅延評価プログラム１が備えていてもよい。【００４６】
一方、補正値算出手段１４は、プラットフォーム判別手段１１により端子間遅延Ｔｐｄについてのプラットフォームが異なると判別された場合に、各プラットフォームにおける端子間遅延Ｔｐｄのレベル基準値（後述する判定しきい値）の差に応じて生じる、端子間遅延Ｔｐｄの誤差（以下、Ｔｐｄ誤差と呼ぶ）を算出し、端子間遅延補正値として出力する（ステップＳ５）。【００４７】
遅延量算出手段１５は、半導体装置におけるシステム全体の信号遅延量を計算する（ステップＳ６）。この計算では、第１の回路ブロックおよび第２の回路ブロックの全体の信号遅延量を計算する際に、各回路ブロック内のセルの端子間遅延Ｔｐｄに基づく信号遅延量を、補正値算出手段１４が算出した端子間遅延補正値によって補正する。これにより、半導体装置内の各回路ブロックのプラットフォームが異なる場合でも、システム全体の信号遅延量を正確に求めることが可能になる。【００４８】
次に、信号遅延の評価対象とする半導体装置として、複数の半導体チップが搭載されたＰＣＢを例に挙げ、上記の信号遅延評価プログラム１による処理をより具体的に説明する。【００４９】
まず、図２は、信号遅延の評価対象とするＰＣＢの構成例を示す図である。
図２に示すＰＣＢ１００は、２つの半導体チップＣＰ１およびＣＰ２を備えている。半導体チップＣＰ１は、バッファ１１１〜１１４とラッチ回路ＦＦ１とから構成される。ＰＣＢ１００の入力端子ＩＮ１に対する入力データは、入力端子Ａ１から半導体チップＣＰ１に入力され、バッファ１１１、ラッチ回路ＦＦ１、およびバッファ１１２を伝達して、出力端子Ｘ１から半導体チップＣＰ２に出力される。また、ＰＣＢ１００のクロック入力端子ＣＫからのクロックは、半導体チップＣＰ１のクロック入力端子ＣＫ１からバッファ１１３および１１４を伝達し、クロック出力端子ＣＫＯ１から半導体チップＣＰ２に出力される。なお、ラッチ回路ＦＦ１は、バッファ１１３の出力クロックにより動作する。【００５０】
半導体チップＣＰ２は、半導体チップＣＰ１と同様に、バッファ１２１〜１２４とラッチ回路ＦＦ２とから構成されている。半導体チップＣＰ１からの出力データは、入力端子Ａ２からバッファ１２１、ラッチ回路ＦＦ２、およびバッファ１２２を伝達し、出力端子Ｘ２から、ＰＣＢ１００の出力端子ＯＵＴ１を介して外部に出力される。また、半導体チップＣＰ１からのクロックは、クロック入力端子ＣＫ２からバッファ１２３および１２４を伝達し、クロック出力端子ＣＫＯ２から、ＰＣＢ１００のクロック出力端子ＣＫＯを介して外部に出力される。なお、ラッチ回路ＦＦ２は、バッファ１２３の出力クロックにより動作する。【００５１】
なお、このＰＣＢ１００では、半導体チップＣＰ１およびＣＰ２のそれぞれが、デジタル回路であっても、あるいはアナログ回路であってもよい。また、１つの半導体チップ内に、デジタル回路のセルとアナログ回路のセルとが混在していてもよい。例えば、半導体チップＣＰ１のバッファ１１１がデジタル回路で、バッファ１１２がアナログ回路であってもよい。【００５２】
このようなＰＣＢ１００において、半導体チップＣＰ１およびＣＰ２がそれぞれ異なるプラットフォーム上で設計されたものである場合には、各チップの間がスルーレートや端子間遅延Ｔｐｄの補正が行われる補正領域１３０とされる。すなわち、ＰＣＢ１００のシステム全体の信号遅延量を求めるためには、プラットフォーム判別手段１１により、ＰＣＢ１００上の半導体チップ間でプラットフォームが異なるか否かを判別しておき、異なる部分を補正領域１３０としてあらかじめ定義しておく。そして、スルーレート補正手段１２や補正値算出手段１４により、各補正領域１３０におけるスルーレートや端子間遅延Ｔｐｄの補正値を算出する。【００５３】
図３は、信号遅延を求めるための基本的な処理の流れを説明するための図である。
半導体装置の設計時には、以下のように、チップ外部からの入力信号や出力負荷容量などの情報を制約条件として定義し、それらの情報を基に半導体チップごとに信号遅延を計算し、シミュレーションやＳＴＡを実行する。図３では例として、上記のＰＣＢ２００内のデータの伝送路を示している。【００５４】
まず、半導体チップＣＰ１については、ボード外部からの信号を考慮して求められる入力スルーレートＴｓｉｎが、条件設定手段１３により入力段セル（ここではバッファ１１１）に対する制約条件として定義される（図中、ステップＳ１１）。また、出力段セル（ここではバッファ１１２）に対する制約条件としては、半導体チップＣＰ２の入力ピン容量やそこまでの配線容量を考慮した半導体チップＣＰ１の出力負荷容量が定義される（ステップＳ１２）。【００５５】
また、半導体チップＣＰ２については、従来のように、前段の半導体チップＣＰ１とプラットフォームが同じであれば、半導体チップＣＰ１の出力段セルの出力スルーレートＴｓｏｕｔが、入力段セル（ここではバッファ１２１）に対する制約条件（すなわち入力スルーレートＴｓｉｎ）として定義される（ステップＳ１３）。なお、出力段セル（ここではバッファ１２２）に対する制約条件としては、ボード外部の配線容量などを基に出力負荷容量が定義される（ステップＳ１４）。【００５６】
しかし、前段の半導体チップＣＰ１との間で、スルーレートについてのプラットフォームが異なる場合には、各チップ間の補正領域１３０において、半導体チップＣＰ１の出力段回路の出力スルーレートＴｓｏｕｔがスルーレート補正手段１２により補正され、補正後の出力スルーレートＴｓｏｕｔが、条件設定手段１３により半導体チップＣＰ２の入力段セルに対する制約条件として定義される（ステップＳ１３）。【００５７】
また、以上の処理で設定された制約条件を、図１７で挙げたようなＴｐｄテーブルおよびＴｓｉｎテーブルに適用することで、半導体チップＣＰ１およびＣＰ２の各セルにおける端子間遅延Ｔｐｄを求めることができる。しかし、半導体チップＣＰ１およびＣＰ２の間で端子間遅延Ｔｐｄのプラットフォームが異なる場合には、補正値算出手段１４により、半導体チップＣＰ１の出力段セルの出力スルーレートＴｓｏｕｔ、端子間遅延Ｔｐｄ、およびプラットフォームの情報と、半導体チップＣＰ２のプラットフォームの情報とを基に、Ｔｐｄ誤差が算出される（ステップＳ１５）。遅延量算出手段１５は、以上で求められたチップごとの端子間遅延Ｔｐｄと、チップ間の補正領域１３０でのＴｐｄ誤差とから、システム全体の信号遅延量を求めることができる。【００５８】
図４は、半導体チップ内の各セルのスペックについて説明するための図である。
以下、半導体チップＣＰ１およびＣＰ２のプラットフォームおよび各セルのスペックを、この図４に示すようなものと仮定して、上記の補正処理の具体例について説明する。なお、ここでは、チップ内の各セルの信号遅延特性が、チップごとに共通であるものとする。また、出力負荷容量に対する依存性を無視するものとする。【００５９】
図４（Ａ）に示すように、半導体チップＣＰ１では、入力スルーレートＴｓｉｎ＿１および出力スルーレートＴｓｏｕｔ＿１を判定するための立ち上がり開始および終了の各判定しきい値Ｖｔｈ＿ｓ１およびＶｔｈ＿ｅ１を、それぞれ信号レベルの全振幅に対する２０％、８０％とする。また、半導体チップＣＰ１内の各セルの端子間遅延Ｔｐｄ＿１を判定するための判定しきい値Ｖｔｈ＿１を、全振幅に対する５０％とする。具体的な仕様としては、入力スルーレートＴｓｉｎ＿１が６０ｐｓのとき、出力スルーレートＴｓｏｕｔ＿１も６０ｐｓであり、端子間遅延Ｔｐｄ＿１が１００ｐｓであるとする。【００６０】
一方、図４（Ｂ）に示すように、半導体チップＣＰ２では、入力スルーレートＴｓｉｎ＿２および出力スルーレートＴｓｏｕｔ＿２を判定するための判定しきい値Ｖｔｈ＿ｓ２およびＶｔｈ＿ｅ２を、それぞれ信号レベルの全振幅に対する１０％、９０％とする。また、半導体チップＣＰ２内の各セルの端子間遅延Ｔｐｄ＿２を判定するための判定しきい値Ｖｔｈ＿２を、全振幅に対する６０％とする。具体的な仕様としては、入力スルーレートＴｓｉｎ＿２が８０ｐｓのとき、出力スルーレートＴｓｏｕｔ＿２も８０ｐｓであり、端子間遅延Ｔｐｄ＿２が１００ｐｓであるとする。【００６１】
図５は、スルーレート誤差およびＴｐｄ誤差の算出手法を説明するための図である。
この図５では、半導体チップＣＰ１からの出力波形を示している。補正領域１３０では、前後の半導体チップＣＰ１およびＣＰ２の各プラットフォームの情報と、前段の半導体チップＣＰ１の出力波形におけるディレイ情報、具体的には、バッファ１１２の出力スルーレートＴｓｏｕｔ＿１および端子間遅延Ｔｐｄ＿１とを基に、後段回路に制約条件として与えるスルーレートを補正し、また、Ｔｐｄ誤差を求める。【００６２】
スルーレートについては、以下のようにして補正する。図５において、前段回路の出力スルーレートＴｓｏｕｔ＿１は、信号レベルが全振幅の２０％〜８０％の領域で定義されたものである。しかし、後段回路では１０％〜９０％の領域で定義されているので、後段回路に制約条件として与える出力スルーレートＴｓｏｕｔ＿１’は、前段回路の出力スルーレートＴｓｏｕｔ＿１に、判定しきい値の違いに応じたスルーレート誤差Ｔｓ＿ｅｒｒを加算したものとされなければならない。【００６３】
補正後の出力スルーレートＴｓｏｕｔ＿１’は、次の式（１）により、前後の回路の判定しきい値と、前段回路の出力スルーレートＴｓｏｕｔ＿１とから、推定することができる。すなわち、スルーレート補正手段１２は、前段回路側の判定しきい値Ｖｔｈ＿ｅ１およびＶｔｈ＿ｓ１の差分値と、後段回路側の判定しきい値Ｖｔｈ＿ｅ２およびＶｔｈ＿ｓ２の差分値とを求め、各差分値の割合に応じて、前段回路の出力スルーレートＴｓｏｕｔ＿１を補正する。補正後の出力スルーレートＴｓｏｕｔ＿１’は、条件設定手段１３により、後段回路の入力スルーレートＴｓｉｎ＿２として設定される。
Ｔｓｏｕｔ＿１’
＝｛Ｔｓｏｕｔ＿１／（Ｖｔｈ＿ｅ１−Ｖｔｈ＿ｓ１）｝×（Ｖｔｈ＿ｅ２−Ｖｔｈ＿ｓ２）
＝｛６０／（８０−２０）｝×（９０−１０）＝８０［ｐｓ］            ……（１）
また、Ｔｐｄ誤差（図中のＴｐｄ＿ｅｒｒ）については、以下のように求められる。前後の回路における端子間遅延Ｔｐｄの判定しきい値には１０％の差があるが、この差は出力負荷容量に依存するＴｐｄ誤差と等価と考えることができる。このため、前段の出力波形の傾き、すなわち出力スルーレートＴｓｏｕｔ＿１から、Ｔｐｄ誤差を求めることができる。補正値算出手段１４は、次の式（２）によりＴｐｄ誤差を算出する。
Ｔｐｄ＿ｅｒｒ
＝｛Ｔｓｏｕｔ＿１／（Ｖｔｈ＿ｅ１−Ｖｔｈ＿ｓ１）｝×（Ｖｔｈ＿２−Ｖｔｈ＿１）
＝｛６０／（８０−２０）｝×（６０−５０）＝１０［ｐｓ］            ……（２）
図６は、ＰＣＢにおけるシステム全体の信号遅延量の計算について説明するための図である。【００６４】
図６では例として、ＰＣＢ１００におけるディレイ情報をＳＤＦ（Standard Delay Format）で定義した状態を概念的に示している。この図において、ＰＣＢ１００への信号入力から、半導体チップＣＰ１の出力端子までのディレイ情報は、図中の“Ｃｈｉｐ−１  ＳＤＦ”で定義される。また、半導体チップＣＰ２の入力端子から、ＰＣＢ１００の出力端子までのディレイ情報は、図中の“Ｃｈｉｐ−２  ＳＤＦ”で定義される。半導体チップＣＰ１およびＣＰ２の間の領域（補正領域１３０）については、ＰＣＢ１００の階層（ＰＣＢ  ＳＤＦ）において、接続遅延（INTERCONNECT delay）として定義される。【００６５】
このようなディレイ情報が与えられたとき、遅延量算出手段１５は、例えば、ＰＣＢ１００の入力端子ＩＮ１から出力端子ＯＵＴ１までのデータ伝送路全体での信号遅延量Ｔｐｄ＿ｔｏｔａｌを、次の式（３）によって求めることができる。
Ｔｐｄ＿ｔｏｔａｌ
＝Ｔｐｄ＿１＋Ｔｐｄ＿１＋Ｔｐｄ＿１＋Ｔｐｄ＿ｅｒｒ＋Ｔｐｄ＿２＋Ｔｐｄ＿２＋Ｔｐｄ＿２
＝６１０［ｐｓ］                                                      ……（３）
以上説明した信号遅延の評価手法によれば、ベンダやライブラリの仕様、遅延計算に用いる計算式などのプラットフォームが異なる回路ブロックが半導体装置内に混在している場合でも、システム全体を通じた信号遅延量を、各回路ブロックのライブラリを基に直接的に計算することができる。従って、例えば従来のように、回路ブロックごとのタイミング検証と、回路ブロック間のつなぎ目におけるタイミング検証の２つの検証処理によって、半導体装置の全体におけるタイミングを保証する手法と比較して、簡単な処理手順によりシステム全体の正確な信号遅延量を求めることが可能となり、高機能でかつ動作精度の高い半導体装置を設計・製造することができるようになる。【００６６】
なお、図６の例では、補正領域１３０において生じるＴｐｄ誤差を、チップ内のセルのディレイ情報とは別のチップ間の接続遅延として定義したが、これに限らず、例えばＳＤＦ以外のフォーマットを用いた場合などには、Ｔｐｄ誤差を、出力側（すなわち半導体チップＣＰ１の出力段セル）のディレイ情報に加算して定義しても、あるいは入力側（すなわち半導体チップＣＰ２の入力段セル）のディレイ情報に加算して定義してもよい。【００６７】
また、算出したＴｐｄ誤差を所定の割合に分割し、一方を出力側に、他方を入力側にそれぞれ加算して定義してもよい。これにより、例えば各セルのディレイ情報に上限値が設定された場合などでも補正値を確実に適用できるようになり、より広範なデザインルールにおいても確実な遅延評価を実行できるようになる。【００６８】
また、補正領域１３０での補正値を、上記手法で求めたＴｐｄ誤差に任意のオフセットを与えた値として算出してもよい。例えば、半導体装置を設計する際に信号遅延量に対する目標値があらかじめ与えられていた場合に、この目標値に応じたオフセットをＴｐｄ誤差に与えることができる。【００６９】
次に、上記のような信号遅延評価プログラムの処理手順が用いられる具体的な半導体設計システムの例について説明する。図７は、実施の形態に係る半導体設計システムの構成例を示す図である。【００７０】
図７に示す半導体設計システムは、例として、端末装置２１０とサーバ２２０とから構成されている。端末装置２１０は、ＣＰＵ（Central Processing Unit）２１１によって装置全体が制御されている。ＣＰＵ２１１には、ＲＡＭ（Random Access Memory）などからなる主記憶装置２１２、ＨＤＤ（Hard Disk Drive）などからなる外部記憶装置２１３、グラフィック処理装置２１４、入力インタフェース２１５、および通信インタフェース２１６が、バス２１７を介して接続されている。【００７１】
主記憶装置２１２には、ＣＰＵ２１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。このアプリケーションプログラムとして、後述するディレイ計算プログラム３１０，３２０，３３０などが格納される。また、主記憶装置２１２には、ＣＰＵ２１１による処理に必要な各種データが格納される。【００７２】
外部記憶装置２１３には、ＯＳやアプリケーションプログラム、これらの実行時に必要な各種データが格納される。ここでは、ディレイ計算プログラム３１０，３２０，３３０の実行時に必要なデータとして、設計データ４１０、制約条件４２０、ディレイ情報４３０などが記憶されている。【００７３】
グラフィック処理装置２１４には、モニタ２１４ａが接続されている。グラフィック処理装置２１４は、ＣＰＵ２１１からの命令に従って、画像をモニタ２１４ａの画面に表示させる。入力インタフェース２１５には、キーボード２１５ａとマウス２１５ｂとが接続されている。入力インタフェース２１５は、キーボード２１５ａやマウス２１５ｂから送られてくる信号を、バス２１７を介してＣＰＵ２１１に送信する。通信インタフェース２１６は、外部のネットワークに接続して、このネットワークを通じて、サーバ２２０などの外部装置との間でデータを送受信する。【００７４】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、この図には端末装置２１０のハードウェア構成を示したが、サーバ２２０についても同様のハードウェア構成で実現することができる。また、外部記憶装置２１３に記憶された設計データ４１０、制約条件４２０、ディレイ情報４３０は、サーバ２２０内の記憶装置に記憶されて、端末装置２１０に読み込まれるようにしてもよい。また、ディレイ計算プログラム３１０，３２０，３３０は、サーバ２２０から端末装置２１０に読み込まれて実行されてもよい。【００７５】
端末装置２１０で実行されるディレイ計算プログラム３１０は、信号遅延量を計算するためのメインプログラムである。このディレイ計算プログラム３１０には、図１に示した遅延量算出手段１５の機能が含まれる。【００７６】
ディレイ計算プログラム３２０は、プラットフォームが異なる回路ブロックを含む半導体装置の遅延量を計算する際に、上述したように、スルーレートや端子間遅延Ｔｐｄを補正するためのプログラムである。このディレイ計算プログラム３２０には、図１に示したプラットフォーム判別手段１１、スルーレート補正手段１２、条件設定手段１３、補正値算出手段１４の機能が含まれる。また、ディレイ計算プログラム３２０の実行時には、複数のサブルーチン３２１が呼び出されて実行される。【００７７】
ディレイ計算プログラム３３０は、プラットフォームごとに用意され、各プラットフォームでの信号遅延量の計算を行うためのものである。なお、ディレイ計算プログラム３２０および３３０は、ディレイ計算プログラム３１０の実行時に呼び出されてもよいし、それぞれ単独を実行することもできる。【００７８】
外部記憶装置２１３に記憶される設計データ４１０は、半導体装置の設計のためのレイアウト情報などである。制約条件４２０には、半導体装置内の回路での信号遅延量を計算する際に必要となる初期情報が、設計データ４１０に対応付けて格納されている。この制約条件４２０には、レイアウトされる回路ブロック内のセルの信号遅延に関するテーブル（例えば図１７に示したテーブルなど）や、プラットフォームについての情報も格納されている。ディレイ情報４３０には、回路ごとの信号遅延量の情報が設計データ４１０に対応付けて格納されている。【００７９】
図８は、制約条件の初期情報（制約条件４２０）として記憶されるプラットフォーム情報の例を示す図である。
図８に示すプラットフォーム情報４２１には、回路ブロックの端子間遅延Ｔｐｄの判定しきい値の情報、およびスルーレートの判定しきい値の情報が、プラットフォーム名ごとに格納されている。また、各判定しきい値の情報は、さらに、ＣＭＯＳ回路あるいはシュミットトリガ回路などの回路ブロックの入出力インタフェースの種類ごとに用意されている。【００８０】
以下、上記のディレイ計算プログラム３１０，３２０，３３０を端末装置２１０において実行したときの処理手順を、フローチャートに沿って説明する。
図９は、補正用のディレイ計算プログラム３２０による処理手順を示すフローチャートである。【００８１】
〔ステップＳ１０１〕ユーザの操作などにより、遅延評価対象とする半導体装置についての設計データ４１０、制約条件４２０などのデータの入力を受ける。
〔ステップＳ１０２〕ＣＰＵ２１１は、サブルーチン３２１の１つであるディレイ補正区間確定ルーチンを実行する。このディレイ補正区間確定ルーチンについては後の図１０で詳述するが、この処理により、半導体装置内の回路ブロック間の領域のそれぞれに対して、識別コードが付された境界情報が生成され、ディレイ情報の補正が必要な区間が確定される。【００８２】
以下のステップＳ１０３〜Ｓ１１１の処理は、ステップＳ１０２の処理で確定された補正区間ごとに実行される。
〔ステップＳ１０３〕ＣＰＵ２１１は、処理対象区間の識別コードが“０２”であるか否かを判定する。“０２”である場合はステップＳ１０７の処理を実行し、それ以外の場合はステップＳ１０４の処理を実行する。【００８３】
〔ステップＳ１０４〕ＣＰＵ２１１は、処理対象区間の識別コードが“０１”であるか否かを判定する。“０１”である場合はステップＳ１０８の処理を実行し、それ以外の場合はステップＳ１０５の処理を実行する。【００８４】
〔ステップＳ１０５〕ＣＰＵ２１１は、処理対象区間の識別コードが“００”であるか否かを判定する。“００”である場合はステップＳ１０９の処理を実行し、それ以外の場合はステップＳ１０６の処理を実行する。【００８５】
〔ステップＳ１０６〕ＣＰＵ２１１は、ステップＳ１０３〜Ｓ１０６により処理対象区間の識別コードが“００”“０１”“０２”以外であると判定すると、エラーであることを表示情報などとして出力する。【００８６】
〔ステップＳ１０７〕ＣＰＵ２１１は、サブルーチン３２１の１つであるスルーレート補正値算出ルーチンを実行し、制約条件の設定や端子間遅延Ｔｐｄの算出に必要なスルーレートを補正した値を算出する。なお、このスルーレート補正値算出ルーチンについては、後の図１１において詳述する。【００８７】
〔ステップＳ１０８〕ＣＰＵ２１１は、サブルーチン３２１の１つであるＴｐｄ補正値算出ルーチンを実行し、システム全体の信号遅延量を補正するための補正値（Ｔｐｄ誤差）を算出する。このステップでは、ステップＳ１０７が実行されていた場合には、ここで補正されたスルーレートの値が使用される。なお、Ｔｐｄ補正値算出ルーチンについては、後の図１２において詳述する。【００８８】
〔ステップＳ１０９〕ＣＰＵ２１１は、サブルーチン３２１の１つである制約条件生成ルーチンを実行し、処理対象区間について、信号遅延量の演算に必要な制約条件を、ファイルとして生成する。このステップでは、ステップＳ１０７が実行されていた場合には、ここで補正されたスルーレートの値が使用される。なお、制約条件生成ルーチンについては、後の図１３において詳述する。【００８９】
〔ステップＳ１１０〕ＣＰＵ２１１は、ステップＳ１０９で生成された制約条件のファイルを出力する。このファイルは、例えば制約条件４２０と関連付けられて、外部記憶装置２１３などに記憶される。【００９０】
〔ステップＳ１１１〕ＣＰＵ２１１は、ステップＳ１０８で算出されたＴｐｄ補正値を出力する。このＴｐｄ補正値は、例えばディレイ情報４３０に追加して登録されたり、あるいは関連付けされて、外部記憶装置２１３などに記憶される。【００９１】
〔ステップＳ１１２〕ＣＰＵ２１１は、上記のステップＳ１０３〜Ｓ１１１の処理が、すべての補正区間について実行されたか否かを判定する。実行されていない場合、次の補正区間を処理対象として、ステップＳ１０３からの処理を再度実行する。全区間について処理が実行された場合は、処理を終了する。【００９２】
以上の処理により、識別コードが“０２”の区間では、スルーレートおよび端子間遅延Ｔｐｄの補正がともに実行され、これらの補正が制約条件に反映される。また、識別コードが“０１”の区間では、端子間遅延Ｔｐｄの補正のみが実行される。【００９３】
図１０は、ディレイ補正区間確定ルーチンによる処理手順を示すフローチャートである。
〔ステップＳ１２１〕ＣＰＵ２１１は、処理対象の半導体装置についての設計データを読み込む。【００９４】
〔ステップＳ１２２〕ＣＰＵ２１１は、半導体装置内の各回路ブロックについてのプラットフォーム情報４２１を読み込む。
〔ステップＳ１２３〕ＣＰＵ２１１は、半導体装置内の回路ブロック間の境界のうちの１つに、プラットフォーム情報を関連付ける。【００９５】
〔ステップＳ１２４〕ＣＰＵ２１１は、対象の境界において、出力側および入力側の各回路ブロックのプラットフォームが同じであるか否かを判定する。ここでは、図８に示したプラットフォーム情報４２１から、まず、プラットフォーム名が異なるか否かを判定し、異なる場合にはさらに、Ｔｐｄ判定しきい値およびスルーレート判定しきい値が異なるか否かを判定して、少なくともいずれか一方が異なる場合に、プラットフォームが異なると判定する。プラットフォームが同じと判定した場合はステップＳ１２６の処理を実行し、異なると判定した場合はステップＳ１２５の処理を実行する。【００９６】
〔ステップＳ１２５〕ＣＰＵ２１１は、対象の境界についての境界情報に、識別コード“０２”を定義する。
〔ステップＳ１２６〕ＣＰＵ２１１は、プラットフォーム情報４２１に基づき、対象の境界において、出力側の出力インタフェースと入力側の入力インタフェースとが同じであるか否かを判定する。同じと判定した場合はステップＳ１２８の処理を実行し、異なると判定した場合はステップＳ１２７の処理を実行する。【００９７】
〔ステップＳ１２７〕ＣＰＵ２１１は、境界情報に識別コード“０１”を定義する。
〔ステップＳ１２８〕ＣＰＵ２１１は、境界情報に識別コード“００”を定義する。
〔ステップＳ１２９〕ＣＰＵ２１１は、識別コードをすべての境界について定義したか否かを判定する。定義されていない場合、次の境界を処理対象としてステップＳ１２３からの処理を再度実行する。全境界について定義されていた場合は、ステップＳ１３０の処理を実行する。【００９８】
〔ステップＳ１３０〕全境界について識別コードの定義が終了すると、ＣＰＵ２１１は、識別コードが定義された境界情報を出力して、例えば外部記憶装置２１３に記憶する。そして、ディレイ計算プログラム３２０の処理に戻る。【００９９】
なお、この例では、回路ブロック間でＴｐｄ判定しきい値またはスルーレート判定しきい値の一方でも異なっていれば、識別コードを“０２”として、スルーレート補正値算出ルーチンとＴｐｄ補正値算出ルーチンの両方を実行するようにしている。しかし、Ｔｐｄ判定しきい値とスルーレート判定しきい値のそれぞれについて異なるか否かを個別に判定し、その判定結果に応じて、スルーレート補正値算出ルーチンとＴｐｄ補正値算出ルーチンのうち必要な方のみを実行できるようにしてもよい。【０１００】
図１１は、スルーレート補正値算出ルーチンによる処理手順を示すフローチャートである。
〔ステップＳ１４１〕ＣＰＵ２１１は、処理対象の区間（境界）において、その出力側の出力スルーレートの判定しきい値と、入力側の入力スルーレートの判定しきい値とを、プラットフォーム情報４２１から読み込む。【０１０１】
〔ステップＳ１４２〕ＣＰＵ２１１は、判定しきい値の差（すなわち、上述した式（１）における“Ｖｔｈ＿ｅ１−Ｖｔｈ＿ｓ１”）を算出する。
〔ステップＳ１４３〕ＣＰＵ２１１は、処理対象区間の出力側の出力スルーレートの値を読み込む。【０１０２】
〔ステップＳ１４４〕ＣＰＵ２１１は、算出した判定しきい値の差と、出力スルーレートとを基に、式（１）に従って出力スルーレートを補正する演算を行う。
〔ステップＳ１４５〕ＣＰＵ２１１は、補正後の出力スルーレートを出力し、例えば制約条件４２０に関連付けて、外部記憶装置２１３に記憶する。【０１０３】
図１２は、Ｔｐｄ補正値算出ルーチンによる処理手順を示すフローチャートである。
〔ステップＳ１５１〕ＣＰＵ２１１は、処理対象の区間（境界）において、その出力側および入力側の各端子間遅延Ｔｐｄの判定しきい値を、プラットフォーム情報４２１から読み込む。また、出力側の出力スルーレートの判定しきい値と、入力側の入力スルーレートの判定しきい値も読み込む。【０１０４】
〔ステップＳ１５２〕ＣＰＵ２１１は、それぞれの判定しきい値の差（すなわち、式（２）における“Ｖｔｈ＿２−Ｖｔｈ＿１”“Ｖｔｈ＿ｅ１−Ｖｔｈ＿ｓ１”）を算出する。【０１０５】
〔ステップＳ１５３〕ＣＰＵ２１１は、処理対象区間の出力側の出力スルーレートの値を読み込む。
〔ステップＳ１５４〕ＣＰＵ２１１は、算出した判定しきい値の差と、出力スルーレートとを基に、式（２）に従ってＴｐｄ補正値（すなわち、上述したＴｐｄ誤差）を計算する。【０１０６】
〔ステップＳ１５５〕ＣＰＵ２１１は、算出したＴｐｄ補正値を出力し、例えばディレイ情報４３０に関連付けて、外部記憶装置２１３に記憶する。
図１３は、制約条件生成ルーチンによる処理手順を示すフローチャートである。【０１０７】
〔ステップＳ１６１〕ＣＰＵ２１１は、制約条件を定義する対象の信号端子に関する情報（設計データなど）を取得する。
〔ステップＳ１６２〕ＣＰＵ２１１は、対象の信号端子が出力端子であるか否かを判定する。出力端子であればステップＳ１６６の処理を実行し、そうでなければステップＳ１６３の処理を実行する。【０１０８】
〔ステップＳ１６３〕対象の信号端子が出力端子でない場合、ＣＰＵ２１１は、まず、その信号端子を入力端子と想定して、出力側の出力スルーレートを読み込む。このとき、スルーレート補正値算出ルーチンにより出力スルーレートが補正されていれば、補正後の出力スルーレートを読み込む。【０１０９】
〔ステップＳ１６４〕ＣＰＵ２１１は、対象の信号端子（入力端子）の入力スルーレートとして、ステップＳ１６３で取得した出力スルーレートを定義する。
〔ステップＳ１６５〕ＣＰＵ２１１は、対象の信号端子がバスであるか否かを判定する。バスである場合はステップＳ１６６の処理を実行し、そうでない場合はステップＳ１６８の処理を実行する。【０１１０】
〔ステップＳ１６６〕ＣＰＵ２１１は、対象の信号端子（出力端子）に対する外部負荷容量を読み込む。
〔ステップＳ１６７〕ＣＰＵ２１１は、対象の信号端子（出力端子）に対して、ステップＳ１６６で読み込んだ外部負荷容量を定義する。【０１１１】
なお、ステップＳ１６５で信号端子がバスと判定された場合、この信号端子は入出力を切り換え可能な双方向端子となる。このため、ステップＳ１６６〜Ｓ１６７では、その信号端子が出力端子として機能した場合の外部負荷容量が定義される。【０１１２】
〔ステップＳ１６８〕ＣＰＵ２１１は、ステップＳ１６４およびＳ１６７において定義された情報を、補正後の制約条件のファイルとして出力し、例えば外部記憶装置２１３などに記憶する。【０１１３】
なお、ここでは省略するが、実際には、１つの境界区間において、出力側の端子と入力側の端子の双方について、上記処理により制約条件が定義される。
図１４は、メインのディレイ計算プログラム３１０による処理手順を示すフローチャートである。【０１１４】
〔ステップＳ１７１〕ＣＰＵ２１１は、例えばユーザによる入力操作に応じて、遅延計算対象とする半導体装置の設計データの入力を受ける。
〔ステップＳ１７２〕ＣＰＵ２１１は、例えばユーザによる入力操作に応じて、対象の半導体装置のセル構成に対応するディレイ情報の入力を受ける。このディレイ情報には、上述したＴｐｄ補正値算出ルーチンの処理によるＴｐｄ補正値が含まれる。また、半導体装置内の各回路ブロックに対応する制約条件も入力される。この制約条件は、スルーレート補正値算出ルーチンの処理による補正が反映されたものとなっている。【０１１５】
なお、上記の補正用のディレイ計算プログラム３２０の実行後に、自動的にこのディレイ計算プログラム３１０が実行される場合や、これらのプログラムが結合されている場合などには、ステップＳ１７１およびＳ１７２で受け取る情報が、外部記憶装置２１３から自動的に読み込まれてもよい。【０１１６】
〔ステップＳ１７３〕ＣＰＵ２１１は、受け取った半導体装置全体のディレイ情報４３０をマージし、半導体装置のシステム全体の信号遅延量を計算する。この計算については、図６において説明した通りである。また、信号遅延量の計算に当たっては、対象の回路ブロックのプラットフォームに対応するディレイ計算プログラム３３０が読み込まれて実行される。なお、このステップＳ１７３では、他の例として、すべてのセルおよび境界区間での信号遅延量をデータベース化したファイルを出力するだけでもよい。【０１１７】
〔ステップＳ１７４〕ＣＰＵ２１１は、ステップＳ１７３でマージしたディレイ情報を出力し、例えば外部記憶装置２１３などに記憶する。以後、このディレイ情報を用いることで、半導体装置に対する正確なタイミング検証を行うことが可能となる。【０１１８】
なお、以上で説明したプログラムでは、半導体装置内の各回路ブロックについて、スルーレートと端子間遅延Ｔｐｄのどちらのプラットフォームが異なる場合でも対応できる仕様となっている。しかし、実際のプログラムとしては、この他に、あらかじめいずれかのプラットフォームが共通であることを前提とした仕様のものが提供されてもよい。例えば、スルーレートのプラットフォームが共通であることが前提であれば、そのプログラムにはＴｐｄ補正値算出ルーチンが含まれるが、スルーレート補正値算出ルーチンが含まれなくてもよい。また、スルーレートの補正値を反映する制約条件生成ルーチンも省略することができる。逆に、端子間遅延Ｔｐｄのプラットフォームが共通であることが前提であれば、そのプログラムではＴｐｄ補正値算出ルーチンを省略することができる。【０１１９】
なお、上記のスルーレート補正やＴｐｄ補正などの処理機能はコンピュータによって実現することができ、その場合には、上記端末装置２１０が有すべき補正処理機能の処理内容を記述したプログラム（例えば、ディレイ計算プログラム３１０および３２０）が提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。【０１２０】
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。【０１２１】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。【０１２２】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１２３】
１  信号遅延評価プログラム
２  遅延評価用ライブラリ
１１  プラットフォーム判別手段
１２  スルーレート補正手段
１３  条件設定手段
１４  補正値算出手段
１５  遅延量算出手段
Ｔｐｄ  端子間遅延
Ｔｓｉｎ  入力スルーレート
Ｔｓｏｕｔ  出力スルーレート
【図１】
2008120322.tif 000003
【図２】
2008120322.tif 000004
【図３】
2008120322.tif 000005
【図４】
2008120322.tif 000006
【図５】
2008120322.tif 000007
【図６】
2008120322.tif 000008
【図７】
2008120322.tif 000009
【図８】
2008120322.tif 000010
【図９】
2008120322.tif 000011
【図１０】
2008120322.tif 000012
【図１１】
2008120322.tif 000013
【図１２】
2008120322.tif 000014
【図１３】
2008120322.tif 000015
【図１４】
2008120322.tif 000016
【図１５】
2008120322.tif 000017
【図１６】
2008120322.tif 000018
【図１７】
2008120322.tif 000019
【図１８】
2008120322.tif 000020
【図１９】
2008120322.tif 000021
【図２０】
2008120322.tif 000022
【図２１】
2008120322.tif 000023
【手続補正書】
【提出日】平成21年5月27日(2009.5.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムにおいて、
第１の回路ブロックのスルーレートと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別するプラットフォーム判別工程と、
前記プラットフォーム判別工程において前記各レベル基準値が異なると判別された場合に、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第１の回路ブロックからの出力信号における出力スルーレートを補正するスルーレート補正工程と、
を含む処理をコンピュータに実行させることを特徴とする信号遅延評価プログラム。
【請求項２】
前記レベル基準値とは、信号の立ち上がりまたは立ち下がりの開始および終了の各タイミングを信号レベルから判定するための開始判定しきい値および終了判定しきい値であることを特徴とする請求項１記載の信号遅延評価プログラム。
【請求項３】
前記スルーレート補正工程では、前記第１の回路ブロックに対応する前記開始判定しきい値と前記終了判定しきい値との差分値に対する、前記第２の回路ブロックに対応する前記開始判定しきい値と前記終了判定しきい値との差分値の割合を求め、前記第１の回路ブロックからの前記出力スルーレートに対して前記各差分値の割合を乗じた値を前記出力スルーレートの補正値として出力することを特徴とする請求項２記載の信号遅延評価プログラム。
【請求項４】
前記第１の回路ブロック内のセルと、前記第２の回路ブロック内のセルのそれぞれに対応する入出力端子間遅延データとが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別工程と、
前記端子間遅延プラットフォーム判別工程において前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出工程と、
をさらに前記コンピュータに実行させることを特徴とする請求項１乃至３のいずれか１項に記載の信号遅延評価プログラム。
【請求項５】
前記第１の回路ブロックおよび前記第２の回路ブロックの全体の信号遅延量を計算する際に、前記第１の回路ブロック内のセル、および前記第２の回路ブロック内のセルのそれぞれの前記端子間遅延データに基づく信号遅延量を、前記補正値算出工程における前記端子間遅延補正値によって補正する遅延量算出工程、
をさらに前記コンピュータに実行させることを特徴とする請求項４記載の信号遅延評価プログラム。
【請求項６】
前記端子間遅延用レベル基準値は、伝送される信号の全振幅に対する割合として表され、
スルーレートに対応する前記レベル基準値は、信号の立ち上がりまたは立ち下がりの開始および終了の各タイミングを判定するための信号レベルを、それぞれ信号の全振幅に対する割合で示した開始判定しきい値および終了判定しきい値として表され、
前記補正値算出工程は、前記第１の回路ブロックからの出力信号における前記出力スルーレートに対応する前記開始判定しきい値と前記終了判定しきい値との差分値で、当該出力スルーレートを除算した除算値に対して、前記第２の回路ブロックに対応する前記端子間遅延用レベル基準値から前記第１の回路ブロックに対応する前記端子間遅延用レベル基準値を差し引いた差分値を乗じることで、前記端子間遅延補正値を算出し、
前記遅延量算出工程は、前記第１の回路ブロック内のセル、および前記第２の回路ブロック内のセルのそれぞれの前記端子間遅延データに基づく信号遅延量に対して、前記端子間遅延補正値を加算する、
ことを特徴とする請求項５記載の信号遅延評価プログラム。
【請求項７】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムにおいて、
第１の回路ブロック内のセルと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別工程と、
前記端子間遅延プラットフォーム判別工程において前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出工程と、
をコンピュータに実行させることを特徴とする信号遅延評価プログラム。
【請求項８】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価するための信号遅延評価方法において、
プラットフォーム判別手段が、第１の回路ブロックのスルーレートと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別し、
前記プラットフォーム判別手段により前記各レベル基準値が異なると判別された場合に、スルーレート補正手段が、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第１の回路ブロックからの出力信号における出力スルーレートを補正する、
ことを特徴とする信号遅延評価方法。
【請求項９】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価するための信号遅延評価方法において、
端子間遅延プラットフォーム判別手段が、第１の回路ブロック内のセルと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別し、
前記端子間遅延プラットフォーム判別手段により前記各端子間遅延用レベル基準値が異なると判別された場合に、補正値算出手段が、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する、
ことを特徴とする信号遅延評価方法。
【請求項１０】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価装置において、
第１の回路ブロックのスルーレートと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別するプラットフォーム判別手段と、
前記プラットフォーム判別手段により前記各レベル基準値が異なると判別された場合に、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第１の回路ブロックからの出力信号における出力スルーレートを補正するスルーレート補正手段と、
を有することを特徴とする信号遅延評価装置。
【請求項１１】
複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価装置において、
第１の回路ブロック内のセルと、前記第１の回路ブロックからの出力信号の供給を受ける第２の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別手段と、
前記端子間遅延プラットフォーム判別手段により前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出手段と、
を有することを特徴とする信号遅延評価装置。
【国際調査報告】
2008120322.tif 000024
2008120322.tif 000025