タイミング解析方法、タイミング解析装置、およびタイミング解析プログラム
【課題】遅延計算に要する処理時間を短縮して、タイミング解析全体に要する処理時間を短縮可能とする。
【解決手段】タイミング解析方法は、半導体チップ上にレイアウトされた回路に対して電圧降下解析を行い、電圧降下解析結果に基づいて、チップ上の電圧降下を所定の電圧範囲ごとの領域として電圧降下領域ファイルを作成し、遅延のばらつきを表現する第1OCV係数が電圧降下を考慮して所定の電圧ごとに対応付けられたOCV係数ファイルを用いて、電圧降下領域ファイルの所定の電圧範囲に対応する第2OCV係数を領域ごとに算出し、算出した第2OCV係数と領域とを対応付けてOCV領域ファイルを作成し、遅延ライブラリを用いてレイアウトされた回路に対して遅延計算を行い、遅延計算結果とOCV領域ファイルの領域ごとの第2OCV係数を用いてタイミング解析を行う。
【解決手段】タイミング解析方法は、半導体チップ上にレイアウトされた回路に対して電圧降下解析を行い、電圧降下解析結果に基づいて、チップ上の電圧降下を所定の電圧範囲ごとの領域として電圧降下領域ファイルを作成し、遅延のばらつきを表現する第1OCV係数が電圧降下を考慮して所定の電圧ごとに対応付けられたOCV係数ファイルを用いて、電圧降下領域ファイルの所定の電圧範囲に対応する第2OCV係数を領域ごとに算出し、算出した第2OCV係数と領域とを対応付けてOCV領域ファイルを作成し、遅延ライブラリを用いてレイアウトされた回路に対して遅延計算を行い、遅延計算結果とOCV領域ファイルの領域ごとの第2OCV係数を用いてタイミング解析を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体設計において、電源電圧降下を考慮したタイミング解析方法、タイミング解析装置、およびタイミング解析プログラムに関する。
【背景技術】
【0002】
近年の半導体設計では、半導体の微細化と規模の拡大に伴う電源電圧降下(以下、IR−Dropと称する場合がある。)の影響により、遅延劣化が顕著になってきている。このため、タイミング設計においては、IR−Dropを考慮することが不可欠になってきている。さらに、IR−Dropの影響を加味してタイミングの検証を行う際には、半導体の高速化によってタイミング制約が厳しいものとなっていることから、タイミングの検証に要する処理時間が増加している。
【0003】
タイミング解析に要する処理時間は製品開発期間に大きく影響を及ぼす。従って、製品開発コストを下げるためには、IR−Dropの影響を考慮したタイミング解析を、高速に処理可能とすることが強く求められている。
【0004】
例えば特許文献1には、IR―Dropを考慮したタイミング解析に関して、処理時間の短縮化を目的とするタイミング検証方法が開示されている。この方法は、IR−Drop解析に要する処理時間の短縮を目的とする技術であり、ECOによってタイミングエラー修正を繰り返す際に、1回目の処理において、作成された電圧降下リストを用いてタイミング解析を行なう一方で、2階目以降の処理において、更新された電圧降下リストを用いてタイミング解析を行なうものである。これにより、精度を保ちながら、処理時間の短縮を図っている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−112268号
【特許文献2】特開平11?259555号
【非特許文献】
【0006】
【非特許文献1】菊池原秀行、栗本雅弘、田代雅久、菊池秀和、堀川正永著、「シグナルインテグリティを考慮したタイミング収束手法」、沖テクニカルレビュー、2003年10月/第195号Vol.70 NO.4
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、タイミング解析を行う際の処理フローとしては、遅延計算を行う工程と、タイミング検証(STA)を行う工程と、を含んだタイミング解析処理フローがよく知られている(例えば非特許文献1を参照。)。
【0008】
また、最も典型的な遅延計算方法の1つとして、セルの遅延時間を記述したセル遅延ライブラリを使用する方法が知られている(例えば、特許文献2を参照)。この方法は、セルベースの集積回路の遅延計算をその対象としている。セル遅延ライブラリには、典型的には、セルの遅延時間の入力波形鈍り(即ち、入力信号のSlew)、及び/又は負荷容量に対する依存性を記述したテーブルが格納される。そして、この方法では、計算対象の集積回路のネットリストが与えられると、セル遅延ライブラリのテーブルルックアップによって、対象の集積回路に集積化されているセルそれぞれの遅延時間が取得され、取得された各セルの遅延時間から対象部分の遅延計算が行われる。
【0009】
しかしながら、遅延ライブラリを使用して遅延計算を行うという従来手法に関して、IR−Dropを考慮して遅延計算を行う場合には、少なくとも2つの異なる電圧において遅延ライブラリを読み込み、各インスタンスにおける電圧について遅延計算を行う必要がある。この結果、インスタンスの電圧値における遅延値を補間することで遅延を求めるために、多くの計算時間が必要になる。すなわち、遅延計算において複数の遅延ライブラリを必要とするために、遅延計算に多くの処理時間を要するという問題がある。
【0010】
以下、この問題点について、特許文献1に開示されたタイミング検証方法を例にして具体的に説明する。
図11に、特許文献1に開示されたタイミング検証方法に関するタイミング解析処理フローを示す。図11に示すように、タイミング解析処理フローには、遅延計算を行う工程(ステップS801)と、STA(Static Timing Analysys)を行う工程(ステップS802)と、が含まれている(特許文献1の段落0028など参照)。また、図11では、IR−Dropによる影響をタイミング検証に反映させるために、インスタンス毎のIR−Drop値リスト(F110)が、遅延計算に先立って作成されている。
【0011】
ここで、ステップS801での遅延計算処理に関して、特許文献1にはその詳細が明確には記載されていないものの、ネットリストファイル(F101)と、SPEFファイル(F103)と、遅延ライブラリ(F105)と、インスタンス毎のIR−Drop値リスト(F111)と、が入力されて、インスタンスの遅延値と配線の遅延値についての遅延計算を行っているものと考えられる。
【0012】
上述したように、遅延ライブラリを使用する典型的な遅延計算方法(特許文献2など)では、遅延ライブラリの電圧条件で遅延計算を行う。このため、特許文献1に開示されたタイミング検証方法においても同様の遅延計算方法が採用されているならば、ステップS801で使用される遅延ライブラリに関して、インスタンス毎のIR−Drop値リスト(F110)に記載されたインスタンスの電圧単位に応じて、遅延ライブラリを準備する必要がある。この結果、ステップS801の遅延計算処理に際しては、多数の遅延ライブラリを必要とし、かつ、多数の遅延ライブラリを読み込む必要がある。すなわち、ステップS801の遅延計算処理では、少なくとも2つの異なる電圧での遅延ライブラリを読み込み、それぞれの電圧値での遅延計算を行い、インスタンスの電圧値における遅延値を補間して求める必要がある。このため、ステップS801での遅延計算には多くの処理時間を要することになる。
【0013】
本発明は、上記事情に鑑みてなされたものであり、遅延計算に要する処理時間を短縮して、タイミング解析全体に要する処理時間を短縮可能なタイミング解析方法、タイミング解析装置、およびタイミング解析プログラムを提供する。
【課題を解決するための手段】
【0014】
本発明の第1の態様にかかるタイミング解析方法は、半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う電圧降下解析ステップと、前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する電圧降下領域ファイル作成ステップと、遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成するばらつき領域ファイル作成ステップと、遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う遅延計算ステップと、前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行うタイミング解析ステップと、を有する。
【0015】
本発明の第2の態様にかかるタイミング解析装置は、半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う電圧降下解析手段と、前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する電圧降下領域ファイル作成手段と、遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成するばらつき領域ファイル作成手段と、遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う遅延計算手段と、前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行うタイミング解析手段と、を備える。
【0016】
本発明の第2の態様にかかるタイミング解析プログラムは、半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う処理と、前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する処理と、遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成する処理と、遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う処理と、前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行う処理と、をコンピュータに実行させる。
【発明の効果】
【0017】
本発明によれば、遅延計算に要する処理時間を短縮して、タイミング解析全体に要する処理時間を短縮可能なタイミング解析方法、タイミング解析装置、およびタイミング解析プログラムを提供することができる。
【図面の簡単な説明】
【0018】
【図1】実施の形態1にかかるタイミング解析装置を実施するためのコンピュータシステム構成の一例を示す図である。
【図2】実施の形態1にかかるタイミング解析装置によるタイミング解析の手順を示すフローチャートである。
【図3】実施の形態1にかかるIR−Drop解析結果ファイルの出力例を示す図である。
【図4】実施の形態1にかかるIR−Drop解析結果ファイルに記載された情報を、半導体チップ上の領域で概念的に表現した図である。
【図5】実施の形態1にかかる電圧降下領域ファイルの出力例を示す図である。
【図6】実施の形態1にかかる電圧降下領域ファイルに記載された情報を、半導体チップ上の領域で概念的に表現した図である。
【図7】実施の形態1にかかるOCV係数値ファイルの例を示す図である。
【図8】実施の形態1にかかるOCV領域ファイルの出力例を示す図である。
【図9】実施の形態1にかかる遅延計算・領域毎OCVのSTA処理について、より詳細な手順を示すフローチャートである。
【図10】実施の形態1にかかるSTA処理について、より詳細な手順を示すフローチャートである。
【図11】本発明の課題を説明するための図である。
【発明を実施するための形態】
【0019】
実施の形態1.
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略している。なお、各図面において、同一の要素には同一の符号を付し、必要に応じて重複説明を省略する。
【0020】
図1〜図10を用いて、本実施の形態にかかるタイミング解析方法、タイミング解析装置、およびタイミング解析プログラムについて説明する。
まず本実施の形態に係るタイミング解析装置のハードウェア構成について、図1を参照しながら説明する。
【0021】
図1は、本実施の形態にかかるタイミング解析装置を実施するためのコンピュータシステム構成の一例を示す図である。図1に示すように、コンピュータシステム300は、サーバ301と、ネットワーク305と、複数のコンピュータ装置306と、を備えている。
【0022】
まず、ネットワーク305は、コンピュータ装置306とサーバ301との間の通信を接続する。例えば、ネットワーク305は、移動体通信網や、専用線網や、LAN(Local Area Network)といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。
【0023】
サーバ301は、CPU(Central Processing Unit)で構成される処理部302と、記録媒体303と、入出力インターフェースである入出力部304と、を用いて構成されている。
【0024】
また、サーバ301は、本実施の形態におけるタイミング解析装置を実現するための実行プログラムや、ネットリストデータ、インスタンスの情報などのデータを、記録媒体303に記憶している。実行プログラムには、後述するタイミング解析処理のためのプログラム(タイミング解析プログラム)が含まれている。記録媒体303は、ハードディスクやRAM(Random Access Memory)やROM(Read Only Memory)などの記憶装置を用いて構成されている。
【0025】
さらに、サーバ301は、記録媒体303に記憶されたサーバ301の機能を実現するための実行プログラムを、処理部302により読み込んで実行することで、サーバ301の機能を実現する。なお、各実行プログラムやデータは、サーバ301の管理者により、キーボードやマウスや、LCD(Liquid Crystal Display)といった入出力部304を用いて、外部から記録媒体303へと記憶される。上述の構成により、サーバ301は、実行プログラムやデータを、ネットワーク305を介してコンピュータ装置306へ提供することが可能である。
【0026】
各コンピュータ装置306は、通信部307と、記録媒体308と、CPUで構成される処理部309と、入出力インターフェースである入出力部310と、を用いて構成されている。
【0027】
また、コンピュータ装置306は、本実施の形態におけるタイミング解析装置を実現するための生成システムを実行する。コンピュータ装置306は、例えば、パーソナルコンピュータのような一般的な汎用コンピュータである。コンピュータ装置306は、通信部307を備え、ネットワーク305を介してサーバ301と通信が可能である。コンピュータ装置306は、ネットワーク305を介してサーバ301へと接続して、本実施の形態におけるタイミング解析装置を実現するための実行プログラムやデータを取得し、記録媒体308へと記憶する。
【0028】
コンピュータ装置306は、記録媒体308に記憶されたコンピュータ装置306の機能を実現するための実行プログラム(タイミング解析プログラムを含む)を、処理部309により読み込んで実行することで、コンピュータ装置306の機能を実現する。なお、コンピュータ装置306は、コンピュータ装置306の使用者との入出力インターフェースである入出力部310を備えている。入出力部310は、キーボードやマウスや、LCDを用いて構成されている。
【0029】
なお、本実施の形態におけるタイミング解析装置の実行プログラムは、サーバ301の記録媒体303に記憶される形態には限定しない。実行プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータ装置306に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、実行プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータ装置306に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、実行プログラムをコンピュータ装置306に供給できる。
【0030】
次に、図2を用いて、本実施の形態にかかるタイミング解析装置によるタイミング解析方法について説明する。図2は、タイミング解析装置によるタイミング解析の手順を示すフローチャートである。以下の説明では、タイミング解析処理は、タイミング解析装置において、コンピュータ装置306の処理部309が読み込んだタイミング解析プログラムに従って実行される場合を例に説明するが、タイミング解析処理は、サーバ301の処理部302が読み込んだタイミング解析プログラムに従って実行されてもよい。
【0031】
まず、ステップS101において、レイアウト処理が行われる。ステップS101では、処理部309は、実際の半導体チップ上の集積回路について、インスタンスの配置やインスタンスを接続する配線をレイアウトし、インスタンスに関する物理的な情報(インスタンスの配置座標や形状、インスタンスを接続する配線の形状など)を、レイアウトデータファイル(F102)に出力する。
【0032】
レイアウトデータファイル(F102)には、レイアウトとして、半導体チップ上のどこにインスタンスが配置され、また、どのような形状の配線によってインスタンスが接続されているかを示す、物理的な情報が記載される。本実施の形態では、レイアウトデータファイル(F102)の出力は、例えば、OpenEDA(OpenEDA:https://www.si2.org/openeda.si2.org/projects/lefdef)で定められるDEF(Design Exchange Format)/LEF(Library Exchange Format)のような、一般的な出力形式として出力すればよい。
【0033】
また、処理部309は、インスタンスに関する論理的な情報(インスタンスの情報、インスタンスの端子情報、端子間の接続情報など)を、ネットリストファイル(F101)に出力する。ここで、インスタンスの情報には、半導体チップ上の配置座標・形状、インスタンスの名称、インスタンスのセル名、インスタンスの端子名、端子間の接続関係を表す情報が含まれる。なお、セルとは、例えばAND回路などの回路ブロックを意味する。また、インスタンスとは、特定のセルを識別するために一意に付与される称呼であり、同一のセルであっても配置場所や配線が異なるセルを識別するために用いられる。
【0034】
次に、ステップS102において、寄生パラメータの抽出処理が行われる。ステップS102で行われる寄生パラメータの抽出処理は、一般的な寄生パラメータ抽出処理である。処理部309は、ステップS101で出力したレイアウトデータファイル(F102)を入力として、レイアウトデータファイル(F102)に記載された配線の形状から、寄生抵抗、寄生容量を抽出し、抽出した寄生パラメータをSPEFファイル(F103)に出力する。
【0035】
SPEFファイル(F103)は、一般的に知られた形式のファイルである。SPEFファイル(F103)のSPEFは、Standard Parasitic Exchange Formatの略である。SPEFファイル(F103)は、IEEEの標準団体でフォーマットが規定されている。また、SPEFファイル(F103)には、各配線の寄生容量、寄生抵抗が記載される。
【0036】
次に、ステップS103において、電圧降下領域ファイル(F106)の存在のチェック処理が行われる。処理部309は、電圧降下領域ファイル(F106)の存在の有無を判断し、判断結果に応じて、後続処理の条件分岐を行う。タイミング解析処理における初期状態では、電圧降下領域ファイル(F106)が存在しないため、ステップS104のIR−Drop解析処理へと処理が進められる。後述するS105において電圧降下領域ファイル(F106)が作成された場合は、S104〜S106の処理は行われずに、S107の遅延計算・領域毎のOCVのSTA処理へと処理が進められる。
【0037】
次に、ステップS104において、IR−Drop解析処理が行われる。ステップS104で行われるIR−Drop解析処理は、一般的なIR−Drop解析処理である。処理部309は、半導体チップ上にレイアウトされた回路(インスタンスと、その接続情報)に対して電圧降下解析を行う。より具体的には、処理部309は、ステップS101で出力したレイアウトデータファイル(F102)と、ステップS102で出力したSPEFファイル(F103)と、を入力として、IR−Drop解析処理を行い、半導体チップ内の電圧降下を解析する。処理部309は、半導体チップ内の電圧降下の解析結果を、IR−Drop解析結果ファイル(F104)に出力する。
【0038】
IR−Drop解析とは、半導体チップ内の電圧降下を解析するものである。IR−Drop解析結果ファイル(F104)には、インスタンス名、インスタンスの電圧値、インスタンスのセル名、インスタンスの座標、インスタンスの形状(サイズ)が記載される。図3に、IR−Drop解析結果ファイル(F104)の出力例を示す。図3では、例えば、インスタンス名として「CPU1/ADD/REG1」が、インスタンスの電圧値として「1.090V」が、セル名として「CELL1」が、座標として「−120,−50,300,80」が、サイズとして「20 20」が、それぞれ記載されている。
【0039】
次に、ステップS105において、IR−Dropマップ作成処理が行われる。ステップS105では、IR−Dropマップ作成処理として、電圧降下領域ファイル(F106)作成処理が行われる。処理部309は、電圧降下解析の結果に基づいて、半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイル(F106)を作成する。より具体的には、処理部309は、ステップS104で出力したIR−Drop解析結果ファイル(F104)を入力として、IR−Drop解析結果ファイル(F104)から、電圧降下領域ファイル(F106)を作成する。処理部309は、半導体チップ上での電圧降下に関して、どのような領域で、どの電圧となるかを示す情報を、電圧降下領域ファイル(F106)に出力する。
【0040】
IR−Drop解析結果ファイル(F104)には、図3に例示したように、インスタンス名、インスタンスの電圧値、インスタンスのセル名、インスタンスの座標、インスタンスの形状(サイズ)が記載されている。図4は、IR−Drop解析結果ファイル(F104)に記載された情報を、半導体チップ上の領域で概念的に表現した図である。図4に示すように、電源電圧から電圧降下した各インスタンスの電圧を、グラデーションとして表示することで、半導体の領域における電圧の分布を表現することができる。
【0041】
本実施の形態では、ステップS105において、処理部309は、半導体において表現される領域を矩形領域として、領域の優先順位、領域の電圧値、領域の座標を、電圧降下領域ファイル(F106)に出力する。より具体的には、処理部309は、IR−Drop解析結果ファイル(F104)を参照して、まず、最も電圧降下する領域を検索し、その領域の優先順位を1とし、その領域の電圧と、その矩形領域の座標(左下、右上)を求め、電圧降下領域ファイル(F106)に出力する。以下、同様にして、次に電圧降下する領域を検索し、その領域の優先順位を2とし、その領域の電圧とその矩形領域の座標を求め、電圧降下領域ファイル(F106)に出力する。
【0042】
ここで、図5及び図6を参照して、本実施の形態にかかる電圧降下領域ファイル(F106)について具体的に説明する。図5に、電圧降下領域ファイル(F106)の出力例を示す。図5に示すように、電圧降下領域ファイル(F106)には、領域の優先順位(Priority)、領域の電圧値(Volt)、領域の座標(xll、yll、xur、yur)が、行単位に記載されている。電圧降下領域ファイル(F106)には、第1カラムには領域の優先順位が記載され、第2カラムには領域の電圧値が記載され、第3カラム〜第6カラムには領域の座標が記載されている。なお、図5の例では、各領域の電圧値は0.02V範囲ごとに区分されており、この区分単位は、図3に示したインスタンスの電圧値が記載された単位と同一である。
【0043】
領域の優先順位は、半導体の領域のうちで、電圧降下による影響により、低い電圧値となっている領域ほど、高い優先順位が定められる。例えば、電圧降下による影響により、最も電圧が低くなっている領域の優先順位を1とし、その次に電圧が低い領域の優先順位を2として以降の優先順位が定められる。なお、次に低い電圧値が電源電圧値となった場合には、その領域の優先順位は、最も低い優先順位となる。
【0044】
また、本実施の形態では、領域を矩形で表現していることから、その領域を表現するために、領域の座標(xll、yll、xur、yur)を、矩形領域の左下隅および右上隅の座標(X座標左下、Y座標左下、X座標右上、Y座標右上)を用いて表現している。
【0045】
なお、本実施の形態では、領域を矩形領域として表現することで処理の簡易化を図っているが、これに限定されず、例えば、楕円形状などの他の形状の領域として表現してもよい。また、本実施の形態では、各領域に優先順位を定めることで、互いに領域が包含関係にある場合においてもインスタンスがいずれの領域に含まれるかを容易に識別可能としているが、これに限定されない。例えば、領域が包含関係にある場合においても、最も電圧が低い領域を第一の領域とし、次に電圧が低くて第一の領域を囲む領域を第二の領域とし、さらに、次に電圧が低くて第二の領域を囲む領域を第三の領域として定め、第一の領域、第二の領域から第一の領域を除いた領域、第三の領域から第二の領域を除いた領域、を含む各領域についての電圧値を電圧降下領域ファイル(F106)に記載するようにしてもよい。
【0046】
図6は、電圧降下領域ファイル(F106)に記載された情報を、半導体チップ上の領域で概念的に表現した図である。図6に示すように、半導体の領域における電圧の分布を、優先順位が付された矩形領域ごとに表現することができる。
【0047】
次に、ステップS106において、OCV係数算出処理が行われる。処理部309は、OCV係数値ファイル(F107)を用いて、電圧降下領域ファイル(F106)に記載された所定の電圧範囲に対応するOCV係数を領域ごとに算出し、その算出したOCV係数と領域とを対応付けて記載したOCV領域ファイル(F108)を作成する。より具体的には、処理部309は、ステップS105で出力した電圧降下領域ファイル(F106)と、OCV係数値ファイル(F107)と、を入力として、電圧降下領域ファイル(F106)およびOCV係数値ファイル(F107)から、電圧降下領域ファイル(F106)中の電圧値に対するOCV係数の値(以下、単にOCV値と称する場合がある。)を算出し、算出したOCV値をOCV領域ファイル(F108)に出力する。
【0048】
ここでOCV係数について簡単に説明する。OCVとは、On Chip Variationの略である。OCVは、半導体チップ内での素子の特性による遅延時間のばらつきを表す(例えば、http://techon.nikkeibp.co.jp/article/WORD/20090107/163763/を参照。)通常、OCVの係数として、OCVによって遅い方向へバラついてしまった場合の遅延係数「α(late)」と、速い方向へバラついてしまった場合の遅延係数「β(early)」と、が事前に用意される。そして、検証対象の回路中で、遅い方向へバラつくとタイミングが厳しくなる素子に対しては、その遅延値にα(late)を乗じる。一方で、速い方向へバラつくとタイミングが厳しくなる素子に対しては、その遅延値にβ(early)を乗じる。このような条件下で、STAを使用したタイミング検証が実施される。この条件下でも、タイミング検証によりタイミングを満足するように設計することで、OCVによって素子がバラついたとしても、動作を保証することができる。タイミング検証で使用するこの係数を、Derating係数、或いは、OCV係数と呼んでいる。
【0049】
OCV係数値ファイル(F107)には、電圧値と、その電圧値に応じたOCV係数値と、が記載されている。図7に、OCV係数値ファイル(F107)の例を示す。図7に示すように、OCV係数値ファイル(F106)には、所定の電圧単位で、電圧値(Volt)とOCV値(OCV−Factor)が行単位に記載されている。図7の例では、0.05V単位で、各行に、電圧値と、その電圧値に応じたOCV値が記載されている。
【0050】
上述したように、遅延係数としては、α、βの2つの値が存在するが、本実施の形態では、α、βともに同一の値として考えて、1つのOCV値を用いて表現する。また、本実施の形態では、OCV係数値ファイル(F107)に記載されたOCV値は、ある固定された電圧における遅延のばらつきを表現するためのOCV値を用いるのではなく、電圧降下を考慮した複数の電圧値のそれぞれに応じたOCV値を用意する。これらOCV値は、予め適当な値が算出されて、OCV係数値ファイル(F107)として、記録媒体308などに予め記録されている。
【0051】
OCV領域ファイル(F108)は、電圧降下により電圧降下した領域毎に、OCV値が記載されたファイルである。OCV領域ファイル(F108)には、領域の優先順位(Priority)、領域のOCV値(OCV)、領域の座標(xll、yll、xur、yur)が、行単位に記載される。
【0052】
OCV係数算出処理の具体例について、図5に例示した電圧降下領域ファイル(F106)と、図7に例示したOCV係数値ファイル(F107)と、を用いて、OCV領域ファイル(F108)を出力する場合を例に説明する。まず、図5に記載された優先順位が1の領域に関しては、領域の電圧が1.090Vであることから、図7に記載された電圧値のうちで1.10VのOCV値(1.00)と1.05VのOCV値(0.96)を用いて、1.090VのOCV値を補間処理により計算で求める。そして、図5に記載された電圧降下領域ファイル(F106)中の電圧値を、求めたOCV値によって置き換えて、OCV領域ファイル(F108)に出力する。同様にして、次の優先順位の領域に関する情報が記載された次の行についても、電圧降下領域ファイル(F106)中の電圧値に対するOCV値を、OCV係数値ファイル(F107)に記載された電圧値およびOCV値を用いて補間処理により求め、電圧降下領域ファイル(F106)中の電圧値を、求めたOCV値によって置き換えて、OCV領域ファイル(F108)に出力する。このようにして、電圧降下領域ファイル(F106)中の全ての行の電圧値が、それぞれ求めたOCV値によって置き換えられて、OCV領域ファイル(F108)に出力される。
【0053】
図8に、OCV領域ファイル(F108)の出力例を示す。図8に記載されたOCV値(OCV)は、図7に例示したOCV係数値ファイル(F107)を用いて、図5に例示した電圧降下領域ファイル(F106)の電圧値を、OCV値に置き換えたものとなっている。
【0054】
次に、ステップS107において、遅延計算・領域毎のOCVのSTA処理が行われる。処理部309は、ステップS102で出力したSPEFファイル(F103)と、遅延ライブラリ(F105)と、ステップS106で出力したOCV領域ファイル(F108)と、ステップS101で出力したネットリストファイル(F101)と、を入力として、遅延計算と、領域毎のOCVのSTA処理を行い、タイミング解析を行う。なお、S107での処理の詳細については後述する。
【0055】
次に、ステップS108において、ステップS107におけるタイミングエラーの存在のチェック処理が行われる。処理部309は、タイミングエラーの存在の有無を判断し、判断結果に応じて、後続処理の条件分岐を行う。処理部309は、ステップS108において、タイミングエラーがないと判断した場合には、処理を終了する。一方で、タイミングエラーがあると判断した場合には、ステップS101へと戻り、処理を続ける。
【0056】
以下、ステップS108においてタイミングエラーがあると判断された場合に、以後に実行される手順について、簡単に説明する。
まず、S101のレイアウト処理において、処理部309は、タイミングエラー箇所のレイアウトを修正し、修正した結果を、レイアウトデータファイル(F102)およびネットリストファイル(F101)に上書きする。
【0057】
次に、ステップS102の寄生パラメータ抽出処理において、処理部309は、S101で修正したレイアウトデータファイル(F101)から、寄生パラメータの抽出を行い、抽出した寄生パラメータをSPEFファイル(F103)に出力する。
【0058】
次に、ステップS103の条件分岐において、処理部309は、電圧降下領域ファイル(F106)の存在をチェックする。ここで、すでに、電圧降下領域ファイル(F106)が作成されているため、処理部309は、ステップS107へと処理を進め、遅延計算・領域毎のOCVのSTA処理におけるタイミング解析を行う。
【0059】
次に、ステップS108の条件分岐において、処理部309は、ステップS107でのタイミングエラーの有無をチェックし、エラーがある場合には、同様にステップS101へと戻りレイアウトを修正する。ステップS108でタイミングエラーがない場合には、処理を終了する。
【0060】
このようにして、ステップS107におけるタイミングエラーがなくなるまでの間、ステップS101、ステップS102、ステップS103、ステップS107の処理が繰り返し行われる。
【0061】
ここで、ステップS103での条件分岐により、図2に例示するタイミング解析処理において、1回目のみステップS104〜S106の処理が行われ、2回目以降は、ステップS104〜S106の処理は繰り返して行われない。このため、IR−Drop解析が既に実行されて電圧降下領域ファイル(F106)が一度作成された以降は、電圧降下領域ファイル(F106)の作成や、電圧降下領域ファイル(F106)を作成するためのIR−Drop解析は実行されないため、タイミング解析に要する処理時間の短縮化を図ることができる。
【0062】
続いて、図9および図10を参照して、ステップS107における遅延計算・領域毎OCVのSTA処理の詳細を説明する。
図9は、ステップS107の遅延計算・領域毎OCVのSTA処理について、より詳細な手順を示すフローチャートである。
【0063】
まず、ステップS701において、遅延計算処理が行われる。ステップS701で行われる遅延計算処理は、一般的な遅延計算処理である。処理部309は、ステップS101で出力したネットリストファイル(F101)から、インスタンスの情報、インスタンスの端子情報、端子間の接続情報を求め、ステップS102で出力したSPEFファイル(F103)と、遅延ライブラリ(F105)と、を読み込み、遅延ライブラリの電圧値で遅延計算を行い、各インスタンスの遅延値、各配線の遅延値を、SDFファイル(F109)に出力する。ここで、一般的な遅延計算では、インスタンスの電圧降下は考慮しないものであり、本実施の形態にかかる遅延計算に関しても、電圧降下については考慮していない。
【0064】
SDFファイル(F109)のSDFは、Standard Delay Formatの略である。SDFファイル(F109)は、IEEEの標準団体でフォーマットが規定されている。また、SDFファイル(F109)には、各インスタンスの遅延値、各配線の遅延値が記載される。
【0065】
次に、ステップS702において、STA処理が行われる。処理部309は、遅延計算の結果と、OCV領域ファイル(F108)に記載された領域ごとのOCV値と、を用いて、レイアウトされた回路に対してタイミング解析を行う。より具体的には、処理部309は、ステップS701で出力したSDFファイル(F109)と、ステップS101で出力したネットリストファイル(F101)と、ステップS106で出力したOCV領域ファイル(F108)と、を読み込み、タイミング解析を行う。
【0066】
図10は、ステップS702のSTA処理について、より詳細な手順を示すフローチャートである。
まず、ステップS7021において、ネットリストファイル(F101)の読み込み処理が行われる。処理部309は、ステップS101で出力したネットリストファイル(F101)を読み込み、ネットリストファイル(F101)に記載されたインスタンス情報、インスタンスの端子、端子間の接続情報を、データD7021として記憶する。
【0067】
次に、ステップS7022において、OCV係数値の読み込み処理が行われる。処理部309は、ステップS106で出力したOCV領域ファイル(F108)を読み込み、データD7022として記憶する。上述した図8で例示したように、OCV領域ファイル(F108)は、行単位に6つのカラムを用いて記載され、2次元のデータとして表現されている。図8では、例えば、1行目には、領域の優先順位として「1」が、OCV値として「1.00」が、左下X座標として「−120」が、左下Y座標として「−50」が、右上X座標として「300」が、右上Y座標として「80」が、それぞれ記載されている。
【0068】
次に、ステップS7023において、遅延計算の読み込み処理が行われる。処理部309は、ステップS701で出力したSDFファイル(F109)を読み込み、読み込んだSDFファイル(F109)に記載されたインスタンスの遅延値、配線の遅延値を、データD7021に追加して、データD7023として記憶する。より具体的には、処理部309は、データD7021のインスタンス情報にSDFファイル(F109)のインスタンスの遅延値を追加し、データD7021の端子間の接続情報にSDFファイル(F109)の配線の遅延値を追加し、データD7023として記憶する。データD7023は、インスタンスについての全ての遅延値と、インスタンスを接続する端子間の配線についての全ての遅延値が記載される。
【0069】
次に、ステップS7024において、OCV係数掛けの処理が行われる。処理部309は、データD7023に記載されたインスタンスの遅延値および配線の遅延値に対して、そのインスタンスが含まれる領域のOCV値を、D7022に記載されたOCV値のうちから求め、求めたOCV値を遅延値に乗算し、データD7024として記憶する。より具体的には、処理部309は、データD7023に記載されたインスタンスの遅延値および配線の遅延値について、インスタンスの座標から、データD7022に記載された優先順位と座標を参照して該当する領域のOCV値を求め、求めた領域のOCV値を、データD7023に記載された遅延値に乗算して、乗算後の遅延値をデータD7024に出力して記憶する。ここで、インスタンスの座標と、データD7022の領域のOCV値と、から該当するOCV値を求めに際しては、一般的に知られた高速な検索手法を用いればよく、例えばハッシュ法を用いて、インスタンスの座標を包含する領域のOCV値を高速に求める。
【0070】
次に、ステップS7025において、パス(PATH)毎のタイミング計算処理が行われる。処理部309は、ステップS7024のOCV係数掛けにおいてOCV値が乗算された遅延値(データD7024に記載されたOCV値)を用いて、検査対象となるパス毎のタイミング計算を行う。処理部309は、クロック信号とデータ信号の妥当性を、パス毎に解析する。より具体的には、処理部309は、データD7024に記憶されたインスタンス情報とインスタンスの端子間の接続情報を参照して、クロック信号とデータ信号の到達時間を、遅延値から計算し、到達する時間の制約を満足するものか否かを解析する。そして、処理部309は、解析の結果、到達する時間の制約を満足しない場合には、エラーとして出力する。
【0071】
以上に説明した本実施の形態によれば、所定の電圧範囲毎に電圧降下した領域を設定し、その領域ごとに算出したOCV値を用いてタイミング解析を実施することができるため、従来の電圧降下を考慮したタイミング解析手法と比較して遅延計算の処理時間を短縮することができる。このため、タイミング解析処理全体に要する処理時間を短縮することができる。以下、その理由を具体的に説明する。
【0072】
まず、電圧降下を反映させるために、図2に示したステップS105において、IR−Dropマップ作成処理が行われる。
ステップS105のIR−Dropマップ作成処理では、電圧降下領域ファイル(F106)を作成する。電圧降下領域ファイル(F106)は、IR−Drop解析結果ファイル(F104)を、半導体チップ上の領域として表現するものである。電圧降下領域ファイル(F106)のファイルサイズは、半導体チップ上の領域を示すだけのファイルであるため、少量のファイルサイズにより表現することができる。
【0073】
また、ステップS105のIR−Dropマップ作成処理では、電圧降下の解析結果を、所定の電圧範囲ごとに区分して、その区分した電圧範囲ごとに境界を求めることで、領域を定める処理である。この処理は、IR−Drop解析結果ファイル(F104)の読み込み結果から、電圧範囲の境界を求めて、電圧降下領域ファイル(F106)に出力するものである。このため、IR−Drop解析結果ファイル(F104)の読み込みに要する処理時間からほぼ増加せずに処理できる。
【0074】
次に、ステップS106では、OCV係数値ファイル(F107)を用いて、電圧降下領域ファイル(F106)に記載された電圧値をOCV値に変換し、OCV領域ファイル(F108)として出力する。すなわち、半導体チップ上の各領域に対して、領域毎に定義されている電圧値を、補間処理によってOCV値に置き換えるものであり、単純な処理である。OCV領域ファイル(F108)のファイルサイズは、電圧降下領域ファイル(F106)のファイルサイズと同等のファイルサイズである。このため、ステップS106での処理を実行するために、少量のファイルサイズを扱う処理時間が必要となるが、処理時間はわずか数秒の増加で済む。
【0075】
次に、ステップS107では、遅延計算・領域毎のOCVのSTA処理が行われる。具体的には、図9に示したステップS701において、電圧降下を考慮しない遅延計算を行い、ステップS702において、インスタンスの座標から、OCV領域ファイル(F108)中の領域を特定してそのOCV値を求め、求めたOCV値を係数として遅延値に乗算することで、STAを行う。すなわち、本実施の形態では、電圧降下の解析結果をSTAにおいて反映させる処理に関して、遅延計算において、複数の遅延ライブラリを用いた補間処理によって電圧降下の解析結果を求める、という手順ではない。このため、電圧降下を考慮した遅延計算を行う必要がない。本実施の形態では、電圧降下の解析結果を半導体チップ上の領域として表現し、電圧降下の解析結果を領域ごとのOCV係数に置き換えた上で、STAにおいてこのOCV係数を反映させる、という手順である。
【0076】
さらに、上述したように、図9に示したステップS701での遅延計算処理は、一般的な遅延計算処理である。ステップS701での遅延計算処理は、電圧降下を考慮しない遅延計算を行うため、遅延計算に要する処理時間は短いものである。本実施の形態では、図10に示したステップS7022のOCV係数値読み込み処理として、少量のファイルの読み込み処理を行うために数秒の処理時間を要する。また、ステップS7024のOCV係数掛け処理として、インスタンスの座標から、データD7023を参照してOCV値を求める処理を行うために処理時間が増加する。しかし、いずれの処理に関しても、ごく少量のファイルサイズのファイルを扱うために、必要とする計算時間は短い。なお、データD7022を参照してOCV値を求める際には検索処理を必要とするが、一般的に知られている高速な検索法(例えば、ハッシュ法)を用いることで、ステップS7024のOCV係数掛け処理の実行により増加する処理時間は、1%以下の増加に抑えることができる。このため、遅延計算に要する処理時間を短くしつつ、タイミング解析を行うことができる。
【0077】
従って、本実施の形態によれば、精度を落とすことなく、遅延計算時間を短くすることができる。同時に、本実施の形態では、少量のファイルサイズであるOCV領域ファイル(F108)を作成し、OCV領域ファイル(F108)の各領域に対する電圧降下をOCV値として考慮しているために、STA処理において、電圧降下を考慮したタイミング計算を、最低限の処理時間の増加で行うことができる。このため、遅延計算に要する処理時間を短縮して、タイミング解析全体に要する処理時間を短縮することができる。
【0078】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0079】
300 コンピュータシステム、
301 サーバ、
302 処理部、
303 記録媒体、
304 入出力部、
305 ネットワーク、
306 コンピュータ装置、
307 通信部、
308 記録媒体、
309 処理部、
310 入出力部、
F101 ネットリストファイル、
F102 レイアウトデータファイル、
F103 SPEFファイル、
F104 IR−Drop解析結果ファイル、
F105 遅延ライブラリ、
F106 電圧降下領域ファイル、
F107 OCV係数値ファイル、
F108 OCV領域ファイル、
F109 SDFファイル、
F110 インスタンス毎のIR−Drop値リスト、
D7021〜D7024 データ、
【技術分野】
【0001】
本発明は、半導体設計において、電源電圧降下を考慮したタイミング解析方法、タイミング解析装置、およびタイミング解析プログラムに関する。
【背景技術】
【0002】
近年の半導体設計では、半導体の微細化と規模の拡大に伴う電源電圧降下(以下、IR−Dropと称する場合がある。)の影響により、遅延劣化が顕著になってきている。このため、タイミング設計においては、IR−Dropを考慮することが不可欠になってきている。さらに、IR−Dropの影響を加味してタイミングの検証を行う際には、半導体の高速化によってタイミング制約が厳しいものとなっていることから、タイミングの検証に要する処理時間が増加している。
【0003】
タイミング解析に要する処理時間は製品開発期間に大きく影響を及ぼす。従って、製品開発コストを下げるためには、IR−Dropの影響を考慮したタイミング解析を、高速に処理可能とすることが強く求められている。
【0004】
例えば特許文献1には、IR―Dropを考慮したタイミング解析に関して、処理時間の短縮化を目的とするタイミング検証方法が開示されている。この方法は、IR−Drop解析に要する処理時間の短縮を目的とする技術であり、ECOによってタイミングエラー修正を繰り返す際に、1回目の処理において、作成された電圧降下リストを用いてタイミング解析を行なう一方で、2階目以降の処理において、更新された電圧降下リストを用いてタイミング解析を行なうものである。これにより、精度を保ちながら、処理時間の短縮を図っている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−112268号
【特許文献2】特開平11?259555号
【非特許文献】
【0006】
【非特許文献1】菊池原秀行、栗本雅弘、田代雅久、菊池秀和、堀川正永著、「シグナルインテグリティを考慮したタイミング収束手法」、沖テクニカルレビュー、2003年10月/第195号Vol.70 NO.4
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、タイミング解析を行う際の処理フローとしては、遅延計算を行う工程と、タイミング検証(STA)を行う工程と、を含んだタイミング解析処理フローがよく知られている(例えば非特許文献1を参照。)。
【0008】
また、最も典型的な遅延計算方法の1つとして、セルの遅延時間を記述したセル遅延ライブラリを使用する方法が知られている(例えば、特許文献2を参照)。この方法は、セルベースの集積回路の遅延計算をその対象としている。セル遅延ライブラリには、典型的には、セルの遅延時間の入力波形鈍り(即ち、入力信号のSlew)、及び/又は負荷容量に対する依存性を記述したテーブルが格納される。そして、この方法では、計算対象の集積回路のネットリストが与えられると、セル遅延ライブラリのテーブルルックアップによって、対象の集積回路に集積化されているセルそれぞれの遅延時間が取得され、取得された各セルの遅延時間から対象部分の遅延計算が行われる。
【0009】
しかしながら、遅延ライブラリを使用して遅延計算を行うという従来手法に関して、IR−Dropを考慮して遅延計算を行う場合には、少なくとも2つの異なる電圧において遅延ライブラリを読み込み、各インスタンスにおける電圧について遅延計算を行う必要がある。この結果、インスタンスの電圧値における遅延値を補間することで遅延を求めるために、多くの計算時間が必要になる。すなわち、遅延計算において複数の遅延ライブラリを必要とするために、遅延計算に多くの処理時間を要するという問題がある。
【0010】
以下、この問題点について、特許文献1に開示されたタイミング検証方法を例にして具体的に説明する。
図11に、特許文献1に開示されたタイミング検証方法に関するタイミング解析処理フローを示す。図11に示すように、タイミング解析処理フローには、遅延計算を行う工程(ステップS801)と、STA(Static Timing Analysys)を行う工程(ステップS802)と、が含まれている(特許文献1の段落0028など参照)。また、図11では、IR−Dropによる影響をタイミング検証に反映させるために、インスタンス毎のIR−Drop値リスト(F110)が、遅延計算に先立って作成されている。
【0011】
ここで、ステップS801での遅延計算処理に関して、特許文献1にはその詳細が明確には記載されていないものの、ネットリストファイル(F101)と、SPEFファイル(F103)と、遅延ライブラリ(F105)と、インスタンス毎のIR−Drop値リスト(F111)と、が入力されて、インスタンスの遅延値と配線の遅延値についての遅延計算を行っているものと考えられる。
【0012】
上述したように、遅延ライブラリを使用する典型的な遅延計算方法(特許文献2など)では、遅延ライブラリの電圧条件で遅延計算を行う。このため、特許文献1に開示されたタイミング検証方法においても同様の遅延計算方法が採用されているならば、ステップS801で使用される遅延ライブラリに関して、インスタンス毎のIR−Drop値リスト(F110)に記載されたインスタンスの電圧単位に応じて、遅延ライブラリを準備する必要がある。この結果、ステップS801の遅延計算処理に際しては、多数の遅延ライブラリを必要とし、かつ、多数の遅延ライブラリを読み込む必要がある。すなわち、ステップS801の遅延計算処理では、少なくとも2つの異なる電圧での遅延ライブラリを読み込み、それぞれの電圧値での遅延計算を行い、インスタンスの電圧値における遅延値を補間して求める必要がある。このため、ステップS801での遅延計算には多くの処理時間を要することになる。
【0013】
本発明は、上記事情に鑑みてなされたものであり、遅延計算に要する処理時間を短縮して、タイミング解析全体に要する処理時間を短縮可能なタイミング解析方法、タイミング解析装置、およびタイミング解析プログラムを提供する。
【課題を解決するための手段】
【0014】
本発明の第1の態様にかかるタイミング解析方法は、半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う電圧降下解析ステップと、前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する電圧降下領域ファイル作成ステップと、遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成するばらつき領域ファイル作成ステップと、遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う遅延計算ステップと、前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行うタイミング解析ステップと、を有する。
【0015】
本発明の第2の態様にかかるタイミング解析装置は、半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う電圧降下解析手段と、前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する電圧降下領域ファイル作成手段と、遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成するばらつき領域ファイル作成手段と、遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う遅延計算手段と、前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行うタイミング解析手段と、を備える。
【0016】
本発明の第2の態様にかかるタイミング解析プログラムは、半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う処理と、前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する処理と、遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成する処理と、遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う処理と、前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行う処理と、をコンピュータに実行させる。
【発明の効果】
【0017】
本発明によれば、遅延計算に要する処理時間を短縮して、タイミング解析全体に要する処理時間を短縮可能なタイミング解析方法、タイミング解析装置、およびタイミング解析プログラムを提供することができる。
【図面の簡単な説明】
【0018】
【図1】実施の形態1にかかるタイミング解析装置を実施するためのコンピュータシステム構成の一例を示す図である。
【図2】実施の形態1にかかるタイミング解析装置によるタイミング解析の手順を示すフローチャートである。
【図3】実施の形態1にかかるIR−Drop解析結果ファイルの出力例を示す図である。
【図4】実施の形態1にかかるIR−Drop解析結果ファイルに記載された情報を、半導体チップ上の領域で概念的に表現した図である。
【図5】実施の形態1にかかる電圧降下領域ファイルの出力例を示す図である。
【図6】実施の形態1にかかる電圧降下領域ファイルに記載された情報を、半導体チップ上の領域で概念的に表現した図である。
【図7】実施の形態1にかかるOCV係数値ファイルの例を示す図である。
【図8】実施の形態1にかかるOCV領域ファイルの出力例を示す図である。
【図9】実施の形態1にかかる遅延計算・領域毎OCVのSTA処理について、より詳細な手順を示すフローチャートである。
【図10】実施の形態1にかかるSTA処理について、より詳細な手順を示すフローチャートである。
【図11】本発明の課題を説明するための図である。
【発明を実施するための形態】
【0019】
実施の形態1.
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略している。なお、各図面において、同一の要素には同一の符号を付し、必要に応じて重複説明を省略する。
【0020】
図1〜図10を用いて、本実施の形態にかかるタイミング解析方法、タイミング解析装置、およびタイミング解析プログラムについて説明する。
まず本実施の形態に係るタイミング解析装置のハードウェア構成について、図1を参照しながら説明する。
【0021】
図1は、本実施の形態にかかるタイミング解析装置を実施するためのコンピュータシステム構成の一例を示す図である。図1に示すように、コンピュータシステム300は、サーバ301と、ネットワーク305と、複数のコンピュータ装置306と、を備えている。
【0022】
まず、ネットワーク305は、コンピュータ装置306とサーバ301との間の通信を接続する。例えば、ネットワーク305は、移動体通信網や、専用線網や、LAN(Local Area Network)といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。
【0023】
サーバ301は、CPU(Central Processing Unit)で構成される処理部302と、記録媒体303と、入出力インターフェースである入出力部304と、を用いて構成されている。
【0024】
また、サーバ301は、本実施の形態におけるタイミング解析装置を実現するための実行プログラムや、ネットリストデータ、インスタンスの情報などのデータを、記録媒体303に記憶している。実行プログラムには、後述するタイミング解析処理のためのプログラム(タイミング解析プログラム)が含まれている。記録媒体303は、ハードディスクやRAM(Random Access Memory)やROM(Read Only Memory)などの記憶装置を用いて構成されている。
【0025】
さらに、サーバ301は、記録媒体303に記憶されたサーバ301の機能を実現するための実行プログラムを、処理部302により読み込んで実行することで、サーバ301の機能を実現する。なお、各実行プログラムやデータは、サーバ301の管理者により、キーボードやマウスや、LCD(Liquid Crystal Display)といった入出力部304を用いて、外部から記録媒体303へと記憶される。上述の構成により、サーバ301は、実行プログラムやデータを、ネットワーク305を介してコンピュータ装置306へ提供することが可能である。
【0026】
各コンピュータ装置306は、通信部307と、記録媒体308と、CPUで構成される処理部309と、入出力インターフェースである入出力部310と、を用いて構成されている。
【0027】
また、コンピュータ装置306は、本実施の形態におけるタイミング解析装置を実現するための生成システムを実行する。コンピュータ装置306は、例えば、パーソナルコンピュータのような一般的な汎用コンピュータである。コンピュータ装置306は、通信部307を備え、ネットワーク305を介してサーバ301と通信が可能である。コンピュータ装置306は、ネットワーク305を介してサーバ301へと接続して、本実施の形態におけるタイミング解析装置を実現するための実行プログラムやデータを取得し、記録媒体308へと記憶する。
【0028】
コンピュータ装置306は、記録媒体308に記憶されたコンピュータ装置306の機能を実現するための実行プログラム(タイミング解析プログラムを含む)を、処理部309により読み込んで実行することで、コンピュータ装置306の機能を実現する。なお、コンピュータ装置306は、コンピュータ装置306の使用者との入出力インターフェースである入出力部310を備えている。入出力部310は、キーボードやマウスや、LCDを用いて構成されている。
【0029】
なお、本実施の形態におけるタイミング解析装置の実行プログラムは、サーバ301の記録媒体303に記憶される形態には限定しない。実行プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータ装置306に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、実行プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータ装置306に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、実行プログラムをコンピュータ装置306に供給できる。
【0030】
次に、図2を用いて、本実施の形態にかかるタイミング解析装置によるタイミング解析方法について説明する。図2は、タイミング解析装置によるタイミング解析の手順を示すフローチャートである。以下の説明では、タイミング解析処理は、タイミング解析装置において、コンピュータ装置306の処理部309が読み込んだタイミング解析プログラムに従って実行される場合を例に説明するが、タイミング解析処理は、サーバ301の処理部302が読み込んだタイミング解析プログラムに従って実行されてもよい。
【0031】
まず、ステップS101において、レイアウト処理が行われる。ステップS101では、処理部309は、実際の半導体チップ上の集積回路について、インスタンスの配置やインスタンスを接続する配線をレイアウトし、インスタンスに関する物理的な情報(インスタンスの配置座標や形状、インスタンスを接続する配線の形状など)を、レイアウトデータファイル(F102)に出力する。
【0032】
レイアウトデータファイル(F102)には、レイアウトとして、半導体チップ上のどこにインスタンスが配置され、また、どのような形状の配線によってインスタンスが接続されているかを示す、物理的な情報が記載される。本実施の形態では、レイアウトデータファイル(F102)の出力は、例えば、OpenEDA(OpenEDA:https://www.si2.org/openeda.si2.org/projects/lefdef)で定められるDEF(Design Exchange Format)/LEF(Library Exchange Format)のような、一般的な出力形式として出力すればよい。
【0033】
また、処理部309は、インスタンスに関する論理的な情報(インスタンスの情報、インスタンスの端子情報、端子間の接続情報など)を、ネットリストファイル(F101)に出力する。ここで、インスタンスの情報には、半導体チップ上の配置座標・形状、インスタンスの名称、インスタンスのセル名、インスタンスの端子名、端子間の接続関係を表す情報が含まれる。なお、セルとは、例えばAND回路などの回路ブロックを意味する。また、インスタンスとは、特定のセルを識別するために一意に付与される称呼であり、同一のセルであっても配置場所や配線が異なるセルを識別するために用いられる。
【0034】
次に、ステップS102において、寄生パラメータの抽出処理が行われる。ステップS102で行われる寄生パラメータの抽出処理は、一般的な寄生パラメータ抽出処理である。処理部309は、ステップS101で出力したレイアウトデータファイル(F102)を入力として、レイアウトデータファイル(F102)に記載された配線の形状から、寄生抵抗、寄生容量を抽出し、抽出した寄生パラメータをSPEFファイル(F103)に出力する。
【0035】
SPEFファイル(F103)は、一般的に知られた形式のファイルである。SPEFファイル(F103)のSPEFは、Standard Parasitic Exchange Formatの略である。SPEFファイル(F103)は、IEEEの標準団体でフォーマットが規定されている。また、SPEFファイル(F103)には、各配線の寄生容量、寄生抵抗が記載される。
【0036】
次に、ステップS103において、電圧降下領域ファイル(F106)の存在のチェック処理が行われる。処理部309は、電圧降下領域ファイル(F106)の存在の有無を判断し、判断結果に応じて、後続処理の条件分岐を行う。タイミング解析処理における初期状態では、電圧降下領域ファイル(F106)が存在しないため、ステップS104のIR−Drop解析処理へと処理が進められる。後述するS105において電圧降下領域ファイル(F106)が作成された場合は、S104〜S106の処理は行われずに、S107の遅延計算・領域毎のOCVのSTA処理へと処理が進められる。
【0037】
次に、ステップS104において、IR−Drop解析処理が行われる。ステップS104で行われるIR−Drop解析処理は、一般的なIR−Drop解析処理である。処理部309は、半導体チップ上にレイアウトされた回路(インスタンスと、その接続情報)に対して電圧降下解析を行う。より具体的には、処理部309は、ステップS101で出力したレイアウトデータファイル(F102)と、ステップS102で出力したSPEFファイル(F103)と、を入力として、IR−Drop解析処理を行い、半導体チップ内の電圧降下を解析する。処理部309は、半導体チップ内の電圧降下の解析結果を、IR−Drop解析結果ファイル(F104)に出力する。
【0038】
IR−Drop解析とは、半導体チップ内の電圧降下を解析するものである。IR−Drop解析結果ファイル(F104)には、インスタンス名、インスタンスの電圧値、インスタンスのセル名、インスタンスの座標、インスタンスの形状(サイズ)が記載される。図3に、IR−Drop解析結果ファイル(F104)の出力例を示す。図3では、例えば、インスタンス名として「CPU1/ADD/REG1」が、インスタンスの電圧値として「1.090V」が、セル名として「CELL1」が、座標として「−120,−50,300,80」が、サイズとして「20 20」が、それぞれ記載されている。
【0039】
次に、ステップS105において、IR−Dropマップ作成処理が行われる。ステップS105では、IR−Dropマップ作成処理として、電圧降下領域ファイル(F106)作成処理が行われる。処理部309は、電圧降下解析の結果に基づいて、半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイル(F106)を作成する。より具体的には、処理部309は、ステップS104で出力したIR−Drop解析結果ファイル(F104)を入力として、IR−Drop解析結果ファイル(F104)から、電圧降下領域ファイル(F106)を作成する。処理部309は、半導体チップ上での電圧降下に関して、どのような領域で、どの電圧となるかを示す情報を、電圧降下領域ファイル(F106)に出力する。
【0040】
IR−Drop解析結果ファイル(F104)には、図3に例示したように、インスタンス名、インスタンスの電圧値、インスタンスのセル名、インスタンスの座標、インスタンスの形状(サイズ)が記載されている。図4は、IR−Drop解析結果ファイル(F104)に記載された情報を、半導体チップ上の領域で概念的に表現した図である。図4に示すように、電源電圧から電圧降下した各インスタンスの電圧を、グラデーションとして表示することで、半導体の領域における電圧の分布を表現することができる。
【0041】
本実施の形態では、ステップS105において、処理部309は、半導体において表現される領域を矩形領域として、領域の優先順位、領域の電圧値、領域の座標を、電圧降下領域ファイル(F106)に出力する。より具体的には、処理部309は、IR−Drop解析結果ファイル(F104)を参照して、まず、最も電圧降下する領域を検索し、その領域の優先順位を1とし、その領域の電圧と、その矩形領域の座標(左下、右上)を求め、電圧降下領域ファイル(F106)に出力する。以下、同様にして、次に電圧降下する領域を検索し、その領域の優先順位を2とし、その領域の電圧とその矩形領域の座標を求め、電圧降下領域ファイル(F106)に出力する。
【0042】
ここで、図5及び図6を参照して、本実施の形態にかかる電圧降下領域ファイル(F106)について具体的に説明する。図5に、電圧降下領域ファイル(F106)の出力例を示す。図5に示すように、電圧降下領域ファイル(F106)には、領域の優先順位(Priority)、領域の電圧値(Volt)、領域の座標(xll、yll、xur、yur)が、行単位に記載されている。電圧降下領域ファイル(F106)には、第1カラムには領域の優先順位が記載され、第2カラムには領域の電圧値が記載され、第3カラム〜第6カラムには領域の座標が記載されている。なお、図5の例では、各領域の電圧値は0.02V範囲ごとに区分されており、この区分単位は、図3に示したインスタンスの電圧値が記載された単位と同一である。
【0043】
領域の優先順位は、半導体の領域のうちで、電圧降下による影響により、低い電圧値となっている領域ほど、高い優先順位が定められる。例えば、電圧降下による影響により、最も電圧が低くなっている領域の優先順位を1とし、その次に電圧が低い領域の優先順位を2として以降の優先順位が定められる。なお、次に低い電圧値が電源電圧値となった場合には、その領域の優先順位は、最も低い優先順位となる。
【0044】
また、本実施の形態では、領域を矩形で表現していることから、その領域を表現するために、領域の座標(xll、yll、xur、yur)を、矩形領域の左下隅および右上隅の座標(X座標左下、Y座標左下、X座標右上、Y座標右上)を用いて表現している。
【0045】
なお、本実施の形態では、領域を矩形領域として表現することで処理の簡易化を図っているが、これに限定されず、例えば、楕円形状などの他の形状の領域として表現してもよい。また、本実施の形態では、各領域に優先順位を定めることで、互いに領域が包含関係にある場合においてもインスタンスがいずれの領域に含まれるかを容易に識別可能としているが、これに限定されない。例えば、領域が包含関係にある場合においても、最も電圧が低い領域を第一の領域とし、次に電圧が低くて第一の領域を囲む領域を第二の領域とし、さらに、次に電圧が低くて第二の領域を囲む領域を第三の領域として定め、第一の領域、第二の領域から第一の領域を除いた領域、第三の領域から第二の領域を除いた領域、を含む各領域についての電圧値を電圧降下領域ファイル(F106)に記載するようにしてもよい。
【0046】
図6は、電圧降下領域ファイル(F106)に記載された情報を、半導体チップ上の領域で概念的に表現した図である。図6に示すように、半導体の領域における電圧の分布を、優先順位が付された矩形領域ごとに表現することができる。
【0047】
次に、ステップS106において、OCV係数算出処理が行われる。処理部309は、OCV係数値ファイル(F107)を用いて、電圧降下領域ファイル(F106)に記載された所定の電圧範囲に対応するOCV係数を領域ごとに算出し、その算出したOCV係数と領域とを対応付けて記載したOCV領域ファイル(F108)を作成する。より具体的には、処理部309は、ステップS105で出力した電圧降下領域ファイル(F106)と、OCV係数値ファイル(F107)と、を入力として、電圧降下領域ファイル(F106)およびOCV係数値ファイル(F107)から、電圧降下領域ファイル(F106)中の電圧値に対するOCV係数の値(以下、単にOCV値と称する場合がある。)を算出し、算出したOCV値をOCV領域ファイル(F108)に出力する。
【0048】
ここでOCV係数について簡単に説明する。OCVとは、On Chip Variationの略である。OCVは、半導体チップ内での素子の特性による遅延時間のばらつきを表す(例えば、http://techon.nikkeibp.co.jp/article/WORD/20090107/163763/を参照。)通常、OCVの係数として、OCVによって遅い方向へバラついてしまった場合の遅延係数「α(late)」と、速い方向へバラついてしまった場合の遅延係数「β(early)」と、が事前に用意される。そして、検証対象の回路中で、遅い方向へバラつくとタイミングが厳しくなる素子に対しては、その遅延値にα(late)を乗じる。一方で、速い方向へバラつくとタイミングが厳しくなる素子に対しては、その遅延値にβ(early)を乗じる。このような条件下で、STAを使用したタイミング検証が実施される。この条件下でも、タイミング検証によりタイミングを満足するように設計することで、OCVによって素子がバラついたとしても、動作を保証することができる。タイミング検証で使用するこの係数を、Derating係数、或いは、OCV係数と呼んでいる。
【0049】
OCV係数値ファイル(F107)には、電圧値と、その電圧値に応じたOCV係数値と、が記載されている。図7に、OCV係数値ファイル(F107)の例を示す。図7に示すように、OCV係数値ファイル(F106)には、所定の電圧単位で、電圧値(Volt)とOCV値(OCV−Factor)が行単位に記載されている。図7の例では、0.05V単位で、各行に、電圧値と、その電圧値に応じたOCV値が記載されている。
【0050】
上述したように、遅延係数としては、α、βの2つの値が存在するが、本実施の形態では、α、βともに同一の値として考えて、1つのOCV値を用いて表現する。また、本実施の形態では、OCV係数値ファイル(F107)に記載されたOCV値は、ある固定された電圧における遅延のばらつきを表現するためのOCV値を用いるのではなく、電圧降下を考慮した複数の電圧値のそれぞれに応じたOCV値を用意する。これらOCV値は、予め適当な値が算出されて、OCV係数値ファイル(F107)として、記録媒体308などに予め記録されている。
【0051】
OCV領域ファイル(F108)は、電圧降下により電圧降下した領域毎に、OCV値が記載されたファイルである。OCV領域ファイル(F108)には、領域の優先順位(Priority)、領域のOCV値(OCV)、領域の座標(xll、yll、xur、yur)が、行単位に記載される。
【0052】
OCV係数算出処理の具体例について、図5に例示した電圧降下領域ファイル(F106)と、図7に例示したOCV係数値ファイル(F107)と、を用いて、OCV領域ファイル(F108)を出力する場合を例に説明する。まず、図5に記載された優先順位が1の領域に関しては、領域の電圧が1.090Vであることから、図7に記載された電圧値のうちで1.10VのOCV値(1.00)と1.05VのOCV値(0.96)を用いて、1.090VのOCV値を補間処理により計算で求める。そして、図5に記載された電圧降下領域ファイル(F106)中の電圧値を、求めたOCV値によって置き換えて、OCV領域ファイル(F108)に出力する。同様にして、次の優先順位の領域に関する情報が記載された次の行についても、電圧降下領域ファイル(F106)中の電圧値に対するOCV値を、OCV係数値ファイル(F107)に記載された電圧値およびOCV値を用いて補間処理により求め、電圧降下領域ファイル(F106)中の電圧値を、求めたOCV値によって置き換えて、OCV領域ファイル(F108)に出力する。このようにして、電圧降下領域ファイル(F106)中の全ての行の電圧値が、それぞれ求めたOCV値によって置き換えられて、OCV領域ファイル(F108)に出力される。
【0053】
図8に、OCV領域ファイル(F108)の出力例を示す。図8に記載されたOCV値(OCV)は、図7に例示したOCV係数値ファイル(F107)を用いて、図5に例示した電圧降下領域ファイル(F106)の電圧値を、OCV値に置き換えたものとなっている。
【0054】
次に、ステップS107において、遅延計算・領域毎のOCVのSTA処理が行われる。処理部309は、ステップS102で出力したSPEFファイル(F103)と、遅延ライブラリ(F105)と、ステップS106で出力したOCV領域ファイル(F108)と、ステップS101で出力したネットリストファイル(F101)と、を入力として、遅延計算と、領域毎のOCVのSTA処理を行い、タイミング解析を行う。なお、S107での処理の詳細については後述する。
【0055】
次に、ステップS108において、ステップS107におけるタイミングエラーの存在のチェック処理が行われる。処理部309は、タイミングエラーの存在の有無を判断し、判断結果に応じて、後続処理の条件分岐を行う。処理部309は、ステップS108において、タイミングエラーがないと判断した場合には、処理を終了する。一方で、タイミングエラーがあると判断した場合には、ステップS101へと戻り、処理を続ける。
【0056】
以下、ステップS108においてタイミングエラーがあると判断された場合に、以後に実行される手順について、簡単に説明する。
まず、S101のレイアウト処理において、処理部309は、タイミングエラー箇所のレイアウトを修正し、修正した結果を、レイアウトデータファイル(F102)およびネットリストファイル(F101)に上書きする。
【0057】
次に、ステップS102の寄生パラメータ抽出処理において、処理部309は、S101で修正したレイアウトデータファイル(F101)から、寄生パラメータの抽出を行い、抽出した寄生パラメータをSPEFファイル(F103)に出力する。
【0058】
次に、ステップS103の条件分岐において、処理部309は、電圧降下領域ファイル(F106)の存在をチェックする。ここで、すでに、電圧降下領域ファイル(F106)が作成されているため、処理部309は、ステップS107へと処理を進め、遅延計算・領域毎のOCVのSTA処理におけるタイミング解析を行う。
【0059】
次に、ステップS108の条件分岐において、処理部309は、ステップS107でのタイミングエラーの有無をチェックし、エラーがある場合には、同様にステップS101へと戻りレイアウトを修正する。ステップS108でタイミングエラーがない場合には、処理を終了する。
【0060】
このようにして、ステップS107におけるタイミングエラーがなくなるまでの間、ステップS101、ステップS102、ステップS103、ステップS107の処理が繰り返し行われる。
【0061】
ここで、ステップS103での条件分岐により、図2に例示するタイミング解析処理において、1回目のみステップS104〜S106の処理が行われ、2回目以降は、ステップS104〜S106の処理は繰り返して行われない。このため、IR−Drop解析が既に実行されて電圧降下領域ファイル(F106)が一度作成された以降は、電圧降下領域ファイル(F106)の作成や、電圧降下領域ファイル(F106)を作成するためのIR−Drop解析は実行されないため、タイミング解析に要する処理時間の短縮化を図ることができる。
【0062】
続いて、図9および図10を参照して、ステップS107における遅延計算・領域毎OCVのSTA処理の詳細を説明する。
図9は、ステップS107の遅延計算・領域毎OCVのSTA処理について、より詳細な手順を示すフローチャートである。
【0063】
まず、ステップS701において、遅延計算処理が行われる。ステップS701で行われる遅延計算処理は、一般的な遅延計算処理である。処理部309は、ステップS101で出力したネットリストファイル(F101)から、インスタンスの情報、インスタンスの端子情報、端子間の接続情報を求め、ステップS102で出力したSPEFファイル(F103)と、遅延ライブラリ(F105)と、を読み込み、遅延ライブラリの電圧値で遅延計算を行い、各インスタンスの遅延値、各配線の遅延値を、SDFファイル(F109)に出力する。ここで、一般的な遅延計算では、インスタンスの電圧降下は考慮しないものであり、本実施の形態にかかる遅延計算に関しても、電圧降下については考慮していない。
【0064】
SDFファイル(F109)のSDFは、Standard Delay Formatの略である。SDFファイル(F109)は、IEEEの標準団体でフォーマットが規定されている。また、SDFファイル(F109)には、各インスタンスの遅延値、各配線の遅延値が記載される。
【0065】
次に、ステップS702において、STA処理が行われる。処理部309は、遅延計算の結果と、OCV領域ファイル(F108)に記載された領域ごとのOCV値と、を用いて、レイアウトされた回路に対してタイミング解析を行う。より具体的には、処理部309は、ステップS701で出力したSDFファイル(F109)と、ステップS101で出力したネットリストファイル(F101)と、ステップS106で出力したOCV領域ファイル(F108)と、を読み込み、タイミング解析を行う。
【0066】
図10は、ステップS702のSTA処理について、より詳細な手順を示すフローチャートである。
まず、ステップS7021において、ネットリストファイル(F101)の読み込み処理が行われる。処理部309は、ステップS101で出力したネットリストファイル(F101)を読み込み、ネットリストファイル(F101)に記載されたインスタンス情報、インスタンスの端子、端子間の接続情報を、データD7021として記憶する。
【0067】
次に、ステップS7022において、OCV係数値の読み込み処理が行われる。処理部309は、ステップS106で出力したOCV領域ファイル(F108)を読み込み、データD7022として記憶する。上述した図8で例示したように、OCV領域ファイル(F108)は、行単位に6つのカラムを用いて記載され、2次元のデータとして表現されている。図8では、例えば、1行目には、領域の優先順位として「1」が、OCV値として「1.00」が、左下X座標として「−120」が、左下Y座標として「−50」が、右上X座標として「300」が、右上Y座標として「80」が、それぞれ記載されている。
【0068】
次に、ステップS7023において、遅延計算の読み込み処理が行われる。処理部309は、ステップS701で出力したSDFファイル(F109)を読み込み、読み込んだSDFファイル(F109)に記載されたインスタンスの遅延値、配線の遅延値を、データD7021に追加して、データD7023として記憶する。より具体的には、処理部309は、データD7021のインスタンス情報にSDFファイル(F109)のインスタンスの遅延値を追加し、データD7021の端子間の接続情報にSDFファイル(F109)の配線の遅延値を追加し、データD7023として記憶する。データD7023は、インスタンスについての全ての遅延値と、インスタンスを接続する端子間の配線についての全ての遅延値が記載される。
【0069】
次に、ステップS7024において、OCV係数掛けの処理が行われる。処理部309は、データD7023に記載されたインスタンスの遅延値および配線の遅延値に対して、そのインスタンスが含まれる領域のOCV値を、D7022に記載されたOCV値のうちから求め、求めたOCV値を遅延値に乗算し、データD7024として記憶する。より具体的には、処理部309は、データD7023に記載されたインスタンスの遅延値および配線の遅延値について、インスタンスの座標から、データD7022に記載された優先順位と座標を参照して該当する領域のOCV値を求め、求めた領域のOCV値を、データD7023に記載された遅延値に乗算して、乗算後の遅延値をデータD7024に出力して記憶する。ここで、インスタンスの座標と、データD7022の領域のOCV値と、から該当するOCV値を求めに際しては、一般的に知られた高速な検索手法を用いればよく、例えばハッシュ法を用いて、インスタンスの座標を包含する領域のOCV値を高速に求める。
【0070】
次に、ステップS7025において、パス(PATH)毎のタイミング計算処理が行われる。処理部309は、ステップS7024のOCV係数掛けにおいてOCV値が乗算された遅延値(データD7024に記載されたOCV値)を用いて、検査対象となるパス毎のタイミング計算を行う。処理部309は、クロック信号とデータ信号の妥当性を、パス毎に解析する。より具体的には、処理部309は、データD7024に記憶されたインスタンス情報とインスタンスの端子間の接続情報を参照して、クロック信号とデータ信号の到達時間を、遅延値から計算し、到達する時間の制約を満足するものか否かを解析する。そして、処理部309は、解析の結果、到達する時間の制約を満足しない場合には、エラーとして出力する。
【0071】
以上に説明した本実施の形態によれば、所定の電圧範囲毎に電圧降下した領域を設定し、その領域ごとに算出したOCV値を用いてタイミング解析を実施することができるため、従来の電圧降下を考慮したタイミング解析手法と比較して遅延計算の処理時間を短縮することができる。このため、タイミング解析処理全体に要する処理時間を短縮することができる。以下、その理由を具体的に説明する。
【0072】
まず、電圧降下を反映させるために、図2に示したステップS105において、IR−Dropマップ作成処理が行われる。
ステップS105のIR−Dropマップ作成処理では、電圧降下領域ファイル(F106)を作成する。電圧降下領域ファイル(F106)は、IR−Drop解析結果ファイル(F104)を、半導体チップ上の領域として表現するものである。電圧降下領域ファイル(F106)のファイルサイズは、半導体チップ上の領域を示すだけのファイルであるため、少量のファイルサイズにより表現することができる。
【0073】
また、ステップS105のIR−Dropマップ作成処理では、電圧降下の解析結果を、所定の電圧範囲ごとに区分して、その区分した電圧範囲ごとに境界を求めることで、領域を定める処理である。この処理は、IR−Drop解析結果ファイル(F104)の読み込み結果から、電圧範囲の境界を求めて、電圧降下領域ファイル(F106)に出力するものである。このため、IR−Drop解析結果ファイル(F104)の読み込みに要する処理時間からほぼ増加せずに処理できる。
【0074】
次に、ステップS106では、OCV係数値ファイル(F107)を用いて、電圧降下領域ファイル(F106)に記載された電圧値をOCV値に変換し、OCV領域ファイル(F108)として出力する。すなわち、半導体チップ上の各領域に対して、領域毎に定義されている電圧値を、補間処理によってOCV値に置き換えるものであり、単純な処理である。OCV領域ファイル(F108)のファイルサイズは、電圧降下領域ファイル(F106)のファイルサイズと同等のファイルサイズである。このため、ステップS106での処理を実行するために、少量のファイルサイズを扱う処理時間が必要となるが、処理時間はわずか数秒の増加で済む。
【0075】
次に、ステップS107では、遅延計算・領域毎のOCVのSTA処理が行われる。具体的には、図9に示したステップS701において、電圧降下を考慮しない遅延計算を行い、ステップS702において、インスタンスの座標から、OCV領域ファイル(F108)中の領域を特定してそのOCV値を求め、求めたOCV値を係数として遅延値に乗算することで、STAを行う。すなわち、本実施の形態では、電圧降下の解析結果をSTAにおいて反映させる処理に関して、遅延計算において、複数の遅延ライブラリを用いた補間処理によって電圧降下の解析結果を求める、という手順ではない。このため、電圧降下を考慮した遅延計算を行う必要がない。本実施の形態では、電圧降下の解析結果を半導体チップ上の領域として表現し、電圧降下の解析結果を領域ごとのOCV係数に置き換えた上で、STAにおいてこのOCV係数を反映させる、という手順である。
【0076】
さらに、上述したように、図9に示したステップS701での遅延計算処理は、一般的な遅延計算処理である。ステップS701での遅延計算処理は、電圧降下を考慮しない遅延計算を行うため、遅延計算に要する処理時間は短いものである。本実施の形態では、図10に示したステップS7022のOCV係数値読み込み処理として、少量のファイルの読み込み処理を行うために数秒の処理時間を要する。また、ステップS7024のOCV係数掛け処理として、インスタンスの座標から、データD7023を参照してOCV値を求める処理を行うために処理時間が増加する。しかし、いずれの処理に関しても、ごく少量のファイルサイズのファイルを扱うために、必要とする計算時間は短い。なお、データD7022を参照してOCV値を求める際には検索処理を必要とするが、一般的に知られている高速な検索法(例えば、ハッシュ法)を用いることで、ステップS7024のOCV係数掛け処理の実行により増加する処理時間は、1%以下の増加に抑えることができる。このため、遅延計算に要する処理時間を短くしつつ、タイミング解析を行うことができる。
【0077】
従って、本実施の形態によれば、精度を落とすことなく、遅延計算時間を短くすることができる。同時に、本実施の形態では、少量のファイルサイズであるOCV領域ファイル(F108)を作成し、OCV領域ファイル(F108)の各領域に対する電圧降下をOCV値として考慮しているために、STA処理において、電圧降下を考慮したタイミング計算を、最低限の処理時間の増加で行うことができる。このため、遅延計算に要する処理時間を短縮して、タイミング解析全体に要する処理時間を短縮することができる。
【0078】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0079】
300 コンピュータシステム、
301 サーバ、
302 処理部、
303 記録媒体、
304 入出力部、
305 ネットワーク、
306 コンピュータ装置、
307 通信部、
308 記録媒体、
309 処理部、
310 入出力部、
F101 ネットリストファイル、
F102 レイアウトデータファイル、
F103 SPEFファイル、
F104 IR−Drop解析結果ファイル、
F105 遅延ライブラリ、
F106 電圧降下領域ファイル、
F107 OCV係数値ファイル、
F108 OCV領域ファイル、
F109 SDFファイル、
F110 インスタンス毎のIR−Drop値リスト、
D7021〜D7024 データ、
【特許請求の範囲】
【請求項1】
半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う電圧降下解析ステップと、
前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する電圧降下領域ファイル作成ステップと、
遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成するばらつき領域ファイル作成ステップと、
遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う遅延計算ステップと、
前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行うタイミング解析ステップと、
を有するタイミング解析方法。
【請求項2】
前記タイミング解析ステップは、
前記遅延計算の結果に該当する領域の第3のばらつき係数を、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数のうちから求め、当該求めた第3のばらつき係数を前記遅延計算の結果に乗算するばらつき係数掛けステップと、
前記第3のばらつき係数が乗算された前記遅延計算の結果に基づいて、検査対象となるパス毎のタイミング計算処理を行うタイミング計算ステップと、
を有することを特徴とする請求項1に記載のタイミング解析方法。
【請求項3】
1回目の前記ばらつき領域ファイル作成ステップにおいて、1回目の前記ばらつき領域ファイルを作成した場合には、
以後の前記タイミング解析ステップにおいては、前記1回目に作成した前記ばらつき領域ファイルを用いて、前記タイミング解析を行う
ことを特徴とする請求項1又は2に記載のタイミング解析方法。
【請求項4】
前記電圧降下領域ファイル作成ステップは、
前記電圧降下領域ファイルを作成する際に、前記電圧降下領域ファイルに記載する前記領域の形状を矩形領域とし、かつ、各前記領域に対して当該領域における電圧降下に応じた優先順位を定めて記載する
ことを特徴とする請求項1乃至3のいずれか1項に記載のタイミング解析方法。
【請求項5】
半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う電圧降下解析手段と、
前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する電圧降下領域ファイル作成手段と、
遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成するばらつき領域ファイル作成手段と、
遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う遅延計算手段と、
前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行うタイミング解析手段と、
を備えるタイミング解析装置。
【請求項6】
前記タイミング解析手段は、
前記遅延計算の結果に該当する領域の第3のばらつき係数を、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数のうちから求め、当該求めた第3のばらつき係数を前記遅延計算の結果に乗算するばらつき係数掛け手段と、
前記第3のばらつき係数が乗算された前記遅延計算の結果に基づいて、検査対象となるパス毎のタイミング計算処理を行うタイミング計算手段と、
を備えることを特徴とする請求項5に記載のタイミング解析装置。
【請求項7】
1回目の前記ばらつき領域ファイル作成手段が、1回目の前記ばらつき領域ファイルを作成した場合には、
以後の前記タイミング解析手段は、前記1回目に作成した前記ばらつき領域ファイルを用いて、前記タイミング解析を行う
ことを特徴とする請求項5又は6に記載のタイミング解析装置。
【請求項8】
前記電圧降下領域ファイル作成手段は、
前記電圧降下領域ファイルを作成する際に、前記電圧降下領域ファイルに記載する前記領域の形状を矩形領域とし、かつ、各前記領域に対して当該領域における電圧降下に応じた優先順位を定めて記載する
ことを特徴とする請求項5乃至7のいずれか1項に記載のタイミング解析装置。
【請求項9】
半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う処理と、
前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する処理と、
遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成する処理と、
遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う処理と、
前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行う処理と、
をコンピュータに実行させるタイミング解析プログラム。
【請求項1】
半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う電圧降下解析ステップと、
前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する電圧降下領域ファイル作成ステップと、
遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成するばらつき領域ファイル作成ステップと、
遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う遅延計算ステップと、
前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行うタイミング解析ステップと、
を有するタイミング解析方法。
【請求項2】
前記タイミング解析ステップは、
前記遅延計算の結果に該当する領域の第3のばらつき係数を、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数のうちから求め、当該求めた第3のばらつき係数を前記遅延計算の結果に乗算するばらつき係数掛けステップと、
前記第3のばらつき係数が乗算された前記遅延計算の結果に基づいて、検査対象となるパス毎のタイミング計算処理を行うタイミング計算ステップと、
を有することを特徴とする請求項1に記載のタイミング解析方法。
【請求項3】
1回目の前記ばらつき領域ファイル作成ステップにおいて、1回目の前記ばらつき領域ファイルを作成した場合には、
以後の前記タイミング解析ステップにおいては、前記1回目に作成した前記ばらつき領域ファイルを用いて、前記タイミング解析を行う
ことを特徴とする請求項1又は2に記載のタイミング解析方法。
【請求項4】
前記電圧降下領域ファイル作成ステップは、
前記電圧降下領域ファイルを作成する際に、前記電圧降下領域ファイルに記載する前記領域の形状を矩形領域とし、かつ、各前記領域に対して当該領域における電圧降下に応じた優先順位を定めて記載する
ことを特徴とする請求項1乃至3のいずれか1項に記載のタイミング解析方法。
【請求項5】
半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う電圧降下解析手段と、
前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する電圧降下領域ファイル作成手段と、
遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成するばらつき領域ファイル作成手段と、
遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う遅延計算手段と、
前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行うタイミング解析手段と、
を備えるタイミング解析装置。
【請求項6】
前記タイミング解析手段は、
前記遅延計算の結果に該当する領域の第3のばらつき係数を、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数のうちから求め、当該求めた第3のばらつき係数を前記遅延計算の結果に乗算するばらつき係数掛け手段と、
前記第3のばらつき係数が乗算された前記遅延計算の結果に基づいて、検査対象となるパス毎のタイミング計算処理を行うタイミング計算手段と、
を備えることを特徴とする請求項5に記載のタイミング解析装置。
【請求項7】
1回目の前記ばらつき領域ファイル作成手段が、1回目の前記ばらつき領域ファイルを作成した場合には、
以後の前記タイミング解析手段は、前記1回目に作成した前記ばらつき領域ファイルを用いて、前記タイミング解析を行う
ことを特徴とする請求項5又は6に記載のタイミング解析装置。
【請求項8】
前記電圧降下領域ファイル作成手段は、
前記電圧降下領域ファイルを作成する際に、前記電圧降下領域ファイルに記載する前記領域の形状を矩形領域とし、かつ、各前記領域に対して当該領域における電圧降下に応じた優先順位を定めて記載する
ことを特徴とする請求項5乃至7のいずれか1項に記載のタイミング解析装置。
【請求項9】
半導体チップ上にレイアウトされた回路に対して電圧降下解析を行う処理と、
前記電圧降下解析の結果に基づいて、前記半導体チップ上の電圧降下を所定の電圧範囲ごとの領域として記載した電圧降下領域ファイルを作成する処理と、
遅延のばらつきを表現する第1のばらつき係数が、電圧降下を考慮して所定の電圧ごとに対応付けられて記載されたばらつき係数ファイルを用いて、前記電圧降下領域ファイルに記載された前記所定の電圧範囲に対応する第2のばらつき係数を前記領域ごとに算出し、当該算出した第2のばらつき係数と前記領域とを対応付けて記載したばらつき領域ファイルを作成する処理と、
遅延ライブラリを用いて、前記レイアウトされた回路に対して遅延計算を行う処理と、
前記遅延計算の結果と、前記ばらつき領域ファイルに記載された前記領域ごとの前記第2のばらつき係数と、を用いて、前記レイアウトされた回路に対してタイミング解析を行う処理と、
をコンピュータに実行させるタイミング解析プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−174111(P2012−174111A)
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願番号】特願2011−37142(P2011−37142)
【出願日】平成23年2月23日(2011.2.23)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
【公開日】平成24年9月10日(2012.9.10)
【国際特許分類】
【出願日】平成23年2月23日(2011.2.23)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】
[ Back to top ]