IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-85343設計支援プログラム、設計支援方法および設計支援装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024085343
(43)【公開日】2024-06-26
(54)【発明の名称】設計支援プログラム、設計支援方法および設計支援装置
(51)【国際特許分類】
   G06F 30/3312 20200101AFI20240619BHJP
   G06F 30/398 20200101ALI20240619BHJP
   H01L 21/82 20060101ALI20240619BHJP
   G06F 119/12 20200101ALN20240619BHJP
【FI】
G06F30/3312
G06F30/398
H01L21/82 C
G06F119:12
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022199835
(22)【出願日】2022-12-14
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.HSPICE
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】西田 圭佑
【テーマコード(参考)】
5B146
5F064
【Fターム(参考)】
5B146AA22
5B146GC15
5B146GC19
5B146GC26
5B146GG08
5F064AA04
5F064BB19
5F064BB26
5F064DD02
5F064EE03
5F064EE22
5F064EE27
5F064EE42
5F064EE43
5F064EE46
5F064EE47
5F064HH02
5F064HH06
5F064HH09
5F064HH12
5F064HH14
(57)【要約】
【課題】回路の設計変更に対するシミュレーション数の増加を抑止する。
【解決手段】実施形態の設計支援プログラムは、生成する処理と、算出する処理と、書き込む処理とをコンピュータに実行させる。生成する処理は、レジスタ間に含まれるゲートおよび配線を抵抗および容量に置き換えるとともに、レジスタ間において配線層を跨ぐviaをvia抵抗に置き換えたレジスタ間の配線モデルを生成する。算出する処理は、配線モデルにおいて、via抵抗がレジスタ間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出する。書き込む処理は、算出した配線モデルにおける割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報に書き込む。
【選択図】図19
【特許請求の範囲】
【請求項1】
レジスタ間に含まれるゲートおよび配線を抵抗および容量に置き換えるとともに、前記レジスタ間において配線層を跨ぐviaをvia抵抗に置き換えた前記レジスタ間の配線モデルを生成し、
前記配線モデルにおいて、前記via抵抗が前記レジスタ間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出し、
算出した前記配線モデルにおける前記割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報に書き込む、
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
【請求項2】
設計対象の配線構造にかかる入力情報を受け付け、
前記ライブラリ情報に基づいて、受け付けた前記入力情報に基づいて構築した配線構造にかかる遅延を算出する処理をさらに前記コンピュータに実行させる、
ことを特徴とする請求項1に記載の設計支援プログラム。
【請求項3】
前記入力情報には、前記配線構造に含まれる、互いに隣接する2つの配線の遷移状況を示す要素を含み、
前記算出する処理は、前記要素に基づいて前記2つの配線の容量を決定する、
ことを特徴とする請求項2に記載の設計支援プログラム。
【請求項4】
前記書き込む処理は、前記ゲート遅延および前記配線遅延の離散値を前記ライブラリ情報に書き込み、
前記算出する処理は、前記ゲート遅延および前記配線遅延の離散値をもとに線形補間して前記遅延を算出する、
ことを特徴とする請求項2に記載の設計支援プログラム。
【請求項5】
レジスタ間に含まれるゲートおよび配線を抵抗および容量に置き換えるとともに、前記レジスタ間において配線層を跨ぐviaをvia抵抗に置き換えた前記レジスタ間の配線モデルを生成し、
前記配線モデルにおいて、前記via抵抗が前記レジスタ間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出し、
算出した前記配線モデルにおける前記割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報に書き込む、
処理をコンピュータが実行することを特徴とする設計支援方法。
【請求項6】
レジスタ間に含まれるゲートおよび配線を抵抗および容量に置き換えるとともに、前記レジスタ間において配線層を跨ぐviaをvia抵抗に置き換えた前記レジスタ間の配線モデルを生成し、
前記配線モデルにおいて、前記via抵抗が前記レジスタ間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出し、
算出した前記配線モデルにおける前記割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報に書き込む、
処理を実行する制御部を含むことを特徴とする設計支援装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、設計支援プログラム、設計支援方法および設計支援装置に関する。
【背景技術】
【0002】
近年、LSI(Large Scale Integrated Circuit)において、テクノロジ微細化によりトランジスタ部分は性能が向上している。一方、配線部分は微細化による抵抗増加で遅延が増大し性能向上が鈍化している。このようなLSIの設計時のフロアプラン検討において、重要な要素となる長距離配線パスは配線遅延がその多くを占めるため配線遅延の増大の影響が大きくなる。このような配線遅延については、早期見積もりを可能とする従来技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011-232933号公報
【特許文献2】特開平11-26588号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の従来技術では、テクノロジ微細化により増加する配線抵抗の影響により、配線層やL/Sの調整だけでは長距離配線パスによる長距離伝送が困難となり、最適な回路構成提案が難しくなっているという問題がある。
【0005】
例えば、更なる長距離伝送実現の手段として冗長via対応やクロストーク遅延効果(MCF:Miller Coupling Factor)変更などが候補に挙げられる。しかし、従来技術では、ライブラリ作成段階で、via数やMCFを一意に定めた配線モデルを作成してシミュレーションを実行し、ライブラリ化している。このため、ライブラリを用いたツール実行段階では、via数やMCFが変更不可となっている。仮に、このようなライブラリを用いたツール実行段階において、via数やMCFを変更しようとする場合、ライブラリ作成段階で莫大な数のシミュレーションが必要となり現実的ではない。
【0006】
1つの側面では、回路の設計変更に対するシミュレーション数の増加を抑止できる設計支援プログラム、設計支援方法および設計支援装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの案では、設計支援プログラムは、生成する処理と、算出する処理と、書き込む処理とをコンピュータに実行させる。生成する処理は、レジスタ間に含まれるゲートおよび配線を抵抗および容量に置き換えるとともに、レジスタ間において配線層を跨ぐviaをvia抵抗に置き換えたレジスタ間の配線モデルを生成する。算出する処理は、配線モデルにおいて、via抵抗がレジスタ間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出する。書き込む処理は、算出した配線モデルにおける割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報に書き込む。
【発明の効果】
【0008】
回路の設計変更に対するシミュレーション数の増加を抑止できる。
【図面の簡単な説明】
【0009】
図1図1は、LSI設計フローの一例を説明する説明図である。
図2図2は、長距離配線パスの一例を説明する説明図である。
図3図3は、ゲート段数と遅延の関係を説明する説明図である。
図4A図4Aは、従来の全体フローの概要を説明する説明図である。
図4B図4Bは、実施形態にかかる全体フローの概要を説明する説明図である。
図5図5は、従来のライブラリ作成フローを示すフローチャートである。
図6図6は、従来のツール実行フローを示すフローチャートである。
図7図7は、通常viaと冗長viaの一例を説明する説明図である。
図8図8は、MCFを用いた配線遅延の見積もりを説明する説明図である。
図9図9は、従来の配線モデルと実施形態にかかる配線モデルの一例を説明する説明図である。
図10図10は、配線モデルの一例を説明する説明図である。
図11図11は、配線構造の一例を説明する説明図である。
図12図12は、配線モデルの拡張の一例を説明する説明図である。
図13図13は、配線モデルの拡張の一例を説明する説明図である。
図14図14は、シミュレーション結果の一例を説明する説明図である。
図15図15は、シミュレーション結果の一例を説明する説明図である。
図16図16は、実施形態にかかる設計支援装置の機能構成例を示すブロック図である。
図17図17は、実施形態にかかる設計支援装置のライブラリ作成フローを示すフローチャートである。
図18図18は、SPICEデッキの記述例を示す説明図である。
図19図19は、via ratio対応拡張ライブラリの一例を説明する説明図である。
図20図20は、実施形態にかかる設計支援装置のツール実行フローを示すフローチャートである。
図21図21は、配線構造の一例を説明する説明図である。
図22図22は、実施形態にかかる設計支援装置の遅延算出の一例を示すフローチャートである。
図23図23は、線形補間の一例を説明する説明図である。
図24図24は、線形補間の一例を説明する説明図である。
図25図25は、コンピュータ構成の一例を説明する説明図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態にかかる設計支援プログラム、設計支援方法および設計支援装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する設計支援プログラム、設計支援方法および設計支援装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0011】
(従来技術の問題点)
まず、従来技術における問題点を説明する。図1は、LSI設計フローの一例を説明する説明図である。
【0012】
図1に示すように、LSI設計では、論理機能をLSIチップ上のどの領域に配置するか等のフロアプランの検討(S100)と、論理設計(S101)とが行われる。ついで、設計した論理を検証してOK(論理に矛盾がない)であるかが判定される(S102)。論理検証がOKでない場合は(S102:No)、論理設計に戻される。
【0013】
論理検証がOKの場合(S102:Yes)、フロアプラン、論理設計をもとにセル配置、配線が行われ(S103、S104)、静的タイミング解析(STA:Static Timing Analysis)が行われる(S105)。
【0014】
ついで、STAの結果がOKであるかが判定され(S106)、OKでない場合(S106:No)はS103等へ処理が戻される。OKである場合(S106:Yes)は、LSI設計案(フロアプラン、論理設計をもとにしたセル配置、配線)が得られて終了する。
【0015】
ここで、LSI設計の初期段階(図の網掛け部分)であるフロアプラン検討(S100)や論理設計(S101)を開始するためには、長距離配線パスの最適な回路構成の導出が重要になってくる。
【0016】
図2は、長距離配線パスの一例を説明する説明図である。図2に示すように、長距離配線パスとは、レジスタ101a、101b間をゲート102(以降、リピータバッファとも呼ぶ)と配線103のセットを複数(多段に)接続して信号を伝送するパスのことを指す。
【0017】
ここで、リピータバッファ(ゲート102)の通過時間をゲート遅延、配線103の通過時間を配線遅延と呼ぶ。1段あたりのトータル遅延T101は、このゲート遅延および配線遅延をあわせたものである。また、レジスタ101a、101b間の長距離配線パスにおけるトータル遅延T100は、1段あたりのトータル遅延T101の総和となる。
【0018】
配線の微細化等に使用するテクノロジにより、どれだけの距離を伝送可能であるかを事前に把握できないとフロアプラン検討や論理設計の目安が作れないため、図示例における長距離配線パスの最適な回路構成の導出が重要となる。
【0019】
この長距離配線パスの最適な回路構成の導出は、困難を極める。図3は、ゲート段数と遅延の関係を説明する説明図である。図3における横軸はゲート段数、縦軸は遅延量を示す。グラフG100は、配線距離を一定としたトータル遅延T100を示す。グラフG101は、トータル遅延T100に含まれるゲート遅延を示す。グラフG102は、トータル遅延T100に含まれる配線遅延を示す。
【0020】
図3に示すように、ゲート段数が少なく配線遅延が支配的な領域(例えば2段~7段)では、ゲート段数の増加に伴いトータル遅延T100が減少していく。これは次の2つの理由で説明される。
【0021】
(理由1):ゲート段数がn段(=ゲート1段あたりの配線長が1/n倍)のときを考える。ゲート遅延は、“(A)ゲート本来の遅延”と“(B)容量に比例する遅延”の和で構成される。ゲート1段あたりの配線長が1/n倍のとき、容量は1/n倍となるので(B)も概ね1/n倍となる。結果として、(A)は変化しないが、(B)の減少により1段あたりのゲート遅延は減少する。
【0022】
(理由2):配線遅延は配線長の2乗に比例する。ゲート1段あたりの配線長が1/n倍のとき、配線遅延は(1/n)倍となり減少する。ゲート段数の増加に伴いゲート遅延は増加するが、配線遅延の改善がそれを上回るためトータル遅延T100が減少する。
【0023】
一方、ゲート段数が多くゲート遅延が支配的な領域(例えば8段以降)ではゲート段数増加に伴いトータル遅延T100が増加していく。上述の通りゲート1段あたりの配線長が短くなることでゲート遅延(B)と配線遅延は改善されるが、ゲート遅延(A)は変化しないのでゲート段数に比例して(A)の総和が増加していく。(A)の総和が改善具合を上回ることでトータル遅延T100の増加に転じる。
【0024】
従って長距離配線パスに対する最適な回路構成導出とは、トータル遅延が最小となるゲート段数を探索することにほかならない。しかしながら、最適なゲート段数はリピータバッファのセル種(vth違い、駆動力違い)、配線層、配線幅&スペース(以降、配線L/Sと記載)、配線長、配線コーナーに依存して変化する。依存するパラメータは多岐にわたり、長距離配線パスのゲート段数見積もりを困難としている。
【0025】
そこで従来では、セル配置前に設計者が想定した配線層、L/S、配線長、配線コーナーをツールに入力することで最適な回路構成を見積もる設計手法を提供していた。
【0026】
図4Aは、従来の全体フローの概要を説明する説明図である。図4Aに示すように、従来では、回路設計に関する各種処理を行う設計支援装置において、ライブラリ作成(前工程)を行い、事前に配線モデルに関する情報がライブラリL100に書き出される(S110)。
【0027】
具体的には、配線構造構築とR(抵抗)、C(容量)値により配線モデルが作成される(S110a)。ついで、作成された配線モデルについてSPICEネットリストを用いたシミュレーションが実行される(S110b)。ついで、シミュレーション結果をもとにライブラリ作成が行われて(S110c)、ライブラリL100へ書き込まれる。
【0028】
上記の前工程についで、従来の設計支援装置では、前工程で作成されたライブラリL100を読み込み、設計者の入力情報D100をもとにツール実行(後工程)を行う(S111)。具体的には、入力情報D100に対応する配線構成のトータル遅延値がライブラリL100をもとに算出される(S111a)。
【0029】
図5は、従来のライブラリ作成フローを示すフローチャートである。図5に示すように、ライブラリ作成(前工程)が開始されると、従来の設計支援装置は、配線層、L/S、配線コーナーのそれぞれを1つ取り出し設定する(S120、S121、S122)。
【0030】
ついで、従来の設計支援装置は、半導体ベンダから提供されているRC情報データD101(BEOLデータなど)から配線層、L/S、配線コーナーに応じたR、C、via抵抗を算出し、設定した配線層、L/S、配線コーナーの配線モデルとして配線モデルDB D102に書き込む(S123)。
【0031】
ついで、従来の設計支援装置は、全配線コーナーの設定を終了したか否かを判定し(S124)、未終了の場合(S124:No)はS122へ処理を戻す。全配線コーナーの設定を終了した場合(S124:Yes)、従来の設計支援装置は、全L/Sの設定を終了したか否かを判定し(S125)、未終了の場合(S125:No)はS121へ処理を戻す。全L/Sの設定を終了した場合(S125:Yes)、従来の設計支援装置は、全配線層の設定を終了したか否かを判定し(S126)、未終了の場合(S126:No)はS120へ処理を戻す。全配線層の設定を終了した場合(S126:Yes)、従来の設計支援装置は、S120~S126のループを抜けてS127へ処理を進める。これにより、配線モデルごとに算出したR、C、via抵抗が、それぞれの配線モデルと紐つけて配線モデルDB D102に格納される。
【0032】
ついで、従来の設計支援装置は、配線モデルDB D102内に存在する全配線モデル、リピータバッファ全セル種、全配線長の組合せに対してSPICEネットリストを使用してシミュレーションを実行する(S127~S133)。なお、配線長は実設計で取りうる範囲内で数点選択する。
【0033】
具体的には、従来の設計支援装置は、配線モデルDB D102内に存在する全配線モデルについて、リピータバッファ、配線モデル、配線長のそれぞれを1つ取り出し設定する(S127、S128、S129)。ついで、従来の設計支援装置は、設定した組み合わせ(リピータバッファ、配線モデル、配線長)に対してSPICEネットリストを使用してシミュレーションを実行する(S130)。
【0034】
ついで、従来の設計支援装置は、全配線長を取り出したか否かを判定し(S131)、全て取り出していない場合(S131:No)はS129へ処理を戻す。全配線長を取り出した場合(S131:Yes)、従来の設計支援装置は、全配線モデルを取り出したか否かを判定し(S132)、全て取り出していない場合(S132:No)はS128へ処理を戻す。全配線モデルを取り出した場合(S132:Yes)、従来の設計支援装置は、リピータバッファ全セル種を取り出したか否かを判定し(S133)、全て取り出していない場合(S133:No)はS127へ処理を戻す。リピータバッファ全セル種を取り出した場合(S133:Yes)、従来の設計支援装置は、S127~S133のループを抜けてS134へ処理を進める。
【0035】
ついで、従来の設計支援装置は、全シミュレーション結果からシミュレーション結果を1つ取り出す(S134)。ついで、従来の設計支援装置は、目的変数をトータル遅延、説明変数を配線長とした二次関数を作成し、ライブラリL100に書き込む(S135)。ついで、従来の設計支援装置は、全シミュレーション結果を二次関数化したか否かを判定し(S136)、全て二次関数化していない場合(S136:No)はS134へ処理を戻す。全て二次関数化した場合(S136:Yes)、従来の設計支援装置は、ライブラリ作成処理を終了する。
【0036】
図6は、従来のツール実行フローを示すフローチャートである。なお、ツール実行に先立ち、設計者は、想定フロアプランや想定セル配置などから配線幅、L/S、配線長、配線コーナー、許容遅延量などの入力情報D100をツールに入力する。
【0037】
ついで、従来の設計支援装置は、配線長を駆動する1段あたりのトータル遅延を求める。例として配線長をL[m]としゲート段数i段で伝送させた場合を考える。まず、リピータバッファ1段あたりが駆動する配線長はL/iとなる。次に、従来の設計支援装置は、ツールが配線層、L/S、配線コーナー、リピータバッファの組み合わせに合致する二次関数をライブラリから取り出す。続いて、従来の設計支援装置は、取り出した二次関数にL/iを代入し、1段あたりのトータル遅延を算出する。最後に、従来の設計支援装置は、1段当たりのトータル遅延にiを乗算してL[m]伝送したときのトータル遅延T100とし、遅延リストL101に使用したリピータバッファ、ゲート段数とともに書き込む。従来の設計支援装置は、上記操作を任意のゲート段数2n(n=2, 3…)まで繰り返し行い、トータル遅延T100を取得する。
【0038】
具体的には、図6に示すように、ツール実行(後工程)が開始されると、従来の設計支援装置は、入力情報D100より、リピータバッファを1つ取り出す(S140)。
【0039】
ついで、従来の設計支援装置は、ライブラリL100から入力情報D100に合致する二次関数を取り出す(S141)。ついで、従来の設計支援装置は、配線長(L)をi分割(初回はi=2)する(S142)。
【0040】
ついで、従来の設計支援装置は、L/iを二次関数に代入し、1段あたりのトータル遅延T101を算出する(S143)。ついで、従来の設計支援装置は、1段あたりのトータル遅延T101にiを乗算してトータル遅延T100を算出し、算出したトータル遅延T100を遅延リストL101に書き込む(S144)。
【0041】
ついで、従来の設計支援装置は、規定回数(i=4~2n(n=3,4,5…))繰り返したか否かを判定し(S145)、繰り返していない場合(S145:No)はS142へ処理を戻す。
【0042】
規定回数繰り返した場合(S145:Yes)、従来の設計支援装置は、リピータバッファ全セル種を取り出したか否かを判定し(S146)、取り出していない場合(S146:No)はS140へ処理を戻す。取り出した場合(S146:Yes)、従来の設計支援装置は、遅延リストL101を読み込んで遅延値の昇順でソートするとともに、入力情報D100に含まれる許容遅延値を閾値としてフィルタリングを行う(S147)。
【0043】
ついで、従来の設計支援装置は、フィルタリングすることで得られた、配線長を駆動するために最適な回路構成をレポートとして出力し(S148)、処理を終了する。
【0044】
このレポートをもとに、トータル遅延結果を設計者が確認し、解があれば見積もりは終了となる。解なしとなった場合、設計者は、入力情報D100における配線幅、L/S、配線長等を変更し、所定の遅延時間内に収まる組み合わせが見つかるまで本手順を繰り返す。
【0045】
従来の設計支援装置におけるライブラリ作成時のシミュレーション数は、次の式(1)で表記される。
シミュレーション数=配線層×L/S数×配線コーナー数×配線長数×リピータバッファセル数…(1)
【0046】
通常、テクノロジが進むごとにLSIの配線層は増加する。式(1)は配線層数を変数に持つため、テクノロジ進歩に伴いシミュレーション数も増加していき対応不可となることが予見される。
【0047】
(via個数変更要望に対応不可問題)
近年、テクノロジ微細化により配線部分の抵抗が増加傾向にある。特に配線層同士を接続するviaの抵抗値は無視できない。そこでviaを複数個配置し抵抗値を削減する冗長viaという考え方が存在する。
【0048】
図7は、通常viaと冗長viaの一例を説明する説明図である。図7に示すように、ケースC100は、配線層(Mn+1)と配線層(M)の間を1つのviaで接続するケースである。ケースC101は、配線層(Mn+1)と配線層(M)の間を2つのviaで接続するケースである。このケースC101のように、viaを複数個配置し抵抗値を削減する冗長viaは、長距離配線パスに対して有用な技術である。
【0049】
しかしながら、冗長viaを実装する場合、ある配線層間のviaは冗長via、ある配線層間は通常viaといった組み合わせを考慮する必要がある。それに加えて、使用するvia個数の組み合せの考慮も発生する。配線モデルを回路シミュレーション前に厳密に作成している従来手法では、上記組み合わせを全て網羅した配線モデルが必要であり現実的ではない。
【0050】
(クロストーク遅延効果の変更不可問題)
長距離配線パスはクロストークによる遅延効果の影響を受ける。これは、ある配線(例えば配線A)が遷移するとき、容量結合している隣接配線(例えば配線B)の状況により、配線Aの実効容量が変わり配線遅延に影響を及ぼす効果である。この効果は、MCF(ミラー結合ファクター:Miller coupling factor)を用いることで、隣接配線容量から配線Aの実効容量を簡易的に見積もることが可能である。
【0051】
図8は、MCFを用いた配線遅延の見積もりを説明する説明図である。図8のケースC102に示すように、配線A、Bは、互いに隣接して配置されているものとする。また、Cgndは配線Aの対地容量を示し、Cadjは配線Aと配線Bとの結合容量を示す。
【0052】
ケースC102において、例えば、配線Aと配線Bが同時に電位が遷移すれば、配線Aの実効容量は対地容量(Cgnd)だけとなり配線Bとの結合容量(Cadj)は見えなくなる。また、配線Aが遷移するときに配線Bが動作しなければ、配線Aの実効容量は、CgndとCadjの和で表現できる。
【0053】
つまり、設計者が論理側で配線Aと配線Bが同時に同方向に遷移することを保証できればMCF=0.0、配線Aと配線Bが同時に動作しないことを保証できればMCF=1.0、配線Aと配線Bが同時に逆方向に遷移することを保証できればMCF=2.0とする。このように、MCFを用いた表D103により、隣接配線容量から配線Aの実効容量を簡易的に見積もることが可能である。
【0054】
しかし、配線モデルを回路シミュレーション前(ツール実行前)に厳密に作成している従来手法では、MCFの組み合わせを全て網羅した配線モデル作成が必要であり現実的ではない。
【0055】
(ゲート遅延と配線遅延の分離不可問題)
従来技術ではトータル遅延算出に二次関数を採用している。これは、配線遅延が支配的であれば配線長の2乗に比例してトータル遅延が増加するという考えに基づいている。しかしながら、ゲート遅延はそれに従わないため、ゲート遅延が支配的になる短距離配線などのケースでは精度低下を招き、またゲート遅延と配線遅延を分離不可という問題がある。
【0056】
図4Aの全体フローのとおり、従来は、前工程であるライブラリ作成段階で、via数やMCFを一意に定めた配線モデルを作成しシミュレーションを実行、ライブラリ化していた。このため、従来は、後工程であるツール実行段階において、冗長via対応やクロストーク遅延効果(MCF)変更などは変更不可となっていた。仮に冗長via対応やクロストーク遅延効果(MCF)変更に対応する場合は、前工程であるライブラリ作成時の配線モデル作成で、それらに対応した莫大な数の配線モデルとシミュレーションが必要となり現実的ではなかった。
【0057】
(実施形態の概要)
図4Bは、実施形態にかかる全体フローの概要を説明する説明図である。図4Bに示すように、実施形態にかかる設計支援装置は、ライブラリ作成(前工程)において(S1)、抽象化した配線モデル(詳細は後述)についてSPICEネットリストを用いたシミュレーションを実行する(S1a)。ついで、実施形態にかかる設計支援装置は、このシミュレーション結果をもとにライブラリ作成を行い、ライブラリL1へ書き込む(S1b)。
【0058】
ついで、実施形態にかかる設計支援装置は、ツール実行(後工程)において(S2)、設計者の設計者入力情報D1と、ライブラリ作成で得られたライブラリL1とを読み込む。ついで、実施形態にかかる設計支援装置は、配線構造構築と、この配線構造におけるR、C値の算出を行い(S2a)、ゲート遅延、配線遅延、トータル遅延の算出を行う(S2b)。
【0059】
なお、以下の説明において、配線構造構築を行い、その配線構造から算出された配線抵抗、容量をそれぞれR、C(大文字)で表記し、ライブラリ作成時のシミュレーションで用いる配線抵抗、容量をそれぞれr,c(小文字)で表記して区別する。
【0060】
このように、実施形態にかかる設計支援装置は、配線構造構築と、当該配線構造におけるR、C値の算出を後工程であるツール実行時に実施するフローへ変更する。これにより設計者が入力した冗長via設定やMCF設定を、配線構造構築に組み込みR、C値へ反映させることを可能とする。
【0061】
具体的には、前工程であるライブラリ作成でのシミュレーションには固有情報(配線層、L/S、配線コーナー)を排除し、r、c値だけが定義された抽象化した配線モデルを使用する。
【0062】
図9は、従来の配線モデルと実施形態にかかる配線モデルの一例を説明する説明図である。図9に示すように、ケースC103は、従来の配線モデルのケースであり、配線層、L/S、配線コーナーとそれらに対応するR、C値を配線モデルに組み込む。ケースC1は、実施形態にかかる配線モデルのケースであり、配線層、L/S、配線コーナー等の情報はなく、r、c値のみを定義する。
【0063】
実施形態にかかる設計支援装置は、リピータバッファに、あるr、c値の情報のみを持つ配線モデルを接続したときのゲート遅延および配線遅延をシミュレーションで評価する。
【0064】
図10は、配線モデルの一例を説明する説明図である。図10に示すように、配線モデルM1は精度向上のため集中容量ではなくπ型のラダーで扱うものとする。
【0065】
実施形態にかかる設計支援装置は、シミュレーション実行後、あるr、c値とその時のゲート遅延及び配線遅延を紐づけてライブラリ化する。つまりr、c値とゲート遅延及び配線遅延の間に次の式(2)を成立させる。
遅延[s]=f(r,c)…(2)
【0066】
なお、あるr、c値は実設計で取りうる範囲内でそれぞれ数点~数十点選べばよく、予め大きな範囲に設定することでテクノロジ依存を無くすことが可能である。
【0067】
実施形態にかかる設計支援装置では、後工程のツール実行時において、設計者より入力された設計者入力情報D1に応じて配線構造を構築しR、C値を算出、式(2)に代入することで様々な配線構造のゲート遅延と配線遅延を算出できることになる。つまり、冗長via対応やMCF変更が可能ということになる。
【0068】
しかしながら、式(2)単体では十分な精度が出ない。これは、実レイアウトで想定される配線構造と、図10に例示した配線モデルでvia抵抗部分の構造が異なることに起因する。
【0069】
図11は、配線構造の一例を説明する説明図である。図11に示すように、実レイアウトで想定される配線構造K1には、viaに対応するvia抵抗が含まれる。したがって、配線構造K1では、このvia抵抗部分の構造が図10に例示した配線モデルと異なる。
【0070】
このため、仮に合成抵抗、合成容量が図10図11で一致していても、特定条件下では遅延値は一致しない。これは、リピータバッファ自身のドライバ抵抗と接続される配線抵抗の関係で説明される。
【0071】
配線抵抗<<ドライバ抵抗ならばリピータバッファからは下流に接続されている全容量値が見えるため、式(2)が成立し得る。しかしながら、配線抵抗>>ドライバ抵抗ならば、抵抗性容量遮蔽効果(Resistive Shielding)により、リピータバッファからは下流に接続されている全容量値が見えない。この結果、式(2)は成立しない。つまり、リピータバッファの直後に接続されるvia抵抗値次第で、それから見える実効容量の値が変化する。
【0072】
そこで図10で提案した配線モデルM1に、via相当要素を配線の始点と終点に組み込み、配線モデルを拡張する。図12図13は、配線モデルの拡張の一例を説明する説明図である。
【0073】
図12に示すように、配線モデルM1に対して拡張した配線モデルM2では、via相当要素を配線の始点と終点に組み込んでいる。ここで、via相当要素の抵抗値は、全配線抵抗(r)に対する割合で定義する。具体的には、図13に示すように、via抵抗が全配線抵抗(r)に占める割合毎(例えば0%、20%、…80%)の配線モデルM2a、M2b…M2nとする。実施形態にかかる設計支援装置は、これら配線モデルM2a、M2b…M2nそれぞれについて、ゲート遅延および配線遅延を算出する。
【0074】
この考え方は、via ratioモデルと呼称し、次の式(3)で定義する。
via ratio=via抵抗/r(0≦via ratio≦1.0)…(3)
【0075】
実施形態にかかる設計支援装置は、上述の配線モデルM2a、M2b…M2nおよびライブラリL1にvia ratioモデルを導入することで常に式(2)を成立させる。このvia ratioモデルを組み込んだ配線モデルM2a、M2b…M2nおよびライブラリL1については、それぞれ、via ratio対応の拡張配線モデル、via ratio対応拡張ライブラリと呼称する場合がある。
【0076】
図14図15は、シミュレーション結果の一例を説明する説明図である。ここで、シミュレーションについて、従来技術ではL/S数を4点、配線コーナー数を2点、配線長数を10点としている。また、本実施形態では、rポイント数を10点、cポイント数を7点、via ratioモデル作成ポイントを11点としている。
【0077】
図14におけるグラフG1、G2は、横軸を評価数、縦軸をHSPICE誤差[%]として本実施形態のシミュレーション結果をプロットしたグラフである。グラフG1はゲート遅延の評価結果を示し、グラフG2は配線遅延の評価結果を示す。
【0078】
図14に示すように、本実施形態のシミュレーション結果では、HSPICE比±5%以内(従来同等以上)の精度が保たれている。
【0079】
図15におけるグラフG3は、横軸を配線総数、縦軸をシミュレーション数として従来技術および本実施形態のシミュレーション結果をプロットしたグラフである。図15におけるグラフG4は、横軸を配線総数、縦軸をシミュレーション数の削減率(1-本実施形態/従来技術)としてシミュレーション結果をプロットしたグラフである。
【0080】
図15に示すように、本実施形態では、従来技術に対してシミュレーション数を40%程度削減している(配線層16同士で比較)。また、本実施形態では、テクノロジが進み配線層数、L/S数、コーナー数の増加に伴い、従来技術に対するシミュレーション数の削減率が向上していく。このように、本実施形態の設計支援装置では、シミュレーション数を増加させることなく冗長via対応、MCF変更に対応している。この結果、本実施形態の設計支援装置では、ゲート段数見積もりが困難な長距離配線パスに対して様々な配線構造の遅延情報を、フロアプラン検討またはセル配置フェイズ前(論理設計時)に提供可能としている。
【0081】
(実施形態について)
図16は、実施形態にかかる設計支援装置の機能構成例を示すブロック図である。図16に示すように、設計支援装置1は、通信部10と、入力部20と、表示部30と、記憶部40と、制御部50とを有する。
【0082】
通信部10は、ネットワークを介して外部装置から各種のデータを受信する。通信部10は、通信装置の一例である。たとえば、通信部10は、回路設計に関する各種設定情報(例えば設計者入力情報D1)などを外部装置から受信してもよい。
【0083】
入力部20は、設計支援装置1の制御部50に各種の情報を入力する入力装置である。入力部20は、キーボードやマウス、タッチパネル等に対応する。たとえば、入力部20は、ユーザからの入力操作により、例えば、設計者入力情報D1などを受け付ける。
【0084】
表示部30は、制御部50から出力される情報を表示する表示装置である。たとえば、表示部30は、制御部50の制御のもと、シミュレーション結果等のレポートを表示する。
【0085】
記憶部40は、設計者入力情報D1、ライブラリL1などのデータを格納する。記憶部40は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0086】
制御部50は、ライブラリ作成部51と、ツール実行部52とを有する。制御部50は、例えばCPU(Central Processing Unit)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。
【0087】
ライブラリ作成部51は、ライブラリ作成(前工程)に関する処理(S1)を実行する処理部である。ツール実行部52は、ツール実行(後工程)に関する処理(S2)を実行する処理部である。
【0088】
まず、ライブラリ作成部51が行うライブラリ作成(前工程)の処理について説明する。ライブラリ作成部51は、LSI設計フローにおけるフロアプラン見積もりまたはセル配置フェイズ前にライブラリ作成(前工程)を実施する。ライブラリ作成部51は、SPICEネットリストを用いて、リピータバッファにvia ratio=0.0となる、あるr、c値が設定されたvia ratio対応の拡張配線モデルが接続されたときのゲート遅延及び配線遅延を、様々なPVT条件(トランジスタプロセス条件、電圧条件、温度条件)でシミュレーションする。なお、あるr、cは実設計で取りうる範囲内でそれぞれ数点~数十点選べばよく、予め大きな範囲を取ることでテクノロジ依存を無くすことが可能である。
【0089】
ついで、ライブラリ作成部51は、via ratio=0.0以外のvia ratioモデルを作成する。via ratioモデル作成ポイントを0~1.0の範囲内で数点選択する。ポイント間同士の幅は問わない。ライブラリ作成部51は、上記の処理を全via ratioモデル作成ポイントに対して実行する。
【0090】
図17は、実施形態にかかる設計支援装置1のライブラリ作成フローを示すフローチャートである。
【0091】
図17に示すように、処理が開始されると、ライブラリ作成部51は、リピータバッファを任意に1つ取り出し設定する(S11)。ついで、ライブラリ作成部51は、あるr、c値の組み合わせを1つ取り出し、via ratio対応の拡張配線モデルに設定する(S12)。ついで、ライブラリ作成部51は、via ratioモデルの作成ポイントを1つ取り出し、via ratioが0.0(0%)~1.0(100%)の範囲となるvia抵抗を設定する(S13)。
【0092】
ついで、ライブラリ作成部51は、S11~S13により設定した値において、様々なPVT条件でSPICEネットリストを用いたシミュレーションを実行する(S14)。
【0093】
図18は、SPICEデッキの記述例を示す説明図である。図18に示すように、ライブラリ作成部51は、SPICEデッキに設定した条件でシミュレーションを行う。
【0094】
このシミュレーションにより、ライブラリ作成部51は、ゲート遅延及び配線遅延を得る。ついで、ライブラリ作成部51は、全via ratioモデルの作成ポイントを全て取り出したか否かを判定し(S15)、全て取り出していない場合(S15:No)はS13へ処理を戻す。
【0095】
全て取り出した場合(S15:Yes)、ライブラリ作成部51は、全r、cの組み合わせを取り出したか否かを判定し(S16)、全r、cの組み合わせを取り出していない場合(S16:No)はS12へ処理を戻す。
【0096】
全r、cの組み合わせを取り出した場合(S16:Yes)、ライブラリ作成部51は、リピータバッファ全セル種を取り出したか否かを判定し(S17)、全て取り出していない場合(S17:No)はS11へ処理を戻す。
【0097】
リピータバッファ全セル種を取り出した場合(S17:Yes)、ライブラリ作成部51は、S11~S17のループを抜けてS18へ処理を進める。このループにより、ライブラリ作成部51は、実設計で使用しうるリピータバッファ全セル種に対してシミュレーションを行い、via ratio対応の拡張配線モデルのゲート遅延、配線遅延を得る。
【0098】
この時のシミュレーション数は、次の式(4)となる。式(1)と比較するとテクノロジ依存部分が存在しないため、テクノロジ進歩に伴うシミュレーション数増加はない。
シミュレーション数=rポイント数×cポイント数×via ratioモデルの作成ポイント数×リピータバッファ数…(4)
【0099】
ついで、ライブラリ作成部51は、シミュレーション結果を1つ取り出し(S18)、r、c値、via ratio、リピータバッファと、ゲート遅延値、配線遅延値をライブラリL1(via ratio対応拡張ライブラリ)に書き込む(S19)。
【0100】
ついで、ライブラリ作成部51は、全シミュレーション結果をライブラリL1に書き込みしたか否かを判定し(S20)、全て書き込みしていない場合(S20:No)はS18へ処理を戻す。全て書き込みした場合(S20:Yes)、ライブラリ作成部51は、ライブラリ作成の処理を終了する。
【0101】
以上のように、ライブラリ作成部51は、シミュレーション結果をライブラリL1にライブラリ化する。具体的には、ライブラリ作成部51は、ゲート遅延及び配線遅延を分離するため近似式は使用せず、シミュレーションに使用したr、c値、via ratio、リピータバッファとゲート遅延及び配線遅延を紐づけてルックアップテーブル(以降、LUTと記載)にする。
【0102】
図19は、via ratio対応拡張ライブラリの一例を説明する説明図である。図19に示すように、ライブラリL1(via ratio対応拡張ライブラリ)は、JSON(JavaScript Object Notation)で実装してもよい。図18に例示した実装例では、横軸(x方向)にr、 縦軸(y方向)にcを取ったフォーマットF1のLUTとしている。また、図18では、via ratioが0.0の場合に紐付けられたLUTを例示しているが、0.0以外のvia ratio(例えば、0.1、0.2…)についても同様のLUTが紐付けられている。当然、ライブラリL1は図示例(JSON形式)に限らず、どのようなフォーマットを使用しても構わない。
【0103】
また、r、cのポイント数は、適宜設定してもよい。図示例では、r、cは、5ポイントずつの離散値としているが、5ポイントに限る必要はなく、例えば、10ポイントずつの離散値としてもよい。
【0104】
次に、ツール実行部52が行うツール実行(後工程)の処理について説明する。図20は、実施形態にかかる設計支援装置1のツール実行フローを示すフローチャートである。なお、ツール実行に先立ち、設計者は、設計者入力情報D1を設計支援装置1に入力する。この設計者入力情報D1には、配線層、L/S、配線長、配線コーナー、許容遅延値、冗長via数(任意)、MCF(任意)が含まれる。
【0105】
図20に示すように、処理が開始されると、ツール実行部52は、設計者入力情報D1より、リピータバッファを1つ取り出す(S30)。ついで、ツール実行部52は、設計者入力情報D1を基にリピータバッファに関するレジスタ間の配線構造を構築する(S31)。
【0106】
図21は、配線構造の一例を説明する説明図である。図21に示すように、ケースC2において、ツール実行部52は、設計者入力情報D1に記載された条件(冗長via数:なし(計1個))をもとに、冗長viaなしの配線構造K2を構築する。なお、配線構造K2について、配線層はMn+5、L/SはL/S、配線長はLとする。
【0107】
同様に、ケースC3において、ツール実行部52は、設計者入力情報D1に記載された条件(冗長via数:1(計2個))をもとに、冗長viaありの配線構造K3を構築する。なお、配線構造K3について、配線層はMn+5、L/SはL/S、配線長はLとする。当然、冗長viaの使用個数は、自然数であれば何でもよい。また、ツール実行部52は、Vのみを冗長viaに変更するという処理も可能である。
【0108】
ついで、ツール実行部52は、本ツール実行時点で実レイアウトは存在しないため、半導体ベンダから提供されているRC情報データD2から、構築した配線構造を基にR、C値=R、Cとvia抵抗を算出する(S32)。
【0109】
ついで、ツール実行部52は、R、C値=R、Cを段数(i)に応じてi分割(初回はi=2)するとともに、via ratioを算出する(S33)。
【0110】
例として配線長をL[m]、伝送に用いる配線層をM、配線長LのR、C値をそれぞれR[ohm]、C[F]、リピータバッファの出力ポートからMまでのvia抵抗をR[ohm]とする。これをゲート段数i段で伝送させた場合を考える。リピータバッファ1段あたりが駆動する配線長はL/iとなるのでR、C値はそれぞれR/i、C/iとなる。via抵抗は、リピータバッファの出力ポートからMまでと、Mからリピータバッファの入力ポートまでの経路があるので2Rとなる。このときのvia ratioはvr=2R/(R/i+2R)となる。
【0111】
なお、ツール実行部52は、C値について、配線構造に含まれる、互いに隣接する2つの配線の遷移状況を示す要素であるMCFに基づいて値を決定する。具体的には、図8に例示したとおり、ツール実行部52は、MCF=0.0(隣接する配線同士が同時に同方向に遷移)、MCF=1.0(同時に同方向に遷移しない)、MCF=2.0(同時に逆方向に遷移)をもとに容量を決める。
【0112】
ついで、ツール実行部52は、ライブラリL1から設計者入力情報D1に合致するLUTを取り出す(S34)。ついで、ツール実行部52は、R/i、C/iおよびvia ratioからゲート遅延と配線遅延をLUTを参照して算出する。ツール実行部52は、算出したゲート遅延と配線遅延(1段あたりの遅延値)をi倍することでL[m]時の遅延値を算出して、使用したリピータバッファ、ゲート段数とともに遅延リストL2に書き込む(S35)。
【0113】
ツール実行部52は、上記の操作を規定回数(任意のゲート段数i=4~2n(n=3、4、5…))繰り返したか否かを判定し(S36)、繰り返していない場合(S36:No)はS33へ処理を戻す。
【0114】
規定回数繰り返した場合(S36:Yes)、ツール実行部52は、リピータバッファ全セル種を取り出したか否かを判定し(S37)、取り出していない場合(S37:No)はS30へ処理を戻す。
【0115】
リピータバッファ全セル種を取り出した場合(S37:Yes)、ツール実行部52は、遅延リストL2を読み込んで遅延値の昇順でソートするとともに、設計者入力情報D1に含まれる許容遅延値を閾値としてフィルタリングを行う(S38)。
【0116】
ついで、ツール実行部52は、フィルタリングすることで得られた、配線長を駆動するために最適な回路構成をレポートとして出力し(S39)、処理を終了する。
【0117】
図22は、実施形態にかかる設計支援装置1の遅延算出の一例を示すフローチャートである。図22に示すように、ツール実行部52は、vr≦求めたいvia ratio≦vrを満たすvrとvrをライブラリL1から探索する(S51)。
【0118】
ついで、ツール実行部52は、vrとvrに対応するLUT(LUTvra、LUTvrb)をライブラリL1から取り出す(S52)。
【0119】
ついで、ツール実行部52は、LUTvraとLUTvrbから配線R、C=R/i、C/iに該当する1段あたりのゲート遅延vra、vrb、配線遅延vra、vrbを算出する。
【0120】
このゲート遅延vra、vrb、配線遅延vra、vrbは、LUTに含まれる離散値を補間して求める。
【0121】
図23は、線形補間の一例を説明する説明図である。図23のケースC4は、ゲート遅延vraを線形補間して算出する一例を示している。ケースC5は、ゲート遅延vrbを線形補間して算出する一例を示している。図23に示すように、LUTに含まれる値は離散値であることから、ツール実行部52は、その離散値を線形補間することで、ゲート遅延vra、vrbに対応する値を求める。なお、ツール実行部52は、配線遅延vra、vrbの算出も同様である。
【0122】
ついで、ツール実行部52は、ゲート遅延vraと、ゲート遅延vrbから求めたいゲート遅延vrを1次の線形補間で算出する(S54)。
【0123】
ついで、ツール実行部52は、配線遅延vraと配線遅延vrbから求めたい配線遅延vrを1次の線形補間で算出する(S55)。
【0124】
図24は、線形補間の一例を説明する説明図である。図24のケースC6に示すように、ゲート遅延と、via ratioとは、via ratioの増加に比例してゲート遅延が減少する関係性を有する。したがって、ツール実行部52は、ゲート遅延vraと、ゲート遅延vrbから求めたいゲート遅延vrを1次の線形補間で求めることができる。配線遅延vrについても同様に、1次の線形補間で求めることができる。なお、本実施形態では、線形補完を使用したが、当然他の補完手法を選択してもよい。
【0125】
設計者は、S39のレポートによりトータル遅延を確認し、解があれば見積もりは終了となる。フィルタリングの結果、解なしとなった場合、設計者は、設計者入力情報D1の内容を変更し再度評価を実行する。
【0126】
従来であれば、L[m]伝送するという前提であれば配線層またはL/Sしか変更出来なかった。したがって、従来は、それらの変更で許容遅延値を達成出来なければ、前提であるLを短くするほかなく、フロアプラン変更等を余儀なくされた。
【0127】
これに対し、実施形態にかかる設計支援装置1では、配線層、L/Sに加え、冗長via対応やMCF変更に対応している。そのため、許容値達成不可だった場合も様々な配線構造をセル配置前に評価可能である。配線長を短くする以外の設計手法を選択することを可能とし、フロアプラン策定に高い自由度を与えることができる。設計者に対して自由度の高い設計手法を提供できるものである。
【0128】
以上のように、設計支援装置1は、レジスタ101a、101b間に含まれるゲート102および配線103を抵抗および容量に置き換えるとともに、レジスタ101a、101b間において配線層を跨ぐviaをvia抵抗に置き換えたレジスタ101a、101b間の配線モデルを生成する。設計支援装置1は、この配線モデルにおいて、via抵抗がレジスタ101a、101b間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出する。設計支援装置1は、算出した配線モデルにおける割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報(ライブラリL1)に書き込む。
【0129】
このようなライブラリ情報をツール実行前に作成しておくことで、設計支援装置1は、冗長viaに対応するような回路の設計変更に対するシミュレーション数の増加を抑止することができる。
【0130】
また、設計支援装置1は、設計対象の配線構造にかかる設計者入力情報D1を受け付け、ライブラリ情報(設計者入力情報D1)に基づいて、受け付けた設計者入力情報D1に基づいて構築した配線構造にかかる遅延を算出する。これにより、設計支援装置1は、冗長viaに対応するような配線構造に関する遅延を求めることができる。
【0131】
また、設計者入力情報D1には、設計対象の配線構造に含まれる、互いに隣接する2つの配線の遷移状況を示す要素を含む。設計支援装置1は、この要素に基づいて2つの配線の容量を決定する。これにより、設計支援装置1は、互いに隣接する2つの配線の遷移状況に応じて生じる遅延、すなわちクロストーク遅延効果を再現できる。
【0132】
また、設計支援装置1は、ゲート遅延および前配線遅延の離散値をライブラリ情報(ライブラリL1)に書き込む。設計支援装置1は、このライブラリ情報に含まれるゲート遅延および配線遅延の離散値をもとに線形補間して遅延を算出する。これにより、設計支援装置1は、ライブラリ情報に含まれる離散値から遅延量を得ることができる。したがって、設計支援装置1では、設計上想定される全ての値をライブラリ情報に用意する必要がない。
【0133】
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0134】
また、設計支援装置1の制御部50で行われるライブラリ作成部51およびツール実行部52の各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、設計支援装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0135】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ構成(ハードウエア)の一例を説明する。図25は、コンピュータ構成の一例を説明位する説明図である。
【0136】
図25に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203と、スピーカー204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、設計支援装置1は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
【0137】
ハードディスク装置209には、上記の実施形態で説明した機能構成(例えばライブラリ作成部51およびツール実行部52)における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0138】
CPU201は、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、上記の機能構成(例えばライブラリ作成部51およびツール実行部52)に関する各種の処理を行う。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。
【0139】
以上の実施形態に関し、さらに以下の付記を開示する。
【0140】
(付記1)レジスタ間に含まれるゲートおよび配線を抵抗および容量に置き換えるとともに、前記レジスタ間において配線層を跨ぐviaをvia抵抗に置き換えた前記レジスタ間の配線モデルを生成し、
前記配線モデルにおいて、前記via抵抗が前記レジスタ間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出し、
算出した前記配線モデルにおける前記割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報に書き込む、
処理をコンピュータに実行させることを特徴とする設計支援プログラム。
【0141】
(付記2)設計対象の配線構造にかかる入力情報を受け付け、
前記ライブラリ情報に基づいて、受け付けた前記入力情報に基づいて構築した配線構造にかかる遅延を算出する処理をさらに前記コンピュータに実行させる、
ことを特徴とする付記1に記載の設計支援プログラム。
【0142】
(付記3)前記入力情報には、前記配線構造に含まれる、互いに隣接する2つの配線の遷移状況を示す要素を含み、
前記算出する処理は、前記要素に基づいて前記2つの配線の容量を決定する、
ことを特徴とする付記2に記載の設計支援プログラム。
【0143】
(付記4)前記書き込む処理は、前記ゲート遅延および前記配線遅延の離散値を前記ライブラリ情報に書き込み、
前記算出する処理は、前記ゲート遅延および前記配線遅延の離散値をもとに線形補間して前記遅延を算出する、
ことを特徴とする付記2に記載の設計支援プログラム。
【0144】
(付記5)レジスタ間に含まれるゲートおよび配線を抵抗および容量に置き換えるとともに、前記レジスタ間において配線層を跨ぐviaをvia抵抗に置き換えた前記レジスタ間の配線モデルを生成し、
前記配線モデルにおいて、前記via抵抗が前記レジスタ間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出し、
算出した前記配線モデルにおける前記割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報に書き込む、
処理をコンピュータが実行することを特徴とする設計支援方法。
【0145】
(付記6)設計対象の配線構造にかかる入力情報を受け付け、
前記ライブラリ情報に基づいて、受け付けた前記入力情報に基づいて構築した配線構造にかかる遅延を算出する処理をさらに前記コンピュータが実行する、
ことを特徴とする付記5に記載の設計支援方法。
【0146】
(付記7)前記入力情報には、前記配線構造に含まれる、互いに隣接する2つの配線の遷移状況を示す要素を含み、
前記算出する処理は、前記要素に基づいて前記2つの配線の容量を決定する、
ことを特徴とする付記6に記載の設計支援方法。
【0147】
(付記8)前記書き込む処理は、前記ゲート遅延および前記配線遅延の離散値を前記ライブラリ情報に書き込み、
前記算出する処理は、前記ゲート遅延および前記配線遅延の離散値をもとに線形補間して前記遅延を算出する、
ことを特徴とする付記6に記載の設計支援方法。
【0148】
(付記9)レジスタ間に含まれるゲートおよび配線を抵抗および容量に置き換えるとともに、前記レジスタ間において配線層を跨ぐviaをvia抵抗に置き換えた前記レジスタ間の配線モデルを生成し、
前記配線モデルにおいて、前記via抵抗が前記レジスタ間の配線構造の全抵抗に占める割合ごとに、ゲート遅延および配線遅延を算出し、
算出した前記配線モデルにおける前記割合ごとのゲート遅延および配線遅延を、回路設計にかかるライブラリ情報に書き込む、
処理を実行する制御部を含むことを特徴とする設計支援装置。
【0149】
(付記10)設計対象の配線構造にかかる入力情報を受け付け、
前記ライブラリ情報に基づいて、受け付けた前記入力情報に基づいて構築した配線構造にかかる遅延を算出する処理をさらに前記制御部が実行する、
ことを特徴とする付記9に記載の設計支援装置。
【0150】
(付記11)前記入力情報には、前記配線構造に含まれる、互いに隣接する2つの配線の遷移状況を示す要素を含み、
前記算出する処理は、前記要素に基づいて前記2つの配線の容量を決定する、
ことを特徴とする付記10に記載の設計支援装置。
【0151】
(付記12)前記書き込む処理は、前記ゲート遅延および前記配線遅延の離散値を前記ライブラリ情報に書き込み、
前記算出する処理は、前記ゲート遅延および前記配線遅延の離散値をもとに線形補間して前記遅延を算出する、
ことを特徴とする付記10に記載の設計支援装置。
【符号の説明】
【0152】
1…設計支援装置
10…通信部
20…入力部
30…表示部
40…記憶部
50…制御部
51…ライブラリ作成部
52…ツール実行部
101a、101b…レジスタ
102…ゲート
103…配線
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…スピーカー
205…媒体読取装置
206…インタフェース装置
207…通信装置
208…RAM
209…ハードディスク装置
210…バス
211…プログラム
212…各種データ
C1~C103…ケース
D1…設計者入力情報
D2、D101…RC情報データ
D100…入力情報
D102…配線モデルDB
D103…表
F1…フォーマット
G1~G102…グラフ
K1~K3…配線構造
L1、L100…ライブラリ
L2、L101…遅延リスト
M1、M2、M2a~M2n…配線モデル
T100…トータル遅延
T101…1段あたりのトータル遅延
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25