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

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

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

特開2022-165844ライブラリ開発支援プログラム、ライブラリ開発支援方法および情報処理装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022165844
(43)【公開日】2022-11-01
(54)【発明の名称】ライブラリ開発支援プログラム、ライブラリ開発支援方法および情報処理装置
(51)【国際特許分類】
   G06F 30/3308 20200101AFI20221025BHJP
   H01L 21/82 20060101ALI20221025BHJP
【FI】
G06F30/3308
H01L21/82 Z
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021071386
(22)【出願日】2021-04-20
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】後藤 健司
【テーマコード(参考)】
5B146
5F064
【Fターム(参考)】
5B146AA22
5B146GE01
5B146GG05
5B146GG22
5B146GJ05
5F064HH05
5F064HH09
5F064HH10
5F064HH12
(57)【要約】
【課題】回路ライブラリの開発にかかるコストを削減すること。
【解決手段】情報処理装置101は、測定対象回路TCに関する設計データDを取得する。情報処理装置101は、取得した設計データDを用いた動作シミュレーションの結果に基づいて、測定対象回路TCのうちの動作する箇所を特定する。情報処理装置101は、記憶部110を参照して、取得した設計データDのうち、特定した動作する箇所とは異なる他の箇所のセルを、動作特性の測定項目に応じて特定される置換用セルに置換する。記憶部110は、あらかじめ用意された複数の置換用セルを記憶する。情報処理装置101は、置換後の設計データDに基づいて、測定対象回路TCに関する動作特性測定用のネットリストNLを作成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
動作特性の測定対象回路に関する設計データを取得し、
取得した前記設計データを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定し、
複数の置換用セルを記憶する記憶部を参照して、前記設計データのうち、特定した前記動作する箇所とは異なる他の箇所のセルを、前記動作特性の測定項目に応じて特定される置換用セルに置換し、
置換後の前記設計データに基づいて、前記測定対象回路に関する動作特性測定用のネットリストを作成する、
処理をコンピュータに実行させることを特徴とするライブラリ開発支援プログラム。
【請求項2】
前記置換する処理は、
前記測定項目がタイミング制約の場合、前記記憶部を参照して、前記他の箇所のセルを削除するための削除セルを特定し、前記他の箇所のセルを、特定した前記削除セルに置換する、ことを特徴とする請求項1に記載のライブラリ開発支援プログラム。
【請求項3】
前記置換する処理は、
前記測定項目が電力の場合、前記記憶部を参照して、前記他の箇所のセルにおける信号伝搬を切断して入力を固定する入力固定セルを特定し、前記他の箇所のセルを、特定した前記入力固定セルに置換する、ことを特徴とする請求項1または2に記載のライブラリ開発支援プログラム。
【請求項4】
前記動作する箇所のセルのうち、前記他の箇所のセルを置換用セルに置換した場合にフローティング状態となる接続ネットに接続されたセルを検出し、
検出した前記セルを、前記接続ネットからの入力を固定する入力固定セルに置換する、
処理を前記コンピュータに実行させることを特徴とする請求項1~3のいずれか一つに記載のライブラリ開発支援プログラム。
【請求項5】
前記設計データは、前記測定対象回路に関する回路図データと、前記測定対象回路に関するレイアウトデータとを含み、
前記特定する処理は、
前記回路図データと測定パターンとを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定する、ことを特徴とする請求項1~4のいずれか一つに記載のライブラリ開発支援プログラム。
【請求項6】
作成した前記動作特性測定用のネットリストを用いて、前記測定対象回路の動作特性をあらわすライブラリデータを生成し、
生成した前記ライブラリデータを出力する、
処理を前記コンピュータに実行させることを特徴とする請求項1~5のいずれか一つに記載のライブラリ開発支援プログラム。
【請求項7】
動作特性の測定対象回路に関する設計データを取得し、
取得した前記設計データを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定し、
複数の置換用セルを記憶する記憶部を参照して、前記設計データのうち、特定した前記動作する箇所とは異なる他の箇所のセルを、前記動作特性の測定項目に応じて特定される置換用セルに置換し、
置換後の前記設計データに基づいて、前記測定対象回路に関する動作特性測定用のネットリストを作成する、
処理をコンピュータが実行することを特徴とするライブラリ開発支援方法。
【請求項8】
動作特性の測定対象回路に関する設計データを取得し、
取得した前記設計データを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定し、
複数の置換用セルを記憶する記憶部を参照して、前記設計データのうち、特定した前記動作する箇所とは異なる他の箇所のセルを、前記動作特性の測定項目に応じて特定される置換用セルに置換し、
置換後の前記設計データに基づいて、前記測定対象回路に関する動作特性測定用のネットリストを作成する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ライブラリ開発支援プログラム、ライブラリ開発支援方法および情報処理装置に関する。
【背景技術】
【0002】
従来、LSI(Large Scale Integration)設計では、基本ゲートやデータを保持するフリップフロップなどのスタンダードセル、演算器など専用に設計されるカスタムマクロ、大量のデータ保持に使用されるメモリマクロなどの部品が使用される。これらの部品は、例えば、LSI設計ツールで使用するライブラリデータのかたちで提供される。ライブラリには様々なものがあり、例えば、タイミング制約情報、電力情報などを持つ回路ライブラリがある。
【0003】
先行技術としては、シミュレーション対象とする機能に応じて作成したテストパターンを用いて低精度のシミュレーションを実行して、波形に一定以上の変化がある信号を抽出し、抽出した信号を対象としてネットリストを作成し、高精度のシミュレーションを実行するものがある。また、回路情報内に記述されている回路動作を制御する記述を制御記述情報として抽出し、テストベンチ情報から動作制御記述に伝播する信号を制御パターン情報として抽出し、制御記述情報と制御パターン情報から動作しない制御記述を特定し、動作しない制御記述を削除する技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002-108965号公報
【特許文献2】特開2007-133451号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、LSI設計などに用いられる回路ライブラリの開発に時間や計算機リソースなどのコストがかかるという問題がある。
【0006】
一つの側面では、本発明は、回路ライブラリの開発にかかるコストを削減することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、動作特性の測定対象回路に関する設計データを取得し、取得した前記設計データを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定し、前記設計データのうち、特定した前記動作する箇所とは異なる他の箇所のセルを、あらかじめ用意された複数の置換用セルを記憶する記憶部を参照して、前記動作特性の測定項目に応じて特定される置換用セルに置換し、置換後の前記設計データに基づいて、前記測定対象回路に関する動作特性測定用のネットリストを作成する、ライブラリ開発支援プログラムが提供される。
【発明の効果】
【0008】
本発明の一側面によれば、回路ライブラリの開発にかかるコストを削減することができるという効果を奏する。
【図面の簡単な説明】
【0009】
図1図1は、実施の形態にかかるライブラリ開発支援方法の一実施例を示す説明図である。
図2図2は、情報処理システム200のシステム構成例を示す説明図である。
図3図3は、ライブラリ開発支援装置201のハードウェア構成例を示すブロック図である。
図4図4は、セル置換DB220の記憶内容の一例を示す説明図である。
図5図5は、ライブラリ開発支援装置201の機能的構成例を示すブロック図である。
図6図6は、測定対象回路の一例を示す説明図である。
図7図7は、シミュレーション結果の具体例を示す説明図である。
図8図8は、アクティブリストの具体例を示す説明図である。
図9図9は、接続情報の具体例を示す説明図である。
図10図10は、動作ブロックの特定例を示す説明図である。
図11図11は、測定対象回路内の非動作ブロックの第1の置換例を示す説明図(その1)である。
図12図12は、測定対象回路内の非動作ブロックの第1の置換例を示す説明図(その2)である。
図13図13は、対応関係情報の具体例を示す説明図(その1)である。
図14図14は、対応関係情報の具体例を示す説明図(その2)である。
図15図15は、測定対象回路内の非動作ブロックの第2の置換例を示す説明図である。
図16A図16Aは、ライブラリ開発支援装置201の動作例を示す説明図(その1)である。
図16B図16Bは、ライブラリ開発支援装置201の動作例を示す説明図(その2)である。
図16C図16Cは、ライブラリ開発支援装置201の動作例を示す説明図(その3)である。
図17図17は、ライブラリ開発支援装置201のデータ加工処理例を示す説明図である。
図18図18は、ライブラリ開発支援装置201のデータ加工処理手順を示すフローチャートである。
図19図19は、置換処理の具体的処理手順の一例を示すフローチャートである。
図20図20は、メモリ回路の一例を示す説明図である。
図21図21は、メモリ回路の読み出しデータの流れを示す説明図である。
図22図22は、置換後のメモリ回路の一例を示す説明図である。
図23図23は、デコード回路の一例を示す説明図である。
図24図24は、置換後のデコード回路の一例を示す説明図である。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかるライブラリ開発支援プログラム、ライブラリ開発支援方法および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態)
図1は、実施の形態にかかるライブラリ開発支援方法の一実施例を示す説明図である。図1において、情報処理装置101は、測定対象回路の動作特性の測定を支援するコンピュータである。測定対象回路の動作特性は、例えば、測定対象回路のタイミング制約、電力などである。
【0012】
近年、製造プロセスの微細化にともなうバラツキの増大、消費電力削減のための低電圧化等による検証条件の増加、ライブラリ精度向上のための情報量増加などにより、回路ライブラリの開発工数が増加している。回路ライブラリは、各部品のタイミング制約情報や電力情報などを持つライブラリである。部品は、例えば、基本ゲートやフリップフロップなどのスタンダードセル(以下、「STDセル」という)、カスタムマクロ、メモリマクロなどである。
【0013】
従来の回路ライブラリ開発では、設計データとしてレイアウトデータと回路図データとが作成され、設計完了後にLVS(Layout Versus Schematic)が実行される。回路図データは、回路素子とその接続関係を記述した回路情報(例えば、素子Aと素子Bとの接続関係を示す情報)である。
【0014】
レイアウトデータは、実際の製造パターンを記述した物理情報(例えば、基板上に配置される回路素子のレイアウトを示す情報)である。LVSは、回路図データとレイアウトデータとが一致していることをチェックする処理である。LVSでは、回路図データとレイアウトデータとの一致確認とレイアウト形状情報の抽出が行われる。
【0015】
つぎに、従来の回路ライブラリ開発では、レイアウト形状情報と環境条件からLPE(Layout Parasitic Extraction)が実行される。環境条件は、温度や配線バラツキ条件などである。LPEでは、レイアウトの配線抵抗、寄生容量の抽出が行われ、LPEネットリストが作成される。LPEネットリストは、回路接続情報に回路素子の形状データと寄生素子情報を含むデータである。
【0016】
例えば、LPEネットリストは、素子間の接続関係を示す通常のネットリストに、配線につく抵抗や容量などのシミュレーションで遅延を計算するための寄生素子の情報が含まれたものである。一般的に抵抗値は温度に依存し、容量値は配線バラツキ条件に依存する。このため、LPEネットリストは、例えば、「温度×配線バラツキ条件」の数分作成される。
【0017】
回路ライブラリは、例えば、回路ライブラリ測定ツール(以下、「lib測定ツール」という)により、ライブラリに必要なデータを測定することで生成される。例えば、LPEネットリスト、各種測定に必要な測定パターン(どういう信号を入力するのか)、ツールの設定や測定条件を記述した設定ファイルをlib測定ツールに入力して実行することで、回路ライブラリが出力される。回路ライブラリを検証条件ごとに用意する場合には、検証条件の数分、lib測定ツールが実行される。
【0018】
lib測定ツールでは、大きく分けてタイミング制約と電力の測定が行われる。タイミング制約は、例えば、入力信号のセットアップ時間、ホールド時間、入力容量、入力から出力までのディレイ値である。電力は、例えば、動作の有無にかかわらず常に消費されるリーク電力と、動作時に配線容量の充放電で消費されるダイナミック電力である。
【0019】
カスタムマクロやメモリマクロは、例えば、STDセルや専用回路を組み合わせた回路ブロック(以下、「ブロック」という)を複数組み合わせて設計される。タイミング制約の測定では、必要なブロックは回路全体の一部である。例えば、ある入力信号のセットアップ時間、ホールド時間を測定する場合、入力信号を保持するフリップフロップと関連する制御回路があればよい。このため、タイミング制約の測定は、例えば、入力されるLPEネットリストを解析して必要なブロックだけ取り出す処理を行ってから行われる。
【0020】
一方、電力の測定では、リーク電力測定のために全てのトランジスタが必要になるため、入力されるLPEネットリストをそのまま使用する。このため、測定パターンとして、タイミング制約向けには、測定したいブロックが動作するようなパターンを用意し、電力向けには、マクロ全体で必要な動作(最大電力動作、最小電力動作など)を行うパターンを用意する。
【0021】
大規模なマクロでは、LPEネットリストに含まれる素子数は数百万トランジスタ、数千万寄生素子になり、lib測定ツールの実行時間や計算機の使用リソース量が非常に大きなものになる。そのため、LPEネットリストから指定したトランジスタやネットの寄生素子を取り出してLPEネットリストサイズを圧縮し、lib測定ツールの実行時間の短縮や計算機の使用リソースの削減を行うことが考えられる。
【0022】
例えば、ネットリストベースで、評価に使用するパターンで高速な低精度のシミュレーションにより動作箇所を特定し、回路全体のネットリストから動作箇所を抽出したネットリストを作成し、高精度なシミュレーションを行う従来技術1がある(例えば、特許文献1参照)。また、ハードウェア記述言語で設計された回路において検証で使用するテストベンチで動作しない記述を取り除き回路量を削減する従来技術2がある(例えば、特許文献2参照)。
【0023】
具体的には、例えば、従来技術1は、まず、測定パターンと回路図データを用いて、低精度で高速な機能シミュレーションを行う。この機能シミュレーションでは、正しく動作すればよく、信号の微細な変化やタイミングは考慮しない。従来技術1は、シミュレーション結果からアクティブリストを作成する。アクティブリストは、回路中で動作するネット、デバイスに関する情報の一覧である。
【0024】
つぎに、従来技術1は、LPEネットリストからアクティブリストに含まれるネットの寄生素子とデバイスの抽出を行い、測定パターンで動作するネットとデバイスに絞ったLPEネットリストの圧縮を行う(以下、「圧縮版LPEネットリスト」という)。そして、従来技術1は、圧縮版LPEネットリストをlib測定ツールに入力し、ライブラリ測定を行う。
【0025】
しかしながら、従来技術1は、タイミング制約などの回路の一部を用いて測定する項目のみに対応可能であり、電力の測定には対応することができない。例えば、電力の測定では、素子を削除するとリーク電力が正しく測定できなくなるため、従来技術1の圧縮版LPEネットリストを用いることができない。
【0026】
また、大規模回路では、数百万トランジスタ、数千万寄生素子を持つLPEネットリストが作成される。多くの検証条件に対応するためには、バラツキ条件、温度条件を変えた複数のLPEネットリストの作成が必要となる。このため、従来技術1では、ネットリストの作成、圧縮版LPEネットリストの抽出およびデータ管理に、多くの計算機リソースが必要になるという問題がある。
【0027】
そこで、本実施の形態では、回路ライブラリの開発にかかる計算機の実行時間や計算機リソースなどのコストを削減するライブラリ開発支援方法について説明する。ここで、情報処理装置101の処理例について説明する。
【0028】
(1)情報処理装置101は、測定対象回路TCに関する設計データDを取得する。ここで、測定対象回路TCは、動作特性の測定対象となる回路である。例えば、測定対象回路TCは、回路ライブラリに部品として登録されるSTDセル、カスタムマクロ、メモリマクロなどの回路である。
【0029】
設計データDは、例えば、測定対象回路TCに関する回路図データsdと、測定対象回路に関するレイアウトデータldとを含む。回路図データsdは、回路素子とその接続関係を記述した回路情報である。レイアウトデータldは、実際の製造パターンを記述した物理情報である。回路図データsdとレイアウトデータldは、例えば、レイアウト検証等に用いられる情報である。
【0030】
(2)情報処理装置101は、取得した設計データDを用いた動作シミュレーションの結果に基づいて、測定対象回路TCのうちの動作する箇所を特定する。ここで、動作シミュレーションは、測定対象回路TCの動作を確認するためのシミュレーションである。例えば、ある機能の動作を確認する場合、その機能に応じて作成される測定パターン(入力信号のテストパターン)を用いてシミュレーションが実行される。
【0031】
図1の例では、測定対象回路TCのうちの動作する箇所として、動作箇所120が特定された場合を想定する。
【0032】
(3)情報処理装置101は、記憶部110を参照して、取得した設計データDのうち、特定した動作する箇所とは異なる他の箇所のセルを、動作特性の測定項目に応じて特定される置換用セルに置換する。記憶部110は、あらかじめ用意された複数の置換用セルを記憶する。測定項目としては、例えば、タイミング制約と電力がある。
【0033】
タイミング制約は、例えば、セットアップ時間、ホールド時間、入力容量、ディレイ値などである。電力は、例えば、リーク電力とダイナミック電力である。置換用セルへの置換処理は、例えば、設計データDに含まれる回路図データsdおよびレイアウトデータldそれぞれについて行われる。
【0034】
動作特性がタイミング制約の場合、測定対象回路TC内の動作しない箇所のセルを削除しても、セットアップ時間等を正しく測定することができる。一方、動作特性が電力の場合、測定対象回路TC内のセルを削除すると、例えば、リーク電力を正しく測定することができなくなる。
【0035】
このため、情報処理装置101は、記憶部110を参照して、動作特性の測定項目に応じて置換用セルを特定し、特定した動作する箇所とは異なる他の箇所のセルを、特定した置換用セルに置換する。この際、情報処理装置101は、例えば、他の箇所の一部のセルを置換用セルに置換してもよく、また、他の箇所の全てのセルを置換用セルに置換してもよい。
【0036】
具体的には、例えば、情報処理装置101は、測定項目がタイミング制約の場合、記憶部110を参照して、他の箇所のセルを削除するための削除セルを特定し、他の箇所のセルを、特定した削除セルに置換する。また、情報処理装置101は、測定項目が電力の場合、記憶部110を参照して、他の箇所における信号伝搬を切断して入力を固定する入力固定セルを特定し、他の箇所のセルを、特定した入力固定セルに置換する。
【0037】
図1の例では、測定対象回路TCのうちの動作箇所120とは異なる他の箇所を「非動作箇所130」とする。この場合、情報処理装置101は、例えば、測定項目がタイミング制約の場合、非動作箇所130のセル131を削除セルに置換する。また、情報処理装置101は、測定項目が電力の場合、非動作箇所130のセル131を入力固定セルに置換する。
【0038】
(4)情報処理装置101は、置換後の設計データDに基づいて、測定対象回路TCに関する動作特性測定用のネットリストNLを作成する。ここで、動作特性測定用のネットリストNLは、測定対象回路TCに関するタイミング制約や電力などの動作特性を測定するためのネットリストである。
【0039】
具体的には、例えば、情報処理装置101は、置換後の回路図データsdと置換後のレイアウトデータldとを用いてLPEを実行することにより、LPEネットリストを作成する。LPEネットリストは、動作特性測定用のネットリストNLの一例であり、例えば、通常のネットリストに、配線につく抵抗や容量などのシミュレーションで遅延を計算するための寄生素子の情報を含めたものである。
【0040】
このように、情報処理装置101によれば、測定対象回路TCに関する動作特性測定用のネットリストNLを作成するにあたり、設計データDを加工して、動作特性の測定に不要な回路ブロックを削除したり、動作特性の測定に不要な信号伝播を抑止したりすることができる。
【0041】
これにより、動作特性測定用のネットリストNLの作成にかかる実行時間と使用リソース量を削減することができる。また、作成されるネットリストNL自体のデータ量が削減されるため、後段のlib測定ツールにおける実行時間と使用リソースが少なくなり、ライブラリ開発にかかるコストを削減することが可能となる。
【0042】
(情報処理システム200のシステム構成例)
つぎに、図1に示した情報処理装置101を含む情報処理システム200のシステム構成例について説明する。ここでは、図1に示した情報処理装置101を、情報処理システム200内のライブラリ開発支援装置201に適用した場合を例に挙げて説明する。情報処理システム200は、例えば、LSI設計などに用いるライブラリの開発を支援するサービスに適用される。
【0043】
図2は、情報処理システム200のシステム構成例を示す説明図である。図2において、情報処理システム200は、ライブラリ開発支援装置201と、クライアント装置202と、を含む。情報処理システム200において、ライブラリ開発支援装置201およびクライアント装置202は、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
【0044】
ここで、ライブラリ開発支援装置201は、セル置換DB(Database)220を有し、回路ライブラリの開発を支援するコンピュータである。回路ライブラリは、タイミング制約情報、電力情報などを含むライブラリであり、例えば、LSI設計に用いられる。ライブラリ開発支援装置201は、例えば、サーバである。
【0045】
セル置換DB220の記憶内容については、図4を用いて後述する。図1に示した記憶部110は、例えば、セル置換DB220に相当する。
【0046】
クライアント装置202は、情報処理システム200のユーザが使用するコンピュータである。ユーザは、例えば、回路ライブラリの開発者である。クライアント装置202は、例えば、PC(Personal Computer)、タブレットPCなどである。
【0047】
なお、ここではライブラリ開発支援装置201とクライアント装置202とを別体に設けることにしたが、これに限らない。例えば、ライブラリ開発支援装置201は、クライアント装置202により実現されることにしてもよい。また、情報処理システム200には、複数のクライアント装置202が含まれることにしてもよい。
【0048】
(ライブラリ開発支援装置201のハードウェア構成例)
図3は、ライブラリ開発支援装置201のハードウェア構成例を示すブロック図である。図3において、ライブラリ開発支援装置201は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、通信I/F(Interface)305と、可搬型記録媒体I/F306と、可搬型記録媒体307と、を有する。また、各構成部は、バス300によってそれぞれ接続される。
【0049】
ここで、CPU301は、ライブラリ開発支援装置201の全体の制御を司る。CPU301は、複数のコアを有していてもよい。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
【0050】
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0051】
通信I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータ(例えば、図2に示したクライアント装置202)に接続される。そして、通信I/F305は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F305には、例えば、モデムやLANアダプタなどを採用することができる。
【0052】
可搬型記録媒体I/F306は、CPU301の制御に従って可搬型記録媒体307に対するデータのリード/ライトを制御する。可搬型記録媒体307は、可搬型記録媒体I/F306の制御で書き込まれたデータを記憶する。可搬型記録媒体307としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0053】
なお、ライブラリ開発支援装置201は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有することにしてもよい。また、図2に示したクライアント装置202についても、ライブラリ開発支援装置201と同様のハードウェア構成により実現することができる。ただし、クライアント装置202は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有する。
【0054】
(セル置換DB220の記憶内容)
つぎに、ライブラリ開発支援装置201が有するセル置換DB220の記憶内容について説明する。セル置換DB220は、例えば、メモリ302、ディスク304などの記憶装置により実現される。
【0055】
図4は、セル置換DB220の記憶内容の一例を示す説明図である。図4において、セル置換DB220は、セル種別ごとに、置換用セルをあらわす置換用セルデータ(例えば、置換用セルデータ411~413,421~423,431~437,441~447)を記憶する。
【0056】
セル種は、置換用セルの種類を示す。セル種としては、例えば、基本セル、削除セル、入力固定セル1、入力固定セル2などがある。基本セルは、例えば、バッファ、ANDゲート、ORゲートなどである。削除セルは、セルを削除するための置換用セルを示す。入力固定セル1は、入力をグラウンド(0)に固定するための置換用セルを示す。入力固定セル2は、入力を電源電圧(1)に固定するための置換用セルを示す。
【0057】
例えば、置換用セルデータ421は、バッファを削除するための置換用セルをあらわす。また、置換用セルデータ431は、バッファへの入力をグラウンドに固定するための置換用セルをあらわす。また、置換用セルデータ441は、バッファへの入力を電源電圧に固定するための置換用セルをあらわす。
【0058】
なお、セル置換DB220には、例えば、基本セルをあらわす置換用セルデータ411~413は含まれていなくてもよい。また、セル置換DB220には、上述した置換用セルのほかに、例えば、接続に必要な配線データのみを持つ置換用セルが記憶されていてもよい。
【0059】
(ライブラリ開発支援装置201の機能的構成例)
図5は、ライブラリ開発支援装置201の機能的構成例を示すブロック図である。図5において、ライブラリ開発支援装置201は、取得部501と、特定部502と、置換部503と、作成部504と、生成部505と、出力部506と、記憶部510と、を含む。取得部501~出力部506は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304、可搬型記録媒体307などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、通信I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。また、記憶部510は、例えば、メモリ302、ディスク304などの記憶装置により実現される。具体的には、例えば、記憶部510は、図4に示したセル置換DB220を記憶する。
【0060】
取得部501は、動作特性の測定対象回路TCに関する設計データDを取得する。設計データDは、例えば、測定対象回路TCに関する回路図データsdと、測定対象回路TCに関するレイアウトデータldとを含む。回路図データsdは、レイアウトデータldに比べてデータ量が少ないため、高速な処理が可能である。レイアウトデータldについても、例えば、専用の加工ツールを使用することで、高速に処理することが可能である。
【0061】
具体的には、例えば、取得部501は、図2に示したクライアント装置202から設計データDを受信することにより、受信した設計データDを取得する。また、取得部501は、クライアント装置202から設計データDの指定を受け付けることにより、不図示の設計データDBから、指定された設計データDを取得してもよい。また、取得部501は、不図示の入力装置を用いたユーザの操作により、入力された設計データDを取得してもよい。なお、測定対象回路TCの一例については、図6を用いて後述する。
【0062】
特定部502は、取得された設計データDを用いた動作シミュレーションの結果に基づいて、測定対象回路TCのうちの動作する箇所を特定する。具体的には、例えば、特定部502は、測定対象回路TCに関する回路図データsdと、あらかじめ用意された測定パターンとを用いて、機能シミュレーションを行う。
【0063】
機能シミュレーションは、測定対象回路TCの機能を実現する動作を確認するための動作シミュレーションである。測定パターンは、入力する信号をあらわすものであり、シミュレーション対象とする機能に応じて作成される。なお、機能シミュレーションの結果の具体例については、図7を用いて後述する。
【0064】
つぎに、特定部502は、機能シミュレーションの結果からアクティブリストを作成する。アクティブリストは、回路中で動作するネット、デバイスに関する情報の一覧である。そして、特定部502は、作成したアクティブリストと接続情報とに基づいて、測定対象回路TCのうちの動作する箇所を特定する。
【0065】
接続情報は、測定対象回路TC内のセルとネットとの接続関係を示す情報である。接続情報は、例えば、測定対象回路TCに関する回路図データsdとレイアウトデータldとでLVSを実行することにより取得することができる。アクティブリストの具体例については、図8を用いて後述する。接続情報の具体例については、図9を用いて後述する。測定対象回路TCのうちの動作する箇所の特定例については、図10を用いて後述する。
【0066】
なお、動作シミュレーションは、ライブラリ開発支援装置201とは異なる他のコンピュータにおいて実行されてもよい。この場合、特定部502は、例えば、他のコンピュータから動作シミュレーションの結果を取得する。
【0067】
置換部503は、記憶部510を参照して、取得された設計データDのうち、特定した箇所とは異なる他の箇所のセルを、動作特性の測定項目に応じて特定される置換用セルに置換する。ここで、記憶部510は、あらかじめ用意された複数の置換用セルを記憶する。測定項目としては、例えば、タイミング制約と電力がある。
【0068】
タイミング制約は、例えば、セットアップ時間、ホールド時間、入力容量、ディレイ値などである。電力は、例えば、リーク電力とダイナミック電力である。置換用セルへの置換処理は、例えば、設計データDに含まれる回路図データsdおよびレイアウトデータldそれぞれについて行われる。
【0069】
具体的には、例えば、置換部503は、測定項目がタイミング制約の場合、図4に示したセル置換DB220を参照して、他の箇所のセルを削除するための削除セルを特定し、他の箇所のセルを、特定した削除セルに置換する。この際、置換部503は、例えば、他の箇所の一部のセルを削除セルに置換してもよく、また、他の箇所の全てのセルを削除セルに置換してもよい。
【0070】
また、置換部503は、測定項目が電力の場合、セル置換DB220を参照して、他の箇所のセルにおける信号伝搬を切断して入力を固定する入力固定セルを特定し、他の箇所のセルを、特定した入力固定セルに置換する。この際、置換部503は、例えば、他の箇所の一部のセルを入力固定セルに置換してもよく、また、他の箇所の全てのセルを入力固定セルに置換してもよい。
【0071】
入力固定セルは、他の箇所における信号伝搬を抑止するための置換用セルである。入力固定セルによれば、例えば、他の箇所のセルと別のセルとの接続関係を切断しつつ、フローティング状態とならないように、他の箇所のセルへの入力をグラウンドや電源電圧に固定することができる。
【0072】
例えば、測定項目を「電力」とし、他の箇所のセルを「バッファ」とし、そのセルへの入力を「0」とする。この場合、置換部503は、セル置換DB220を参照して、バッファへの入力をグラウンド(0)に固定するための入力固定セル(置換用セルデータ431)を特定する。そして、置換部503は、他の箇所のセルを、特定した入力固定セル(置換用セルデータ431)に置換する。
【0073】
また、測定項目を「電力」とし、他の箇所のセルを「バッファ」とし、そのセルへの入力を「1」とする。この場合、置換部503は、セル置換DB220を参照して、バッファへの入力を電源(1)に固定するための入力固定セル(置換用セルデータ441)を特定する。そして、置換部503は、他の箇所のセルを、特定した入力固定セル(置換用セルデータ441)に置換する。
【0074】
以下の説明では、測定対象回路TCのうちの動作する箇所を「動作ブロック」と表記し、動作する箇所とは異なる他の箇所を「非動作ブロック」と表記する場合がある。
【0075】
ここで、非動作ブロックのセルを削除セルに置換した場合、動作ブロックのセルに接続されていた接続ネットがフローティング状態となってしまう。同様に、非動作ブロックのセルを入力固定セルに置換した場合、動作ブロックのセルに接続されていた接続ネットがフローティング状態となってしまうことがある。回路の入力がフローティング状態になっていると、期待通りのシミュレーションが行われない。
【0076】
このため、置換部503は、非動作ブロックのセルを置換用セルに置換した場合に、動作ブロックのセルのうち、フローティング状態となる接続ネットに接続されたセルを検出することにしてもよい。そして、置換部503は、検出したセルを、フローティング状態となる接続ネットからの入力を固定する入力固定セルに置換することにしてもよい。
【0077】
具体的には、例えば、置換部503は、セル置換DB220を参照して、検出したセルへの入力に応じて、フローティング状態となる接続ネットからの入力を固定する入力固定セルを特定する。そして、置換部503は、検出したセルを、特定した入力固定セルに置換することにしてもよい。
【0078】
作成部504は、置換後の設計データDに基づいて、測定対象回路TCに関する動作特性測定用のネットリストNLを作成する。ここで、動作特性測定用のネットリストNLは、測定対象回路TCに関するタイミング制約や電力などの動作特性を測定するためのネットリストである。
【0079】
具体的には、例えば、作成部504は、置換後の回路図データsdと置換後のレイアウトデータldとを用いてLPEを実行することにより、LPEネットリストを作成する。LPEネットリストは、動作特性測定用のネットリストNLの一例であり、例えば、通常のネットリストに、配線につく抵抗や容量などのシミュレーションで遅延を計算するための寄生素子の情報を含めたものである。
【0080】
より詳細に説明すると、例えば、作成部504は、置換後の回路図データsdと置換後のレイアウトデータldとでLVSを実行する。そして、作成部504は、LVSを実行して得られる接続情報と形状情報と、所定の環境条件とに基づいて、LPEを実行することにより、LPEネットリストを作成する。
【0081】
接続情報は、セルとネットとの接続関係を示す情報である。形状情報は、レイアウトの幾何学情報であり、例えば、レイアウト上での各部品の位置などを特定可能である。所定の環境条件は、任意に指定可能であり、例えば、温度と配線バラツキ条件の組み合わせによってあらわされる。所定の環境条件は、例えば、取得部501によって取得される。
【0082】
なお、LVSを実行すると、接続情報、形状情報のほかに、例えば、対応関係情報が得られる。対応関係情報は、回路図データsd内の部品(セル、ネット)が、レイアウトデータld内のどの部品と対応しているかを示す情報である。対応関係情報の具体例については、図13および図14を用いて後述する。
【0083】
生成部505は、作成された動作特性測定用のネットリストNLを用いて、測定対象回路TCの動作特性をあらわすライブラリデータを生成する。具体的には、例えば、生成部505は、作成されたLPEネットリストを用いて、既存のlib測定ツールを実行することにより、測定対象回路TCのタイミング制約、電力などをあらわすライブラリデータを生成する。
【0084】
lib測定ツールには、LPEネットリストのほかに、例えば、各種測定に必要な測定パターン、ツールの設定や測定条件を記述した設定ファイルが入力される。測定パターンや設定ファイルは、例えば、取得部501によって取得される。
【0085】
出力部506は、生成された測定対象回路TCの動作特性をあらわすライブラリデータを出力する。出力部506の出力形式としては、例えば、メモリ302、ディスク304などの記憶装置への記憶、通信I/F305による他のコンピュータ(例えば、図2に示したクライアント装置202)への送信、不図示のディスプレイへの表示などがある。
【0086】
具体的には、例えば、出力部506は、測定対象回路TCと対応付けて、生成されたライブラリデータを、不図示の回路ライブラリに登録することにしてもよい。これにより、LSI設計に用いられる回路ライブラリを作成することができる。
【0087】
また、出力部506は、作成された動作特性測定用のネットリストNLを出力することにしてもよい。具体的には、例えば、出力部506は、測定対象回路TCと対応付けて、LPEネットリストを他のコンピュータに送信することにしてもよい。これにより、他のコンピュータにおいて、LPEネットリストを用いて、測定対象回路TCの動作特性をあらわすライブラリデータを生成することができる。
【0088】
(測定対象回路TC内の動作ブロックの特定例)
つぎに、図6図10を用いて、測定対象回路TC内の動作ブロックの特定例について説明する。まず、図6を用いて、測定対象回路TCの一例について説明する。
【0089】
図6は、測定対象回路の一例を示す説明図である。図6において、測定対象回路600は、動作特性の測定対象となる回路の一例である。図6に示す測定対象回路600は、測定対象回路TCに関する回路図データsdを可視化したものに相当する。
【0090】
測定対象回路600において、I0~I9は、セルの名前を示す。例えば、セルI0は、インバータである。セルI1は、ANDゲートである。a~iは、接続ネットの名前を示す。例えば、接続ネットaは、セルI0とセルI1とを接続する。IN、TEST、OUTは、それぞれ入出力ピン名を示す。
【0091】
つぎに、図7を用いて、機能シミュレーションの結果の具体例について説明する。ここでは、図6に示した測定対象回路600の回路図データsdと測定パターンとを用いて実行された機能シミュレーションの結果を例に挙げて説明する。また、動作特性の測定項目がタイミング制約である場合を例に挙げて説明する。
【0092】
図7は、シミュレーション結果の具体例を示す説明図である。図7において、シミュレーション結果700は、機能シミュレーションの結果を示す。シミュレーション結果700には、各接続ネット、入出力ピンにおける信号の変化が示されている。ここでは、入力信号TESTは、常に0であるとする。
【0093】
つぎに、図8を用いて、アクティブリストの具体例について説明する。ここでは、図7に示したシミュレーション結果700から作成されるアクティブリストを例に挙げて説明する。
【0094】
図8は、アクティブリストの具体例を示す説明図である。図8において、アクティブリスト800は、機能シミュレーションにおいて、測定対象回路600(図6参照)のうちの動作するネットに関する情報の一覧である。
【0095】
アクティブリスト800において、1列目は、接続ネット名を示す。また、2列目は、接続ネットの状態を示す。iは、入力ピンを示す。oは、出力ピンを示す。1/0は、それぞれシミュレーション期間中常に1または0に固定であることを示す。xは、シミュレーション期間中に変化したことを示す。
【0096】
つぎに、図9を用いて、接続情報の具体例について説明する。ここでは、測定対象回路600(図6参照)の回路図データsdとレイアウトデータldとでLVSを実行して得られる接続情報を例に挙げて説明する。
【0097】
図9は、接続情報の具体例を示す説明図である。図9において、接続情報900は、測定対象回路600(図6参照)内のセルとネットとの接続関係を示す。接続情報900において、1列目は、測定対象回路600で使用されているセルの名前を示す。2列目以降は、1列目に示したセルに接続されるネット情報を示す。
【0098】
つぎに、図10を用いて、測定対象回路600内の動作ブロックの特定例について説明する。ここでは、図8に示したアクティブリスト800と、図9に示した接続情報900とに基づいて、測定対象回路600内の動作ブロックを特定する場合について説明する。
【0099】
図10は、動作ブロックの特定例を示す説明図である。図10において、動作箇所特定結果1000は、測定対象回路600内の動作ブロックを特定可能な情報の一例である。動作箇所特定結果1000において、丸印で囲まれた箇所は、シミュレーション期間中に変化した接続ネット(状態x)と入出力ピンを示す。
【0100】
丸印の箇所は、シミュレーション期間中に変化した接続ネット(状態x)と、その接続ネットとセルとの接続関係から特定される。ここでは、セルI0~I5が動作ブロックとして特定され、セルI6~I9が非動作ブロックとして特定される。
【0101】
動作箇所特定結果1000によれば、セルI6~I9に接続されている接続ネットe~iはシミュレーション期間中に変化していないため、セルI6~I9を含むブロックが、タイミング制約では不要なブロックであることを特定することができる。
【0102】
(測定対象回路内の非動作ブロックの第1の置換例)
図11および図12を用いて、測定対象回路600内の非動作ブロック(セルI6~I9)の第1の置換例について説明する。ここでは、測定対象回路600に関する回路図データsdに対する置換処理を例に挙げて説明する。また、動作特性の測定項目は、タイミング制約である。
【0103】
図11および図12は、測定対象回路内の非動作ブロックの第1の置換例を示す説明図である。図11において、動作特性の測定項目がタイミング制約のため、測定対象回路600内の非動作ブロックの各セルI6~I9が、削除セル1101~1104にそれぞれ置換されている。
【0104】
セルI6を例に挙げると、置換部503は、例えば、セル置換DB220を参照して、セルI6と同じ種別(バッファ)の削除セルをあらわす置換用セルデータ421を特定する。そして、置換部503は、特定した置換用セルデータ421を用いて、測定対象回路600内のセルI6を削除セル1101に置換する。
【0105】
ここで、接続ネットiに関して、セルI9が削除セル1104に置換されると、セルI4の接続ネットi側の入力がフローティング状態となる。フローティング状態は、期待通りのシミュレーションが行われないため、入力を固定する必要がある。接続ネットiは、シミュレーション結果700やアクティブリスト800から「0」に固定されていることが特定される。
【0106】
図12において、置換部503は、セルI9を削除セル1104に置換した場合に、フローティング状態となる接続ネットiに接続されたセルI4を検出する。そして、置換部503は、検出したセルI4を、接続ネットiからの入力を固定する入力固定セル1201に置換する。
【0107】
より詳細に説明すると、例えば、セルI4の入力側に接続されるもう一方の接続ネットdは、シミュレーション期間中に変化した接続ネットである。このため、置換部503は、セル置換DB220を参照して、セルI4と同じ種別(ORゲート)で、かつ、2入力のうち、一方の入力を外部からの入力とし、他方の入力をグラウンド(0)に固定する入力固定セルをあらわす置換用セルデータ436を特定する。そして、置換部503は、特定した置換用セルデータ436を用いて、測定対象回路600内のセルI4を入力固定セル1201に置換する。
【0108】
また、置換部503は、回路図データsdと同様に、測定対象回路600に関するレイアウトデータldに対しても、例えば、図13および図14に示すような対応関係情報1300,1400を参照して、非動作ブロックのセルを置換用セルに置換する処理を行う。具体的には、例えば、置換部503は、対応関係情報1300,1400を参照して、回路図データsdと同じ箇所のセルを、回路図データsdと同じ置換用セルに置換する。
【0109】
図13および図14は、対応関係情報の具体例を示す説明図である。図13において、対応関係情報1300は、測定対象回路600に関する回路図データsd内のセルが、測定対象回路600に関するレイアウトデータld内のどのセルと対応しているかを示す。対応関係情報1300において、1列目は、回路図データsdのセル名を示す。2列目は、レイアウトデータldのセル名を示す。
【0110】
図14において、対応関係情報1400は、測定対象回路600に関する回路図データsd内の接続ネットが、測定対象回路600に関するレイアウトデータld内のどの接続ネットと対応しているかを示す。対応関係情報1400において、1列目は、回路図データsdの接続ネット名を示す。2列目は、レイアウトデータldの接続ネット名を示す。
【0111】
対応関係情報1300,1400によれば、回路図データsd内の各部品(セル、接続ネット)が、レイアウトデータld内のどの部品と対応しているかを特定することができる。このため、置換部503は、レイアウトデータldに対しても、回路図データsdと同様の処理手順により、非動作ブロックのセルを置換用セルに置換することができる。
【0112】
(測定対象回路内の非動作ブロックの第2の置換例)
図15を用いて、測定対象回路600内の非動作ブロック(セルI6~I9)の第2の置換例について説明する。ここでは、測定対象回路600に関する回路図データsdに対する置換処理を例に挙げて説明する。また、動作特性の測定項目は、電力である。また、測定パターンは、タイミング制約の場合と同じものとする。
【0113】
動作特性の測定項目が電力の場合、非動作ブロックのセルを削除セルに置換すると、リーク電力を正しく測定することができない。このため、置換部503は、非動作ブロックのセルを、当該セルにおける信号伝播を切断して入力を固定する入力固定セルに置換する。すなわち、置換部503は、動作しない接続ネットを切り離して、入力を固定したセルに置き換える。
【0114】
図15は、測定対象回路内の非動作ブロックの第2の置換例を示す説明図である。図15において、動作特性の測定項目が電力のため、測定対象回路600内の非動作ブロックの各セルI6~I9が、入力固定セル1501~1504にそれぞれ置換されている。
【0115】
セルI6を例に挙げると、置換部503は、例えば、セル置換DB220を参照して、セルI6と同じ種別(バッファ)で、かつ、セルI6における信号伝播を切断して入力を固定する入力固定セルをあらわす置換用セルデータ431を特定する。そして、置換部503は、特定した置換用セルデータ431を用いて、測定対象回路600内のセルI6を入力固定セル1501に置換する。
【0116】
また、接続ネットiに関して、セルI9が入力固定セル1504に置換されると、セルI4の接続ネットi側の入力がフローティング状態となる。このため、置換部503は、セルI4を、接続ネットiからの入力をグラウンド(0)に固定する入力固定セル1505に置換する。
【0117】
(ライブラリ開発支援装置201の動作例)
つぎに、図16A図16Bおよび図16Cを用いて、ライブラリ開発支援装置201の動作例について説明する。
【0118】
図16A図16Bおよび図16Cは、ライブラリ開発支援装置201の動作例を示す説明図である。図16Aにおいて、まず、ライブラリ開発支援装置201は、測定対象回路TCに関するレイアウトデータ1601と回路図データ1602とでLVSを実行する。この結果、接続情報(例えば、図9参照)、形状情報および対応関係情報(例えば、図13および図14参照)を含むLVS結果1603が出力される。
【0119】
また、ライブラリ開発支援装置201は、動作特性の測定項目がタイミング制約の場合、回路図データ1602と、図16Cに示す測定パターン1621(タイミング制約)とに基づいて、機能シミュレーション(タイミング制約)を行う。この結果、測定パターン1621ごとのアクティブリスト1604(タイミング制約)が出力される。
【0120】
また、ライブラリ開発支援装置201は、動作特性の測定項目が電力の場合、回路図データ1602と、図16Cに示す測定パターン1622(電力)とに基づいて、機能シミュレーション(電力)を行う。この結果、測定パターン1622ごとのアクティブリスト1605(電力)が出力される。
【0121】
つぎに、ライブラリ開発支援装置201は、レイアウトデータ1601、回路図データ1602、LVS結果1603、アクティブリスト1604(タイミング制約)およびアクティブリスト1605(電力)に基づいて、セル置換DB220を参照して、データ加工処理を実行する。
【0122】
ここで、図17を用いて、データ加工処理例について説明する。
【0123】
図17は、ライブラリ開発支援装置201のデータ加工処理例を示す説明図である。図17において、ライブラリ開発支援装置201は、LVS結果1603、アクティブリスト1604(タイミング制約)に基づいて、セル置換DB220を参照して、レイアウトデータ1601および回路図データ1602それぞれに対するデータ加工(タイミング制約)を行う。
【0124】
データ加工(タイミング制約)では、例えば、図11および図12に示したような置換用セルへの置換が行われる。この結果、置換後のレイアウトデータ(タイミング制約)1601-1および置換後の回路図データ(タイミング制約)1602-1が出力される。
【0125】
また、ライブラリ開発支援装置201は、LVS結果1603、アクティブリスト1605(電力)に基づいて、セル置換DB220を参照して、レイアウトデータ1601および回路図データ1602それぞれに対するデータ加工(電力)を行う。データ加工(電力)では、例えば、図15に示したような置換用セルへの置換が行われる。この結果、置換後のレイアウトデータ(電力)1601-2および置換後の回路図データ(電力)1602-2が出力される。
【0126】
図16Bにおいて、ライブラリ開発支援装置201は、置換後のレイアウトデータ(タイミング制約)1601-1と置換後の回路図データ(タイミング制約)1602-1とでLVS(タイミング制約)を実行する。この結果、接続情報、形状情報および対応関係情報(不図示)を含むLVS結果(タイミング制約)1611が出力される。
【0127】
また、ライブラリ開発支援装置201は、置換後のレイアウトデータ(電力)1601-2と置換後の回路図データ(電力)1602-2とでLVS(電力)を実行する。この結果、接続情報、形状情報および対応関係情報(不図示)を含むLVS結果(電力)1612が出力される。
【0128】
つぎに、ライブラリ開発支援装置201は、LVS結果(タイミング制約)1611と環境条件1613とに基づいて、LPEを実行する。この結果、環境条件1613ごとのLPEネットリスト(タイミング制約)1614が出力される。
【0129】
また、ライブラリ開発支援装置201は、LVS結果(電力)1612と環境条件1613とに基づいて、LPEを実行する。この結果、環境条件1613ごとのLPEネットリスト(電力)1615が出力される。
【0130】
図16Cにおいて、ライブラリ開発支援装置201は、LPEネットリスト(タイミング制約)1614と、測定パターン(タイミング制約)1621と、設定ファイル1623とを用いて、lib測定ツールを実行する。設定ファイル1623は、ツールの各種設定や測定条件を含む。lib測定ツールでは、測定対象回路TCが認識され、測定回路が抽出され、ライブラリデータが測定される。
【0131】
また、ライブラリ開発支援装置201は、LPEネットリスト(電力)1615と、測定パターン(電力)1622と、設定ファイル1623とを用いて、lib測定ツールを実行する。lib測定ツールでは、測定対象回路TCが認識され、ライブラリデータが測定される。
【0132】
この結果、回路ライブラリlibにライブラリデータ1624が出力される。ライブラリデータ1624は、測定対象回路TCの動作特性(タイミング制約、電力)をあらわす情報である。ここで、ライブラリ開発支援装置201のデータ加工処理の具体的な処理手順について説明する。
【0133】
図18は、ライブラリ開発支援装置201のデータ加工処理手順を示すフローチャートである。図18のフローチャートにおいて、ライブラリ開発支援装置201は、測定対象回路TCに関する回路図データsdとレイアウトデータldとを取得する(ステップS1801)。そして、ライブラリ開発支援装置201は、取得した回路図データsdとレイアウトデータldとでLVSを実行する(ステップS1802)。
【0134】
つぎに、ライブラリ開発支援装置201は、取得した回路図データsdと、測定パターンとを用いて、機能シミュレーションを行う(ステップS1803)。そして、ライブラリ開発支援装置201は、機能シミュレーションの結果とLVSの結果(接続情報)とに基づいて、測定対象回路TC内の動作ブロックを特定する(ステップS1804)。
【0135】
つぎに、ライブラリ開発支援装置201は、取得した回路図データsdに対する置換処理を実行する(ステップS1805)。置換処理は、測定対象回路TCのうち動作ブロックとは異なる非動作ブロックのセルを置換用セルに置換する処理である。回路図データsdに対する置換処理の具体的な処理手順については、図19を用いて後述する。
【0136】
つぎに、ライブラリ開発支援装置201は、取得したレイアウトデータldに対する置換処理を実行する(ステップS1806)。レイアウトデータldに対する置換処理の具体的な処理手順については、図19に示す回路図データsdに対する置換処理の具体的な処理手順と同様のため、図示および説明を省略する。ただし、レイアウトデータldに対する置換処理は、例えば、LVSの結果(対応関係情報)を用いて行われる。
【0137】
そして、ライブラリ開発支援装置201は、置換後の回路図データsdと、置換後のレイアウトデータldとを出力して(ステップS1807)、本フローチャートによる一連の処理を終了する。なお、ステップS1802とステップS1803の処理は、実行順序が逆であってもよく、並列に実行されてもよい。また、ステップS1805とステップS1806の処理は、実行順序が逆であってもよく、並列に実行されてもよい。
【0138】
つぎに、図19を用いて、図18に示したステップS1805の置換処理の具体的な処理手順について説明する。
【0139】
図19は、置換処理の具体的処理手順の一例を示すフローチャートである。図19のフローチャートにおいて、まず、ライブラリ開発支援装置201は、セル置換DB220を参照して、特定した動作ブロックとは異なる非動作ブロックのセルを、動作特性の測定項目に応じて特定される置換用セルに置換する(ステップS1901)。
【0140】
つぎに、ライブラリ開発支援装置201は、動作ブロックのセルのうち、フローティング状態となる接続ネットに接続されたセルを検出する(ステップS1902)。そして、ライブラリ開発支援装置201は、セル置換DB220を参照して、検出したセルを、フローティング状態となる接続ネットからの入力を固定する入力固定セルに置換して(ステップS1903)、置換処理を呼び出したステップに戻る。
【0141】
これにより、ライブラリ開発支援装置201は、LPEネットリスト作成の入力となるデータに対して、ライブラリ開発に不要な回路ブロックを削除したり、ライブラリ開発に不要な信号伝播を抑止したりする加工を施すことができる。
【0142】
(実施例)
つぎに、測定対象回路TCとしてメモリ回路を用いた実施例について説明する。
【0143】
図20は、メモリ回路の一例を示す説明図である。図20において、メモリ回路2000は、メモリセルアレイ2001と、センスアンプ2002と、デコード回路2003と、入出力回路2004と、制御回路2005とを含む。メモリセルアレイ2001には、データを保持するメモリセルMCが行列上に配置されている。
【0144】
センスアンプ2002は、メモリセルアレイ2001からデータを読み出す際にデータを増幅する。デコード回路2003は、メモリセルアレイ2001のどの行を選択するか決定する。入出力回路2004は、データの入出力を行う。制御回路2005は、メモリ回路2000全体を制御する。
【0145】
Dは、書き込みデータを示す。Qは、読み出しデータを示す。Aは、メモリセルMCを選択するアドレスデータを示す。WRは、書き込み/読み出し選択信号を示す。CKは、動作の基準となるクロック信号を示す。ここで、動作特性の測定項目がタイミング制約の場合を想定する。この場合、ライブラリ開発支援装置201は、メモリ回路2000のタイミング制約に関する動作シミュレーションを行う。
【0146】
図21は、メモリ回路の読み出しデータの流れを示す説明図である。ライブラリ開発支援装置201は、例えば、メモリセルMCそれぞれの電流値を観測し、電流値が一定の閾値を超えたセルを動作セルとして判定することができる。また、ライブラリ開発支援装置201は、読み出しディレイを観測し、最大ディレイパスと最小ディレイパスのビットから、該当するビットのセンスアンプ2002-1,2002-2と入出力回路2004-1,2004-2を特定することができる。
【0147】
ライブラリ開発支援装置201は、これらの情報とLVSの出力情報(LVS結果)とを組み合わせて、動作しないメモリセルMCとディレイ測定に影響しないセンスアンプ2002と入出力回路2004を特定する。動作しないメモリセルMCは、例えば、範囲2101,2102,2103,2104外のセルである。
【0148】
ディレイ測定に影響しないセンスアンプ2002は、センスアンプ2002-1,2002-2以外のセンスアンプである。ディレイ測定に影響しない入出力回路2004は、入出力回路2004-1,2004-2以外の入出力回路である。そして、ライブラリ開発支援装置201は、セル置換DB220を参照して、特定したメモリセルMC等を、動作に影響しないよう最低限の接続に必要な置換用セルに置き換える処理を行う。
【0149】
図22は、置換後のメモリ回路の一例を示す説明図である。図22において、メモリ回路2000から、非動作ブロック2201,2202が削除されている。ただし、図22では、非動作ブロック2201,2202の削除がハッチングによって表現されている。非動作ブロック2201,2202では、例えば、各セルが、接続に必要な配線データのみを持つセルに置き換えられる。
【0150】
つぎに、動作特性の測定項目が電力の場合を想定する。この場合、ライブラリ開発支援装置201は、メモリ回路2000の電力に関する動作シミュレーションを行う。電力測定では、動作するブロック以外を削除してしまうとリーク電力が正しく測定できないため、タイミング制約とは異なる処理が必要である。
【0151】
図23は、デコード回路の一例を示す説明図である。図23において、デコード回路2003のdec[m-2]、WL[n-1]、WL[n-2]は、動作しない接続ネットであるとする。ここで、WL[n-1]を駆動するゲートAの入力は変化していないが、その手前のゲートBの入力は変化している。
【0152】
このため、ライブラリ開発支援装置201は、ゲートAの入力をグラウンドに固定したセルに置き換える。また、WL[n-2]について、ゲートCの入力が変化していない。このため、ライブラリ開発支援装置201は、ゲートCの入力をグラウンドに固定したセルに置き換える。また、dec[m-2]について、ゲートDの入力が変化していない。このため、ライブラリ開発支援装置201は、ゲートDの入力をグラウンドに固定したセルに置き換える。
【0153】
図24は、置換後のデコード回路の一例を示す説明図である。図24において、デコード回路2003内のゲートAが入力固定セル2401に置換されている。また、ゲートCが入力固定セル2402に置換されている。また、ゲートDが入力固定セル2403に置換されている。
【0154】
このように、ライブラリ開発支援装置201によれば、デコード回路2003内の動作しないゲートの入力をグラウンド(あるいは、電源電圧)に固定したセルに置き換えることで、信号伝搬を減らして動作領域を減らすことができる。これにより、ライブラリ測定精度を落とすことなく、lib測定ツールの実行時間と使用リソースの削減を実現することができる。
【0155】
以上説明したように、実施の形態にかかるライブラリ開発支援装置201によれば、測定対象回路TCに関する設計データDを取得し、取得した設計データDを用いた動作シミュレーションの結果に基づいて、測定対象回路TCのうちの動作ブロックを特定することができる。そして、ライブラリ開発支援装置201によれば、記憶部510(例えば、セル置換DB220)を参照して、設計データDのうち、特定した動作ブロックとは異なる非動作ブロックのセルを、動作特性の測定項目に応じて特定される置換用セルに置換し、置換後の設計データDに基づいて、測定対象回路TCに関する動作特性測定用のネットリストNLを作成することができる。
【0156】
これにより、測定対象回路TCに関する動作特性測定用のネットリストNLを作成するにあたり、設計データDを加工して、動作特性測定用のネットリストNLの作成にかかる実行時間と使用リソース量を削減することができる。また、作成されるネットリストNL自体のデータ量を削減することができる。また、例えば、マクロ設計では、基本ゲートを組み合わせて機能ブロックを作り、その機能ブロックを複数組み合わせて必要な機能を実現するマクロを設計するという階層設計が行われる。ここでは、あらかじめ基本ゲートの置換用セルを用意しておくことで、データ加工時は、非動作ブロックに関連した基本ゲートを、その動作に応じた置換用セルに置き換えるだけで済むため、処理を単純化することが可能になる。
【0157】
また、ライブラリ開発支援装置201によれば、動作特性の測定項目がタイミング制約の場合、記憶部510を参照して、非動作ブロックのセルを削除するための削除セルを特定し、非動作ブロックのセルを、特定した削除セルに置換することができる。
【0158】
これにより、設計データDから動作特性の測定に不要な回路ブロックを削除して、動作特性測定用のネットリストNLの作成にかかる実行時間と使用リソース量を削減することができる。
【0159】
また、ライブラリ開発支援装置201によれば、動作特性の測定項目が電力の場合、記憶部510を参照して、非動作ブロックのセルにおける信号伝搬を切断して入力を固定する入力固定セルを特定し、非動作ブロックのセルを、特定した入力固定セルに置換することができる。
【0160】
これにより、設計データDから動作特性の測定に不要な素子間の接続関係を削除して動作特性の測定に不要な信号伝播を抑止することができる。この結果、動作特性の測定に不要な信号伝播を判断しないことになり、動作特性測定用のネットリストNLの作成にかかる実行時間と使用リソース量を削減することができる。
【0161】
また、ライブラリ開発支援装置201によれば、動作ブロックのセルのうち、非動作ブロックのセルを置換用セルに置換した場合にフローティング状態となる接続ネットに接続されたセルを検出し、検出したセルを、接続ネットからの入力を固定する入力固定セルに置換することができる。
【0162】
これにより、動作特性の測定に不要な回路ブロックを削除したり、素子間の接続関係を削除したりすることで、動作ブロックのセルに接続された接続ネットがフローティング状態になるのを防ぐことができる。このため、動作特性の測定時に測定対象回路TCの動作が不安定なものとなることを回避することができる。
【0163】
また、ライブラリ開発支援装置201によれば、測定対象回路TCに関する回路図データsdと、測定対象回路TCに関するレイアウトデータldとを含む設計データDを取得し、回路図データsdと測定パターンとを用いた動作シミュレーションの結果に基づいて、測定対象回路TCのうちの動作ブロックを特定することができる。
【0164】
これにより、レイアウトデータldに比べてデータ量が少ない回路図データsdを用いて、測定対象回路TCの動作シミュレーションを行うことで、動作ブロックの特定にかかる処理の高速化を図ることができる。
【0165】
また、ライブラリ開発支援装置201によれば、作成した動作特性測定用のネットリストNLを用いて、測定対象回路TCの動作特性をあらわすライブラリデータを生成し、生成したライブラリデータを出力することができる。
【0166】
これにより、回路ライブラリを生成することができる。また、ライブラリデータを生成するにあたり、ネットリストNL自体のデータ量が削減されているため、例えば、lib測定ツールにおける実行時間と使用リソースが少なくなり、ライブラリ開発にかかるコストを削減することができる。
【0167】
また、ライブラリ開発支援装置201によれば、作成した動作特性測定用のネットリストNLを出力することができる。
【0168】
これにより、他のコンピュータにおいて、LPEネットリストを用いて、測定対象回路TCの動作特性をあらわすライブラリデータを生成することができる。
【0169】
これらのことから、ライブラリ開発支援装置201によれば、LPEネットリストを作成する際の入力となるデータに、ライブラリ開発に不要な回路ブロックや接続が含まれなくなるため、LPEネットリストの作成にかかる実行時間と使用リソース量を削減することができる。また、ライブラリデータ(動作特性)の測定項目に応じて最適化されたLPEネットリストが作成されるため、ライブラリデータの測定にかかる実行時間と使用リソース量を削減して、回路ライブラリの開発コストを削減することが可能になる。
【0170】
なお、本実施の形態で説明したライブラリ開発支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ライブラリ開発支援プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ライブラリ開発支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【0171】
また、本実施の形態で説明したライブラリ開発支援装置201(情報処理装置101)は、ASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0172】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0173】
(付記1)動作特性の測定対象回路に関する設計データを取得し、
取得した前記設計データを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定し、
複数の置換用セルを記憶する記憶部を参照して、前記設計データのうち、特定した前記動作する箇所とは異なる他の箇所のセルを、前記動作特性の測定項目に応じて特定される置換用セルに置換し、
置換後の前記設計データに基づいて、前記測定対象回路に関する動作特性測定用のネットリストを作成する、
処理をコンピュータに実行させることを特徴とするライブラリ開発支援プログラム。
【0174】
(付記2)前記置換する処理は、
前記測定項目がタイミング制約の場合、前記記憶部を参照して、前記他の箇所のセルを削除するための削除セルを特定し、前記他の箇所のセルを、特定した前記削除セルに置換する、ことを特徴とする付記1に記載のライブラリ開発支援プログラム。
【0175】
(付記3)前記置換する処理は、
前記測定項目が電力の場合、前記記憶部を参照して、前記他の箇所のセルにおける信号伝搬を切断して入力を固定する入力固定セルを特定し、前記他の箇所のセルを、特定した前記入力固定セルに置換する、ことを特徴とする付記1または2に記載のライブラリ開発支援プログラム。
【0176】
(付記4)前記動作する箇所のセルのうち、前記他の箇所のセルを置換用セルに置換した場合にフローティング状態となる接続ネットに接続されたセルを検出し、
検出した前記セルを、前記接続ネットからの入力を固定する入力固定セルに置換する、
処理を前記コンピュータに実行させることを特徴とする付記1~3のいずれか一つに記載のライブラリ開発支援プログラム。
【0177】
(付記5)前記設計データは、前記測定対象回路に関する回路図データと、前記測定対象回路に関するレイアウトデータとを含み、
前記特定する処理は、
前記回路図データと測定パターンとを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定する、ことを特徴とする付記1~4のいずれか一つに記載のライブラリ開発支援プログラム。
【0178】
(付記6)作成した前記動作特性測定用のネットリストを用いて、前記測定対象回路の動作特性をあらわすライブラリデータを生成し、
生成した前記ライブラリデータを出力する、
処理を前記コンピュータに実行させることを特徴とする付記1~5のいずれか一つに記載のライブラリ開発支援プログラム。
【0179】
(付記7)作成した前記動作特性測定用のネットリストを出力する、処理を前記コンピュータに実行させることを特徴とする付記1~6のいずれか一つに記載のライブラリ開発支援プログラム。
【0180】
(付記8)動作特性の測定対象回路に関する設計データを取得し、
取得した前記設計データを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定し、
複数の置換用セルを記憶する記憶部を参照して、前記設計データのうち、特定した前記動作する箇所とは異なる他の箇所のセルを、前記動作特性の測定項目に応じて特定される置換用セルに置換し、
置換後の前記設計データに基づいて、前記測定対象回路に関する動作特性測定用のネットリストを作成する、
処理をコンピュータが実行することを特徴とするライブラリ開発支援方法。
【0181】
(付記9)動作特性の測定対象回路に関する設計データを取得し、
取得した前記設計データを用いた動作シミュレーションの結果に基づいて、前記測定対象回路のうちの動作する箇所を特定し、
複数の置換用セルを記憶する記憶部を参照して、前記設計データのうち、特定した前記動作する箇所とは異なる他の箇所のセルを、前記動作特性の測定項目に応じて特定される置換用セルに置換し、
置換後の前記設計データに基づいて、前記測定対象回路に関する動作特性測定用のネットリストを作成する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0182】
101 情報処理装置
110,510 記憶部
120 動作箇所
130 非動作箇所
131 セル
200 情報処理システム
201 ライブラリ開発支援装置
202 クライアント装置
210 ネットワーク
220 セル置換DB
300 バス
301 CPU
302 メモリ
303 ディスクドライブ
304 ディスク
305 通信I/F
306 可搬型記録媒体I/F
307 可搬型記録媒体
501 取得部
502 特定部
503 置換部
504 作成部
505 生成部
506 出力部
600,TC 測定対象回路
700 シミュレーション結果
800,1604,1605 アクティブリスト
900 接続情報
1000 動作箇所特定結果
1101,1102,1103,1104 削除セル
1201,1501,1502,1503,1504,1505,2401,2402,2403 入力固定セル
1300,1400 対応関係情報
1601,ld レイアウトデータ
1602,sd 回路図データ
1603,1611,1612 LVS結果
1613 環境条件
1614,1615 LPEネットリスト
1621,1622 測定パターン
1623 設定ファイル
1624 ライブラリデータ
2000 メモリ回路
2001 メモリセルアレイ
2002 センスアンプ
2003 デコード回路
2004 入出力回路
2005 制御回路
D 設計データ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16A
図16B
図16C
図17
図18
図19
図20
図21
図22
図23
図24