JP4526596B2 - 信号遅延評価プログラム、信号遅延評価方法、および信号遅延評価装置 - Google Patents

信号遅延評価プログラム、信号遅延評価方法、および信号遅延評価装置 Download PDF

Info

Publication number
JP4526596B2
JP4526596B2 JP2009507314A JP2009507314A JP4526596B2 JP 4526596 B2 JP4526596 B2 JP 4526596B2 JP 2009507314 A JP2009507314 A JP 2009507314A JP 2009507314 A JP2009507314 A JP 2009507314A JP 4526596 B2 JP4526596 B2 JP 4526596B2
Authority
JP
Japan
Prior art keywords
delay
signal
inter
circuit block
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009507314A
Other languages
English (en)
Other versions
JPWO2008120322A1 (ja
Inventor
充 小野寺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Publication of JPWO2008120322A1 publication Critical patent/JPWO2008120322A1/ja
Application granted granted Critical
Publication of JP4526596B2 publication Critical patent/JP4526596B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

本発明は、半導体装置における信号遅延評価プログラム、方法、および装置に関し、特に、それぞれ異なるプラットフォーム上で設計された複数の回路ブロックを備えた半導体装置に適した信号遅延評価プログラム、方法、および装置に関する。
半導体装置に対しては、高集積化や高機能化の要求が高まっており、そのために、半導体チップをPCB(Printed Circuit Board)に実装する形態だけなく、SoC(System on a Chip)、SiP(System in Package)といった様々な形態の半導体装置が実現されている。また、半導体装置の設計段階では、一般的に、回路網における信号遅延を評価し、伝達される信号のタイミングを検証することが行われているが、上記のように高集積化・高機能化された半導体装置に対しても、信号遅延を正確に評価できることが要求されている。
ところで、半導体装置におけるタイミング検証の手法は、大別して、SoCなどのような同一プラットフォーム上でシステムが構成されている場合と、プラットフォームが異なるチップや回路によりシステムが構成されている場合とで異なる。ここで、同一のプラットフォームとは、例えば、半導体装置上の各回路ブロックが同一のベンダにより設計された場合や、同一のプロセスで製造される場合、同一の開発環境で設計された場合(例えば、遅延評価などで用いた計算式、ライブラリのパラメータ抽出条件、設計に用いたCAD(Computer Aided Design)などが同一の場合)などを指す。
以下、これらの2種類のタイミング検証手法について概略的に述べる。まず、SoCを例に挙げて、同一プラットフォームで構成されたシステムにおけるタイミング検証手法について説明する。
図15は、SoCの構成例を示す図である。
図15に示す半導体装置(SoC)500は、例として、それぞれ同一のプラットフォーム上で設計された2つの回路モジュールM1およびM2を備えている。回路モジュールM1は、バッファ111〜114とラッチ回路FF1とから構成される。半導体装置500の入力端子IN1に対する入力データは、回路モジュールM1の入力端子A1を介してバッファ111、ラッチ回路FF1、およびバッファ112を伝達し、出力端子X1から回路モジュールM2に出力される。また、半導体装置500のクロック入力端子CKからのクロックは、回路モジュールM1のクロック入力端子CK1を介してバッファ113および114を伝達し、クロック出力端子CKO1から回路モジュールM2に出力される。なお、ラッチ回路FF1は、バッファ113の出力クロックにより動作する。
回路モジュールM2は、回路モジュールM1と同様に、バッファ121〜124とラッチ回路FF2とから構成されている。回路モジュールM1からの出力データは、入力端子A2を介してバッファ121、ラッチ回路FF2、およびバッファ122を伝達し、出力端子X2から出力され、半導体装置500の出力端子OUT1を介して外部に出力される。また、回路モジュールM1からの出力クロックは、クロック入力端子CK2を介してバッファ123および124を伝達し、クロック出力端子CKO2から出力され、半導体装置500のクロック出力端子CKOを介して外部に出力される。なお、ラッチ回路FF2は、バッファ123の出力クロックにより動作する。
この例のように、同一プラットフォーム上で設計された回路ブロックからなるシステムでは、データおよびクロックのそれぞれについてのシステム全体のディレイ情報を求め、それを用いてシミュレーション、またはSTA(Static Timing Analysis)を行うことで、タイミングを正確に検証することができる。すなわち、システム内の各回路ブロックに対応するライブラリの仕様に整合性があるため、ライブラリから抽出した値をそのまま用いて、システムの信号遅延を求めることができる。
ここで、図16は、遅延検証に用いるライブラリ仕様の例について説明するための図である。
図16では、ライブラリに登録されている回路ブロックの例として、2段のCMOS(Complementary Metal-Oxide Semiconductor)インバータからなるバッファ140を挙げている。この図に示すように、遅延検証に用いられるライブラリ中のパラメータとしては、端子間遅延Tpd、およびスルーレート(Slew-rate)が代表的である。なお、入力スルーレートTsin、出力スルーレートTsoutは、それぞれ回路ブロックの入力側、出力側に対応する。
端子間遅延Tpdは、回路ブロックの入力と出力との間の遅延量を示す。この端子間遅延Tpdは、信号の最大振幅に対する所定の割合(図では例として50%)を判定しきい値として、この判定しきい値を入力および出力の各信号レベルVINおよびVOUTが超えたとき(あるいは下回ったとき)のタイミングを基準として定義される。
スルーレートは、信号の立ち上がり時(または立ち下がり時)の傾きを、信号の立ち上がり(または立ち下がり)の開始から終了までの時間によって表したものである。ただし、実際の波形では、立ち上がり(または立ち下がり)開始直後の鈍りや、終了時のオーバシュート(またはアンダシュート)が現れることから、開始直後および終了直前の区間を除いた、比較的直線性を維持している区間において、スルーレートを判定する。図では例として、立ち上がり開始および終了の判定しきい値を、それぞれ最大振幅の20%、80%としている。
回路において発生する信号遅延については、例えば、入力スルーレートTsinに応じて端子間遅延Tpdが変化する「スルー依存性の信号遅延」、入力スルーレートTsinが固定された状態で、出力負荷容量CLに応じて出力信号の傾き(すなわち出力スルーレートTsout)が変化する「出力負荷容量依存性の信号遅延」、入力スルーレートTsinおよび出力負荷容量CLのいずれにも依存しない理想状態における「ゲートディレイ」などの特性が知られている。
図17は、ライブラリに含まれるテーブルの例を示す図である。
ライブラリにおいては、上記の「スルー依存性の信号遅延」および「出力負荷容量依存性の信号遅延」を考慮して、図17(A)のように、出力負荷容量CLおよび入力スルーレートTsinと端子間遅延Tpdとを対応付けたTpdテーブルと、図17(B)のように、出力負荷容量CLおよび入力スルーレートTsinと出力スルーレートTsoutとを対応付けたTsoutテーブルとが、回路ブロック内のセルごとに保持される。
また、半導体装置における信号遅延の計算方法には、ベンダやプロセス、使用するツールなどにより様々なものがある。一般的な計算方法としては、例えば、まず、外部から供給される信号のスルーレート、および後段回路(セル)までの配線容量やピン容量などを、入力バッファに対する制約条件として定義する。この制約条件を上記のようなTsoutテーブルに適用することで、出力スルーレートTsoutを求めることができる。
また、半導体チップ内の回路(セル)間では、前段回路の出力スルーレートや、後段回路までの配線容量、ピン容量などを、後段回路に対する制約条件として定義する。また、出力バッファについては、前段回路の出力スルーレートとともに、出力負荷容量を、次段回路ブロックのライブラリに登録された入力負荷容量の値などから求めて、これらを出力バッファに対する制約条件として定義する。この後、これらの制約条件を、上記のようなTpdテーブルに対して適用することで、システム内の各セルについての端子間遅延Tpdが求められる。
次に、図18は、PCBの構成例を示す図である。以下、この図18を用いて、プラットフォームの異なる回路ブロックから構成されたシステムにおけるタイミング検証手法の例について説明する。
この図に示すPCB600には、例として、それぞれベンダの異なる2つの半導体チップCP1およびCP2が搭載されているものとする。なお、各半導体チップCP1およびCP2の内部の回路構成は、図15に示した回路モジュールM1およびM2とそれぞれ同じであり、ここでは対応する回路ブロックに対して同じ符号を付して示している。
このようにプラットフォームの異なる回路ブロックが搭載された半導体装置では、従来、半導体チップごとのタイミング検証と、半導体チップ間のつなぎ目におけるタイミング検証という2つの検証ステップにより、タイミングを検証していた。
ここで、図19は、PCBにおける半導体チップごとのタイミング検証について説明するための図である。
第1の検証ステップとしては、各半導体チップの設計時に、チップ外部からの入力信号や出力負荷容量などの情報を制約条件として定義し、それらの情報を基に半導体チップごとに信号遅延を計算し、シミュレーションやSTAを実行する。例えば、図19における半導体チップCP1については、ボード外部からの信号を考慮した入力スルーレートTsinおよびスキューを求め、入力側の制約条件として定義する(図中、ステップS21)。また、半導体チップCP2の入力ピン容量やそこまでの配線容量を考慮して半導体チップCP1の出力負荷容量を求め、出力側の制約条件として定義する(ステップS22)。これにより、半導体チップCP1内の各セルの端子間遅延Tpdが求められる。
また、半導体チップCP2については、半導体チップCP1の出力スルーレートTsoutを、入力側の制約条件として定義する。これとともに、半導体チップCP1の設計時のSTA結果などに基づいて半導体チップCP2への入力信号の情報(スキューなど)を生成し、半導体チップCP2に対して入力側の制約条件として定義する(ステップS23)。出力側の制約条件としては、ボード外部の配線容量などを基に出力負荷容量を定義する(ステップS24)。このようにして、ボード内の回路ブロックごとの信号遅延を求め、シミュレーションやSTAを実行していく。
また、図20は、PCBにおける半導体チップ間のタイミング検証について説明するための図である。
第2の検証ステップとしては、各回路ブロックの入出力経路と伝送線路モデルを用いて、ボードシミュレータによるPCBのタイミング検証を行う。ここでは、図20に示すように、半導体チップCP1の出力バッファ115および116と、半導体チップCP2の入力バッファ125および126とを切り出し、ボードシミュレータを用いて信号伝達タイミングを検証する。このとき、半導体チップCP1におけるスルーレートやスキューの情報を、半導体チップCP2の入力側の制約条件として定義する(図中、ステップS31)。そして、半導体チップCP2の入力バッファ125および126を介して出力される信号を観測し、タイミングを検証する(ステップS32)。
プラットフォームの異なる回路ブロックが搭載された半導体装置では、以上のような2つの検証ステップを用いることで、半導体装置の全体におけるタイミングを保証するようにしていた。しかし、半導体装置上のシステム全体に対するシミュレーションやSTAを実行してはいなかった。
なお、以上のようなタイミング検証手法に関連する従来の技術としては、異なる設計レベルが混在した設計データを用いて信号遅延を評価する際に、評価対象区間データ中に定義された評価対象区間ごとの設計データの設計レベルに応じて、適用する遅延算出方法を変えるようにした信号遅延評価方法があった(例えば、特許文献1参照)。ただし、この特許文献1の技術は、異なるベンダのプラットフォーム上の設計データを基に信号遅延を評価するものではなかった。
また、他の関連技術としては、IP(Intellectual Property)を用いたLSI(Large Scale Integration)のレイアウト設計を行う際に、IP間にタイミング設計仕様を満たすバッファを配置しておくことで、IP内・外でタイミング設計を独立に行うことができるようにした設計方法があった(例えば、特許文献2参照)。
特開平7−65041号公報(段落番号〔0017〕〜〔0027〕、図5) 特開2000−286342号公報(段落番号〔0025〕〜〔0032〕、図1)
ところで、上述したPCB600のように、プラットフォームの異なる回路ブロックが搭載された半導体装置では、システム全体のディレイ情報を求め、それを用いてシステム全体についてのシミュレーションやSTAを実行することができなかった。その理由は、プラットフォームの異なる回路ブロック間では、ディレイ計算時に誤差が発生してしまうことにあった。具体的には、この誤差は、それぞれのプラットフォームにおいて、端子間遅延Tpdやスルーレートの判定しきい値などが異なることに起因して発生する。
図21は、回路ブロック間で発生するディレイ情報の誤差について説明するための図である。
図21では、例として、図18における半導体チップCP1と半導体チップCP2との間でのディレイ情報の誤差を模式的に示している。ここでは、半導体チップCP1については、端子間遅延Tpdの判定しきい値を全振幅の50%、スルーレートの判定しきい値を20%〜80%とし、半導体チップCP2については、端子間遅延Tpdの判定しきい値を60%、スルーレートの判定しきい値を10%〜90%としている。
半導体チップCP1では、判定しきい値50%を基準として、出力バッファ115における端子間遅延が“Tpd_11”と求められる。一方、半導体チップCP2では、判定しきい値60%を基準として、入力バッファ125における端子間遅延が“Tpd_12”と求められる。このため、これらの値を用いて、半導体チップCP1およびCP2の全体での信号遅延量を計算しようとすると、判定しきい値の差による遅延量の誤差Tpd_errが生じることになる。すなわち、ディレイ計算の際に、誤差Tpd_errの分だけディレイ量が不足したり、あるいはその分が重複して定義されてしまう。
また、スルーレートについても同様で、判定しきい値の差による誤差であるスルーレート誤差Ts_errが生じてしまう。このため、例えば半導体チップCP2の入力バッファ125に対して制約条件を定義する際に、半導体チップCP1の出力スルーレートTsoutをそのまま用いてしまうと、その誤差分のディレイ量不足やディレイ量が二重に定義される事態が生じてしまい、正確なタイミング検証を行うことができなかった。
本発明はこのような点に鑑みてなされたものであり、それぞれ異なるプラットフォーム上で設計された複数の回路ブロックが搭載された半導体装置において、システム全体の信号遅延を正確に評価できるようにした信号遅延評価プログラム、方法、および装置を提供することを目的とする。
本発明では上記課題を解決するために、複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムが提供される。この信号遅延評価プログラムは、図1に示すように、第1の回路ブロックのスルーレートと、前記第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別するプラットフォーム判別工程(ステップS1)と、前記プラットフォーム判別工程(ステップS1)で前記各レベル基準値が異なると判別された場合に、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第1の回路ブロックからの出力信号における出力スルーレートを補正するスルーレート補正工程(ステップS2)と、を含む処理をコンピュータに実行させることを特徴とする。
このような信号遅延評価プログラムにおいて、スルーレートは、伝送される信号レベルに対する所定のレベル基準値を基準として定義されている。プラットフォーム判別工程(ステップS1)では、第1の回路ブロックのスルーレートと、この第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロックのスルーレートとが、異なるレベル基準値により定義されたものか否かを判別する。これらのレベル基準値が異なる場合、スルーレートをそのまま適用しても正確な遅延情報が得られない。そこで、スルーレート補正工程(ステップS2)では、各レベル基準値が異なると判別された場合には、これらのレベル基準値の差に応じたスルーレート誤差に基づいて、第1の回路ブロックからの出力信号における出力スルーレートを補正する。
また、本発明では上記課題を解決するために、複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムにおいて、第1の回路ブロック内のセルと、前記第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別工程と、前記端子間遅延プラットフォーム判別工程で前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出工程と、を含む処理をコンピュータに実行させることを特徴とする信号遅延評価プログラムが提供される。
このような信号遅延評価プログラムにおいて、入出力端子間遅延データは、伝送される信号レベルに対する所定のレベル基準値、すなわち端子間遅延用レベル基準値を基準として定義されている。端子間遅延プラットフォーム判別工程では、第1の回路ブロック内のセルと、この第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、異なる端子間遅延用レベル基準値により定義されたものか否かを判別する。これらの端子間遅延用レベル基準値が異なる場合、入出力端子間遅延データをそのまま適用しても正確な遅延情報が得られない。そこで、補正値算出工程では、各端子間遅延用レベル基準値が異なると判別された場合には、これらの端子間遅延用レベル基準値の差に応じた入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する。
本発明の信号遅延評価プログラムによれば、第1の回路ブロックのスルーレートと、その出力信号の供給を受ける第2の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものである場合には、これらのレベル基準値の差に応じたスルーレート誤差に基づいて、第1の回路ブロックからの出力信号における出力スルーレートが補正される。従って、各回路ブロックがそれぞれ異なるレベル基準値を基に定義されたものである場合でも、補正後の出力スルーレートを用いることで、各回路ブロックを通る半導体装置全体の信号遅延量を、正確に評価できるようになる。
また、本発明の信号遅延評価プログラムによれば、第1の回路ブロックに対応する入出力端子間遅延データと、その出力信号の供給を受ける第2の回路ブロックに対応する入出力端子間遅延データとが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものである場合には、これらの端子間遅延用レベル基準値の差に応じた入出力端子間遅延データの誤差が算出され、端子間遅延補正値として出力される。従って、各回路ブロックがそれぞれ異なる端子間遅延用レベル基準値を基に定義されたものである場合でも、端子間遅延補正値を用いることで、各回路ブロックを通る半導体装置全体の信号遅延量を、正確に評価できるようになる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
実施の形態に係る信号遅延評価プログラムの機能について説明する機能ブロック図である。 信号遅延の評価対象とするPCBの構成例を示す図である。 信号遅延を求めるための基本的な処理の流れを説明するための図である。 半導体チップ内の各セルのスペックについて説明するための図である。 スルーレート誤差およびTpd誤差の算出手法を説明するための図である。 PCBにおけるシステム全体の信号遅延量の計算について説明するための図である。 実施の形態に係る半導体設計システムの構成例を示す図である。 制約条件の初期情報として記憶されるプラットフォーム情報の例を示す図である。 補正用のディレイ計算プログラムによる処理手順を示すフローチャートである。 ディレイ補正区間確定ルーチンによる処理手順を示すフローチャートである。 スルーレート補正値算出ルーチンによる処理手順を示すフローチャートである。 Tpd補正値算出ルーチンによる処理手順を示すフローチャートである。 制約条件生成ルーチンによる処理手順を示すフローチャートである。 メインのディレイ計算プログラムによる処理手順を示すフローチャートである。 SoCの構成例を示す図である。 遅延検証に用いるライブラリ仕様の例について説明するための図である。 ライブラリに含まれるテーブルの例を示す図である。 PCBの構成例を示す図である。 PCBにおける半導体チップごとのタイミング検証について説明するための図である。 PCBにおける半導体チップ間のタイミング検証について説明するための図である。 回路ブロック間で発生するディレイ情報の誤差について説明するための図である。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、実施の形態に係る信号遅延評価プログラムの機能について説明する機能ブロック図である。
図1に示す信号遅延評価プログラムは、複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価するためのものである。このような半導体装置としては、例えば、PCB、SiP、SoC、MCM(Multi Chip Module)などを適用可能である。
この信号遅延評価プログラムは、プラットフォーム判別手段11、スルーレート補正手段12、条件設定手段13、補正値算出手段14、および遅延量算出手段15としての機能を備えている。これらの各手段による処理が実行される際には、評価対象の各回路ブロックに対応する設計情報やディレイ情報などが格納された遅延評価用ライブラリ2が参照される。
なお、この実施の形態では上記各手段に対応する機能が1つの信号遅延評価プログラム1として結合された例を示すが、これらの各機能は複数のプログラムに分割されて実現されてもよく、また、これらのプログラムが別の情報処理装置におけるCPU(Central Processing Unit)により実行されてもよい。
以下、理解しやすいように、評価対象とする半導体装置内の回路ブロックとして、第1の回路ブロックと、その出力信号の供給を受ける第2の回路ブロックとを想定して説明することとする。
プラットフォーム判別手段11は、第1の回路ブロックおよび第2の回路ブロックにそれぞれ対応する遅延評価用ライブラリ2内の情報のプラットフォームが同一であるか否かを判別する(ステップS1)。具体的には、各回路ブロックに対応するスルーレートおよび端子間遅延Tpdの各プラットフォームについて判別する。スルーレートについては、各回路ブロックに対応するスルーレートが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別する。また、端子間遅延Tpdについては、各回路ブロックに対応する端子間遅延Tpdが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別する。
スルーレート補正手段12は、プラットフォーム判別手段11により、スルーレートについてのプラットフォームが異なると判別された場合に、各プラットフォームにおけるスルーレートのレベル基準値(後述する判定しきい値)の差に応じたスルーレート誤差に基づいて、第1の回路ブロックからの出力信号における出力スルーレートTsoutを補正する(ステップS2)。
条件設定手段13は、半導体チップ内のセルの端子間遅延Tpdや出力スルーレートTsoutを求めるための制約条件を設定する(ステップS3)。例えば、第1の回路ブロックからの出力信号における出力スルーレートTsoutを、第2の回路ブロック内の入力段セル(入力バッファなど)での信号遅延を求めるための制約条件として設定する。このとき、プラットフォーム判別手段11によりスルーレートについてのプラットフォームが異なると判別された場合には、スルーレート補正手段12により補正された出力スルーレートTsoutを、第2の回路ブロック内の入力段セルに対する制約条件として設定する。
このように設定された制約条件と、遅延評価用ライブラリ2から抽出した第2の回路ブロックについての情報とから、図示しない設定手段により、第2の回路ブロックの出力信号における出力スルーレートTsoutや、第2の回路ブロックの入力段セルにおける端子間遅延Tpdを設定することができる(ステップS4)。設定された出力スルーレートTsoutや端子間遅延Tpdは、遅延量算出手段15による計算に用いられる。なお、当然ながら、このような設定手段の機能を信号遅延評価プログラム1が備えていてもよい。
一方、補正値算出手段14は、プラットフォーム判別手段11により端子間遅延Tpdについてのプラットフォームが異なると判別された場合に、各プラットフォームにおける端子間遅延Tpdのレベル基準値(後述する判定しきい値)の差に応じて生じる、端子間遅延Tpdの誤差(以下、Tpd誤差と呼ぶ)を算出し、端子間遅延補正値として出力する(ステップS5)。
遅延量算出手段15は、半導体装置におけるシステム全体の信号遅延量を計算する(ステップS6)。この計算では、第1の回路ブロックおよび第2の回路ブロックの全体の信号遅延量を計算する際に、各回路ブロック内のセルの端子間遅延Tpdに基づく信号遅延量を、補正値算出手段14が算出した端子間遅延補正値によって補正する。これにより、半導体装置内の各回路ブロックのプラットフォームが異なる場合でも、システム全体の信号遅延量を正確に求めることが可能になる。
次に、信号遅延の評価対象とする半導体装置として、複数の半導体チップが搭載されたPCBを例に挙げ、上記の信号遅延評価プログラム1による処理をより具体的に説明する。
まず、図2は、信号遅延の評価対象とするPCBの構成例を示す図である。
図2に示すPCB100は、2つの半導体チップCP1およびCP2を備えている。半導体チップCP1は、バッファ111〜114とラッチ回路FF1とから構成される。PCB100の入力端子IN1に対する入力データは、入力端子A1から半導体チップCP1に入力され、バッファ111、ラッチ回路FF1、およびバッファ112を伝達して、出力端子X1から半導体チップCP2に出力される。また、PCB100のクロック入力端子CKからのクロックは、半導体チップCP1のクロック入力端子CK1からバッファ113および114を伝達し、クロック出力端子CKO1から半導体チップCP2に出力される。なお、ラッチ回路FF1は、バッファ113の出力クロックにより動作する。
半導体チップCP2は、半導体チップCP1と同様に、バッファ121〜124とラッチ回路FF2とから構成されている。半導体チップCP1からの出力データは、入力端子A2からバッファ121、ラッチ回路FF2、およびバッファ122を伝達し、出力端子X2から、PCB100の出力端子OUT1を介して外部に出力される。また、半導体チップCP1からのクロックは、クロック入力端子CK2からバッファ123および124を伝達し、クロック出力端子CKO2から、PCB100のクロック出力端子CKOを介して外部に出力される。なお、ラッチ回路FF2は、バッファ123の出力クロックにより動作する。
なお、このPCB100では、半導体チップCP1およびCP2のそれぞれが、デジタル回路であっても、あるいはアナログ回路であってもよい。また、1つの半導体チップ内に、デジタル回路のセルとアナログ回路のセルとが混在していてもよい。例えば、半導体チップCP1のバッファ111がデジタル回路で、バッファ112がアナログ回路であってもよい。
このようなPCB100において、半導体チップCP1およびCP2がそれぞれ異なるプラットフォーム上で設計されたものである場合には、各チップの間がスルーレートや端子間遅延Tpdの補正が行われる補正領域130とされる。すなわち、PCB100のシステム全体の信号遅延量を求めるためには、プラットフォーム判別手段11により、PCB100上の半導体チップ間でプラットフォームが異なるか否かを判別しておき、異なる部分を補正領域130としてあらかじめ定義しておく。そして、スルーレート補正手段12や補正値算出手段14により、各補正領域130におけるスルーレートや端子間遅延Tpdの補正値を算出する。
図3は、信号遅延を求めるための基本的な処理の流れを説明するための図である。
半導体装置の設計時には、以下のように、チップ外部からの入力信号や出力負荷容量などの情報を制約条件として定義し、それらの情報を基に半導体チップごとに信号遅延を計算し、シミュレーションやSTAを実行する。図3では例として、上記のPCB00内のデータの伝送路を示している。
まず、半導体チップCP1については、ボード外部からの信号を考慮して求められる入力スルーレートTsinが、条件設定手段13により入力段セル(ここではバッファ111)に対する制約条件として定義される(図中、ステップS11)。また、出力段セル(ここではバッファ112)に対する制約条件としては、半導体チップCP2の入力ピン容量やそこまでの配線容量を考慮した半導体チップCP1の出力負荷容量が定義される(ステップS12)。
また、半導体チップCP2については、従来のように、前段の半導体チップCP1とプラットフォームが同じであれば、半導体チップCP1の出力段セルの出力スルーレートTsoutが、入力段セル(ここではバッファ121)に対する制約条件(すなわち入力スルーレートTsin)として定義される(ステップS13)。なお、出力段セル(ここではバッファ122)に対する制約条件としては、ボード外部の配線容量などを基に出力負荷容量が定義される(ステップS14)。
しかし、前段の半導体チップCP1との間で、スルーレートについてのプラットフォームが異なる場合には、各チップ間の補正領域130において、半導体チップCP1の出力段回路の出力スルーレートTsoutがスルーレート補正手段12により補正され、補正後の出力スルーレートTsoutが、条件設定手段13により半導体チップCP2の入力段セルに対する制約条件として定義される(ステップS13)。
また、以上の処理で設定された制約条件を、図17で挙げたようなTpdテーブルおよびTsinテーブルに適用することで、半導体チップCP1およびCP2の各セルにおける端子間遅延Tpdを求めることができる。しかし、半導体チップCP1およびCP2の間で端子間遅延Tpdのプラットフォームが異なる場合には、補正値算出手段14により、半導体チップCP1の出力段セルの出力スルーレートTsout、端子間遅延Tpd、およびプラットフォームの情報と、半導体チップCP2のプラットフォームの情報とを基に、Tpd誤差が算出される(ステップS15)。遅延量算出手段15は、以上で求められたチップごとの端子間遅延Tpdと、チップ間の補正領域130でのTpd誤差とから、システム全体の信号遅延量を求めることができる。
図4は、半導体チップ内の各セルのスペックについて説明するための図である。
以下、半導体チップCP1およびCP2のプラットフォームおよび各セルのスペックを、この図4に示すようなものと仮定して、上記の補正処理の具体例について説明する。なお、ここでは、チップ内の各セルの信号遅延特性が、チップごとに共通であるものとする。また、出力負荷容量に対する依存性を無視するものとする。
図4(A)に示すように、半導体チップCP1では、入力スルーレートTsin_1および出力スルーレートTsout_1を判定するための立ち上がり開始および終了の各判定しきい値Vth_s1およびVth_e1を、それぞれ信号レベルの全振幅に対する20%、80%とする。また、半導体チップCP1内の各セルの端子間遅延Tpd_1を判定するための判定しきい値Vth_1を、全振幅に対する50%とする。具体的な仕様としては、入力スルーレートTsin_1が60psのとき、出力スルーレートTsout_1も60psであり、端子間遅延Tpd_1が100psであるとする。
一方、図4(B)に示すように、半導体チップCP2では、入力スルーレートTsin_2および出力スルーレートTsout_2を判定するための判定しきい値Vth_s2およびVth_e2を、それぞれ信号レベルの全振幅に対する10%、90%とする。また、半導体チップCP2内の各セルの端子間遅延Tpd_2を判定するための判定しきい値Vth_2を、全振幅に対する60%とする。具体的な仕様としては、入力スルーレートTsin_2が80psのとき、出力スルーレートTsout_2も80psであり、端子間遅延Tpd_2が100psであるとする。
図5は、スルーレート誤差およびTpd誤差の算出手法を説明するための図である。
この図5では、半導体チップCP1からの出力波形を示している。補正領域130では、前後の半導体チップCP1およびCP2の各プラットフォームの情報と、前段の半導体チップCP1の出力波形におけるディレイ情報、具体的には、バッファ112の出力スルーレートTsout_1および端子間遅延Tpd_1とを基に、後段回路に制約条件として与えるスルーレートを補正し、また、Tpd誤差を求める。
スルーレートについては、以下のようにして補正する。図5において、前段回路の出力スルーレートTsout_1は、信号レベルが全振幅の20%〜80%の領域で定義されたものである。しかし、後段回路では10%〜90%の領域で定義されているので、後段回路に制約条件として与える出力スルーレートTsout_1’は、前段回路の出力スルーレートTsout_1に、判定しきい値の違いに応じたスルーレート誤差Ts_errを加算したものとされなければならない。
補正後の出力スルーレートTsout_1’は、次の式(1)により、前後の回路の判定しきい値と、前段回路の出力スルーレートTsout_1とから、推定することができる。すなわち、スルーレート補正手段12は、前段回路側の判定しきい値Vth_e1およびVth_s1の差分値と、後段回路側の判定しきい値Vth_e2およびVth_s2の差分値とを求め、各差分値の割合に応じて、前段回路の出力スルーレートTsout_1を補正する。補正後の出力スルーレートTsout_1’は、条件設定手段13により、後段回路の入力スルーレートTsin_2として設定される。
Tsout_1’
={Tsout_1/(Vth_e1−Vth_s1)}×(Vth_e2−Vth_s2)
={60/(80−20)}×(90−10)=80[ps] ……(1)
また、Tpd誤差(図中のTpd_err)については、以下のように求められる。前後の回路における端子間遅延Tpdの判定しきい値には10%の差があるが、この差は出力負荷容量に依存するTpd誤差と等価と考えることができる。このため、前段の出力波形の傾き、すなわち出力スルーレートTsout_1から、Tpd誤差を求めることができる。補正値算出手段14は、次の式(2)によりTpd誤差を算出する。
Tpd_err
={Tsout_1/(Vth_e1−Vth_s1)}×(Vth_2−Vth_1)
={60/(80−20)}×(60−50)=10[ps] ……(2)
図6は、PCBにおけるシステム全体の信号遅延量の計算について説明するための図である。
図6では例として、PCB100におけるディレイ情報をSDF(Standard Delay Format)で定義した状態を概念的に示している。この図において、PCB100への信号入力から、半導体チップCP1の出力端子までのディレイ情報は、図中の“Chip−1 SDF”で定義される。また、半導体チップCP2の入力端子から、PCB100の出力端子までのディレイ情報は、図中の“Chip−2 SDF”で定義される。半導体チップCP1およびCP2の間の領域(補正領域130)については、PCB100の階層(PCB SDF)において、接続遅延(INTERCONNECT delay)として定義される。
このようなディレイ情報が与えられたとき、遅延量算出手段15は、例えば、PCB100の入力端子IN1から出力端子OUT1までのデータ伝送路全体での信号遅延量Tpd_totalを、次の式(3)によって求めることができる。
Tpd_total
=Tpd_1+Tpd_1+Tpd_1+Tpd_err+Tpd_2+Tpd_2+Tpd_2
=610[ps] ……(3)
以上説明した信号遅延の評価手法によれば、ベンダやライブラリの仕様、遅延計算に用いる計算式などのプラットフォームが異なる回路ブロックが半導体装置内に混在している場合でも、システム全体を通じた信号遅延量を、各回路ブロックのライブラリを基に直接的に計算することができる。従って、例えば従来のように、回路ブロックごとのタイミング検証と、回路ブロック間のつなぎ目におけるタイミング検証の2つの検証処理によって、半導体装置の全体におけるタイミングを保証する手法と比較して、簡単な処理手順によりシステム全体の正確な信号遅延量を求めることが可能となり、高機能でかつ動作精度の高い半導体装置を設計・製造することができるようになる。
なお、図6の例では、補正領域130において生じるTpd誤差を、チップ内のセルのディレイ情報とは別のチップ間の接続遅延として定義したが、これに限らず、例えばSDF以外のフォーマットを用いた場合などには、Tpd誤差を、出力側(すなわち半導体チップCP1の出力段セル)のディレイ情報に加算して定義しても、あるいは入力側(すなわち半導体チップCP2の入力段セル)のディレイ情報に加算して定義してもよい。
また、算出したTpd誤差を所定の割合に分割し、一方を出力側に、他方を入力側にそれぞれ加算して定義してもよい。これにより、例えば各セルのディレイ情報に上限値が設定された場合などでも補正値を確実に適用できるようになり、より広範なデザインルールにおいても確実な遅延評価を実行できるようになる。
また、補正領域130での補正値を、上記手法で求めたTpd誤差に任意のオフセットを与えた値として算出してもよい。例えば、半導体装置を設計する際に信号遅延量に対する目標値があらかじめ与えられていた場合に、この目標値に応じたオフセットをTpd誤差に与えることができる。
次に、上記のような信号遅延評価プログラムの処理手順が用いられる具体的な半導体設計システムの例について説明する。図7は、実施の形態に係る半導体設計システムの構成例を示す図である。
図7に示す半導体設計システムは、例として、端末装置210とサーバ220とから構成されている。端末装置210は、CPU(Central Processing Unit)211によって装置全体が制御されている。CPU211には、RAM(Random Access Memory)などからなる主記憶装置212、HDD(Hard Disk Drive)などからなる外部記憶装置213、グラフィック処理装置214、入力インタフェース215、および通信インタフェース216が、バス217を介して接続されている。
主記憶装置212には、CPU211に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。このアプリケーションプログラムとして、後述するディレイ計算プログラム310,320,330などが格納される。また、主記憶装置212には、CPU211による処理に必要な各種データが格納される。
外部記憶装置213には、OSやアプリケーションプログラム、これらの実行時に必要な各種データが格納される。ここでは、ディレイ計算プログラム310,320,330の実行時に必要なデータとして、設計データ410、制約条件420、ディレイ情報430などが記憶されている。
グラフィック処理装置214には、モニタ214aが接続されている。グラフィック処理装置214は、CPU211からの命令に従って、画像をモニタ214aの画面に表示させる。入力インタフェース215には、キーボード215aとマウス215bとが接続されている。入力インタフェース215は、キーボード215aやマウス215bから送られてくる信号を、バス217を介してCPU211に送信する。通信インタフェース216は、外部のネットワークに接続して、このネットワークを通じて、サーバ220などの外部装置との間でデータを送受信する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、この図には端末装置210のハードウェア構成を示したが、サーバ220についても同様のハードウェア構成で実現することができる。また、外部記憶装置213に記憶された設計データ410、制約条件420、ディレイ情報430は、サーバ220内の記憶装置に記憶されて、端末装置210に読み込まれるようにしてもよい。また、ディレイ計算プログラム310,320,330は、サーバ220から端末装置210に読み込まれて実行されてもよい。
端末装置210で実行されるディレイ計算プログラム310は、信号遅延量を計算するためのメインプログラムである。このディレイ計算プログラム310には、図1に示した遅延量算出手段15の機能が含まれる。
ディレイ計算プログラム320は、プラットフォームが異なる回路ブロックを含む半導体装置の遅延量を計算する際に、上述したように、スルーレートや端子間遅延Tpdを補正するためのプログラムである。このディレイ計算プログラム320には、図1に示したプラットフォーム判別手段11、スルーレート補正手段12、条件設定手段13、補正値算出手段14の機能が含まれる。また、ディレイ計算プログラム320の実行時には、複数のサブルーチン321が呼び出されて実行される。
ディレイ計算プログラム330は、プラットフォームごとに用意され、各プラットフォームでの信号遅延量の計算を行うためのものである。なお、ディレイ計算プログラム320および330は、ディレイ計算プログラム310の実行時に呼び出されてもよいし、それぞれ単独を実行することもできる。
外部記憶装置213に記憶される設計データ410は、半導体装置の設計のためのレイアウト情報などである。制約条件420には、半導体装置内の回路での信号遅延量を計算する際に必要となる初期情報が、設計データ410に対応付けて格納されている。この制約条件420には、レイアウトされる回路ブロック内のセルの信号遅延に関するテーブル(例えば図17に示したテーブルなど)や、プラットフォームについての情報も格納されている。ディレイ情報430には、回路ごとの信号遅延量の情報が設計データ410に対応付けて格納されている。
図8は、制約条件の初期情報(制約条件420)として記憶されるプラットフォーム情報の例を示す図である。
図8に示すプラットフォーム情報421には、回路ブロックの端子間遅延Tpdの判定しきい値の情報、およびスルーレートの判定しきい値の情報が、プラットフォーム名ごとに格納されている。また、各判定しきい値の情報は、さらに、CMOS回路あるいはシュミットトリガ回路などの回路ブロックの入出力インタフェースの種類ごとに用意されている。
以下、上記のディレイ計算プログラム310,320,330を端末装置210において実行したときの処理手順を、フローチャートに沿って説明する。
図9は、補正用のディレイ計算プログラム320による処理手順を示すフローチャートである。
〔ステップS101〕ユーザの操作などにより、遅延評価対象とする半導体装置についての設計データ410、制約条件420などのデータの入力を受ける。
〔ステップS102〕CPU211は、サブルーチン321の1つであるディレイ補正区間確定ルーチンを実行する。このディレイ補正区間確定ルーチンについては後の図10で詳述するが、この処理により、半導体装置内の回路ブロック間の領域のそれぞれに対して、識別コードが付された境界情報が生成され、ディレイ情報の補正が必要な区間が確定される。
以下のステップS103〜S111の処理は、ステップS102の処理で確定された補正区間ごとに実行される。
〔ステップS103〕CPU211は、処理対象区間の識別コードが“02”であるか否かを判定する。“02”である場合はステップS107の処理を実行し、それ以外の場合はステップS104の処理を実行する。
〔ステップS104〕CPU211は、処理対象区間の識別コードが“01”であるか否かを判定する。“01”である場合はステップS108の処理を実行し、それ以外の場合はステップS105の処理を実行する。
〔ステップS105〕CPU211は、処理対象区間の識別コードが“00”であるか否かを判定する。“00”である場合はステップS109の処理を実行し、それ以外の場合はステップS106の処理を実行する。
〔ステップS106〕CPU211は、ステップS103〜S10により処理対象区間の識別コードが“00”“01”“02”以外であると判定すると、エラーであることを表示情報などとして出力する。
〔ステップS107〕CPU211は、サブルーチン321の1つであるスルーレート補正値算出ルーチンを実行し、制約条件の設定や端子間遅延Tpdの算出に必要なスルーレートを補正した値を算出する。なお、このスルーレート補正値算出ルーチンについては、後の図11において詳述する。
〔ステップS108〕CPU211は、サブルーチン321の1つであるTpd補正値算出ルーチンを実行し、システム全体の信号遅延量を補正するための補正値(Tpd誤差)を算出する。このステップでは、ステップS107が実行されていた場合には、ここで補正されたスルーレートの値が使用される。なお、Tpd補正値算出ルーチンについては、後の図12において詳述する。
〔ステップS109〕CPU211は、サブルーチン321の1つである制約条件生成ルーチンを実行し、処理対象区間について、信号遅延量の演算に必要な制約条件を、ファイルとして生成する。このステップでは、ステップS107が実行されていた場合には、ここで補正されたスルーレートの値が使用される。なお、制約条件生成ルーチンについては、後の図13において詳述する。
〔ステップS110〕CPU211は、ステップS109で生成された制約条件のファイルを出力する。このファイルは、例えば制約条件420と関連付けられて、外部記憶装置213などに記憶される。
〔ステップS111〕CPU211は、ステップS108で算出されたTpd補正値を出力する。このTpd補正値は、例えばディレイ情報430に追加して登録されたり、あるいは関連付けされて、外部記憶装置213などに記憶される。
〔ステップS112〕CPU211は、上記のステップS103〜S111の処理が、すべての補正区間について実行されたか否かを判定する。実行されていない場合、次の補正区間を処理対象として、ステップS103からの処理を再度実行する。全区間について処理が実行された場合は、処理を終了する。
以上の処理により、識別コードが“02”の区間では、スルーレートおよび端子間遅延Tpdの補正がともに実行され、これらの補正が制約条件に反映される。また、識別コードが“01”の区間では、端子間遅延Tpdの補正のみが実行される。
図10は、ディレイ補正区間確定ルーチンによる処理手順を示すフローチャートである。
〔ステップS121〕CPU211は、処理対象の半導体装置についての設計データを読み込む。
〔ステップS122〕CPU211は、半導体装置内の各回路ブロックについてのプラットフォーム情報421を読み込む。
〔ステップS123〕CPU211は、半導体装置内の回路ブロック間の境界のうちの1つに、プラットフォーム情報を関連付ける。
〔ステップS124〕CPU211は、対象の境界において、出力側および入力側の各回路ブロックのプラットフォームが同じであるか否かを判定する。ここでは、図8に示したプラットフォーム情報421から、まず、プラットフォーム名が異なるか否かを判定し、異なる場合にはさらに、Tpd判定しきい値およびスルーレート判定しきい値が異なるか否かを判定して、少なくともいずれか一方が異なる場合に、プラットフォームが異なると判定する。プラットフォームが同じと判定した場合はステップS126の処理を実行し、異なると判定した場合はステップS125の処理を実行する。
〔ステップS125〕CPU211は、対象の境界についての境界情報に、識別コード“02”を定義する。
〔ステップS126〕CPU211は、プラットフォーム情報421に基づき、対象の境界において、出力側の出力インタフェースと入力側の入力インタフェースとが同じであるか否かを判定する。同じと判定した場合はステップS128の処理を実行し、異なると判定した場合はステップS127の処理を実行する。
〔ステップS127〕CPU211は、境界情報に識別コード“01”を定義する。
〔ステップS128〕CPU211は、境界情報に識別コード“00”を定義する。
〔ステップS129〕CPU211は、識別コードをすべての境界について定義したか否かを判定する。定義されていない場合、次の境界を処理対象としてステップS123からの処理を再度実行する。全境界について定義されていた場合は、ステップS130の処理を実行する。
〔ステップS130〕全境界について識別コードの定義が終了すると、CPU211は、識別コードが定義された境界情報を出力して、例えば外部記憶装置213に記憶する。そして、ディレイ計算プログラム320の処理に戻る。
なお、この例では、回路ブロック間でTpd判定しきい値またはスルーレート判定しきい値の一方でも異なっていれば、識別コードを“02”として、スルーレート補正値算出ルーチンとTpd補正値算出ルーチンの両方を実行するようにしている。しかし、Tpd判定しきい値とスルーレート判定しきい値のそれぞれについて異なるか否かを個別に判定し、その判定結果に応じて、スルーレート補正値算出ルーチンとTpd補正値算出ルーチンのうち必要な方のみを実行できるようにしてもよい。
図11は、スルーレート補正値算出ルーチンによる処理手順を示すフローチャートである。
〔ステップS141〕CPU211は、処理対象の区間(境界)において、その出力側の出力スルーレートの判定しきい値と、入力側の入力スルーレートの判定しきい値とを、プラットフォーム情報421から読み込む。
〔ステップS142〕CPU211は、判定しきい値の差(すなわち、上述した式(1)における“Vth_e1−Vth_s1”)を算出する。
〔ステップS143〕CPU211は、処理対象区間の出力側の出力スルーレートの値を読み込む。
〔ステップS144〕CPU211は、算出した判定しきい値の差と、出力スルーレートとを基に、式(1)に従って出力スルーレートを補正する演算を行う。
〔ステップS145〕CPU211は、補正後の出力スルーレートを出力し、例えば制約条件420に関連付けて、外部記憶装置213に記憶する。
図12は、Tpd補正値算出ルーチンによる処理手順を示すフローチャートである。
〔ステップS151〕CPU211は、処理対象の区間(境界)において、その出力側および入力側の各端子間遅延Tpdの判定しきい値を、プラットフォーム情報421から読み込む。また、出力側の出力スルーレートの判定しきい値と、入力側の入力スルーレートの判定しきい値も読み込む。
〔ステップS152〕CPU211は、それぞれの判定しきい値の差(すなわち、式(2)における“Vth_2−Vth_1”“Vth_e1−Vth_s1”)を算出する。
〔ステップS153〕CPU211は、処理対象区間の出力側の出力スルーレートの値を読み込む。
〔ステップS154〕CPU211は、算出した判定しきい値の差と、出力スルーレートとを基に、式(2)に従ってTpd補正値(すなわち、上述したTpd誤差)を計算する。
〔ステップS155〕CPU211は、算出したTpd補正値を出力し、例えばディレイ情報430に関連付けて、外部記憶装置213に記憶する。
図13は、制約条件生成ルーチンによる処理手順を示すフローチャートである。
〔ステップS161〕CPU211は、制約条件を定義する対象の信号端子に関する情報(設計データなど)を取得する。
〔ステップS162〕CPU211は、対象の信号端子が出力端子であるか否かを判定する。出力端子であればステップS166の処理を実行し、そうでなければステップS163の処理を実行する。
〔ステップS163〕対象の信号端子が出力端子でない場合、CPU211は、まず、その信号端子を入力端子と想定して、出力側の出力スルーレートを読み込む。このとき、スルーレート補正値算出ルーチンにより出力スルーレートが補正されていれば、補正後の出力スルーレートを読み込む。
〔ステップS164〕CPU211は、対象の信号端子(入力端子)の入力スルーレートとして、ステップS163で取得した出力スルーレートを定義する。
〔ステップS165〕CPU211は、対象の信号端子がバスであるか否かを判定する。バスである場合はステップS166の処理を実行し、そうでない場合はステップS168の処理を実行する。
〔ステップS166〕CPU211は、対象の信号端子(出力端子)に対する外部負荷容量を読み込む。
〔ステップS167〕CPU211は、対象の信号端子(出力端子)に対して、ステップS166で読み込んだ外部負荷容量を定義する。
なお、ステップS165で信号端子がバスと判定された場合、この信号端子は入出力を切り換え可能な双方向端子となる。このため、ステップS166〜S167では、その信号端子が出力端子として機能した場合の外部負荷容量が定義される。
〔ステップS168〕CPU211は、ステップS164およびS167において定義された情報を、補正後の制約条件のファイルとして出力し、例えば外部記憶装置213などに記憶する。
なお、ここでは省略するが、実際には、1つの境界区間において、出力側の端子と入力側の端子の双方について、上記処理により制約条件が定義される。
図14は、メインのディレイ計算プログラム310による処理手順を示すフローチャートである。
〔ステップS171〕CPU211は、例えばユーザによる入力操作に応じて、遅延計算対象とする半導体装置の設計データの入力を受ける。
〔ステップS172〕CPU211は、例えばユーザによる入力操作に応じて、対象の半導体装置のセル構成に対応するディレイ情報の入力を受ける。このディレイ情報には、上述したTpd補正値算出ルーチンの処理によるTpd補正値が含まれる。また、半導体装置内の各回路ブロックに対応する制約条件も入力される。この制約条件は、スルーレート補正値算出ルーチンの処理による補正が反映されたものとなっている。
なお、上記の補正用のディレイ計算プログラム320の実行後に、自動的にこのディレイ計算プログラム310が実行される場合や、これらのプログラムが結合されている場合などには、ステップS171およびS172で受け取る情報が、外部記憶装置213から自動的に読み込まれてもよい。
〔ステップS173〕CPU211は、受け取った半導体装置全体のディレイ情報430をマージし、半導体装置のシステム全体の信号遅延量を計算する。この計算については、図6において説明した通りである。また、信号遅延量の計算に当たっては、対象の回路ブロックのプラットフォームに対応するディレイ計算プログラム330が読み込まれて実行される。なお、このステップS173では、他の例として、すべてのセルおよび境界区間での信号遅延量をデータベース化したファイルを出力するだけでもよい。
〔ステップS174〕CPU211は、ステップS173でマージしたディレイ情報を出力し、例えば外部記憶装置213などに記憶する。以後、このディレイ情報を用いることで、半導体装置に対する正確なタイミング検証を行うことが可能となる。
なお、以上で説明したプログラムでは、半導体装置内の各回路ブロックについて、スルーレートと端子間遅延Tpdのどちらのプラットフォームが異なる場合でも対応できる仕様となっている。しかし、実際のプログラムとしては、この他に、あらかじめいずれかのプラットフォームが共通であることを前提とした仕様のものが提供されてもよい。例えば、スルーレートのプラットフォームが共通であることが前提であれば、そのプログラムにはTpd補正値算出ルーチンが含まれるが、スルーレート補正値算出ルーチンが含まれなくてもよい。また、スルーレートの補正値を反映する制約条件生成ルーチンも省略することができる。逆に、端子間遅延Tpdのプラットフォームが共通であることが前提であれば、そのプログラムではTpd補正値算出ルーチンを省略することができる。
なお、上記のスルーレート補正やTpd補正などの処理機能はコンピュータによって実現することができ、その場合には、上記端末装置210が有すべき補正処理機能の処理内容を記述したプログラム(例えば、ディレイ計算プログラム310および320)が提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
符号の説明
1 信号遅延評価プログラム
2 遅延評価用ライブラリ
11 プラットフォーム判別手段
12 スルーレート補正手段
13 条件設定手段
14 補正値算出手段
15 遅延量算出手段
Tpd 端子間遅延
Tsin 入力スルーレート
Tsout 出力スルーレート

Claims (11)

  1. 複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムにおいて、
    第1の回路ブロックのスルーレートと、前記第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別するプラットフォーム判別工程と、
    前記プラットフォーム判別工程において前記各レベル基準値が異なると判別された場合に、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第1の回路ブロックからの出力信号における出力スルーレートを補正するスルーレート補正工程と、
    含む処理をコンピュータに実行させることを特徴とする信号遅延評価プログラム。
  2. 前記レベル基準値とは、信号の立ち上がりまたは立ち下がりの開始および終了の各タイミングを信号レベルから判定するための開始判定しきい値および終了判定しきい値であることを特徴とする請求項1記載の信号遅延評価プログラム。
  3. 前記スルーレート補正工程では、前記第1の回路ブロックに対応する前記開始判定しきい値と前記終了判定しきい値との差分値に対する、前記第2の回路ブロックに対応する前記開始判定しきい値と前記終了判定しきい値との差分値の割合を求め、前記第1の回路ブロックからの前記出力スルーレートに対して前記各差分値の割合を乗じた値を前記出力スルーレートの補正値として出力することを特徴とする請求項2記載の信号遅延評価プログラム。
  4. 前記第1の回路ブロック内のセルと、前記第2の回路ブロック内のセルのそれぞれに対応する入出力端子間遅延データとが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別工程と、
    前記端子間遅延プラットフォーム判別工程において前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出工程と、
    をさらに前記コンピュータに実行させることを特徴とする請求項1乃至3のいずれか1項に記載の信号遅延評価プログラム。
  5. 前記第1の回路ブロックおよび前記第2の回路ブロックの全体の信号遅延量を計算する際に、前記第1の回路ブロック内のセル、および前記第2の回路ブロック内のセルのそれぞれの前記端子間遅延データに基づく信号遅延量を、前記補正値算出工程における前記端子間遅延補正値によって補正する遅延量算出工程、
    をさらに前記コンピュータに実行させることを特徴とする請求項4記載の信号遅延評価プログラム。
  6. 前記端子間遅延用レベル基準値は、伝送される信号の全振幅に対する割合として表され、
    スルーレートに対応する前記レベル基準値は、信号の立ち上がりまたは立ち下がりの開始および終了の各タイミングを判定するための信号レベルを、それぞれ信号の全振幅に対する割合で示した開始判定しきい値および終了判定しきい値として表され、
    前記補正値算出工程は、前記第1の回路ブロックからの出力信号における前記出力スルーレートに対応する前記開始判定しきい値と前記終了判定しきい値との差分値で、当該出力スルーレートを除算した除算値に対して、前記第2の回路ブロックに対応する前記端子間遅延用レベル基準値から前記第1の回路ブロックに対応する前記端子間遅延用レベル基準値を差し引いた差分値を乗じることで、前記端子間遅延補正値を算出し、
    前記遅延量算出工程は、前記第1の回路ブロック内のセル、および前記第2の回路ブロック内のセルのそれぞれの前記端子間遅延データに基づく信号遅延量に対して、前記端子間遅延補正値を加算する、
    ことを特徴とする請求項5記載の信号遅延評価プログラム。
  7. 複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価プログラムにおいて、
    第1の回路ブロック内のセルと、前記第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別工程と、
    前記端子間遅延プラットフォーム判別工程において前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出工程と、
    をコンピュータに実行させることを特徴とする信号遅延評価プログラム。
  8. 複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価するための信号遅延評価方法において、
    情報処理装置が備えるプラットフォーム判別手段が、第1の回路ブロックのスルーレートと、前記第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別し、
    前記プラットフォーム判別手段により前記各レベル基準値が異なると判別された場合に、前記情報処理装置が備えるスルーレート補正手段が、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第1の回路ブロックからの出力信号における出力スルーレートを補正する、
    ことを特徴とする信号遅延評価方法。
  9. 複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価するための信号遅延評価方法において、
    情報処理装置が備える端子間遅延プラットフォーム判別手段が、第1の回路ブロック内のセルと、前記第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別し、
    前記端子間遅延プラットフォーム判別手段により前記各端子間遅延用レベル基準値が異なると判別された場合に、前記情報処理装置が備える補正値算出手段が、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する、
    ことを特徴とする信号遅延評価方法。
  10. 複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価装置において、
    第1の回路ブロックのスルーレートと、前記第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロックのスルーレートとが、伝送される信号レベルに対する異なるレベル基準値により定義されたものか否かを判別するプラットフォーム判別手段と、
    前記プラットフォーム判別手段により前記各レベル基準値が異なると判別された場合に、前記各レベル基準値の差に応じたスルーレート誤差に基づいて、前記第1の回路ブロックからの出力信号における出力スルーレートを補正するスルーレート補正手段と、
    を有することを特徴とする信号遅延評価装置。
  11. 複数の回路ブロックを備えた半導体装置での信号伝達の遅延を評価する信号遅延評価装置において、
    第1の回路ブロック内のセルと、前記第1の回路ブロックからの出力信号の供給を受ける第2の回路ブロック内のセルのそれぞれについての入出力端子間遅延データが、伝送される信号レベルに対する異なる端子間遅延用レベル基準値により定義されたものか否かを判別する端子間遅延プラットフォーム判別手段と、
    前記端子間遅延プラットフォーム判別手段により前記各端子間遅延用レベル基準値が異なると判別された場合に、前記各端子間遅延用レベル基準値の差に応じた前記入出力端子間遅延データの誤差を算出し、端子間遅延補正値として出力する補正値算出手段と、
    を有することを特徴とする信号遅延評価装置。
JP2009507314A 2007-03-28 2007-03-28 信号遅延評価プログラム、信号遅延評価方法、および信号遅延評価装置 Expired - Fee Related JP4526596B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/056688 WO2008120322A1 (ja) 2007-03-28 2007-03-28 信号遅延評価プログラム、信号遅延評価方法、および信号遅延評価装置

Publications (2)

Publication Number Publication Date
JPWO2008120322A1 JPWO2008120322A1 (ja) 2010-07-15
JP4526596B2 true JP4526596B2 (ja) 2010-08-18

Family

ID=39807915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009507314A Expired - Fee Related JP4526596B2 (ja) 2007-03-28 2007-03-28 信号遅延評価プログラム、信号遅延評価方法、および信号遅延評価装置

Country Status (3)

Country Link
US (1) US8713500B2 (ja)
JP (1) JP4526596B2 (ja)
WO (1) WO2008120322A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5117170B2 (ja) * 2007-11-20 2013-01-09 株式会社リコー 回路設計支援装置、回路設計支援方法、回路設計支援プログラム及び記録媒体
JP5569237B2 (ja) * 2010-08-06 2014-08-13 富士通セミコンダクター株式会社 情報処理装置、プログラム、および設計支援方法
US8997031B2 (en) * 2013-03-13 2015-03-31 Taiwan Semiconductor Manufacturing Company, Ltd. Timing delay characterization method, memory compiler and computer program product
US10984165B1 (en) * 2020-01-29 2021-04-20 International Business Machines Corporation Digital Rights Management for printed circuit boards
CN116822450A (zh) * 2023-06-27 2023-09-29 上海奎芯集成电路设计有限公司 在验证训练流程时制造线上延迟的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863509A (ja) * 1994-08-24 1996-03-08 Oki Electric Ind Co Ltd シミュレーション方法
JPH10162040A (ja) * 1996-11-29 1998-06-19 Fujitsu Ltd 大規模集積回路装置の製造方法及び大規模集積回路装置
JPH10270564A (ja) * 1997-03-27 1998-10-09 Fujitsu Ltd 半導体集積回路装置の製造方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4306194A (en) * 1979-10-11 1981-12-15 International Business Machines Corporation Data signal detection circuit
US4641246A (en) * 1983-10-20 1987-02-03 Burr-Brown Corporation Sampling waveform digitizer for dynamic testing of high speed data conversion components
US4513207A (en) * 1983-12-27 1985-04-23 General Electric Company Alternating comparator circuitry for improved discrete sampling resistance control
US5481129A (en) * 1991-10-30 1996-01-02 Harris Corporation Analog-to-digital converter
US5369309A (en) * 1991-10-30 1994-11-29 Harris Corporation Analog-to-digital converter and method of fabrication
US5377202A (en) * 1993-05-03 1994-12-27 Raytheon Company Method and apparatus for limiting pin driver offset voltages
JPH0765041A (ja) 1993-08-25 1995-03-10 Hitachi Ltd 信号遅延評価方法
JP3351651B2 (ja) * 1995-04-07 2002-12-03 富士通株式会社 会話型回路設計装置
US6304998B1 (en) 1997-03-27 2001-10-16 Fujitsu Limited Method of manufacturing integrated circuit device
WO2000003338A1 (fr) * 1998-07-09 2000-01-20 Seiko Epson Corporation Procede et appareil de verification d'un circuit integre a semiconducteur
JP2000286342A (ja) 1999-03-30 2000-10-13 Hitachi Ltd コンピュータ読み取り可能な記憶媒体、半導体集積回路の設計方法、ならびに半導体装置の設計方法
JP4087572B2 (ja) * 2001-01-24 2008-05-21 富士通株式会社 カスタムlsiにおける遅延特性解析方法
JP2002232271A (ja) * 2001-02-01 2002-08-16 Fujitsu Ltd Dcオフセットキャンセル回路、光−電気パルス変換回路、及びパルス整形回路
US6571376B1 (en) * 2002-01-03 2003-05-27 Intel Corporation Method and apparatus for analog compensation of driver output signal slew rate against device impedance variation
WO2004075414A1 (en) * 2003-02-14 2004-09-02 Mcdonald James J Iii Circuitry to reduce pll lock acquisition time
US7215274B2 (en) * 2005-07-29 2007-05-08 Agere Systems Inc. Reference voltage pre-charge in a multi-step sub-ranging analog-to-digital converter
GB2429351B (en) * 2005-08-17 2009-07-08 Wolfson Microelectronics Plc Feedback controller for PWM amplifier
US7523430B1 (en) * 2005-09-09 2009-04-21 Altera Corporation Programmable logic device design tool with simultaneous switching noise awareness
US20070136705A1 (en) * 2005-12-09 2007-06-14 Fujitsu Limited Timing analysis method and device
US8115508B2 (en) * 2007-01-09 2012-02-14 International Business Machines Corporation Structure for time based driver output transition (slew) rate compensation
US7992119B1 (en) * 2008-06-06 2011-08-02 Altera Corporation Real-time background legality verification of pin placement

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0863509A (ja) * 1994-08-24 1996-03-08 Oki Electric Ind Co Ltd シミュレーション方法
JPH10162040A (ja) * 1996-11-29 1998-06-19 Fujitsu Ltd 大規模集積回路装置の製造方法及び大規模集積回路装置
JPH10270564A (ja) * 1997-03-27 1998-10-09 Fujitsu Ltd 半導体集積回路装置の製造方法

Also Published As

Publication number Publication date
JPWO2008120322A1 (ja) 2010-07-15
WO2008120322A1 (ja) 2008-10-09
US20090319972A1 (en) 2009-12-24
US8713500B2 (en) 2014-04-29

Similar Documents

Publication Publication Date Title
US20080034338A1 (en) Timing analysis method and device
US7949977B2 (en) Method and device for estimating simultaneous switching noise in semiconductor device, and storage medium
US20070136705A1 (en) Timing analysis method and device
CN112417798B (zh) 一种时序测试方法、装置、电子设备及存储介质
JP4526596B2 (ja) 信号遅延評価プログラム、信号遅延評価方法、および信号遅延評価装置
CN111858412B (zh) 调整时序的方法、装置、计算机设备及介质
KR20150145179A (ko) 정적 타이밍 분석의 타이밍 디레이트 조정방법
US7562266B2 (en) Method and device for verifying timing in a semiconductor integrated circuit
US8250510B2 (en) Jitter amount estimating method, method for calculating correlation between amount of simultaneously operating signal noise and jitter amount, and recording medium
US8671374B2 (en) Information processing apparatus
US10963610B1 (en) Analyzing clock jitter using delay calculation engine
JP4962084B2 (ja) 回路設計検証システム、方法、及び、プログラム
US8073670B2 (en) Method for calculating delay time, program for calculating delay time and device for calculating delay time
US20090150840A1 (en) Method for acquiring basic characteristic of simultaneous switching noise in method for estimating simultaneous switching noise on semiconductor device
JP4992468B2 (ja) 検証方法、検証装置及びプログラム
US12073159B2 (en) Computing device and method for detecting clock domain crossing violation in design of memory device
US20090037860A1 (en) Apparatus, system and method for simulating operation of circuit
CN115455880A (zh) 时序路径筛查方法及设备
JP5338919B2 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
TWI783773B (zh) 用來建立關於電路特性之製程飄移模型以供進行電路模擬之方法及電路模擬系統
JP2002259488A (ja) クロックスキュー検証方法
US8484008B2 (en) Methods and systems for performing timing sign-off of an integrated circuit design
US20070130550A1 (en) Semiconductor integrated circuit and design method thereof
JP2001175699A (ja) 半導体集積回路のクロックツリー設計方法
US20100175037A1 (en) Method, apparatus, and program for correcting hold error

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100601

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100601

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140611

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees