(57)【特許請求の範囲】
【請求項１】
複数のセルが接続されて構成される集積回路の回路設計支援装置であって、
前記集積回路に含まれる前記セルの接続関係を示す接続情報を取得する接続情報取得部と、
前記集積回路において複数のセルの集合により所定の機能を実現する回路モジュールの端子を指定する端子指定部と、
前記指定された端子と当該端子に接続されたセルとの接続関係に関する情報である端子接続情報を前記取得した接続情報に基づいて生成する端子接続情報生成部と、
前記生成した端子接続情報に基づいて前記指定された端子に緩衝回路を接続することを決定し若しくは前記指定された端子に接続された緩衝回路の変更を決定する緩衝回路設定部と、
前記接続することを決定した緩衝回路若しくは前記変更を決定した緩衝回路と前記指定された端子とを接続する配線を所定の長さ以下とすることを示す配線長限定情報を生成する配線長限定情報生成部と、
前記緩衝回路設定部による決定に基づき、前記取得した設定情報に前記緩衝回路の接続若しくは変更を反映すると共に、前記生成された配線長限定情報に基づいて前記接続情報を再構成する接続情報再構成部とを有することを特徴とする、回路設計支援装置。
【請求項２】
前記回路モジュールの端子に入力され若しくは当該端子が出力する信号の強度が満たすべき条件に関する制約情報を取得する制約情報取得部をさらに有し、
前記端子指定部は、前記取得した制約情報において前記条件が設定されている端子を指定することを特徴とする、請求項１に記載の回路設計支援装置。
【請求項３】
オペレータが前記回路設計支援装置を操作する操作情報を入力する操作部を更に有し、
前記端子指定部は、前記入力された操作情報に基づいて前記回路モジュールの端子を指定することを特徴とする、請求項１に記載の回路設計支援装置。
【請求項４】
前記端子指定部は、前記取得した接続情報に基づき、前記回路モジュールの端子のうちセルが接続された端子を指定することを特徴とする、請求項１に記載の回路設計支援装置。
【請求項５】
前記回路モジュールの端子に入力され若しくは当該端子が出力する信号が満たすべき条件に関する制約情報を取得する制約情報取得部と、
前記取得した接続情報に基づいて前記集積回路の回路図を表示する回路図表示部とを更に有し、
前記回路図表示部は、前記制約情報に基づき、前記表示する回路図において前記回路モジュールの端子と当該端子の制約情報とを関連付けて表示することを特徴とする、請求項１乃至４いずれか１項に記載の回路設計支援装置。
【請求項６】
前記再構成された接続情報である再構成接続情報を取得する再構成接続情報取得部と、
前記再構成接続情報に基づいて回路配置を実行して出力されたレイアウト情報を取得するレイアウト情報取得部と、
前記回路モジュールの端子に入力され若しくは当該端子が出力する信号の強度が満たすべき条件に関する制約情報を取得する制約情報取得部と、
前記取得したレイアウト情報に基づいて前記回路モジュールの端子に入力され若しくは当該端子が出力する信号の強度に関する情報を取得する信号強度情報取得部と、
前記取得した信号の強度に関する情報と前記取得した制約情報に基づいて前記信号の強度が前記制約情報において指定された条件を満たすか否かを示す検証結果情報を生成する制約検証部とを有することを特徴とする、請求項１乃至５いずれか１項に記載の回路設計支援装置。
【請求項７】
前記信号強度情報取得部は、前記回路モジュールの端子に入力される信号の遷移時間に関する情報を取得し、
前記制約情報取得部は、前記回路モジュールの端子に入力される信号の遷移時間が所定期間以内でなければならないことを示す情報を取得することを特徴とする、請求項６に記載の回路設計支援装置。
【請求項８】
前記信号強度情報取得部は、前記回路モジュールの端子が出力する信号が励起する静電容量に関する情報を取得し、
前記制約情報取得部は、前記回路モジュールの端子が出力する信号が所定時間以内に励起可能な静電容量に関する情報を取得することを特徴とする、請求項６または７に記載の回路設計支援装置。
【請求項９】
複数のセルが接続されて構成される集積回路の回路設計を情報処理装置によって行う回路設計支援方法であって、
前記集積回路に含まれる前記セルの接続関係を示す接続情報を取得して記憶媒体に記憶し、
前記集積回路において複数のセルの集合により所定の機能を実現する回路モジュールの端子を指定して記憶媒体に記憶し、
前記指定された端子と当該端子に接続されたセルとの接続関係に関する情報である端子接続情報を前記取得した接続情報に基づいて生成して記憶媒体に記憶し、
前記生成した端子接続情報に基づいて前記指定された端子に緩衝回路を接続することを決定し若しくは前記指定された端子に接続された緩衝回路の変更を決定して記憶媒体に記憶し、
前記接続することを決定した緩衝回路若しくは前記変更を決定した緩衝回路と前記指定された端子とを接続する配線を所定の長さ以下とすることを示す配線長限定情報を生成して記憶媒体に記憶し
前記緩衝回路設定部による決定に基づき、前記取得した設定情報に前記緩衝回路の接続若しくは変更を反映すると共に、前記生成された配線長限定情報に基づいて前記接続情報を再構成して記憶媒体に記憶することを特徴とする、回路設計支援方法。
【請求項１０】
請求項９に記載の回路設計支援方法を情報処理装置に実行させることを特徴とする、回路設計支援プログラム。
【請求項１１】
請求項１０に記載の回路設計支援プログラムを情報処理装置が読み取り可能な形式で記録したことを特徴とする、記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計支援装置、回路設計支援方法、回路設計支援プログラム及び記録媒体に関し、特に集積回路内部の信号制約を満たした回路設計に関する。
【背景技術】
【０００２】
ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）等の半導体集積回路の設計において、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＰＨＹ（ｐｈｙｓｉｃａｌ  ｌａｙｅｒ）等のハードマクロを搭載するチップの設計においては、搭載するハードマクロがスペック通りの動作を実行するように回路を設計する必要がある。これは、半導体集積回路の設計に際しては、既存のハードマクロを使用することが一般的であることによる。
【０００３】
半導体集積回路の設計に際して具体的に考慮すべき事項としては、ハードマクロの入力端子のスペックにおいて想定されている遷移時間よりも短い遷移時間の信号が入力される必要がある。また、ハードマクロの出力端子のスペックにおいて想定されている負荷容量よりも小さい負荷容量の回路（セル）が接続されている必要がある。このような要求に対して、従来の回路設計支援ツールにおいては、ハードマクロのスペック情報として、入力端子が許容可能な最大の遷移時間や出力端子がドライブ可能な負荷容量の最大値等、ハードマクロの搭載に関する設計制約情報を記述しておき、その制約が満たされるように設計が実行される。
【０００４】
回路設計支援ツールの例としては、ネットリスト及び配線の重み付け係数に基づいて出力したレイアウトデータからスキャンチェーンデータの配線長を算出し、算出した配線長に基づいてスキャンチェーン配線の重み付け係数を変化させる方法が提案されている（例えば特許文献１参照）。特許文献１に開示された技術は、スキャンチェーン配線の短縮を目的とするものであり、本発明とはその目的が異なる。
【特許文献１】特開２００６−３２３６３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した回路設計支援ツールを用いても、全ての該当箇所で制約を満たす結果が得られない場合がある。例えば、ハードマクロとしてＲＡＭを用いる場合に、複数のＲＡＭを隣接させて配置する場合があり得る。このような場合、セル配置スペースの制約により、ＲＡＭの端子と同電位に接続されるセルとの配線が長くなり、その結果、制約を満たすことが不可能となる可能性がある。このような課題に対して、回路設計支援ツールによるレイアウト前に、上記課題の発生し得る端子にバッファセルを挿入することによる解決手法が用いられている。具体的な手法としては、上記課題の発生し得る端子に、適切なドライブ能力を有するバッファセルを接続する。そして、回路設計支援ツールによるレイアウトを行なう際には、上記接続したバッファセルが、可能な限り対象となるハードマクロの端子に近い位置に配置されるようにレイアウトを実行する。
【０００６】
このような手法により、上記課題を解決することができるが、バッファセルを挿入したネットリストの作成や、ハードマクロの端子と強制的に近傍に配置すべきバッファセルとの対応付けリストの作成等の作業は、オペレータによる手作業が必要となる。従って、ハードマクロの数やハードマクロに設けられた端子の数が膨大になると、上記作業に要する時間も膨大となってしまう。また、人的なミスの可能性も高くなり、作業結果の確認にも更に膨大な時間を要する。
【０００７】
本発明は、上述した実情を考慮してなされたもので、集積回路のレイアウト設計において、複数のセルの集合により所定の機能を実現する回路モジュール各部の入力信号の制約を満たしたレイアウト設計を容易化することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、請求項１に記載の発明は、複数のセルが接続されて構成される集積回路の回路設計支援装置であって、前記集積回路に含まれる前記セルの接続関係を示す接続情報を取得する接続情報取得部と、前記集積回路において複数のセルの集合により所定の機能を実現する回路モジュールの端子を指定する端子指定部と、前記指定された端子と当該端子に接続されたセルとの接続関係に関する情報である端子接続情報を前記取得した接続情報に基づいて生成する端子接続情報生成部と、前記生成した端子接続情報に基づいて前記指定された端子に緩衝回路を接続することを決定し若しくは前記指定された端子に接続された緩衝回路の変更を決定する緩衝回路設定部と、前記接続することを決定した緩衝回路若しくは前記変更を決定した緩衝回路と前記指定された端子とを接続する配線を所定の長さ以下とすることを示す配線長限定情報を生成する配線長限定情報生成部と、前記緩衝回路設定部による決定に基づき、前記取得した設定情報に前記緩衝回路の接続若しくは変更を反映すると共に、前記生成された配線長限定情報に基づいて前記接続情報を再構成する接続情報再構成部とを有することを特徴とする。
【０００９】
また、請求項２に記載の発明は、請求項１に記載の回路設計支援装置において、前記回路モジュールの端子に入力され若しくは当該端子が出力する信号の強度が満たすべき条件に関する制約情報を取得する制約情報取得部をさらに有し、前記端子指定部は、前記取得した制約情報において前記条件が設定されている端子を指定することを特徴とする。
【００１０】
また、請求項３に記載の発明は、請求項１に記載の回路設計支援装置において、オペレータが前記回路設計支援装置を操作する操作情報を入力する操作部を更に有し、前記端子指定部は、前記入力された操作情報に基づいて前記回路モジュールの端子を指定することを特徴とする。
【００１１】
また、請求項４に記載の発明は、請求項１に記載の回路設計支援装置において、前記端子指定部は、前記取得した接続情報に基づき、前記回路モジュールの端子のうちセルが接続された端子を指定することを特徴とする。
【００１２】
また、請求項５に記載の発明は、請求項１乃至４いずれか１項に記載の回路設計支援装置において、前記回路モジュールの端子に入力され若しくは当該端子が出力する信号が満たすべき条件に関する制約情報を取得する制約情報取得部と、前記取得した接続情報に基づいて前記集積回路の回路図を表示する回路図表示部とを更に有し、前記回路図表示部は、前記制約情報に基づき、前記表示する回路図において前記回路モジュールの端子と当該端子の制約情報とを関連付けて表示することを特徴とする。
【００１５】
また、請求項６に記載の発明は、請求項１乃至５いずれか１項に記載の回路設計支援装置において、前記再構成された接続情報である再構成接続情報を取得する再構成接続情報取得部と、前記再構成接続情報に基づいて回路配置を実行して出力されたレイアウト情報を取得するレイアウト情報取得部と、前記回路モジュールの端子に入力され若しくは当該端子が出力する信号の強度が満たすべき条件に関する制約情報を取得する制約情報取得部と、前記取得したレイアウト情報に基づいて前記回路モジュールの端子に入力され若しくは当該端子が出力する信号の強度に関する情報を取得する信号強度情報取得部と、前記取得した信号の強度に関する情報と前記取得した制約情報に基づいて前記信号の強度が前記制約情報において指定された条件を満たすか否かを示す検証結果情報を生成する制約検証部とを有することを特徴とする。
【００１６】
また、請求項７に記載の発明は、請求項６に記載の回路設計支援装置において、前記信号強度情報取得部は、前記回路モジュールの端子に入力される信号の遷移時間に関する情報を取得し、前記制約情報取得部は、前記回路モジュールの端子に入力される信号の遷移時間が所定期間以内でなければならないことを示す情報を取得することを特徴とする。
【００１７】
また、請求項８に記載の発明は、請求項６または７に記載の回路設計支援装置において、前記信号強度情報取得部は、前記回路モジュールの端子が出力する信号が励起する静電容量に関する情報を取得し、前記制約情報取得部は、前記回路モジュールの端子が出力する信号が所定時間以内に励起可能な静電容量に関する情報を取得することを特徴とする。
【００１８】
また、請求項９に記載の発明は、複数のセルが接続されて構成される集積回路の回路設計を情報処理装置によって行う回路設計支援方法であって、前記集積回路に含まれる前記セルの接続関係を示す接続情報を取得して記憶媒体に記憶し、前記集積回路において複数のセルの集合により所定の機能を実現する回路モジュールの端子を指定して記憶媒体に記憶し、前記指定された端子と当該端子に接続されたセルとの接続関係に関する情報である端子接続情報を前記取得した接続情報に基づいて生成して記憶媒体に記憶し、前記生成した端子接続情報に基づいて前記指定された端子に緩衝回路を接続することを決定し若しくは前記指定された端子に接続された緩衝回路の変更を決定して記憶媒体に記憶し、前記接続することを決定した緩衝回路若しくは前記変更を決定した緩衝回路と前記指定された端子とを接続する配線を所定の長さ以下とすることを示す配線長限定情報を生成して記憶媒体に記憶し前記緩衝回路設定部による決定に基づき、前記取得した設定情報に前記緩衝回路の接続若しくは変更を反映すると共に、前記生成された配線長限定情報に基づいて前記接続情報を再構成して記憶媒体に記憶することを特徴とする。
【００１９】
また、請求項１０に記載の発明は、回路設計支援プログラムであって、請求項９に記載の回路設計支援方法を情報処理装置に実行させることを特徴とする。
【００２０】
また、請求項１１に記載の発明は、記録媒体であって、請求項１０に記載の回路設計支援プログラムを情報処理装置が読み取り可能な形式で記録したことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、集積回路のレイアウト設計において、複数のセルの集合により所定の機能を実現する回路モジュール各部の入出力信号の制約を満たしたレイアウト設計を容易化することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
【００２３】
実施の形態１．
本実施形態においては、集積回路の接続関係を示すネットリストと集積回路各部の端子の入出力信号制約を示す制約情報とに基づき、各部の端子にバッファを挿入し若しくはバッファの種類を変更してネットリストを再構成する回路設計支援装置を例として説明する。また、本実施形態に係る回路設計支援装置は、変更対象となった端子と再構成によって挿入若しくは変更されたバッファとを近接配置することを示す情報も生成する。本実施形態に係る回路設計支援装置は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理端末に専用のハードウェアが搭載され、若しくは専用のソフトウェア・プログラムがインストールされることにより構成される。
【００２４】
図１は、本実施形態に係る回路設計支援装置１を示すブロック図である。図１に示すように、本実施形態に係る回路設計支援装置１は、コントローラ１００、入力装置１１０、表示装置１２０、近傍配置リスト記憶部１３０、ネットリスト記憶部１４０及び制約情報記憶部１５０を有する。また、コントローラ１００は、ネットリスト読込部１０１、制約情報読込部１０２、端子選択部１０３、回路図表示部１０４及び再構成処理部１０５を有する。再構成処理部１０５は、端子接続走査部１０６、バッファ追加／変更決定部１０７、ネットリスト構築部１０８、近傍配置リスト生成部１０９を有する。
【００２５】
入力装置１１０は、オペレータが回路設計支援装置１に情報を入力するためのユーザインタフェースであり、キーボードやマウス等により構成される。表示装置１２０は、クライアント装置１が情報を視覚的に表示するユーザインタフェースであり、ディスプレイモニタ等によって構成される。近傍配置リスト記憶部１３０、ネットリスト記憶部１４０及び制約情報記憶部１５０は、夫々、近傍配置リスト、ネットリスト及び制約情報を記憶している記憶部であり、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＥＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等の不揮発性記憶媒体により構成される。各記憶部に記憶される情報については、後に詳述する。
【００２６】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や不揮発性メモリ並びにＨＤＤや光学ディスク等の不揮発性記憶媒体に格納されたファームウェア等の制御プログラムが、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の揮発性メモリ（以下、メモリ）にロードされ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の制御に従って構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ１００が構成される。コントローラ１００は、回路設計支援装置１全体を制御する制御部として機能する。
【００２７】
ネットリスト読込部１０１は、回路設計支援装置１がネットリストの再構成を実行する元になるネットリストを取得する。ネットリスト読込部１０１は、オペレータによる入力装置１１０からの情報入力若しくはネットリスト記憶部１４０から情報を読み込むことにより、再構成対象のネットリストを取得する。ネットリスト取得部１０１は、取得したネットリストを回路図表示部１０４及び再構成処理部１０５に入力する。
【００２８】
制約情報読込部１０２は、再構成対象のネットリストに含まれる端子各部の入出力信号の制約に関する情報（以降、制約情報とする）を取得する。制約情報は、回路設計支援装置１がネットリストを再構成する際に、満たすべき条件として参照する情報である。制約情報読込部１０２は、オペレータによる入力装置１１０からの情報入力若しくは制約情報記憶部１５０から情報を読み込むことにより、制約情報を取得する。制約情報読込部１０２は、取得した制約情報を回路図表示部１０４及び再構成処理部１０５に入力する。
【００２９】
端子選択部１０３は、回路設計支援装置１がネットリストの再構成を行なう際に、制約情報を適用してバッファの挿入若しくは変更の可否を判断する端子を決定する。端子選択部１０３は、オペレータによる入力装置１１０からの情報入力に応じて、対象となる端子を決定し、決定した端子に関する情報（以降、選択端子情報とする）を再構成処理部１０５に入力する。回路図表示部１０４は、ネットリスト読込部１０１が読み込んだネットリスト及び制約情報読込部１０２が読み込んだ制約情報に基づき、各部の端子に制約情報の表示された回路図情報を生成する。回路図表示部１０４によって生成された回路図情報は、表示装置１２０に表示される。
【００３０】
再構成処理部１０５は、ネットリスト読込部１０１、制約情報読込部１０２及び端子選択部１０３から入力された情報に基づき、ネットリストの再構成を実行する。また、再構成処理部１０５は、ネットリストの再構成において挿入若しくは変更したバッファを、可能な限り対象となる端子の近傍に配置すべきことを示す近傍配置リストを生成する。図１に示すように、再構成処理部１０５は、夫々の機能を担う構成部が連動して動作することにより、ネットリストの再構成及び近傍配置リストの生成を実行する。
【００３１】
端子接続走査部１０６は、ネットリスト読込部１０１から入力されたネットリストを走査し、端子選択部１０３から入力された選択端子情報において指定されている端子の接続状況を解析する。端子接続走査部１０６は、上記解析の結果、選択された端子の接続状況を示す情報（以降、接続走査情報とする）を生成し、バッファ追加／変更決定部１０７に入力する。また、端子接続走査部１０６は、制約情報読込部１０２から入力された制約情報をバッファ追加／変更決定部１０７に転送する。
【００３２】
バッファ追加／変更決定部１０７は、端子接続走査部１０６から取得した接続走査情報に基づいて、各端子に入力される信号の遷移時間若しくは、各端子から出力される信号がドライブしなければならない容量を算出する。また、バッファ追加／変更決定部１０７は、取得した制約情報と上記算出した情報とに基づき、制約を満たすために必要なバッファの挿入若しくは変更を決定する。ネットリスト構築部１０８は、バッファ追加／変更決定部１０７により決定されたバッファの挿入／変更に基づき、ネットリスト読込部１０１が取得した元のネットリストを構築しなおす。即ち、ネットリスト構築部１０８がネットリストの再構成を実行する。ネットリスト構築部１０８は、再構成結果のネットリストをネットリスト記憶部１４０に格納すると共に、表示装置１２０に表示する。
【００３３】
近傍配置リスト生成部１０９は、ネットリスト構築部１０８による再構成後のネットリストに基づき、挿入若しくは変更されたバッファと対象となる端子とが近傍に配置されることを示す近傍配置リストを生成する。近傍配置リスト生成部１０９は、生成した近傍配置リストを近傍配置リスト記憶部１３０に格納すると共に、表示装置１２０に表示する。
【００３４】
次に、図２を参照して、本実施形態に係る回路設計支援装置１の動作について説明する。図２は、本実施形態に係る回路設計支援装置の動作を示すシーケンス図である。図２の説明においては、図３に示すような集積回路を示すネットリストを再構成する場合を例としている。図３は、ハードマクロとしてのＳＲＡＭ３００を含む集積回路を示す回路図である。ハードマクロとは、集積回路において複数のセルの集合により構成される回路ブロックであり、所定の機能を実現する回路モジュールである。図３に示す集積回路の詳細については、後に詳述する。
【００３５】
まず、ユーザが入力装置１１０を操作することにより、ネットリスト読込部１０１が再構成対象のネットリストを取得する（Ｓ２０１）。また、ネットリスト読込部１０１は、取得したネットリストを回路図表示部１０４及び端子接続走査部１０６に送信する（Ｓ２０１）。このとき、ユーザが直接入力装置１１０を操作してネットリストの情報を入力しても良いし、ネットリスト記憶部１４０に記憶されているネットリストを指定してネットリスト読込部１０１に読み込ませても良い。
【００３６】
図４に本実施形態に係るネットリストの情報例を示す。図４は、図３に示す回路構成を示すネットリストの情報例である。本実施形態に係るネットリストの情報は、ＮＬＤ（Ｎｅｔ  Ｌｉｓｔ  Ｄｅｓｃｒｉｐｔｉｏｎ）言語によって記述される。例えば、図４の“Ａ”の行の記述は、図３の端子Ａ０を定義する記述である。“ｄｅｆ−ｐｉｎ”は、端子を定義することを示す記述であり、“Ａ０”は、端子の識別子として“Ａ０”を付与することを示す記述であり、“ｔｙｐｅ  ｏｕｔｐｕｔ”は、出力端子であることを示す記述である。尚、図３に示す端子Ａ０は、ＳＲＡＭ３００にとっては入力端子であり、図３に示す回路にとってはＳＲＡＭ３００へ信号を入力するための出力端子である。
【００３７】
また、図４の“Ｉ”の行の記述は、図３の論理和回路Ｕ３７６を定義する記述である。“ｄｅｆ−ｃｏｍｐ”は、セルを定義することを示す記述であり、“ｏｒ−Ｘ１”は、定義するセルとして、一般的な部品の種類として定義されている“ｏｒ−Ｘ１”を用いることを示す記述であり、“Ｕ３７６”は、定義するセルの識別子として“Ｕ３７６”を付与することを示す記述である。即ち、“Ｉ”行の記述は、既に定義された部品である“ｏｒ−Ｘ１”を“Ｕ３７６”というセルとして用いることを示す。尚、本実施形態に係る部品の定義において、“ｏｒ−Ｘ１”は、論理和回路であり、“ｂｕｆ−Ｘ１”は、低ドライブバッファであり、“ｂｕｆ−Ｘ２０”は、高ドライブバッファである。
【００３８】
また、図４の“Ｓ”行の記述は、図３の論理和回路Ｕ３７６と端子Ａ０との接続を定義する記述である。“ｄｅｆ−ｎｅｔ”は接続を定義することを示す記述であり、“Ａ０”は、接続の一方を、“Ｕ３７６．ｏｕｔ”は接続の他方を夫々示している。ここで、端子Ａ０は、出力端子であるため、接続すべき箇所が一箇所しかなく、単に“Ａ０”と記述されるが、論理和回路Ｕ３７６は、複数の入力及び出力を含むため、“Ｕ３７６．ｏｕｔ”のように、どの部位を接続するかまでが記述される。即ち、図４の“Ｓ”行は、端子Ａ０と論理和回路Ｕ３７６の出力端子を接続することを示す記述である。このように、ネットリストとは、主席回路に含まれる複数のセル及びそれらの接続関係を示す接続情報である。従って、ネットリスト読込部１０１は、接続情報取得部として機能する。
【００３９】
ネットリストの取得処理と同様に、ユーザが入力装置１１０を操作することにより、制約情報読込部１０２が制約情報を取得する（Ｓ２０２）。また、制約情報読込部１０２は、取得した制約情報を回路図表示部１０４及び端子接続走査部１０６に送信する（Ｓ２０２）。このとき、ユーザが直接入力装置１１０を操作して制約情報を入力しても良いし、制約情報記憶部１５０に記憶されているネットリストを指定して制約情報読込部１０２に読み込ませても良い。
【００４０】
図５に本実施形態に係る制約情報の例を示す。本実施形態に係る制約情報は、ハードマクロであるＳＲＡＭ３００の入出力信号の制約に関する情報である。図５の例においては、例えば、端子Ａ０に出力する信号（端子Ａ０に対応するＳＲＡＭ３００の端子に入力する信号）は、０．５（ｐｓ）の遷移時間以下に制限されることを示している。また、端子ＤＯ０がドライブ可能な容量は、０．１５（ｐＦ）以下であることを示している。即ち、本実施形態に係る制約情報は、ハードマクロの入力端子に入力され若しくは出力端子が出力信号の強度が満たすべき条件に関する情報を有する。
【００４１】
回路図表示部１０４は、ネットリスト読込部１０１、制約情報読込部１０２から夫々ネットリストの情報、制約情報を取得すると、対応する端子に制約情報が記載された回路図を生成して表示装置１２０に表示する（Ｓ２０３）。Ｓ２０３において表示装置１２０に表示される回路図を図６に示す。図６に示すように、回路図表示部１０４によって表示される回路図は、図３に示した元となるネットリストの回路図に、夫々の端子に課せられた信号制約の情報が追加された状態となっている。このように、夫々の端子の近傍に、その端子の入出信号の制約に関する情報を表示することにより、オペレータは、集積回路に含まれる端子と、当該端子に課せられる信号制約との関連を容易に理解することができ、再構成の対象とする端子の選択を容易にすることができる。
【００４２】
回路図表示部１０４によって図６に示した回路図が表示装置１２０に表示されると、オペレータが入力装置１１０を操作することにより、バッファの挿入若しくは変更の要否を判断する端子（以降、選択端子とする）を選択する。端子選択部１０３は、入力装置１１０から入力された選択端子に関する情報を、端子選択情報として端子接続走査部１０６に送信する（Ｓ２０４）。即ち、入力装置１１０及び端子選択部１０３が端子指定部として機能する。ネットリストの情報、制約情報を夫々ネットリスト読込部１０１、制約情報読込部１０２から取得し、更に選択端子情報を端子選択部１０３から取得した端子接続走査部１０６は、ネットリストを解析し、選択端子情報において指定されている端子の接続状態を検出する（Ｓ２０５）。
【００４３】
例えば、端子Ａ０が選択されている場合、図４に示すネットリストの“ｄｅｆ−ｎｅｔ”記述のうち“Ａ０”を含む行を抽出する。本実施形態において、端子接続走査部１０６は、“Ｓ”行の記述を抽出する。次に、“ｄｅｆ−ｎｅｔ”記述において端子Ａ０と接続されているセルに関する情報を抽出する。本実施形態において、端子接続走査部１０６は、“Ｓ”行の記述より、“Ｕ３７６．ｏｕｔ”の記述に注目し、“ｄｅｆ−ｃｏｍｐ”記述のうち、“Ｕ３７６”を定義している記述、即ち“Ｉ”行の記述を抽出する。そして、端子接続走査部１０６は、“Ｉ”行の記述より、“Ｕ３７６”として定義されたセルには“ｏｒ−Ｘ１”として定義された部品が用いられていることを認識する。これらの処理により、端子接続走査部１０６は、選択端子である端子Ａ０には、論理和回路Ｕ３７６の出力端子が接続されていることを認識する。端子接続走査部１０６は、選択端子に接続されたセルの情報を走査情報として生成し、走査情報をバッファ追加／変更決定部１０７に入力する。即ち、端子接続走査部１０６が、選択端子と当該端子に接続されたセルとの接続関係に関する情報を生成する端子接続情報生成部として機能する。
【００４４】
走査情報を受信したバッファ追加／変更決定部１０７は、走査情報に基づき、選択端子へのバッファの追加若しくは選択端子に接続されたバッファの変更を決定する。本実施形態に係るバッファの追加若しくは変更の具体例について、図７を参照して説明する。図３においても説明したように、端子Ａ０の場合、接続されているセルは論理和回路Ｕ３７６である。論理和回路のような多入力セルの場合、各入力をドライブしているセルが広範囲に散らばっている可能性がある。そのような場合に自動レイアウトを行なうと、各入力をドライブしているセルとの接続関係が考慮され、論理和回路Ｕ３７６と端子Ａ０との配線長が長くなる可能性がある。このような場合に、論理和回路Ｕ３７６を強制的に端子Ａ０の近傍に配置すると、論理和回路Ｕ３７６の入力側のタイミングに影響を与える可能性が高い。従って、この場合、図７に示すように、バッファ追加／変更決定部１０７は、論理和回路Ｕ３７６の出力と端子Ａ０との間に高ドライブバッファＵ３８６の追加を決定する。
【００４５】
端子ＤＩ０の場合、接続されているセルは低ドライブの低ドライブバッファＵ３７７の出力である。低ドライブバッファは、その特性上、入力される信号の遷移時間が長い場合、出力信号の遷移時間も長いまま改善されない可能性がある。その結果、端子ＤＩ０の信号制約を満たせない可能性がある。従って、この場合、バッファ追加／変更決定部１０７は、図７に示すように、低ドライブバッファＵ３７７から高ドライブバッファＵ３８７への変更を決定する。端子ＤＩ４の場合、接続されているセルは高ドライブバッファＵ３７８の出力である。この場合、端子ＤＩ０の処理後の状態と同様であるため、バッファ追加／変更決定部１０７は、バッファの追加若しくは変更は不要であると判断する。
【００４６】
端子ＣＫの場合、接続されているセルは、高ドライブバッファＵ３７９の出力及び低ドライブバッファＵ３８０の入力である。即ち、高ドライブバッファＵ３７９のファインアウトが２つある。ファインアウトが多数ある場合、高ドライブバッファであっても、出力信号の遷移時間が長くなる可能性がある。従って、この場合、バッファ追加／変更決定部１０７は、図７に示すように、高ドライブバッファＵ３７９と端子ＣＫとの間の配線において、低ドライブバッファＵ３８０の入力への分岐点よりも端子ＣＫに近い位置に高ドライブバッファＵ３８８の追加を決定する。
【００４７】
端子ＤＯ０の場合、接続されているセルは、論理和回路Ｕ３８１の入力である。端子Ａ０の場合と同様の理由により、論理和回路Ｕ３８１を端子ＤＯ０の近傍に強制的に配置することは好ましくない。従って、この場合、バッファ追加／変更決定部１０７は、図７に示すように、論理和回路Ｕ３８１の入力と端子ＤＯ０との間に低ドライブバッファＵ３８９を追加する。端子ＤＯ２の場合、接続されているセルは、高ドライブバッファＵ３８２の入力である。高ドライブバッファは、その特性上、入力のゲート容量が大きい。その結果、端子ＤＯ２の信号制約、即ち端子ＤＯ２が適正にドライブ可能な負荷容量を超えてしまう可能性がある。従って、この場合、バッファ追加／変更決定部１０７は、図７に示すように、端子ＤＯ２と高ドライブバッファＵ３８２の入力との間への低ドライブバッファＵ３９０の追加を決定する。端子ＤＯ３の場合、接続されているセルは、低ドライブバッファＵ３８３の入力である。この場合、端子ＤＯ２の処理後の状態と同様であるため、バッファ追加／変更決定部１０７は、バッファの追加若しくは変更は不要であると判断する。
【００４８】
端子ＤＯ４の場合、接続されているセルは、低ドライブバッファＵ３８４の入力及び低ドライブバッファＵ３８５の入力である。端子ＤＯ４に接続されているのはいずれも低ドライブバッファであるが、セルの数に従って負荷容量も増大する。その結果、端子ＤＯ４の信号制約、即ち端子ＤＯ４が適正にドライブ可能な負荷容量を超えてしまう可能性がある。この場合、端子ＤＯ４の出力配線が低ドライブバッファＵ３８４側と低ドライブバッファＵ３８５側とに分岐する前に、低ドライブバッファを追加することが考えられる。しかしながら、追加した低ドライブバッファのファインアウトが多数となるため、追加した低ドライブバッファのドライブ能力が不十分である可能性がある。従って、バッファ追加変更決定部１０７は、図７に示すように、端子ＤＯ４の出力配線が低ドライブバッファＵ３８４側と低ドライブバッファＵ３８５側とに分岐する前に、低ドライブバッファＵ３９１、高ドライブバッファＵ３９２の順番での、２つのバッファの追加を決定する。
【００４９】
このように、本実施形態に係るバッファ追加／変更決定部１０７は、ハードマクロの入出力端子とその端子に接続されるセルとの信号を緩衝する緩衝回路として、低ドライブバッファ若しくは高度ライブバッファの挿入若しくは変更を決定することにより、ハードマクロの入出力端子に接続された緩衝回路を設定する。即ち、本実施形態に係るバッファ追加／変更決定部１０７は、緩衝回路設定部として機能する。
【００５０】
このような処理により、バッファ追加／変更決定部１０７は、バッファの追加若しくは変更を決定する。バッファ追加／変更決定部１０７は、上記決定したバッファの追加若しくは変更の決定に係る情報（以降、バッファ追加／変更決定情報とする）を、ネットリスト構築部１０８及び近傍配置リスト１０９に入力する（Ｓ２０６）。ネットリスト構築部１０８は、バッファ追加／変更決定部１０７からバッファ追加／変更決定情報を受信すると、その情報に基づいて、バッファの追加若しくは変更後のネットリストを生成し、近傍配置リスト生成部１０９に送信する（Ｓ２０７）。換言すると、ネットリスト構築部１０８は、上記バッファ追加／変更決定情報に基づき、上記バッファの追加若しくは変更を反映してネットリストを再構成する。即ち、ネットリスト構築部１０８は、接続情報再構成部として機能する。尚、図７において説明した追加若しくは変更に係るバッファ（高ドライブバッファＵ３８６、高ドライブバッファＵ３８７等）の、“Ｕ３８６”、“Ｕ３８７”等の識別情報は、ネットリスト構築部１０８によるネットリストの再構築において付与される。
【００５１】
ネットリスト構築部１０８は、近傍配置リスト性西部１０９に変更後のネットリストを送信した後、変更後のネットリストをネットリスト記憶部１４０に格納する（Ｓ２０８）。また、ネットリスト構築部１０８は、変更後のネットリストに基づく回路図を表示装置１２０に表示する（Ｓ２０８）。図８は、Ｓ２０８における変更後のネットリストの表示例を示す図である。
【００５２】
バッファ追加／変更決定部１０７からバッファ追加／変更決定情報を、ネットリスト構築部１０８から変更後のネットリスト情報を夫々受信した近傍配置リスト生成部１０９は、バッファ追加／変更決定部１０７によって追加若しくは変更が決定されたバッファと、対象となる端子とを近傍に配置することを示す近傍配置リストを生成する（Ｓ２０９）。換言すると、近傍配置リスト生成部は、上記追加若しくは変更が決定されたバッファと対象となる端子とを接続する配線が諸低長以下に限定することを示す情報を生成する。即ち、近傍配置リスト生成部は、配線長限定情報生成部として機能する。
【００５３】
Ｓ２０９において生成される近傍配置リストの情報の例を図９に示す。図９に示すように、近傍配置リストにおいては、ハードマクロであるＳＲＡＭ３００の端子と、その端子の近傍に接続されるバッファとが対応付けられて記録されている。近傍配置リスト生成部１０９は、Ｓ２０９において近傍配置リストを生成した後、生成した近傍配置リストを近傍配置リスト記憶部１３０に格納すると共に、表示装置１２０に表示する（Ｓ２１０）。
【００５４】
このような処理により、再構成対象のネットリストについて、選択された端子の信号制約を満たすためにバッファの挿入若しくは変更が施されたネットリストが生成される。また、再構成後のネットリストについて、挿入若しくは変更したバッファと、当該バッファが信号制約を緩和する対象の端子との関連付けを示す近傍配置リストが生成される。これらの生成された情報に基づき、レイアウトツールを用いてセルの配置及び配線を自動的に実行することにより、信号制約を満たしたレイアウトが実行される。
【００５５】
以上説明したように、本実施形態に係る回路設計支援装置においては、集積回路に含まれる端子のうち、対象となる端子の接続状態及び当該端子の信号制約に関する情報に基づいて、バッファの追加若しくは接続されているバッファの変更を決定する。そして、上記バッファの追加若しくは変更後の回路のネットリストを自動的に生成すると共に、上記挿入若しくは変更したバッファと対象となる端子とを近傍に配置すべきことを示す対応付けの情報を生成する。これにより、集積回路のレイアウト設計において、各部の入出力信号の制約を満たしたレイアウト設計を容易化することが可能となる。また、指定された端子へのバッファの追加若しくは変更は自動的に判断されるため、人的ミスの発生を防ぐことが可能となる。
【００５６】
尚、上記の説明においては、図７の端子ＤＩ０の説明において、低ドライブバッファＵ３７７を高ドライブバッファＵ３８７に変更する例を説明した。この場合、端子ＤＩ０の遷移時間の制約に対応することは可能となるが、Ｕ３８７に入力される信号のドライブ能力によっては、正しく動作しない可能性もある。これに対して、低ドライブバッファＵ３７７を高ドライブバッファＵ３８７に変更するのではなく、低ドライブバッファＵ３７７と端子ＤＩ０との間に高ドライブバッファＵ３８７を追加するようにしても良い。この場合、必要となるセルの数が増えるが、低ドライブバッファＵ３７７の入力側に影響を与えることなく、端子Ｉ０に入力される信号の遷移時間を改善することが可能となる。
【００５７】
また、上記の説明においては、図４において説明したように、ネットリストを示す言語としてＮＬＤ言語を用いる例を説明した。この他、集積回路の接続関係を示す情報であれば他の形式の情報であっても使用可能である。
【００５８】
また、上記の説明においては、図６において説明したように、各端子の入出力信号の制約情報を、夫々の端子に関連付けて表示するために、制約情報を用いる例を説明した。この他、バッファの挿入若しくは変更を判断する端子の選択において、上記制約情報を用いても良い。例えば、上記の説明においては、オペレータが入力装置１１０を操作して選択した端子のみ、制約情報を参照して、バッファの挿入／変更を判断する例を説明した。これに対して、制約情報において、入出力信号の制約が規定されている端子のみ適用するようにしても良い。これにより、オペレータによる端子選択の手間を省略すると共に、制約の課された端子に対しては、バッファの追加若しくは変更が必要か否かを判断することが可能となる。
【００５９】
バッファの挿入／変更を判断する端子の決定に際しては、上記した例の他、例えば、ネットリスト読込部１０１が読み込んだネットリストに含まれるハードマクロの入出力端子のすべてにおいて、本実施形態を適用するようにしても良い。また、ハードマクロの全ての端子にセルが接続されているとは限らない。このような場合、例えば端子接続走査部１０６がネットリストを参照し、ハードマクロの端子のうちセルが接続された端子を選択端子として決定しても良い。
【００６０】
実施の形態２．
実施の形態１においては、レイアウトツールによる自動レイアウトの実行前に、レイアウト対象のネットリストを解析し、端子の制約情報に基づいてバッファの追加／変更を判断する例を説明した。本実施形態においては、レイアウトツールによる自動レイアウトの後、レイアウト後の集積回路に含まれるハードマクロの各端子が、入出力信号の制約を満たしているか否かを確認する回路設計支援装置について説明する。尚、実施の形態１と同様の符号を付す構成については実施の形態１と同一又は相当部を示し、説明を省略する。
【００６１】
図１０は、レイアウトツールによる自動レイアウト結果の例を示す図である。レイアウトツールは、ネットリストに基づいて図１０に示すようにセル配置を決定し、セル間の配線を決定する。セル間の配線が決定されることにより、各ハードマクロへの入力端子の遷移時間が算出可能となり、レイアウトツールによって遷移時間情報が生成される。また、セル間の配線が決定されることにより、各ハードマクロからの出力端子に接続された配線の容量が算出可能となり、レイアウトツールによって配線容量情報が生成される。上記生成された遷移時間情報及び配線容量情報がレイアウト情報として記憶される。レイアウト情報に含まれる各情報の例は後に詳述する。
【００６２】
図１１は、本実施形態に係る回路設計支援装置２を示すブロック図である。本実施形態に係る回路設計支援装置２は、実施の形態１の場合と同様に、ＰＣ等の情報処理端末に専用のハードウェアが搭載され、若しくは専用のソフトウェア・プログラムがインストールされることにより構成される。図１１に示すように、本実施形態に係る回路設計支援装置２は、コントローラ２００、入力装置２１０、表示装置２２０、ネットリスト記憶部２３０、レイアウト情報記憶部２４０、セルライブラリ記憶部２５０、レポートファイル記憶部２６０及び制約情報記憶部２７０を有する。また、コントローラ２００は、ネットリスト読込部２０１、遷移時間読込部２０２、配線容量読込部２０３、セルライブラリ２０４、端子接続走査部２０５、入力側処理部２０６、出力側処理部２０７、レポートファイル構築部２０８及び制約情報読込部２０９を有する。また、入力側処理部２０６は、遷移時間走査部２１１及び制約検証部２１２を有する。また、出力側処理部２０７は、配線容量走査部２２１、入力ゲート容量走査部２２２、入力ゲート容量合算部２２３、容量合算部２２４及び制約検証部２２５を有する。
【００６３】
入力装置２１０、表示装置２１０、ネットリスト記憶部２３０及び制約情報記憶部２７０は、夫々実施の形態１における入力装置１１０、表示装置１２０、ネットリスト記憶部１４０及び制約情報記憶部１５０と同等である。レイアウト情報記憶部２４０、セルライブラリ記憶部２５０及びレポートファイル記憶部２６０は、夫々、レイアウト情報、セルライブラリの情報及びレポートファイルの情報を記憶している記憶部であり、ＨＤＤやＥＥＰＲＯＭ等の不揮発性記憶媒体により構成される。各記憶部に記憶される情報については、後に詳述する。
【００６４】
コントローラ２００は、実施の形態１のコントローラ１００と同様に、ソフトウェアとハードウェアとの組み合わせによって構成され、回路設計支援装置２全体を制御する制御部として機能する。ネットリスト読込部２０１は、回路設計支援装置２がレイアウト結果を検証する回路のネットリストを取得する。ネットリスト読込部２０１は、オペレータによる入力装置２１０の操作に基づき、ネットリスト記憶部２３０から情報を読み込むことにより、ネットリストを取得する。
【００６５】
遷移時間読込部２０２は、レイアウト情報記憶部２４０に記憶されたレイアウト情報のうち、ハードマクロへの入力端子、即ち集積回路における出力端子の遷移時間に関する情報（以降、遷移時間情報とする）を取得する。遷移時間読込部２０２は、オペレータによる入力装置２１０の操作に基づき、レイアウト情報記憶部２４０から情報を読み込むことにより、遷移時間情報を取得する。配線容量読込部２０３は、レイアウト情報記憶部２４０に記憶されたレイアウト情報のうち、セルとセルを接続する配線の静電容量に関する情報（以降、配線容量情報とする）を取得する。配線容量読込部２０３は、オペレータによる入力装置２１０の操作に基づき、レイアウト情報記憶部２４０から情報を読み込むことにより、配線容量情報を取得する。
【００６６】
セルライブラリ読込部２０４は、セルライブラリ記憶部２５０に記憶されたＳルライブラリの情報を取得する。セルライブラリ読込部２０４は、オペレータによる入力装置２１０の操作に基づき、セルライブラリ記憶部２５０から情報を読み込むことにより、セルライブラリの情報を取得する。端子接続走査部２０５は、レイアウト結果の検証を行なう集積回路に含まれる端子であって、オペレータが入力装置２１０を介して指定したハードマクロの端子に接続されたセルの接続状況を、ネットリスト読込部２０１が読み込んだネットリストを解析して抽出する。
【００６７】
入力側処理部２０６は、レイアウト結果の情報に基づき、ハードマクロへ入力される信号の遷移時間を抽出する。そして、当該抽出した遷移時間と各端子に課せられる遷移時間の制約との比較を行ない、制約を満たすか否かを検証する。出力側処理部２０７は、レイアウト結果の情報に基づき、ハードマクロから出力される信号がドライブする必要のある要領を算出する。そして、当該算出した容量と各端子がドライブ可能な容量の制約との比較を行ない、制約を満たすか否かを検証する。入力側処理部２０６及び出力側処理部２０７内部の各部の詳細な動作については後に詳述する。
【００６８】
レポートファイル構築部２０８は、入力側処理部２０６が生成した検証結果の情報と、出力側処理部２０７が生成した検証結果の情報とに基づき、検証結果を示すレポートファイル情報を生成する。また、レポートファイル構築部２０９は、上記生成したレポートファイル情報を表示装置２２０及びレポートファイル記憶部２６０に出力する。制約情報読込部２０９は、回路設計支援装置２がレイアウト結果を検証する回路に含まれる各端子の制約情報を取得する。制約情報読込部２０９は、オペレータによる入力装置２１０の操作に基づき、制約情報記憶部２７０から情報を読み込むことにより、制約情報を取得する。
【００６９】
次に、本実施形態に係る回路設計支援装置２の動作について、図１２に示すシーケンス図を用いて説明する。本実施形態においては、実施の形態１において図８に示すように再構成された回路のネットリスト及び当該ネットリストに基づいて自動レイアウトされた回路のレイアウト情報に基づいてレポート情報を生成する例を説明する。ネットリスト読込部２０１は、ユーザによる入力装置２１０の操作に基づき、ネットリスト記憶部２３０からネットリスト情報を取得する（Ｓ１２０１）。ネットリスト読込部２０１は、取得したネットリスト情報を端子接続走査部２０５に送信する（Ｓ１２０１）。本実施形態において取得するネットリスト情報は、図８に示す回路を示すネットリストである。
【００７０】
遷移時間読込部２０２は、ユーザによる入力装置２１０の操作に基づき、レイアウト情報記憶部２４０から遷移時間情報を取得し、入力側処理部２０６に送信する（Ｓ１２０２）。ここで、図１３を参照して、遷移時間読込部２０２がＳ１２０２において取得及び送信する遷移時間情報について説明する。図１３に示すように、本実施形態に係る遷移時間情報は、ハードマクロであるＳＲＡＭ３００の端子と当該端子に入力される信号の遷移時間とが関連付けられて格納されている。上述したように、この遷移時間情報は、レイアウトツールによる自動レイアウトの実行後、各端子の接続関係に基づいてレイアウトツールによって算出される。
【００７１】
配線容量読込部２０３は、ユーザによる入力装置２１０の操作に基づき、レイアウト情報情報記憶部２４０から配線容量情報を取得し、出力側処理部２０７に送信する（Ｓ１２０３）。ここで、図１４を参照して、配線容量読込部２０３がＳ１２０３において取得及び送信する配線容量情報について説明する。図１４に示すように、本実施形態に係る配線容量情報においては、端子とセルとを指定することにより配線を指定し、指定された配線の容量が関連付けて記憶されている。例えば、図１４においては、“ＤＯ０  Ｕ３８９”という記述により、端子ＤＯ０と低ドライブバッファＵ３８９とを接続する配線であることが指定され、その配線の容量が０．００３（ｐＦ）であることが示されている。遷移時間情報と同様に、この配線容量情報は、レイアウトツールによる自動レイアウトの実行後、各端子の接続関係に基づいてレイアウトツールによって算出される。
【００７２】
セルライブラリ読込部２０４は、ユーザによる入力装置２１０の操作に基づき、セルライブラリ記憶部２５０からセルライブラリの情報を取得し、出力側処理部２０７に送信する（Ｓ１２０４）。ここで、図１５を参照して、セルライブラリ読込部２０４がＳ１２０４において取得及び送信するセルライブラリ情報について説明する。図１５に示すように、本実施形態に係るセルライブラリ情報は、セルの識別を指定し、指定されたセルの入力ゲート容量が関連付けて記憶されている。例えば、図１５においては、“Ｕ３８９”という記述により、低ドライブバッファＵ３８９が指定され、その入力ゲートの容量が０．００９（ｐＦ）であることが示されている。セルライブラリ情報は、レイアウトツールによるレイアウトに際して用いられる情報である。
【００７３】
端子接続走査部２０５は、ネットリスト読込部２０１からネットリストの情報を取得した後、オペレータによる入力装置２１０の操作によってレイアウト結果を検証する端子が選択される（Ｓ１２０５）。端子接続走査部２０５は、オペレータによって選択された端子の接続状態を検出し、走査情報を生成する（Ｓ１２０６）。Ｓ１２０６における端子接続走査部２０５の処理は、実施の形態１における端子接続走査部１０６の処理と同様である。端子接続走査部２０５は、生成した走査情報を入力側処理部２０６及び出力側処理部２０７に送信する。
【００７４】
入力側処理部２０６は、遷移時間情報及び走査情報を夫々取得すると、遷移時間の走査を行なう（Ｓ１２０７）。具体的には、入力側処理部２０６において、遷移時間走査部２１１が、走査情報において指定されている端子の遷移時間を遷移時間情報から抽出する。そして、入出力処理部２０６は、Ｓ１２０７において抽出した遷移時間情報と、指定された端子に課せられた遷移時間の制約とを比較することにより、レイアウト結果が制約を満たすか否か検証する（Ｓ１２０８）。具体的には、制約検証部２１２が遷移時間走査部２１１から上記抽出した遷移時間の情報を受信すると共に、制約情報読込部２０９から制約情報を取得し、対応する端子の遷移時間と制約情報とを比較することにより行なう。入力側処理部２０６は、Ｓ１２０８における検証の結果をレポートファイル構築部２０８に送信する（Ｓ１２０９）。
【００７５】
出力側処理部２０７は、配線容量情報、セルライブラリ情報、及び走査情報を夫々取得すると、配線容量及び入力ゲート容量の走査を行なう（Ｓ１２１０）。具体的には、出力側処理部２０７において、配線容量走査部２２１が、走査情報において指定されている端子が含まれる配線の容量を配線容量情報から抽出する。また、入力ゲート容量走査部２２２が、走査情報において指定されている端子が接続されているセルの入力ゲートの容量をセルライブラリ情報から抽出する。この時、指定された端子に複数のセルが接続されている場合もある。このような場合、入力ゲート容量走査部２２２は、一の端子に接続された複数のセルの入力ゲート容量をセルライブラリ情報から抽出し、入力ゲート容量合算部２２３に送信する。入力ゲート容量合算部２２３は、一の端子に接続された複数のセルの入力ゲート容量を合算する。
【００７６】
出力側処理部２０７は、配線容量及び入力ゲート容量の走査を完了すると、走査情報において指定された夫々の端子において、上記抽出した配線容量と入力ゲート容量とを合算する（Ｓ１２１１）。具体的には、出力側処理部２０７において、容量合算部２２４が、配線容量走査部２２１、入力ゲート容量合算部２２３から、夫々配線容量情報、入力ゲート容量を取得し、夫々の端子について、配線容量と入力ゲート容量とを合算する。例えば、図８に示す端子ＤＯ０が指定されている場合、配線容量としては、図１４に示す“ＤＯ０  Ｕ３８９”にて指定されている配線容量が抽出されている。また、入力ゲート容量としては、図１５に示す“Ｕ３８９”にて指定されている入力ゲート容量が抽出されている。容量合算部２２４は、それら夫々の情報を取得して合算する。これにより、端子ＤＯ０がドライブすることになる容量が算出される。
【００７７】
そして、出力側制御部２０７は、Ｓ１２１１において、夫々の端子について合算された容量と、夫々の端子に課せられた容量の制約とを比較することにより、レイアウト結果が制約を満たすか否か検証する（Ｓ１２１２）。具体的には、制約検証部２２５が容量合算部２２４から合算結果の情報を取得すると共に、制約情報読込部２０９から制約情報を取得し、対応する端子の容量と制約情報とを比較することにより行なう。出力側処理部２０７は、Ｓ１２１２における検証の結果をレポートファイル構築部２０８に送信する（Ｓ１２１３）。
【００７８】
レポートファイル構築部２０８は、入力側処理部２０６及び出力側処理部２０７から受信した検証結果に基づき、レポートファイルを生成する（Ｓ１２１４）。図１６を参照して、本実施形態に係るレポートファイルに含まれる情報の例を示す。図１６に示すように、本実施形態に係るレポートファイルには、走査情報において指定されている端子の識別情報、夫々の端子が出力端子であるか入力端子であるかの別、各端子に接続されたセルを識別する情報、ハードマクロの各端子に入力される信号の遷移時間に関する情報、ハードマクロから出力される信号がドライブする容量に関する情報及び夫々の端子が制約を満たすか否かの判定結果の情報が含まれる。また、ハードマクロの入力端子に入力される信号の遷移時間に関する情報には、各端子に入力される信号の遷移時間の実力値、各端子に入力される信号の遷移時間の制約値及びそれらの単位に関する情報が含まれる。また、ハードマクロから出力される信号がドライブする容量に関する情報は、各端子がドライブする容量の実力値、各端子がドライブ可能な容量の制約値及びそれらの単位に関する情報が含まれる。
【００７９】
図１６について更に説明する。例えば、端子Ａ０に注目した場合、端子Ａ０は、集積回路としては出力端子、即ち、ハードマクロへの入力端子である。端子Ａ０に入力される信号の遷移時間の実力値は、０．３１５（ｐｓ）であり、制約値は、０．５（ｐｓ）であるので、制約を満たすことがわかる。また、端子ＤＯ０に注目した場合、端子ＤＯ０は、集積回路としては、入力端子、即ち、ハードマクロからの出力端子である。端子ＤＯ０がドライブする容量の実力値は、０．０１２（ｐＦ）であり、制約値は、０．１５（ｐＦ）であるので、制約を満たすことがわかる。
【００８０】
レポートファイル構築部２０８は、図１６に示すようなレポートファイルを生成した後、表示装置２２０へのレポートファイルの表示や、レポートファイル記憶部２６０へのレポートファイルの格納など、レポートファイルの出力処理を実行する。ユーザは表示装置２２０に表示されたレポートファイルを確認し若しくはレポートファイル記憶部２６０に格納されたレポートファイルを参照することにより、指定した端子が制約を満たすようにレイアウトが行われているか否かを容易に確認することが可能となる。
【００８１】
以上説明したように、本実施形態に係る回路設計支援装置によれば、集積回路に含まれるハードマクロの各端子が信号の制約を満たすようにレイアウトが行なわれているか否かを容易に確認することができる。
【００８２】
尚、上記の説明においては、オペレータが入力装置２１０を操作して選択した端子のみ、制約を満たすか否かの判断を行なう例を説明した。これに対して、制約情報読込部において、入出力信号の制約が規定されている端子のみ適用するようにしても良い。これにより、オペレータによる端子選択の手間を省略すると共に、制約の課された端子に対しては、レイアウト結果の検証を行なうことが可能となる。
【００８３】
また、上記の説明においては、入力側処理部２０６及び出力側処理部２０７が動作する例を説明した。即ち、ハードマクロへの信号入力端子に入力される信号の遷移時間と、ハードマクロからの信号出力端子から出力される信号がドライブする容量との双方について信号制約を満たすか否かを検証する例を説明した。この他、どちらか一方のみを行なうようにしても良いし、入力側処理部２０６と出力側処理部２０７とを異なる装置で実現しても良い。
【００８４】
その他の実施形態．
実施の形態２においては、実施の形態１においてバッファの挿入若しくは変更が判断された後のネットリストに基づいてレイアウトツールによる自動レイアウトを実行し、そのレイアウト結果を検証する例を説明した。これにより、実施の形態１によるバッファの挿入若しくは変更動作によって、集積回路に含まれるハードマクロの端子の制約が満たされたか否かを検証することが可能となる。この他、例えば実施の形態１のバッファ挿入／変更処理を適用するまえの元のネットリストに対して実施の形態２の検証方法を適用しても良い。そして、その結果、図１６において説明したレポートファイルにおいて制約が満たされないと判定された端子に、実施の形態１に係るバッファの挿入／変更処理を適用するようにしても良い。これにより、元から制約の満たされている端子に不要なバッファを挿入することを避け、バッファの挿入が必要な端子にのみバッファを挿入することが可能となる。
【００８５】
更には、実施の形態１に係るバッファの挿入／変更処理を適用した結果、対象とした端子の制約が満たされたものの、バッファの挿入／変更によりレイアウトが変化し、対象としていない端子の制約が満たされなくなる場合もあり得る。そのような場合、実施の形態１に係るバッファの挿入／変更処理と実施の形態２に係るレイアウトの検証処理を交互に繰り返することにより、全ての端子について制約を満たしたネットリストの生成及びレイアウトを実行することが可能となる。
【図面の簡単な説明】
【００８６】
【図１】本発明の実施形態に係る回路設計支援装置を示すブロック図である。
【図２】本発明の実施形態に係る回路設計支援装置の動作を示すシーケンス図である。
【図３】本発明の実施形態に係る集積回路の一部を示す図である。
【図４】本発明の実施形態に係るネットリスト情報の例を示す図である。
【図５】本発明の実施形態に係る制約情報の例を示す図である。
【図６】本発明の実施形態に係る集積回路の一部を示す図である。
【図７】本発明の実施形態に係る制約情報の例を示す図である。
【図８】本発明の実施形態に係る制約情報の例を示す図である。
【図９】本発明の実施形態に係る近傍配置リストの例を示す図である。
【図１０】本発明の他の実施形態に係るレイアウトツールによるレイアウト結果の例を示す図である。
【図１１】本発明の実施形態に係る回路設計支援装置の動作を示すシーケンス図である。
【図１２】本発明の実施形態に係る回路設計支援装置の動作を示すシーケンス図である。
【図１３】本発明の実施形態に係る遷移時間情報の例を示す図である。
【図１４】本発明の実施形態に係る配線容量の情報の例を示す図である。
【図１５】本発明の実施形態に係るセルライブラリの情報の例を示す図である。
【図１６】本発明の実施形態に係るレポートファイルに含まれる情報の例を示す図である。
【符号の説明】
【００８７】
１、２    回路設計支援装置
１００    コントローラ
１０１    ネットリスト読込部
１０２    制約情報読込部
１０３    端子選択部
１０４    回路図表示部
１０５    再構成処理部
１０６    端子接続走査部
１０７    バッファ追加／変更決定部
１０８    ネットリスト構築部
１０９    近傍配置リスト生成部
１１０    入力装置
１２０    表示装置
１３０    近傍配置リスト記憶部
１４０    ネットリスト記憶部
１５０    制約情報記憶部
２００    コントローラ
２０１    ネットリスト読込部
２０２    遷移時間読込部
２０３    配線容量読込部
２０４    セルライブラリ読込部
２０５    端子接続走査部
２０６    入力側処理部
２０７    出力側処理部
２０８    レポートファイル構築部
２０９    制約情報読込部
２１０    入力装置
２１１    遷移時間走査部
２１２    制約検証部
２２０    表示装置
２２１    配線容量走査部
２２２    入力ゲート容量走査部
２２３    入力ゲート容量合算部
２２４    容量合算部
２２５    制約検証部
２３０    ネットリスト記憶部
２４０    レイアウト情報記憶部
２５０    セルライブラリ記憶部
２６０    レポートファイル記憶部
２７０    制約情報記憶部
【図１】
0005117170.tif 000002
【図２】
0005117170.tif 000003
【図３】
0005117170.tif 000004
【図４】
0005117170.tif 000005
【図５】
0005117170.tif 000006
【図６】
0005117170.tif 000007
【図７】
0005117170.tif 000008
【図８】
0005117170.tif 000009
【図９】
0005117170.tif 000010
【図１０】
0005117170.tif 000011
【図１１】
0005117170.tif 000012
【図１２】
0005117170.tif 000013
【図１３】
0005117170.tif 000014
【図１４】
0005117170.tif 000015
【図１５】
0005117170.tif 000016
【図１６】
0005117170.tif 000017