(57)【要約】【課題】論理回路を階層化した場合であっても、短時間でＩＣ基板上にセル（論理演算素子）を配置して配線を最適化することができる論理回路の設計を支援する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供する。【解決手段】すべての階層のセルを、格子状に形成された配置領域に配置し、既にセルが配置されている配置領域と、新たにセルを配置することが可能な配置領域との境界部分に、他の階層のセルと接続することが可能なポートを配置する。同じ階層のセルについてはセルとセルとの間を、他の階層のセルについてはセルとポートとの間を、配線長の総和が最短となるよう配線する。【選択図】図７
2014026406.tif 000002
【特許請求の範囲】
【請求項１】
複数の階層を有する論理回路の設計を支援する装置で実行することが可能な方法において、
すべての階層のセルを、格子状に形成された配置領域に配置する工程と、
既にセルが配置されている配置領域と、新たにセルを配置することが可能な配置領域との境界部分に、他の階層のセルと接続することが可能なポートを配置する工程と、
同じ階層のセルについてはセルとセルとの間を、他の階層のセルについてはセルとポートとの間を、それぞれ配線する工程と
を含み、配線長の総和が最短となるよう配線する方法。
【請求項２】
既にセルが配置されている配置領域は、新たにセルを配置することができない領域として記憶する請求項１に記載の方法。
【請求項３】
階層ごとにセル及びポートを配置して配線するプロセスは、プロセス間通信により互いにデータ通信することが可能としてあり、
所定の階層においてセルを配置する配置領域が新たにセルを配置することが可能な配置領域であるか否かを、同一の配置領域にセルを配置するプロセスが存在するか否かにより判断する請求項１又は２に記載の方法。
【請求項４】
複数の階層を有する論理回路の設計を支援する装置において、
すべての階層のセルを、格子状に形成された配置領域に配置する配置手段と、
既にセルが配置されている配置領域と、新たにセルを配置することが可能な配置領域との境界部分に、他の階層のセルと接続することが可能なポートを配置するポート配置手段と、
同じ階層のセルについてはセルとセルとの間を、他の階層のセルについてはセルとポートとの間を、それぞれ配線する配線手段と
を備え、前記配線手段は、配線長の総和が最短となるよう配線する装置。
【請求項５】
既にセルが配置されている配置領域は、新たにセルを配置することができない領域として記憶する請求項４に記載の装置。
【請求項６】
階層ごとにセル及びポートを配置して配線するプロセスは、プロセス間通信により互いにデータ通信することが可能としてあり、
所定の階層においてセルを配置する配置領域が新たにセルを配置することが可能な配置領域であるか否かを、同一の配置領域にセルを配置するプロセスが存在するか否かにより判断する請求項４又は５に記載の装置。
【請求項７】
複数の階層を有する論理回路の設計を支援する装置で実行することが可能なコンピュータプログラムにおいて、
前記装置を、
すべての階層のセルを、格子状に形成された配置領域に配置する配置手段、
既にセルが配置されている配置領域と、新たにセルを配置することが可能な配置領域との境界部分に、他の階層のセルと接続することが可能なポートを配置するポート配置手段、及び
同じ階層のセルについてはセルとセルとの間を、他の階層のセルについてはセルとポートとの間を、それぞれ配線する配線手段
として機能させ、前記配線手段を、配線長の総和が最短となるよう配線する手段として機能させるコンピュータプログラム。
【請求項８】
前記装置を、既にセルが配置されている配置領域は、新たにセルを配置することができない領域として記憶する手段として機能させる請求項７に記載のコンピュータプログラム。
【請求項９】
前記装置は、階層ごとにセル及びポートを配置して配線するプロセスは、プロセス間通信により互いにデータ通信することが可能としてあり、
前記装置を、所定の階層においてセルを配置する配置領域が新たにセルを配置することが可能な配置領域であるか否かを、同一の配置領域にセルを配置するプロセスが存在するか否かにより判断する手段として機能させる請求項７又は８に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣ基板上にセルを配置して配線を最適化した論理回路の設計を支援する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムに関する。
【背景技術】
【０００２】
複雑な半導体集積回路を設計する場合、論理回路を階層化して、下位階層の論理回路をブラックボックス化することにより、最上位階層において論理設計を簡略化することができる。この場合、論理設計時には階層を展開することなく設計し、配線を検証する時点では階層を展開して単層構造の論理回路として検証することが多い。典型的な従来の設計方法が、特許文献１に開示されている。図１１は、従来の論理回路の設計方法を示す例示図である。
【０００３】
図１１（ａ）に示すように、論理演算素子（以下、セルという）が配置され、配線が最適化された論理回路を、ＩＣ基板上で具現化する。そのために、まず図１１（ｂ）に示すような格子状に分割されたセルを配置する配置領域（以下、ブロックという）を設定し、各格子部分に相当するブロックに１つずつセルを配置する。セルを配置するアルゴリズムは特に限定されるものではなく、例えば「Ｍｉｎ−Ｃｕｔ法」を用いてセルを配置すれば良い。
【０００４】
そして、図１１（ｃ）に示すように、配置したセル間を配線し、配線長の総和である総配線長が最短になるようにセルの位置を調整する。複雑な半導体集積回路を設計する場合には、論理回路を階層化して下位階層の論理回路をブラックボックス化することにより論理設計を簡略化する。図１２は、階層化された論理回路の一の階層を示す例示図である。
【０００５】
図１２（ａ）に示す論理回路ＭａｃＡについて、図１１の設計方法と同様の手法で、図１２（ｂ）に示すようなセルを配置する配置領域（ブロック）を設定し、各ブロックに１つずつセルを配置する。そして、配置したセル間を配線して、総配線長が最短になるようにセルの位置を調整しておく。
【０００６】
次に、論理回路ＭａｃＡをブラックボックス化し、１つのセルと同様に取り扱うことで、上位階層の論理回路を設計する。図１３は、論理回路ＭａｃＡをブラックボックス化した場合の上位階層の論理回路の設計方法を示す例示図である。
【０００７】
図１３（ａ）に示すように、論理回路ＭａｃＡをブラックボックス化して１つのセルと同様に取り扱い、図１３（ｂ）に示すように、ブロックごとに１つずつ配置する。このようにすることで、論理設計時に扱う論理演算素子（セル）の種類、数を減ずることができ、セルの配置・セル間の配線に必要なリソースが少なくて済み、効率的に論理回路を設計することができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４６７９０２９号公報
【特許文献２】特開平０６−３０９３９７号公報
【特許文献３】特許第３４２４９９７号公報
【特許文献４】特許第２６４８５２８号公報
【特許文献５】特許第４０９０１１８号公報
【特許文献６】特許第３５６２９７５号公報
【特許文献７】特表２００５−５０２１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
論理設計を簡略化するべく論理回路を階層化して下位階層の論理回路をブラックボックス化する場合であっても、階層を意識することなく論理回路を設計することができる。しかし、物理的な制約は大きくなり、セルの配置の自由度は低下するため、ＩＣ基板のサイズが大きくなるおそれがあるという問題点があった。
【００１０】
また、ブラックボックス化された論理回路の構成を、設計時に確認することができないので、セル間の配線が正しいか否かを検証することは困難である。そこで、論理設計が完了した時点で階層を展開して単層構造の論理回路に戻して検証することが多い。この場合、論理圧縮やタイミング設計が容易になるのに対し、論理設計が完了した時点ですべてのセルについてセル間の配線を検証する必要が生じ、検証工程に相当の時間を要するという問題点もあった。
【００１１】
本発明は斯かる事情に鑑みてなされたものであり、論理回路を階層化した場合であっても、短時間でＩＣ基板上にセル（論理演算素子）を配置して配線を最適化することができる論理回路の設計を支援する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために第１発明に係る方法は、複数の階層を有する論理回路の設計を支援する装置で実行することが可能な方法において、すべての階層のセルを、格子状に形成された配置領域に配置する工程と、既にセルが配置されている配置領域と、新たにセルを配置することが可能な配置領域との境界部分に、他の階層のセルと接続することが可能なポートを配置する工程と、同じ階層のセルについてはセルとセルとの間を、他の階層のセルについてはセルとポートとの間を、それぞれ配線する工程とを含み、配線長の総和が最短となるよう配線する。
【００１３】
また、第２発明に係る方法は、第１発明において、既にセルが配置されている配置領域は、新たにセルを配置することができない領域として記憶することが好ましい。
【００１４】
また、第３発明に係る方法は、第１又は第２発明において、階層ごとにセル及びポートを配置して配線するプロセスは、プロセス間通信により互いにデータ通信することが可能としてあり、所定の階層においてセルを配置する配置領域が新たにセルを配置することが可能な配置領域であるか否かを、同一の配置領域にセルを配置するプロセスが存在するか否かにより判断することが好ましい。
【００１５】
次に、上記目的を達成するために第４発明に係る装置は、複数の階層を有する論理回路の設計を支援する装置において、すべての階層のセルを、格子状に形成された配置領域に配置する配置手段と、既にセルが配置されている配置領域と、新たにセルを配置することが可能な配置領域との境界部分に、他の階層のセルと接続することが可能なポートを配置するポート配置手段と、同じ階層のセルについてはセルとセルとの間を、他の階層のセルについてはセルとポートとの間を、それぞれ配線する配線手段とを備え、前記配線手段は、配線長の総和が最短となるよう配線する。
【００１６】
また、第５発明に係る装置は、第４発明において、既にセルが配置されている配置領域は、新たにセルを配置することができない領域として記憶することが好ましい。
【００１７】
また、第６発明に係る装置は、第４又は第５発明において、階層ごとにセル及びポートを配置して配線するプロセスは、プロセス間通信により互いにデータ通信することが可能としてあり、所定の階層においてセルを配置する配置領域が新たにセルを配置することが可能な配置領域であるか否かを、同一の配置領域にセルを配置するプロセスが存在するか否かにより判断することが好ましい。
【００１８】
次に、上記目的を達成するために第７発明に係るコンピュータプログラムは、複数の階層を有する論理回路の設計を支援する装置で実行することが可能なコンピュータプログラムにおいて、前記装置を、すべての階層のセルを、格子状に形成された配置領域に配置する配置手段、既にセルが配置されている配置領域と、新たにセルを配置することが可能な配置領域との境界部分に、他の階層のセルと接続することが可能なポートを配置するポート配置手段、及び同じ階層のセルについてはセルとセルとの間を、他の階層のセルについてはセルとポートとの間を、それぞれ配線する配線手段として機能させ、前記配線手段を、配線長の総和が最短となるよう配線する手段として機能させる。
【００１９】
また、第８発明に係るコンピュータプログラムは、第７発明において、前記装置を、既にセルが配置されている配置領域は、新たにセルを配置することができない領域として記憶する手段として機能させることが好ましい。
【００２０】
また、第９発明に係るコンピュータプログラムは、第７又は第８発明において、前記装置は、階層ごとにセル及びポートを配置して配線するプロセスは、プロセス間通信により互いにデータ通信することが可能としてあり、前記装置を、所定の階層においてセルを配置する配置領域が新たにセルを配置することが可能な配置領域であるか否かを、同一の配置領域にセルを配置するプロセスが存在するか否かにより判断する手段として機能させることが好ましい。
【発明の効果】
【００２１】
本発明によれば、論理設計を簡略化するべく論理回路を階層化して下位階層の論理回路をブラックボックス化した場合であっても、すべての階層におけるセルの配置を把握する必要はなく、一の階層におけるセルの配置と他の階層のセルと接続することが可能なポートの配置とを把握しておくことにより、配線長の総和である総配線長が最短になるよう設計することができるので、物理的な制約によりＩＣ基板のサイズが大きくなることがなく、しかもすべてのセルについてセル間の配線を検証する必要がないので検証工程に要する時間を短縮することができ、比較的短時間で論理回路を設計することが可能となる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態１に係る論理回路設計支援装置の構成を模式的に示すブロック図である。
【図２】本発明の実施の形態１に係る論理回路設計支援装置の機能ブロック図である。
【図３】本発明の実施の形態１に係る論理回路設計支援装置のネットリストの例示図である。
【図４】本発明の実施の形態１に係る論理回路設計支援装置のブロックアウト領域の例示図である。
【図５】本発明の実施の形態１に係る論理回路設計支援装置の論理回路の配線の例示図である。
【図６】本発明の実施の形態１に係る論理回路設計支援装置の最上位階層における配線決定後に生成されたネットリストの例示図である。
【図７】本発明の実施の形態１に係る論理回路設計支援装置のＣＰＵの処理手順を示すフローチャートである。
【図８】本発明の実施の形態２に係る論理回路設計支援装置の機能ブロック図である。
【図９】本発明の実施の形態２に係る論理回路設計支援装置のプロセス間通信によるセルの配置検証処理の例示図である。
【図１０】本発明の実施の形態２に係る論理回路設計支援装置のＣＰＵの処理手順を示すフローチャートである。
【図１１】従来の論理回路の設計方法を示す例示図である。
【図１２】階層化された論理回路の一の階層を示す例示図である。
【図１３】論理回路ＭａｃＡをブラックボックス化した場合の上位階層の論理回路の設計方法を示す例示図である。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態に係る、論理回路の設計を支援する論理回路設計支援装置について、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
【００２４】
また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。
【００２５】
以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、論理回路の設計を支援する論理回路設計支援装置というハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、ＤＶＤ、ＣＤ、光記憶装置、磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。
【００２６】
本発明の実施の形態によれば、論理設計を簡略化するべく論理回路を階層化して下位階層の論理回路をブラックボックス化した場合であっても、すべての階層におけるセルの配置を把握する必要はなく、一の階層におけるセルの配置と他の階層のセルと接続することが可能なポートの配置とを把握しておくことにより、配線長の総和である総配線長が最短になるよう設計することができるので、物理的な制約によりＩＣ基板のサイズが大きくなることがなく、しかもすべてのセルについてセル間の配線を検証する必要がないので検証工程に要する時間を短縮することができ、比較的短時間で論理回路を設計することが可能となる。
【００２７】
（実施の形態１）
図１は、本発明の実施の形態１に係る論理回路設計支援装置の構成を模式的に示すブロック図である。本発明の実施の形態１に係る論理回路設計支援装置１は、少なくともＣＰＵ（中央演算装置）１１、メモリ１２、記憶装置１３、Ｉ／Ｏインタフェース１４、ビデオインタフェース１５、可搬型ディスクドライブ１６、通信インタフェース１７及び上述したハードウェアを接続する内部バス１８で構成されている。
【００２８】
ＣＰＵ１１は、内部バス１８を介して論理回路設計支援装置１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置１３に記憶されたコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ１２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。
【００２９】
記憶装置１３は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置１３に記憶されたコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、可搬型ディスクドライブ１６によりダウンロードされ、実行時には記憶装置１３からメモリ１２へ展開して実行される。もちろん、通信インタフェース１７を介して接続されている外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００３０】
記憶装置１３は、セル（論理演算素子）の配置条件に関する情報を記憶してある配置条件情報記憶部１３１、セルの配置領域に関する情報を記憶してある配置領域情報記憶部１３２、配線に関する情報を含むネットリストを記憶してあるネットリスト記憶部１３３を備えている。配置条件情報記憶部１３１には、例えばＡＮＤ回路、ＯＲ回路等のセルの種類や、他の階層のセルと接続することが可能なポートの座標値、セルの大きさ（サイズ：矩形であればｘ×ｙ）等をセルの配置条件に関する情報として記憶する。
【００３１】
また、配置領域情報記憶部１３２には、セルの配置領域（例えばＩＣ基板の表面において格子状に形成された領域）に関する情報を記憶する。さらに、ネットリスト記憶部１３３には、配線に関する情報を含むネットリストを記憶する。もちろん、ネットリストには、配線に関する情報だけでなく、セル及びポートの配置に関する情報を含めても良い。
【００３２】
通信インタフェース１７は内部バス１８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部コンピュータ等とデータ送受信を行うことが可能となっている。
【００３３】
Ｉ／Ｏインタフェース１４は、キーボード２１、マウス２２等の入力装置と接続され、データの入力を受け付ける。ビデオインタフェース１５は、ＣＲＴディスプレイ、液晶ディスプレイ等の表示装置２３と接続され、所定の画像を表示する。
【００３４】
図２は、本発明の実施の形態１に係る論理回路設計支援装置１の機能ブロック図である。図２において、論理回路設計支援装置１の配置条件情報取得部２０１は、セルの配置条件に関する情報を取得する。具体的には、配置対象となるセルについて配置条件情報記憶部１３１を照会して、配置対象となるセルの種類（例えばＡＮＤ回路、ＯＲ回路等）や、他の階層のセルと接続することが可能なポートの座標値、セルの大きさ（サイズ：矩形であればｘ×ｙ）等を読み出して取得する。
【００３５】
配置領域情報取得部２０２は、セルの配置領域に関する情報を取得する。セルの配置領域とは、例えばＩＣ基板の表面において格子状に形成された領域を意味しており、セルの配置先の候補となる。本実施の形態１では、他の階層において、既にセルが配置されている配置領域を新たにセルを配置することができない領域（ブロックアウト領域）として配置領域情報記憶部１３２に記憶してある。同じ領域に重複してセルが配置されることを防ぐためである。
【００３６】
ネットリスト取得部２０３は、配線に関する情報を含むネットリストを取得する。図３は、本発明の実施の形態１に係る論理回路設計支援装置１のネットリストの例示図である。図３（ａ）に示すネットリストは、図３（ｂ）に示す論理回路のセル間の接続状態を示す接続情報部３０１と、図３（ｃ）に示すセルの配置を示す配置部３０２とで構成されている。もちろん、１つ目のセルを配置する前は、接続情報部３０１だけで構成されていることは言うまでもない。
【００３７】
図３（ａ）に示すネットリストでは、ｕ０〜ｕ７によりセルのＩＤを表している。接続情報部３０１において、セルのＩＤの前に記載されているＢＵＦＦＥＲ，ＩＮＶＥＲＴ、・・・はセルの種類を表している。また、セル間の配線については、入力側及び出力側の接続先を記載してあり、例えばセルｕ２／ｕ０の配線は、入力側が．Ａ（ｎｅｔ１）、．Ｂ（ｎｅｔ２）、出力側が．Ｙ（ｎｅｔ３）のように、端子（配線）の形式で表す。また、配置部３０２において、セルのＩＤの次に記載された数字は、セルを配置した配置領域の座標値を表している。例えば‘ｕ０  １００、１００’と記載されている場合、セルｕ０は座標値（１００、１００）の配置領域に配置されている。
【００３８】
図２に戻って、セル／ポート配置部（配置手段、ポート配置手段）２０４は、階層ごとに、例えば格子状に形成された配置領域（セルの配置領域）にセルを配置し、他の階層に配置されたセルと接続することが可能なポートを配置する。従来はセルのみを配置していたので、論理回路を階層化する場合、総配線長を最短にするためにすべての階層におけるセルの配置を把握しておく必要があった。しかし、本実施の形態１では、一の階層におけるセルの配置と、ポートの配置とを把握しておけば良い。ポートは、既にセルが配置されている配置領域と新たにセルを配置することが可能な配置領域との境界部分に、面積を有さない仮想物として配置されるので、ポートがセルの配置をさまたげることなく、また、ポートの配置を把握しておくことにより、すべての階層におけるセルの配置を把握することなく、論理回路を設計することができる。
【００３９】
また、他の階層において、既にセルが配置されている配置領域は、新たにセルを配置することができない領域（ブロックアウト領域）として、配置領域情報記憶部１３２に記憶される。したがって、例えば最上位階層から順次セルを配置していく場合、下位階層になればなるほどブロックアウト領域が多くなり、セルの配置の自由度が低下する。
【００４０】
図４は、本発明の実施の形態１に係る論理回路設計支援装置１のブロックアウト領域の例示図である。図４（ａ）に示すような２層の論理回路を設計する場合、上位階層の論理設計時には、下位階層の論理回路ＭＡＣ０、ＭＡＣ１を、それぞれセルｕ２、ｕ５として区別して取り扱う。
【００４１】
図４（ｂ）では、下位階層において既にセルが配置されている配置領域（論理回路ＭＡＣ０と論理回路ＭＡＣ１とを構成するセルが配置されている配置領域）をブロックアウト領域としてハッチング表示している。上位階層の論理設計時には、該領域に新たなセルを配置することはできない。そして、論理回路ＭＡＣ０と論理回路ＭＡＣ１とのそれぞれについて、他の階層のセルと接続することが可能なポートを、ポートＰ１〜Ｐ８としてブロックアウト領域と新たにセルを配置することが可能な配置領域との境界部分に配置する。
【００４２】
図２に戻って、配線決定部２０５は、セルとセルとの間、及びセルとポートとの間の配線を決定する。なお、配線の組み合わせのうち、総配線長が最短となるような組み合わせを採用する。本実施の形態１では、同じ階層のセルについてはセルとセルとの間を、他の階層のセルについてはセルとポートとの間を、それぞれ接続する。これにより、他の階層におけるセルの配置を把握する必要もなく、従来の単一階層における配線と同様の方法で配線を決定することができる。
【００４３】
ネットリスト生成部２０６は、配線に関する情報及び配置に関する情報を含むネットリストを生成する。本実施の形態１では、ネットリストは、配線に関する情報及び配置に関する情報が更新される都度生成される。図５は、本発明の実施の形態１に係る論理回路設計支援装置１の論理回路の配線の例示図である。図６は、本発明の実施の形態１に係る論理回路設計支援装置１の最上位階層における配線決定後に生成されたネットリストの例示図である。
【００４４】
図５に示す論理回路は、２つの階層を有しており、図５（ａ）は上位階層の論理回路図を、図５（ｂ）、図５（ｃ）は、下位階層のセルである論理回路ＭＡＣ０、論理回路ＭＡＣ１の論理回路図を、それぞれ示している。論理回路ＭＡＣ０、ＭＡＣ１を構成するセルは、図５（ｄ）に示すハッチング部分にそれぞれ配置されている。
【００４５】
図６に示すネットリストには、図３とは異なり、３つの階層の配線に関する情報及び配置に関する情報が含まれている。つまり、最上位階層におけるセル間の接続状態及び１つ下位の階層のポートとの接続状態を示す接続情報部６０１と、最上位階層におけるセル及びポートの配置を示す配置部６０２に加えて、２つの下位階層についても階層ごとに接続情報部６０３、６０５、配置部６０４、６０６が生成されている。
【００４６】
そして、各階層の配置部６０２、６０４、６０６には、配置したポートの座標値も記載されている。例えば最上位階層の配置部６０２には、それぞれセルｕ２のポートＩＮ１、ＩＮ２の座標値がポート部６１０に、セルｕ５のポートＩＮ１の座標値がポート部６１２に記載されている。
【００４７】
同様に、下位の階層の配置部６０４では、ポートであることを示すパラメータ「Ｐｏｒｔ」とともに、セルｕ２のポートＩＮ１、ＩＮ２の座標値がポート部６１１に、配置部６０６では、セルｕ５のポートＩＮ１の座標値がポート部６１３に、それぞれ記載されている。ネットリストに記載されているポートの座標値は、同一のポートについてはすべて同じであることは言うまでもない。
【００４８】
ネットリスト出力部２０７は、生成したネットリストを出力する。これにより、すべてのセルについてセル間の配線を検証する必要がなく、検証工程に要する時間を短縮することができる。
【００４９】
図７は、本発明の実施の形態１に係る論理回路設計支援装置１のＣＰＵ１１の処理手順を示すフローチャートである。論理回路設計支援装置１のＣＰＵ１１は、セルの配置条件に関する情報を取得し（ステップＳ７０１）、セルの配置領域に関する情報を取得する（ステップＳ７０２）。セルの配置条件に関する情報としては、例えば配置対象となるセルの種類、他の階層のセルと接続することが可能なポートの座標値（セルとの相対位置であって、絶対座標値ではない）、セルの大きさ（サイズ：矩形であればｘ×ｙ）等を読み出して取得する。セルの配置領域に関する情報には、新たにセルを配置することができない領域（ブロックアウト領域）に関する情報も含む。
【００５０】
ＣＰＵ１１は、配線に関する情報及び配置に関する情報を含むネットリストを取得し（ステップＳ７０３）、最上位階層において、例えば格子状に形成された配置領域にセルを配置し、他の階層のセルと接続することが可能なポートを配置する（ステップＳ７０４）。ＣＰＵ１１は、最上位階層において、セルとセルとの間の配線を決定する（ステップＳ７０５）。なお、配線の組み合わせのうち、総配線長が最短となる組み合わせを採用する。
【００５１】
ＣＰＵ１１は、最上位階層における配線に関する情報及び配置に関する情報を含む新たなネットリストを生成する（ステップＳ７０６）。ネットリストは、例えば図６に示すネットリストと同様の構成で生成される。ＣＰＵ１１は、配置領域情報記憶部１３２に記憶されているセルの配置領域に関する情報を更新する（ステップＳ７０７）。具体的には、最上位階層において既にセルを配置した配置領域を、新たにセルを配置することができない領域（ブロックアウト領域）として記憶する。
【００５２】
ＣＰＵ１１は、下位階層が存在するか否かを判断する（ステップＳ７０８）。ＣＰＵ１１が、下位階層が存在すると判断した場合（ステップＳ７０８：ＹＥＳ）、ＣＰＵ１１は、次に下位の階層を選択し（ステップＳ７０９）、最上位階層と同様に選択した階層においてセル及びポートを配置し（ステップＳ７１０）、配線を決定する（ステップＳ７１１）。本実施の形態１では、同じ階層においてはセルとセルとの間を、他の階層との間ではセルとポートとの間を、それぞれ接続する。これにより、他の階層におけるセルの配置を把握する必要もなく、従来の単一階層における配線と同様の方法で配線を決定することができる。ＣＰＵ１１は、選択した階層における配線に関する情報及び配置に関する情報を含むネットリストを生成して（ステップＳ７１２）、配置領域情報記憶部１３２に記憶されているセルの配置領域に関する情報を更新し（ステップＳ７１３）、処理をステップＳ７０８へ戻して、さらに下位の階層へと処理を進める。
【００５３】
ＣＰＵ１１が、下位階層が存在しないと判断した場合（ステップＳ７０８：ＮＯ）、ＣＰＵ１１は、最下位階層の論理設計が終了したと判断し、ネットリストを出力して（ステップＳ７１４）、処理を終了する。これにより、すべてのセルについてセル間の配線を検証することができる。
【００５４】
以上のように本実施の形態１によれば、論理設計を簡略化するべく論理回路を階層化して下位階層の論理回路をブラックボックス化した場合であっても、すべての階層におけるセルの配置を把握する必要はなく、一の階層におけるセルの配置と他の階層のセルと接続することが可能なポートの配置とを把握しておくことにより、配線長の総和である総配線長が最短になるよう設計することができるので、物理的な制約によりＩＣ基板のサイズが大きくなることがなく、しかもすべてのセルについてセル間の配線を検証する必要がないので検証工程に要する時間を短縮することができ、比較的短時間で論理回路を設計することが可能となる。
【００５５】
なお、上述した実施例では、最上位階層から順次論理設計を行う場合について説明しているが、特に最上位階層から順次論理設計することに限定されるものではなく、最下位階層から順次論理設計を行っても良いことは言うまでもない。
【００５６】
（実施の形態２）
本発明の実施の形態２に係る論理回路設計支援装置１の構成は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態２では、階層ごとにセル及びポートを配置して配線するプロセスを、それぞれ独立して並列に実行する点で実施の形態１とは相違する。
【００５７】
図８は、本発明の実施の形態２に係る論理回路設計支援装置１の機能ブロック図である。図８において、論理回路設計支援装置１の配置条件情報取得部２０１、配置領域情報取得部２０２、ネットリスト取得部２０３は、実施の形態１と同様であるので、詳細な説明は省略する。
【００５８】
セル／ポート配置部（配置手段、ポート配置手段）８０１は、階層ごとに、例えば格子状に形成された配置領域にセルを配置し、他の階層に配置されたセルと接続することが可能なポートを配置する。従来はセルのみを配置していたので、論理回路を階層化する場合、総配線長を最短にするためにすべての階層におけるセルの配置を把握しておく必要があった。しかし、実施の形態１と同様、本実施の形態２でも、一の階層におけるセルの配置と、ポートの配置とを把握しておけば良い。ポートは、既にセルが配置されている配置領域と新たにセルを配置することが可能な配置領域との境界部分に、面積を有さない仮想物として配置されるので、ポートがセルの配置をさまたげることなく、また、ポートの配置を把握しておくことにより、すべての階層におけるセルの配置を把握することなく、論理回路を設計することができる。
【００５９】
そして、配線仮決定部８０２は、セルとセルとの間、及びセルとポートとの間の配線を仮決定する。本実施の形態２では、ブロックアウト領域は不明である。したがって、配線を仮決定した時点で、セルの配置を検証する必要がある。
【００６０】
プロセス確認部８０３は、階層ごとにセル及びポートを配置して配線するプロセス間でデータ通信し、所定の階層においてセルを配置する配置領域が、新たにセルを配置することが可能な配置領域であるか否かを判断する。具体的には、プロセス間でデータ通信を行い、同一の配置領域にセルを配置するプロセスが存在するか否かにより判断する。
【００６１】
同一の配置領域にセルを配置するプロセスが存在する場合、総配線長が短くなるセルの配置を優先する。具体的には、配線仮決定部８０２で配線を仮決定した時点で、総配線長を算出しておき、存在を確認したプロセスによる配置を優先した場合の総配線長と比較することにより、セルの配置を変更するか否かを判断する。
【００６２】
配線長判断部８０４は、仮決定した配線の総配線長と、存在を確認したプロセスによる配置を優先した場合の総配線長とを比較し、いずれが短いかを判断する。存在を確認したプロセスによる配置を優先した場合の総配線長の方が短いと判断した場合、セル／ポート配置部（配置手段、ポート配置手段）８０１によりセルの配置を変更して、今一度プロセス間通信によりセルの配置を検証する。
【００６３】
仮決定した配線の総配線長の方が短いと判断した場合、配置及び配線を現在の状態で決定し、ネットリスト生成部２０６で配線に関する情報及び配置に関する情報を含むネットリストを生成して、ネットリスト出力部２０７で生成されたネットリストを出力する。
【００６４】
図９は、本発明の実施の形態２に係る論理回路設計支援装置１のプロセス間通信によるセルの配置検証の例示図である。図９（ａ）はプロセス０によるセルの配置を、図９（ｂ）はプロセス２によるセルの配置を、それぞれ示している。
【００６５】
ここで、図９（ａ）の座標（４００、３００）に配置されているセルを、座標（３００、３００）に移動する場合、プロセス０は、すべてのプロセスに対して座標（３００、３００）に配置するセルを所有しているか否かを確認する。図９（ｂ）に示すように、プロセス２が座標（３００、３００）に配置するセルを所有しているので、応答する。
【００６６】
座標（３００、３００）にプロセス０によりセルを配置した場合の総配線長と、プロセス２によりセルを配置した場合の総配線長とを比較する。プロセス２による配置の方が総配線長が短くなる場合、プロセス２はセルの配置変更を拒絶する。一方、プロセス０による配置の方が総配線長が短くなる場合、プロセス２は座標（３００、３００）を明け渡し、プロセス０は座標（４００、３００）に配置されているセルを座標（３００、３００）に移動する。
【００６７】
図１０は、本発明の実施の形態２に係る論理回路設計支援装置１のＣＰＵ１１の処理手順を示すフローチャートである。論理回路設計支援装置１のＣＰＵ１１は、ステップＳ７０３までの処理は実施の形態１と同様であることから、詳細な説明は省略する。ＣＰＵ１１は、配線に関する情報及び配置に関する情報を含むネットリストを取得し（ステップＳ７０３）、階層ごとに、例えば格子状に形成された配置領域にセルを配置し、他の階層に配置されたセルと接続することが可能なポートを配置する（ステップＳ１００１）。
【００６８】
ＣＰＵ１１は、セルとセルとの間、及びセルとポートとの間の配線を仮決定し（ステップＳ１００２）、同一の配置領域に、セルを配置するプロセスが存在するか否かを判断する（ステップＳ１００３）。具体的には、階層ごとにセル及びポートを配置して配線するプロセス間でプロセス間通信し、同一の座標位置にセルを配置するプロセスからの応答を待つ。
【００６９】
ＣＰＵ１１が、同一の配置領域に、セルを配置するプロセスが存在すると判断した場合（ステップＳ１００３：ＹＥＳ）、ＣＰＵ１１は、仮決定した配線の総配線長が、存在を確認したプロセスによる配置を優先した場合の総配線長と比較して最短であるか否かを判断する（ステップＳ１００４）。ＣＰＵ１１が、同一の配置領域に、セルを配置するプロセスが存在しないと判断した場合（ステップＳ１００３：ＮＯ）、又は仮決定した配線の総配線長が最短ではない、すなわち総配線長がさらに短くなるプロセスが存在すると判断した場合（ステップＳ１００４：ＮＯ）、ＣＰＵ１１は、セルの配置を変更し、配線を仮決定し（ステップＳ１００５）、配置領域情報記憶部１３２に記憶されているセルの配置領域に関する情報を更新して（ステップＳ１００６）、処理をステップＳ１００３に戻して上述した処理を繰り返す。
【００７０】
ＣＰＵ１１が、仮決定した配線の総配線長が最短である、すなわち総配線長がさらに短くなるプロセスは存在しないと判断した場合（ステップＳ１００４：ＹＥＳ）、ＣＰＵ１１は、配置及び配線を現在の状態で決定し（ステップＳ１００７）、配線に関する情報及び配置に関する情報を含むネットリストを生成する（ステップＳ１００８）。ネットリストとしては、例えば図６に示すネットリストと同様の構成で生成される。ＣＰＵ１１は、配置領域情報記憶部１３２に記憶されているセルの配置領域に関する情報を更新して（ステップＳ１００９）、ネットリストを出力する（ステップＳ１０１０）。
【００７１】
以上のように本実施の形態２によれば、論理設計を簡略化するべく論理回路を階層化して下位階層の論理回路をブラックボックス化した場合であっても、すべての階層におけるセルの配置を把握する必要はなく、一の階層におけるセルの配置と他の階層のセルと接続することが可能なポートの配置とを把握しておくことにより、配線長の総和である総配線長が最短になるよう設計することができるので、物理的な制約によりＩＣ基板のサイズが大きくなることがなく、しかもすべてのセルについてセル間の配線を検証する必要がないので検証工程に要する時間を短縮することができ、比較的短時間で論理回路を設計することが可能となる。
【００７２】
なお、実施の形態２においては、特に最上位階層から、又は最下位階層からという制約条件を設けていないが、実施の形態１と同様にいずれかから順次論理設計を行っても良いことは言うまでもない。
【００７３】
また、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。
【符号の説明】
【００７４】
１  論理回路設計支援装置
１１  ＣＰＵ
１２  メモリ
１３  記憶装置
１４  Ｉ／Ｏインタフェース
１５  ビデオインタフェース
１６  可搬型ディスクドライブ
１７  通信インタフェース
１８  内部バス
９０  可搬型記録媒体
１００  コンピュータプログラム
【図１】
2014026406.tif 000003
【図２】
2014026406.tif 000004
【図７】
2014026406.tif 000005
【図８】
2014026406.tif 000006
【図１０】
2014026406.tif 000007
【図３】
2014026406.tif 000008
【図４】
2014026406.tif 000009
【図５】
2014026406.tif 000010
【図６】
2014026406.tif 000011
【図９】
2014026406.tif 000012
【図１１】
2014026406.tif 000013
【図１２】
2014026406.tif 000014
【図１３】
2014026406.tif 000015