(57)【要約】【課題】伝搬遅延時間の適正化を図ること。【解決手段】ネットリスト１００の中から、パス（データパス、クロックパス）Ｐを抽出する。つぎに、抽出されたパスＰごとに、パス分割をおこなう。そして、分割パスｐごとに、分割パスばらつき値γおよびその補正値βを計算する。分割パスばらつき値γは、分割パス固有のばらつき値である。また、分割パスについての第１の分割パス伝搬遅延時間Ｔ１を計算する。そして、分割パスｐごとの分割パスばらつき値γ、補正値βおよび第１の伝搬遅延時間Ｔ１から第２の分割パス伝搬遅延時間Ｔ２を計算する。第２の分割パス伝搬遅延時間Ｔ２は、分割パスばらつき値γを考慮した伝搬遅延時間である。最後に、分割パスｐごとの第２の分割パス伝搬遅延時間Ｔ２をマージすることにより、分割元パスＰの分割元パス伝搬遅延時間Ｔ３を得る。【選択図】図１
2010198374.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
対象回路の回路情報から得られるパス群の中から選ばれた分割元パスを所定の条件に基づいて分割する分割手段、
前記分割手段によって得られた分割パスごとに、前記分割パスを構成する各セルの遅延に関するばらつき値に基づいて、前記分割パスのばらつき値を算出する分割パスばらつき値算出手段、
前記分割手段によって得られた分割パスごとに、前記分割パスばらつき値算出手段によって算出された前記分割パスのばらつき値に基づいて、前記分割パスの伝搬遅延時間を算出する分割パス伝搬遅延時間算出手段、
前記分割パス伝搬遅延時間算出手段によって前記分割パスごとに算出された前記分割パスの伝搬遅延時間を統合することにより、前記分割元パスの伝搬遅延時間を算出する分割元パス伝搬遅延時間算出手段、
前記分割元パス伝搬遅延時間算出手段によって算出された算出結果を出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項２】
前記分割手段は、
前記分割元パス内の分岐に基づいて分割することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記分割手段は、
前記分割元パスを構成する同一タイプのセル列ごとに分割することを特徴とする請求項１または２に記載の設計支援プログラム。
【請求項４】
前記コンピュータを、
前記分割元パスを構成する第１のセルタイプである第１のセル列の各セルのばらつき値およびセル段数に基づいて、前記第１のセル列のばらつき値を算出するとともに、前記分割元パスを構成し前記第１のセル列に後続する前記第１のセルタイプとは異なる第２のセルタイプである第２のセル列の各セルのばらつき値およびセル段数に基づいて、前記第２のセル列のばらつき値を算出するセル列算出手段、
前記セル列算出手段によって算出された第１および第２のセル列のばらつき値に基づいて、前記第１および第２のセル列の分割可否を判断する判断手段、として機能させ、
前記分割手段は、
前記判断手段によって分割可能と判断された場合、前記第１のセル列と前記第２のセル列とを分割することを特徴とする請求項３に記載の設計支援プログラム。
【請求項５】
前記コンピュータを、
前記分割元パスを構成する第１のセル列の各セルのばらつき値およびセル段数に基づいて、前記第１のセル列のばらつき値を算出するとともに、前記分割元パスを構成し前記第１のセル列に後続する第２のセル列の各セルのばらつき値およびセル段数に基づいて、前記第２のセル列のばらつき値を算出するセル列算出手段、
前記セル列算出手段によって算出された第１および第２のセル列のばらつき値に基づいて、前記第１および第２のセル列の分割可否を判断する判断手段、として機能させ、
前記分割手段は、
前記判断手段によって分割可能と判断された場合、前記第１のセル列と前記第２のセル列とを分割することを特徴とする請求項３に記載の設計支援プログラム。
【請求項６】
対象回路の回路情報から得られるパス群の中から選ばれた分割元パスを所定の条件に基づいて分割する分割手段と、
前記分割手段によって得られた分割パスごとに、前記分割パスを構成する各セルの遅延に関するばらつき値に基づいて、前記分割パスのばらつき値を算出する分割パスばらつき値算出手段と、
前記分割手段によって得られた分割パスごとに、前記分割パスばらつき値算出手段によって算出された前記分割パスのばらつき値に基づいて、前記分割パスの伝搬遅延時間を算出する分割パス伝搬遅延時間算出手段と、
前記分割パス伝搬遅延時間算出手段によって前記分割パスごとに算出された前記分割パスの伝搬遅延時間を統合することにより、前記分割元パスの伝搬遅延時間を算出する分割元パス伝搬遅延時間算出手段と、
前記分割元パス伝搬遅延時間算出手段によって算出された算出結果を出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項７】
コンピュータが、
対象回路の回路情報から得られるパス群の中から選ばれた分割元パスを所定の条件に基づいて分割する分割工程と、
前記分割工程によって得られた分割パスごとに、前記分割パスを構成する各セルの遅延に関するばらつき値に基づいて、前記分割パスのばらつき値を算出する分割パスばらつき値算出工程と、
前記分割工程によって得られた分割パスごとに、前記分割パスばらつき値算出工程によって算出された前記分割パスのばらつき値に基づいて、前記分割パスの伝搬遅延時間を算出する分割パス伝搬遅延時間算出工程と、
前記分割パス伝搬遅延時間算出工程によって前記分割パスごとに算出された前記分割パスの伝搬遅延時間を統合することにより、前記分割元パスの伝搬遅延時間を算出する分割元パス伝搬遅延時間算出工程と、
前記分割元パス伝搬遅延時間算出工程によって算出された算出結果を出力する出力工程と、
を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、半導体集積回路の遅延時間を計算する設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
近年の半導体集積回路（ＬＳＩ）は、高速化、高周波化がますます進み、それに伴い信号のタイミングマージンが著しく縮小されている。このため、ＬＳＩの設計時には信号伝搬遅延時間を考慮したタイミング検証を的確に行う必要がある。一般に信号伝搬遅延は、主としてプロセス（Ｐ：Ｐｒｏｃｅｓｓ）、温度（Ｔ：Ｔｅｍｐｅｒａｔｕｒｅ）、電源電圧（Ｖ：Ｖｏｌｔ）の３つの要素（以下、「ＰＴＶ」）に依存することが知られている。
【０００３】
そこで論理シミュレーションは、先のＰＴＶを考慮して遅延時間が最大になる条件（以下、「ＭＡＸ条件」）、標準的な条件（以下、「ＴＹＰ条件」）、最小になる条件（以下、「ＭＩＮ条件」）で行われていた。しかし、近年のＬＳＩ高速化、高周波化の影響により、他の信号伝搬遅延時間変動要素（たとえば、下記（１）〜（３）のばらつき）が無視できなくなってきた。
【０００４】
（１）トランジスタ特性のばらつき、配線抵抗のばらつき、コンタクト抵抗のばらつきなどに起因するプロセス特性のばらつき。
（２）チップ内の電圧降下に起因する電源電圧ばらつき。
（３）素子配置や動作周波数がＬＳＩ内で均等でないことによるチップ内温度ばらつき。（以下（１）〜（３）をまとめてチップ内ばらつきと呼ぶ。）
【０００５】
そこで、従来では、チップ内ばらつきを考慮したパスの伝搬遅延時間を計算することとしている（たとえば、下記特許文献１を参照。）。特許文献１では、下記式（１）のような振る舞いをおこなう関数を用いてチップ内ばらつきを考慮したパスごとの伝搬遅延時間を計算している。
【０００６】
Ｔｓ＝Ｔ×｛１＋（α−１）×β｝・・・（１）
【０００７】
Ｔｓ：チップ内ばらつきおよび確率分布を考慮したパスの伝搬遅延時間
Ｔ：各条件下におけるパスの伝搬遅延時間
α：ばらつき係数
β：ばらつき係数の補正値
【０００８】
ばらつき係数αは、信号パスにおける素子伝搬遅延時間および配線伝搬遅延時間のばらつき度を示す値であって、ＭＡＸ条件、ＴＹＰ条件、ＭＩＮ条件の各条件にそれぞれ対応して算出される。ばらつき係数αは特定のセルなどで算出された値を代表値として用いる。具体的には、下記式（２）により求められる。
【０００９】
α＝チップ内ばらつきを考慮した場合の伝搬遅延時間の変動し得る最大値
／チップ内ばらつきを考慮しない場合の伝搬遅延時間・・・（２）
【００１０】
補正値βは、信号パスのゲート段数またはセル段数に応じて、チップ内ばらつきに起因する伝搬遅延時間を実際のチップ内ばらつきの影響による伝搬遅延時間として近似し得る関数（ばらつき係数αの補正関数）に基づいて算出される。すなわち、補正値βによりばらつき係数αを補正することで、伝搬遅延時間Ｔｓが適切な発生確率（正規分布で示される伝搬遅延時間の確率密度分布）において、３σ（シグマ）範囲内の値となるように算出される。言い換えれば、発生確率の極めて低い伝搬遅延時間は算出されない。ここで、ばらつき係数αの補正関数として、補正値βの近似関数は、たとえば、下記式（３）のようにあらわされる。
【００１１】
β＝ａn-1・・・（３）
【００１２】
ａ：補正関数の底
ｎ：信号パスのセル段数（またはゲート段数）
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】国際公開第２００３／０６０７７６号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述した従来技術では、ばらつき係数αはパス内の特定のセルのばらつき係数を代表値として用いている。したがって、ばらつき係数αの値によっては、チップ内ばらつきの伝搬遅延時間Ｔｓが大きく異なる場合がある。伝搬遅延時間Ｔｓが異なる可能性がある場合、必然的にマージンを持つ方向でばらつき係数αの値が大きく設定された伝搬遅延時間Ｔｓを採用して悲観的な見積もりをおこなうこととなる。このような悲観的な見積もりは過剰マージンの温床であり、ＬＳＩ設計においてタイミング検証が収束しない原因となる。
【００１５】
本開示技術は、上述した従来技術による問題点を解消するため、パスの適正な伝搬遅延時間を見積もることができる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した課題を解決し、目的を達成するため、対象回路の回路情報から得られるパス群の中から選ばれた分割元パスを所定の条件に基づいて分割し、分割パスごとに、前記分割パスを構成する各セルの遅延に関するばらつき値に基づいて、前記分割パスのばらつき値を算出し、分割パスごとに、前記分割パスのばらつき値に基づいて、前記分割パスの伝搬遅延時間を算出し、前記分割パスごとに算出された前記分割パスの伝搬遅延時間を統合することにより、前記分割元パスの伝搬遅延時間を算出し、算出結果を出力することを要件とする。
【発明の効果】
【００１７】
本設計支援プログラム、設計支援装置、および設計支援方法によれば、パスの適正な伝搬遅延時間を見積もることができるという効果を奏する。
【図面の簡単な説明】
【００１８】
【図１】本開示技術の概要を示す説明図である。
【図２】実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図３】設計支援装置の機能的構成を示すブロック図である。
【図４】分割前の対象回路の一部を示す回路図である。
【図５】セルライブラリの記憶内容の一例を示す説明図である。
【図６】分割後の対象回路の一部を示す回路図である。
【図７】配線ライブラリの記憶内容の一例を示す説明図である。
【図８】ディレイ特性グラフを示す説明図である。
【図９】スルー特性グラフを示す説明図である。
【図１０】本実施の形態にかかる設計支援装置による設計支援処理手順を示すフローチャートである。
【図１１】図１０に示したパス分割処理（ステップＳ１００２）の詳細な処理手順を示すフローチャートである。
【図１２】図１１に示した連続セル分割処理（ステップＳ１１１０）の詳細な処理手順を示すフローチャートである。
【図１３】図１１に示した不連続セル分割処理（ステップＳ１１１１）の詳細な処理手順を示すフローチャートである。
【図１４】図１２／図１３に示したセル列分割処理（ステップＳ１２０６／Ｓ１３０３）の詳細な処理手順を示すフローチャートである。
【図１５】図１０に示した遅延計算処理（ステップＳ１００３）の詳細な処理手順を示すフローチャートである。
【図１６】図１５に示した第１の分割パス伝搬遅延時間算出処理（ステップＳ１５０７）の詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下に添付図面を参照して、この発明にかかる設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【００２０】
（本開示技術の概要）
図１は、本開示技術の概要を示す説明図である。本開示技術では、まず、対象回路の回路情報であるネットリスト１００を読み込み、ネットリスト１００の中から、パス（データパス、クロックパス）Ｐを抽出する。つぎに、抽出されたパスＰごとに、パス分割をおこなう。パス分割の詳細については後述する。そして、分割パスｐごとに、分割パスばらつき値γおよびその補正値βを計算する。
【００２１】
分割パスばらつき値γは、分割パス固有のばらつき値であり、上記式（１）のような代表セルのばらつき係数αではない。補正値βは、上記式（３）により算出される。また、分割パスについての第１の分割パス伝搬遅延時間Ｔ１を計算する。第１の分割パス伝搬遅延時間Ｔ１は、上記式（１）の伝搬遅延時間Ｔに相当するが、第１の分割パス伝搬遅延時間Ｔ１は、パスの伝搬遅延時間ではなく分割パスの伝搬遅延時間となる。すなわち、第１の分割パス伝搬遅延時間Ｔ１は、分割パスばらつき値γを考慮していない伝搬遅延時間である。
【００２２】
そして、分割パスｐごとの分割パスばらつき値γ、補正値βおよび第１の分割パス伝搬遅延時間Ｔ１から第２の分割パス伝搬遅延時間Ｔ２を計算する。第２の分割パス伝搬遅延時間Ｔ２は、分割パスばらつき値γを考慮した伝搬遅延時間である。最後に、分割パスｐごとの第２の分割パス伝搬遅延時間Ｔ２をマージすることにより、分割元パスＰの分割元パス伝搬遅延時間Ｔ３を得る。
【００２３】
このように、本開示技術では、パスＰのばらつき係数として代表セルのばらつき係数αを用いず、パスＰを分割することで分割パスｐごとの分割パスばらつき値を採用したことにより、分割パスｐごとにマージンが低減された伝搬遅延時間（第２の分割パス伝搬遅延時間Ｔ２）を得ることができる。したがって、分割パスｐごとの第２の分割パス伝搬遅延時間Ｔ２をマージして得られる分割元パス伝搬遅延時間Ｔ３もマージンが低減された伝搬遅延時間が得られることとなり、伝搬遅延時間の適正化を図ることができる。
【００２４】
（設計支援装置のハードウェア構成）
図２は、実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図２において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００２５】
ここで、ＣＰＵ２０１は、設計支援装置の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２６】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２７】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２８】
インターフェース（以下、「Ｉ／Ｆ」と略する。）２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２９】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３０】
スキャナ２１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３１】
（設計支援装置の機能的構成）
図３は、設計支援装置の機能的構成を示すブロック図である。設計支援装置３００は、取得部３０１と、分割部３０２と、セル列ばらつき値算出部３０３と、判断部３０４と、分割パスばらつき値算出部３０５と、分割パス伝搬遅延時間算出部３０６と、分割元パス伝搬遅延時間算出部３０７と、出力部３０８と、を含む構成である。この制御部となる機能（取得部３０１〜出力部３０８）は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０９により、その機能を実現する。
【００３２】
取得部３０１は、対象回路のパスを取得する機能を有する。具体的には、たとえば、対象回路の回路情報の中からパスを取得する機能を有する。ここで、パスとは、入力端子からマクロ（たとえば、ＦＦ（フリップフロップ））までの一連のセルおよびネットの集合、マクロ（たとえば、ＦＦ（フリップフロップ））間の一連のセルおよびネットの集合、マクロから出力端子までの一連のセルおよびネットの集合である。
【００３３】
また、対象回路の回路情報とは、対象回路内のセルの接続情報を含む電子データであり、たとえば、図１に示したネットリスト１００により構成される。抽出部によるパスの抽出方法については周知の手法を用いる。また、取得部３０１は、すでに抽出されたパス群を記憶装置や外部のコンピュータから取り込むこととしてもよい。
【００３４】
分割部３０２は、対象回路の回路情報（たとえば、ネットリスト１００）から得られるパス群の中から選ばれた分割元パスを所定の条件に基づいて分割する機能を有する。ここで、所定の条件とは、少なくとも、分割元パスのセル段数よりもセル段数が少なくなるように分割できればよい。
【００３５】
たとえば、分割するセル段数を設定しておき、セル段数ごとに分割元パスを分割する。また、分割元パスに分岐が存在する場合、分岐を境界として分割してもよい。分岐で分割することにより、分岐の前後でのメタル配線の容量や抵抗に起因する遅延誤差の影響をなくすことができ、分割パス伝搬遅延時間の高精度化を図ることができる。
【００３６】
また、連続する同一タイプのセル列ごとに分割することとしてもよい。これにより、同一タイプのセルで計算を纏めることができ、分割パス伝搬遅延時間の高精度化を図ることができる。
【００３７】
セル列ばらつき値算出部３０３は、セル列のばらつき値を算出する機能を有する。具体的には、前後するセル列について、前のセル列の各セルのばらつき値およびセル段数に基づいて、前のセル列のばらつき値を算出する。同様に、後のセル列の各セルのばらつき値およびセル段数に基づいて、後のセル列のばらつき値を算出する。
【００３８】
前のセル列は、同一セルタイプのセル列でもよく、異なるセルタイプのセル列でもよい。同様に、後のセル列も、同一セルタイプのセル列でもよく、異なるセルタイプのセル列でもよい。同一タイプである場合、計算を纏めることができ、分割パス伝搬遅延時間の高精度化を図ることができる。
【００３９】
判断部３０４は、前後のセル列の各セルのばらつき値およびセル段数により、分割可否を判断する機能を有する。具体的には、たとえば、前後のセル列にばらつき値の差が所定以上ある場合には分割し、差が所定以上ない場合には分割しない。前のセル列のばらつき値と後のセル列のばらつき値の比率を求め、しきい値以上であれば差が所定以上あるとして分割し、しきい値未満であれば差が所定以上ないとして分割しない。
【００４０】
以上のことを踏まえて、分割例について図を用いて説明する。パス分割は回路情報（ネットリスト１００）により行われるが、理解の容易のため回路図を用いて説明する。
【００４１】
図４は、分割前の対象回路の一部を示す回路図である。図４では、入力端子からＦＦ１〜ＦＦ３までのデータパスＰ１〜Ｐ３をそれぞれ分割する例について説明する。また、図４では、簡略化のため、同一タイプのセル列については、セルタイプ名のあとにセル段数を表記している。たとえば、「ＩＮＶ１（１０段）」とは、セルタイプＩＮＶ１のインバータが１０段直列に接続されていることを示している。段数表記のないセルは１段だけである。
【００４２】
データパスＰ１は、データ入力端子であるＤＡＴＡ⇒ＩＮＶ１（１０段）⇒ＩＮＶ２（１０段）⇒ＡＮＤ１⇒ＩＮＶ３（１０段）⇒ＩＮＶ４（１０段）⇒ＮＯＲ１⇒ＦＦ１に至る経路である。データパスＰ２は、データ入力端子であるＤＡＴＡ⇒ＩＮＶ１（１０段）⇒ＩＮＶ２（１０段）⇒ＡＮＤ１⇒ＩＮＶ５（１０段）⇒ＩＮＶ６（１０段）⇒ＮＯＲ２⇒ＦＦ２に至る経路である。データパスＰ３は、データ入力端子であるＤＡＴＡ⇒ＩＮＶ１（１０段）⇒ＩＮＶ２（１０段）⇒ＡＮＤ１⇒ＩＮＶ５（１０段）⇒ＩＮＶ７（１０段）⇒ＮＯＲ３⇒ＦＦ３に至る経路である。
【００４３】
パス分割を行う場合には、セルライブラリ５００を参照する。セルライブラリ５００とは、セルタイプごとにセルの特定を記憶するデータベースである。セルライブラリ５００は、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置によりその機能を実現する。
【００４４】
図５は、セルライブラリ５００の記憶内容の一例を示す説明図である。図５において、セルライブラリ５００は、セルタイプとセルばらつき値と入力ピン容量をセルタイプごとに記憶する。セルタイプとは、セルのタイプを示す識別コードである。図５の例では、インバータについては、ＩＮＶ１〜５の５種類のタイプがある。
【００４５】
図６は、分割後の対象回路の一部を示す回路図である。まず、分岐によるパス分割について説明する。データパスＰ１に着目すると、分岐ｂ１により、分割パスＰ１ａと分割パスＰ１ｂとに分割される。また、データパスＰ２に着目すると、分岐ｂ１，ｂ２により、分割パスＰ１ａと分割パスＰ２ｂ−１と分割パスＰ２ｂ−２とに分割される。また、データパスＰ３に着目すると、分岐ｂ１，ｂ２により、分割パスＰ１ａと分割パスＰ２ｂ−１と分割パスＰ３ｂ−２とに分割される。
【００４６】
つぎに、前後するセル列によるパス分割について説明する。分割パスＰ１ａは、前のセル列ＩＮＶ１（１０段）と異なるセルタイプである後のセル列ＩＮＶ２（１０段）とが直列に接続されている。同一セルタイプのセル列のばらつき値は、セルばらつき値とセル段数とを乗算することにより得ることができる。したがって、前のセル列ＩＮＶ１（１０段）のばらつき値は、８７（＝８．７×１０）である。同様に、後のセル列ＩＮＶ２（１０段）のばらつき値は、１６２．６（＝１６．２６×１０）である。
【００４７】
したがって、前のセル列のばらつき値に対する後のセル列のばらつき値の比率を計算すると、５０％｛≒（８７／１６２．６）×１００｝となる。しきい値を４０％とした場合、しきい値以上となるため、両セル列のばらつき値には隔たりがある。したがって、判断部３０４では分割可能と判断し、前のセル列ＩＮＶ１（１０段）を分割パスＰ１ａ−１、後のセル列ＩＮＶ２（１０段）を分割パスＰ１ａ−２として分割する。
【００４８】
図３に戻って、分割パスばらつき値算出部３０５は、分割部３０２によって得られた分割パスごとに、分割パスを構成する各セルの遅延に関するばらつき値に基づいて、分割パスばらつき値γを算出する機能を有する。分割パスばらつき値γは、分割パスを構成するセルのセルばらつき値の平均値とすることができる。
【００４９】
分割パス伝搬遅延時間算出部３０６は、分割部３０２によって得られた分割パスごとに、分割パスばらつき値算出部３０５によって算出された分割パスばらつき値γに基づいて、分割パス伝搬遅延時間Ｔ２を算出する機能を有する。具体的には、たとえば、分割パスごとに、下記式（４）を用いて分割パス伝搬遅延時間Ｔ２を算出する。
【００５０】
Ｔ２＝γ×β×Ｔ１・・・（４）
【００５１】
補正値βは、分割パスのセル段数をｎとした場合、下記式（５）により算出することができる。
【００５２】
β＝１／√（ｎ）・・・（５）
【００５３】
分割パスばらつき値γを考慮していない第１の分割パス伝搬遅延時間Ｔ１については、分割パスを構成するセルごとに遅延時間を算出し、セルごとに算出された遅延時間の総和をとることで算出することができる。この場合、セルライブラリ５００、配線ライブラリ７００、ディレイ特性グラフ８００およびスルー特性グラフ９００を用いてセルごとの遅延時間を算出する。
【００５４】
図７は、配線ライブラリ７００の記憶内容の一例を示す説明図である。配線ライブラリ７００は、配線タイプごとに配線容量を記憶している。配線（図４および図５のセル間の接続線）についても配線タイプが規定されているため、配線タイプから配線容量を特定することができる。
【００５５】
図８は、ディレイ特性グラフを示す説明図である。ディレイ特性グラフ８００の横軸は、セルに関する出力容量ＣＬ（後段セルの入力ピン容量＋当該入力ピンに接続される配線の配線容量）であり、縦軸はセル固有の遅延時間Ｔｐｄである。また、Ｔｓｉｎ１〜４は、入力スルーである。これにより、後段セルの入力ピン容量をセルライブラリ５００から読み出し、後段セルの入力ピンに接続される配線の配線容量を配線ライブラリ７００から読み出し、足し合わせることで、容量ＣＬを得ることができる。そして、Ｔｓｉｎ１〜４の中から該当する入力スルーを特定し、容量ＣＬに対応する遅延時間Ｔｐｄを引く。
【００５６】
前段が入力端子やマクロ（ＦＦ）であるセルの場合、Ｔｓｉｎ１〜４の中から、制約条件としてあらかじめ与えられた入力スルーに一致または最も近い入力スルーを選択することとなる。前段がセルであるセルの場合、前段セルの出力スルーを入力スルーとし、Ｔｓｉｎ１〜４の中から一致または最も近い入力スルーを選択することとなる。後段が出力端子やマクロ（ＦＦ）であるセルの場合、制約条件として予め与えられた出力容量ＣＬに対応する遅延時間Ｔｐｄを引く。
【００５７】
図９は、スルー特性グラフを示す説明図である。スルー特性グラフ９００の横軸は、セルに関する出力容量ＣＬ（後段セルの入力ピン容量＋当該入力ピンに接続される配線の配線容量）であり、縦軸はセル固有の出力スルーＴｓｏｕｔである。後段セルの入力ピン容量をセルライブラリ５００から読み出し、後段セルの入力ピンに接続される配線の配線容量を配線ライブラリ７００から読み出し、足し合わせることで、容量ＣＬを得ることができる。そして、Ｔｓｉｎ１〜４の中から該当する入力スルーを特定し、容量ＣＬに対応する出力スルーＴｓｏｕｔを引く。引かれた出力スルーは後段セルの入力スルーとして用いられる。
【００５８】
このようにして、分割パスごとに、分割パスばらつき値γ、補正値β、第１の分割パス伝搬遅延時間Ｔ１が求められるため、上記式（４）に与えることで、第２の分割パス伝搬遅延時間Ｔ２を算出することができる。
【００５９】
図３に戻って、分割元パス伝搬遅延時間算出部３０７は、分割パス伝搬遅延時間算出部３０６によって分割パスごとに算出された分割パス伝搬遅延時間を統合することにより、分割元パス伝搬遅延時間Ｔ３を算出する機能を有する。具体的には、たとえば、分割パスごとの第２の分割パス伝搬遅延時間Ｔ２の総和をとることにより、分割元パス伝搬遅延時間Ｔ３を算出する。
【００６０】
出力部３０８は、分割元パス伝搬遅延時間Ｔ３を出力する機能を有する。具体的には、たとえば、ディスプレイ２０８への表示、プリンタ２１３への印刷出力、Ｉ／Ｆ２０９による外部装置への送信をおこなう。また、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶装置に記憶することとしてもよい。
【００６１】
（設計支援処理手順）
図１０は、本実施の形態にかかる設計支援装置３００による設計支援処理手順を示すフローチャートである。まず、取得部３０１により対象回路のパスを取得し（ステップＳ１００１）、分割部３０２によりパス分割処理を実行する（ステップＳ１００２）。つぎに、分割パスばらつき値算出部３０５、分割パス伝搬遅延時間算出部３０６および分割元パス伝搬遅延時間算出部３０７により遅延計算処理を実行する（ステップＳ１００３）。そして、出力部３０８により分割元パス伝搬遅延時間Ｔ３を出力する（ステップＳ１００４）。
【００６２】
図１１は、図１０に示したパス分割処理（ステップＳ１００２）の詳細な処理手順を示すフローチャートである。まず、取得部３０１によって取得されたパス群の中に未選択のパスがあるか否かを判断し（ステップＳ１１０１）、未選択のパスがある場合（ステップＳ１１０１：Ｙｅｓ）、未選択のパスを１つ抽出する（ステップＳ１１０２）。そして、抽出パスに分岐があるか否かを判断する（ステップＳ１１０３）。
【００６３】
分岐がある場合（ステップＳ１１０３：Ｙｅｓ）、分岐を境界として分岐ごとに抽出パスを分割して（ステップＳ１１０４）、ステップＳ１１０５に移行する。一方、分岐がない（ステップＳ１１０３：Ｎｏ）、ステップＳ１１０５に移行する。ステップＳ１１０５では、ステップＳ１１０３またはステップＳ１１０４から得られた抽出パス／分割パスを分割対象パスとして保存する（ステップＳ１１０５）。
【００６４】
つぎに、未処理の分割対象パスがあるか否かを判断する（ステップＳ１１０６）。未処理の分割対象パスがある場合（ステップＳ１１０６：Ｙｅｓ）、未処理の分割対象パスを１つ選択し（ステップＳ１１０７）、分割対象パスの一連のセルのセルタイプを並び順で取得する（ステップＳ１１０８）。そして、セルタイプが不連続か否かを判断する（ステップＳ１１０９）。連続か否かは所定段数同一タイプのセルが直列接続されているか否かにより判断する。所定段数直列接続されていれば連続、されていなければ不連続とする。
【００６５】
不連続でない場合（ステップＳ１１０９：Ｎｏ）、連続セル分割処理を実行して（ステップＳ１１１０）、ステップＳ１１０６に戻る。一方、不連続である場合（ステップＳ１１０９：Ｙｅｓ）、不連続セル分割処理を実行して（ステップＳ１１１１）、ステップＳ１１０６に戻る。また、ステップＳ１１０６において、未処理の分割対象パスがない場合（ステップＳ１１０６：Ｎｏ）、ステップＳ１１０１に戻る。また、ステップＳ１１０１において、未選択のパスがない場合（ステップＳ１１０１：Ｎｏ）、遅延計算処理（ステップＳ１００３）に移行する。
【００６６】
図１２は、図１１に示した連続セル分割処理（ステップＳ１１１０）の詳細な処理手順を示すフローチャートである。まず、分割対象パスを構成するセル群のセルタイプが１種類か否かを判断する（ステップＳ１２０１）。１種類である場合（ステップＳ１２０１：Ｙｅｓ）、算出対象パスとして保存して（ステップＳ１２０２）、図１１のステップＳ１１０６に戻る。
【００６７】
セルタイプが１種類でない場合（ステップＳ１２０１：Ｎｏ）、分割対象パスのセル段数が所定段数Ｎ１以下であるか否かを判断する（ステップＳ１２０３）。所定段数Ｎ１以下である場合（ステップＳ１２０３：Ｙｅｓ）、算出対象パスとして保存して（ステップＳ１２０４）、図１１のステップＳ１１０６に戻る。所定段数Ｎ１以下でない場合（ステップＳ１２０３：Ｎｏ）、セルタイプごとにセルばらつき値にセル段数を乗算し（ステップＳ１２０５）、セル列分割処理を実行して（ステップＳ１２０６）、ステップＳ１１０６に移行する。
【００６８】
図１３は、図１１に示した不連続セル分割処理（ステップＳ１１１１）の詳細な処理手順を示すフローチャートである。まず、所定段数Ｎ２単位でセル列を抽出する（ステップＳ１３０１）。つぎに、所定段数Ｎ２単位のセル列ごとにセルばらつき値の合計を算出する（ステップＳ１３０２）。そして、セル列分割処理を実行して（ステップＳ１３０３）、ステップＳ１１０６に移行する。
【００６９】
図１４は、図１２／図１３に示したセル列分割処理（ステップＳ１２０６／Ｓ１３０３）の詳細な処理手順を示すフローチャートである。まず、前後するセル列ごとに比率を算出する（ステップＳ１４０１）。つぎに、未判断の比率があるか否かを判断する（ステップＳ１４０２）。未判断の比率がある場合（ステップＳ１４０２：Ｙｅｓ）、未判断の比率を抽出し（ステップＳ１４０３）、特定の条件（たとえば、しきい値以上）を満たすか否かを判断する（ステップＳ１４０４）。
【００７０】
満たす場合（ステップＳ１４０４：Ｙｅｓ）、前後するセル列を分割する（ステップＳ１４０５）そして、分割パスを未処理の分割対象パスとして保存して（ステップＳ１４０６）、ステップＳ１４０２に戻る。一方、特定の条件を満たさなかった場合（ステップＳ１４０４：Ｎｏ）、算出対象パスとして保存し（ステップＳ１４０７）、ステップＳ１４０２に戻る。ステップＳ１４０２において、未判断の比率がない場合（ステップＳ１４０２：Ｎｏ）、図１１のステップＳ１１０６に戻る。
【００７１】
図１５は、図１０に示した遅延計算処理（ステップＳ１００３）の詳細な処理手順を示すフローチャートである。まず、取得部３０１によって取得されたパス群の中に未選択のパスがあるか否かを判断し（ステップＳ１５０１）、未選択のパスがある場合（ステップＳ１５０１：Ｙｅｓ）、未選択のパスを１つ選択する（ステップＳ１５０２）。そして、選択されたパスの中に未選択の算出対象パスがあるか否かを判断する（ステップＳ１５０３）。
【００７２】
未選択の算出対象パスがある場合（ステップＳ１５０３：Ｙｅｓ）、未選択の算出対象パスを１つ選択する（ステップＳ１５０４）。そして、選択された算出対象パスのばらつき値（分割パスばらつき値γ）を算出する（ステップＳ１５０５）。また、算出対象パスの補正値βを算出する（ステップＳ１５０６）。さらに、算出対象パスの第１の分割パス伝搬遅延時間算出処理を実行する（ステップＳ１５０７）。
【００７３】
このあと、算出対象パスについて、第２の分割パス伝搬遅延時間Ｔ２を算出して（ステップＳ１５０８）、ステップＳ１５０３に戻る。ステップＳ１５０３において、未選択の算出対象パスがない場合（ステップＳ１５０３：Ｎｏ）、算出対象パスごとの第２の分割パス伝搬遅延時間Ｔ２をマージする（ステップＳ１５０９）。これにより、パス１本分の最終的な分割元パス伝搬遅延時間Ｔ３が得られることとなる。このあと、ステップＳ１５０１に戻る。ステップＳ１５０１において、未選択のパスがない場合（ステップＳ１５０１：Ｎｏ）、パスごとに得られた分割元パス伝搬遅延時間Ｔ３の出力処理（ステップＳ１００４）に移行する。
【００７４】
図１６は、図１５に示した第１の分割パス伝搬遅延時間算出処理（ステップＳ１５０７）の詳細な処理手順を示すフローチャートである。変数ｉをｉ＝１とし（ステップＳ１６０１）、算出対象パスの先頭からｉ番目のセルＣiがあるか否かを判断する（ステップＳ１６０２）。セルＣiがある場合（ステップＳ１６０２：Ｙｅｓ）、セルＣi-1があるか否かを判断する（ステップＳ１６０３）。セルＣi-1がない場合（ステップＳ１６０３：Ｎｏ）、制約入力条件（所定の入力スルー）を取得して（ステップＳ１６０４）、ステップＳ１６０６に移行する。
【００７５】
一方、セルＣi-1がある場合（ステップＳ１６０３：Ｙｅｓ）、セルＣi-1の出力スルーを入力スルーとして取得して（ステップＳ１６０５）、ステップＳ１６０６に移行する。ステップＳ１６０６では、セルＣi+1があるか否かを判断する（ステップＳ１６０６）。セルＣi+1がない場合（ステップＳ１６０６：Ｎｏ）、制約出力条件（所定の出力容量）を取得して（ステップＳ１６０７）、ステップＳ１６０９に移行する。一方、セルＣi+1がある場合（ステップＳ１６０６：Ｙｅｓ）、セルＣi+1の入力ピン容量およびセルＣi+1への配線の配線容量を取得して（ステップＳ１６０８）、ステップＳ１６０９に移行する。
【００７６】
ステップＳ１６０９では、セルＣiの遅延時間Ｔｐｄをディレイ特性グラフ８００から取得する（ステップＳ１６０９）。このあと、ｉをインクリメントして（ステップＳ１６１０）、ステップＳ１６０２に戻る。ステップＳ１６０２において、セルＣiがない場合（ステップＳ１６０２：Ｎｏ）、ステップＳ１６０９で取得されたすべての遅延時間を加算して第１の分割パス伝搬遅延時間Ｔ１とし（ステップＳ１６１１）、ステップＳ１５０８に移行する。
【００７７】
以上説明したように、設計支援プログラム、設計支援装置、および設計支援方法によれば、パスの伝搬遅延時間を見積もる場合に、パスを分割し、分割パスごとの分割パスばらつき値を求めることで、分割パスごとの伝搬遅延時間（第２の分割パス伝搬遅延時間Ｔ２）の変動を抑制して適正な値を得ることができる。したがって、分割パスごとの第２の分割パス伝搬遅延時間Ｔ２をマージするだけで、分割元パス伝搬遅延時間Ｔ３の適正な見積もりをおこなうことができる。また、簡単な計算処理により、モンテカルロ法を用いたシミュレーション結果とは大幅に乖離しない結果を得ることができる。
【００７８】
また、パス内の分岐を境界として分割することにより、分岐の前後でのメタル配線の容量や抵抗に起因する遅延誤差の影響をなくすことができ、第２の分割パス伝搬遅延時間Ｔ２の高精度化を図ることができる。
【００７９】
さらに、連続する同一タイプのセル列ごとに分割することにより、同一タイプのセルで計算を纏めることができ、第２の分割パス伝搬遅延時間Ｔ２の高精度化を図ることができる。
【００８０】
またこの場合、前後のセル列のセルばらつき値の比較で分割可否判断をおこなうことにより、無駄な分割を抑制することができる。すなわち、分割すれば精度は向上するが、分割しなくてもよい箇所で分割すると、分割パスの増加にともない計算量も増加する。したがって、分割パスの本数を適正な本数にすることにより、精度向上および高速化を実現することができる。
【００８１】
また、セルタイプが異なる場合でも適切なセル段数で分割することにより、分割をしない場合に比べて伝搬遅延時間の精度向上を図ることができる。
【００８２】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【００８３】
３００  設計支援装置
３０１  取得部
３０２  分割部
３０３  セル列ばらつき値算出部
３０４  判断部
３０５  分割パスばらつき値算出部
３０６  分割パス伝搬遅延時間算出部
３０７  分割元パス伝搬遅延時間算出部
３０８  出力部
５００  セルライブラリ
７００  配線ライブラリ
８００  ディレイ特性グラフ
９００  スルー特性グラフ
【図１】
2010198374.tif 000003
【図２】
2010198374.tif 000004
【図３】
2010198374.tif 000005
【図４】
2010198374.tif 000006
【図５】
2010198374.tif 000007
【図６】
2010198374.tif 000008
【図７】
2010198374.tif 000009
【図８】
2010198374.tif 000010
【図９】
2010198374.tif 000011
【図１０】
2010198374.tif 000012
【図１１】
2010198374.tif 000013
【図１２】
2010198374.tif 000014
【図１３】
2010198374.tif 000015
【図１４】
2010198374.tif 000016
【図１５】
2010198374.tif 000017
【図１６】
2010198374.tif 000018