(57)【要約】【課題】レイアウト面積を削減することができるトランジスタ自動配置装置を提供すること。【解決手段】トランジスタ自動配置装置３０は、生成手段３１と配置手段３２とを備える。生成手段３１は、回路接続情報に基づいて互いに隣接するように配置された第１及び第２のハードマクロ・トランジスタの拡散領域の電位が等しい場合には、第１のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第１のプログラマブル・トランジスタを生成するとともに、第２のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第２のプログラマブル・トランジスタを生成する。配置手段３２は、第１及び第２のプログラマブル・トランジスタを回路接続情報に基づいて配置する。【選択図】図１
2009252028.tif 000002
【特許請求の範囲】
【請求項１】
回路接続情報に基づいて互いに隣接するように配置された第１及び第２のハードマクロ・トランジスタの拡散領域の電位が等しい場合には、該第１のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第１のプログラマブル・トランジスタを生成するとともに、該第２のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第２のプログラマブル・トランジスタとを生成するように構成された生成手段と、
前記第１及び第２のプログラマブル・トランジスタを前記回路接続情報に基づいて配置するように構成された配置手段と、
を備えることを特徴とするトランジスタ自動配置装置。
【請求項２】
生成手段によって、回路接続情報に基づいて互いに隣接するように配置された第１及び第２のハードマクロ・トランジスタの拡散領域の電位が等しい場合には、該第１のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第１のプログラマブル・トランジスタを生成するとともに、該第２のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第２のプログラマブル・トランジスタとを生成する工程と、
配置手段によって、前記第１及び第２のプログラマブル・トランジスタを前記回路接続情報に基づいて配置する工程と、
を含むことを特徴とするトランジスタ自動配置方法。
【請求項３】
回路接続情報に基づいて互いに隣接するように配置された第１及び第２のハードマクロ・トランジスタの拡散領域の電位が等しい場合には、該第１のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第１のプログラマブル・トランジスタを生成するとともに、該第２のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第２のプログラマブル・トランジスタとを生成する処理と、
前記第１及び第２のプログラマブル・トランジスタを記憶装置に記録する処理と、
前記記憶装置に記録された前記第１及び第２のプログラマブル・トランジスタを前記回路接続情報に基づいて配置する処理と、
をコンピュータに実行させることを特徴とするトランジスタ自動配置プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トランジスタ自動配置装置、方法及びプログラムに関し、特に、ＬＳＩ開発の際のレイアウト設計におけるトランジスタ自動配置装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来のアナログ部のレイアウト設計においては、回路を構成する各素子に対応づけられたトランジスタを一つずつ設計するとともに、決められた領域内に配置していた。また、レイアウト設計において、多くの手作業が必要とされていた。ところが、近年のＬＳＩ開発においては、システムＬＳＩ化が進み、ＬＳＩ全体に占めるアナログ部の比率が増大している。したがって、従来のようなレイアウト設計を行った場合には、開発期間が長期化するおそれがあるため、設計の自動化が必要となる。トランジスタを自動配置するツールは存在するものの、現状では、要求される領域に納めるために手作業によるレイアウトの修正を何度も繰り返さねばならない。
【０００３】
そこで、レイアウト設計を自動化する技術がいくつか提案されている。例えば、特許文献１において、トランジスタのレイアウト条件を普遍的に表現するパラメータを用いてレイアウト設計方法が記載されている。また、特許文献２において、拡散共有（電位が等しいトランジスタの拡散領域の共有化）が行われる箇所を推定する手段を備えるレイアウト設計装置が記載されている。
【０００４】
【特許文献１】特開０９−０３６２３３号公報
【特許文献２】特開１１−００３９７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
以下の分析は、本発明者によってなされたものである。特許文献１に記載されたレイアウト設計方法においては、普遍的なパラメータに基づいてレイアウト設計が行われるため、拡散共有をした場合において、面積を削減する効果が乏しいという問題がある。
【０００６】
そこで、レイアウト面積を削減することができるトランジスタ自動配置装置を提供することが課題となる。
【課題を解決するための手段】
【０００７】
本発明の第１の視点に係るトランジスタ自動配置装置は、回路接続情報に基づいて互いに隣接するように配置された第１及び第２のハードマクロ・トランジスタの拡散領域の電位が等しい場合には、該第１のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第１のプログラマブル・トランジスタを生成するとともに、該第２のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第２のプログラマブル・トランジスタとを生成するように構成された生成手段と、
前記第１及び第２のプログラマブル・トランジスタを前記回路接続情報に基づいて配置するように構成された配置手段と、
を備えることを特徴とする。
【０００８】
本発明の第２の視点に係るトランジスタ自動配置方法は、
生成手段によって、回路接続情報に基づいて互いに隣接するように配置された第１及び第２のハードマクロ・トランジスタの拡散領域の電位が等しい場合には、該第１のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第１のプログラマブル・トランジスタを生成するとともに、該第２のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第２のプログラマブル・トランジスタとを生成する工程と、
配置手段によって、前記第１及び第２のプログラマブル・トランジスタを前記回路接続情報に基づいて配置する工程と、
を含むことを特徴とする。
【０００９】
本発明の第３の視点に係るトランジスタ自動配置プログラムは、
回路接続情報に基づいて互いに隣接するように配置された第１及び第２のハードマクロ・トランジスタの拡散領域の電位が等しい場合には、該第１のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第１のプログラマブル・トランジスタを生成するとともに、該第２のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第２のプログラマブル・トランジスタとを生成する処理と、
前記第1及び第２のプログラマブル・トランジスタを記憶装置に記録する処理と、
前記記憶装置に記録された前記第１及び第２のプログラマブル・トランジスタを前記回路接続情報に基づいて配置する処理と、
をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によって、トランジスタを自動配置する際にレイアウト面積を削減することができる。なぜなら、本発明のトランジスタ自動配置装置は、ハードマクロ・トランジスタにおいて、電位が等しく拡散共有が可能な拡散領域及び／又は不要なコンタクトを削除したプログラマブル・トランジスタを生成し、ハードマクロ・トランジスタを配置する代わりに、生成されたプログラマブル・トランジスタを配置するからである。すなわち、本発明のトランジスタ自動配置装置によって、拡散領域をトランジスタ間で共有し、かつ／又は、コンタクトを削減することによって、レイアウト面積の削減が可能となるからである。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態に係るトランジスタ自動生成装置について図面を参照して説明する。図１は、本発明の実施形態に係るトランジスタ自動配置装置の構成を示すブロック図である。図１を参照すると、トランジスタ自動配置装置３０は、生成手段３１と配置手段３２とを備える。
【００１２】
生成手段３１は、回路接続情報に基づいて互いに隣接するように配置された第１及び第２のハードマクロ・トランジスタの拡散領域の電位が等しい場合には、第１のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第１のプログラマブル・トランジスタを生成するとともに、第２のハードマクロ・トランジスタにおける不要な拡散領域及び／又は不要なコンタクトを削除した第２のプログラマブル・トランジスタを生成する。配置手段３２は、第１及び第２のプログラマブル・トランジスタを回路接続情報に基づいて配置する。
【実施例１】
【００１３】
本発明の実施例に係る自動配置装置について、図面を参照して説明する。図２は、本発明の第１の実施例に係るトランジスタ自動配置装置の構成を示すブロック図である。図２を参照すると、トランジスタ自動配置装置１０は、ネットドリブン（回路図ドリブン）レイアウト部（レイアウト部）Ｔ１、自動配置部Ｔ２、ＬＶＳ検証部Ｔ３、プログラマブル・トランジスタ生成部Ｔ４、ＧＤＳ２（レイアウト）Ｆ１、ネットリスト（回路接続情報）Ｆ２、ＬＶＳ検証結果Ｆ３、仮想トランジスタファイルＦ４、及び、経路変更情報Ｆ５を備える。
【００１４】
なお、自動配置装置は、図４に示すようなコンピュータ上で動作するソフトウェアとハードウェアとの組み合わせによって実現してもよい。トランジスタ自動配置装置２０は、入力装置Ｈ１、ＣＰＵ（中央処理装置）Ｈ２、表示装置Ｈ３、及び、記憶装置Ｈ４を備える。入力装置Ｈ１はキーボードやマウス等であって、オペレータによる操作を受け付ける。表示装置Ｈ３は、液晶ディスプレイやＣＲＴ等であって、オペレータの目視の用に供する。記憶装置Ｈ４はメモリやハードディスクによって構成され、本実施例における各種のファイル（Ｆ１〜Ｆ６）、上記各部を実現するプログラム、及び、ＯＳ（非図示）を記録する。ＣＰＵＨ２は入力装置Ｈ１を介して受け付けた指示に従って記憶装置Ｈ４に格納されたプログラムを実行し、実行結果を表示装置Ｈ３に表示するとともに記憶装置Ｈ４に格納する。
【００１５】
ＧＤＳ２（レイアウト）Ｆ１は、レイアウトデータとして扱われる代表的なバイナリ形式のフォーマットのファイルである。
【００１６】
ＬＶＳ（Ｌａｙｏｕｔ  Ｖｅｒｓｕｓ  Ｓｃｈｅｍａｔｉｃ、レイアウト対スケマティック）検証部Ｔ３は、ハードマクロ・トランジスタを含むレイアウト情報であるＧＤＳ２Ｆ１、及び、ネットリストＦ２を入力し、回路設計段階で作られた回路素子や回路素子間の接続がレイアウト設計において正しく実現されているか否かの検証を行ない、検証結果をＬＶＳ検証結果Ｆ３に出力する。ここで、ハードマクロ・トランジスタとは、回路素子のサイズや縦横比等の変更ができず、形状が固定されたトランジスタをいう。一方、プログラマブル・トランジスタとは、トランジスタの拡散領域の幅の調整やコンタクトの配置の有無等を外部から与えるパラメータにより変更することができるトランジスタをいう。
【００１７】
レイアウト部Ｔ１は、ＬＶＳ検証結果Ｆ３、ＧＤＳ２Ｆ１及びネットリストＦ２を入力する。レイアウト部Ｔ１は、ネットリストＦ２に格納された回路素子とＧＤＳ２Ｆ１に格納されたハードマクロ・トランジスタとを１対１に対応づけて、回路変更情報Ｆ５に応じて変更した回路変更情報を配置情報Ｆ６に出力する。ここで、回路変更情報とは、回路の修正内容を示すものであって、回路トランジスタの拡散領域の幅や長さの変更情報や回路接続の変更情報をいう。
【００１８】
レイアウト部Ｔ１は、自動配置部Ｔ２と配置情報Ｆ６との間で再配置の情報を共有する。自動配置部Ｔ２は、仮想トランジスタファイルＦ４を入出力する。プログラムブル・トランジスタ生成部Ｔ４は、仮想トランジスタファイルＦ４を出力する。レイアウト部Ｔ１は、回路変更情報Ｆ５のレイアウト修正における回路素子とハードマクロ・トランジスタとを１対１に対応付ける情報を、配置情報Ｆ６に記録する。
【００１９】
図３は、本実施例に係るトランジスタ自動配置装置１０の動作を示すフローチャートである。
【００２０】
レイアウト部Ｔ１は、ＧＤＳ２Ｆ１、ネットリストＦ２、ＬＶＳ検証結果Ｆ３、及び、回路変更情報Ｆ５を読み込む（ステップＳ１〜Ｓ４）。レイアウト部Ｔ１は、ステップＳ１〜ステップＳ４において読み込んだ情報を保持する（トランジスタ自動配置装置を図４のように構成した場合には、記憶装置Ｈ４に記録する）。レイアウト部Ｔ１は、ＬＶＳ検証結果Ｆ３、ＧＤＳ２Ｆ１のデータ、及び、ネットリストＦ２のデータを用いて、回路とレイアウトのトランジスタとを１対１に対応づけ、その結果を配置情報Ｆ６に格納する（ステップＳ５）。レイアウト部Ｔ１は、自動配置部Ｔ２にステップＳ７及びＳ８の処理を実行するように指示する。
【００２１】
自動配置部Ｔ２は、ステップＳ７及びＳ８の処理を再配置処理として実行する。自動配置部Ｔ２は、拡散領域Ｄが互いに結合されたハードマクロ・トランジスタを検索する。自動配置部Ｔ２は、検索されたハードマクロ・トランジスタについて、拡散領域Ｄの面積が縮小可能である場合には、仮想トランジスタを生成して再配置を実施する（ステップＳ７）。また、自動配置部Ｔ２は、生成した仮想トランジスタを仮想トランジスタファイルＦ４に格納する。自動配置部Ｔ２は、自動配置を行い、生成された再配置情報を配置情報Ｆ６に格納する。
【００２２】
自動配置部Ｔ２は、ステップＳ７で生成した仮想トランジスタファイルＦ４に基づいて、ステップＳ７で面積の縮小が可能と判定されたハードマクロ・トランジスタと同形状のプログラマブル・トランジスタを生成する（ステップＳ８）。
【００２３】
レイアウト部Ｔ１は、ステップＳ７及びＳ８の処理によって生成され、配置情報Ｆ６に保持された配置情報を表示する（ステップＳ９）。
【００２４】
図５は、仮想トランジスタファイルＦ４の構成の一例を示す。仮想トランジスタファイルＦ４は、再配置前のレイアウトデータに含まれているハードマクロ・トランジスタを検出し、回路と１対１に対応付けたトランジスタ個々の素子情報であって、トランジスタの寸法や配置座標、回転や反転等の素子情報を含む。仮想トランジスタファイルＦ４は、ハードマクロ・トランジスタに対応したプログラマブル・トランジスタを自動生成するために使用される。
【００２５】
図６は、本発明の第１の実施例に係るトランジスタ自動配置装置によって、複数のハードマクロ・トランジスタの拡散領域を重ね合わせて自動配置する方法を説明するための図である。
【００２６】
図６（Ａ）は、ネットリストＦ２に格納されている回路情報を示す。図６（Ｂ）は、ＧＤＳ２Ｆ１に格納されているレイアウト情報を示す。図６（Ｃ）は、仮想トランジスタファイルＦ４に格納されている仮想トランジスタを示す。図６（Ｄ）は、拡散領域を重ねたレイアウト情報を示す。
【００２７】
レイアウト部Ｔ１は、まず、ステップＳ１〜ステップＳ４を実行することによって、ネットリストＦ２から、図９（Ａ）に示すハードマクロ・トランジスタＣ０−１と同じ構成のトランジスタＣ１−１〜Ｃ１−３が３個直列に接続された回路素子Ｃ１の情報を取得する。さらに、レイアウト部Ｔ１は、ＧＤＳ２Ｆ１からハードマクロ・トランジスタＣ０−１に対応するレイアウトＬ０−１の情報を入手する。
【００２８】
レイアウト部Ｔ１は、ステップＳ５でネットリストＦ２内のハードマクロ・トランジスタＣ１−１〜Ｃ１−３と、ＧＤＳ２Ｆ１内のレイアウトＬ１−１〜Ｌ１−３を１対１に対応づけてレイアウトする情報を取得し、配置情報Ｆ６に格納する。
【００２９】
次に、レイアウト部Ｔ１は、ステップＳ６では配置情報Ｆ６を用いて自動配置部Ｔ２に再配置の指示を出す。
【００３０】
自動配置部Ｔ２は、レイアウトＬ１−１〜Ｌ１−３に関して拡散領域Ｄ１〜Ｄ３を重ね合わせるために必要な素子寸法等の素子情報を持つ仮想トランジスタのレイアウトＬ６−１〜Ｌ６−３を作成する（ステップＳ７）。
【００３１】
自動配置部Ｔ２は、配置情報Ｆ６に格納された情報に基づいて、レイアウトＬ１−１の拡散領域Ｄ１のドレイン電位と、レイアウトＬ１−２の拡散領域Ｄ２のソース電位とが等しく、かつ、他に接続される配線が存在しないものと判定する。このとき、自動配置部Ｔ２は、レイアウトＬ１−１のドレイン側のコンタクトを削除するとともに、ドレイン側の拡散領域Ｄ１のうち設計基準で設定されたゲート・ゲート間距離分だけを残して、仮想トランジスタのレイアウトＬ６−１を生成する。また、自動配置部Ｔ２は、レイアウトＬ１−２のソース側の拡散領域Ｄ２のコンタクトを削除するとともに、ドレイン側の拡散領域Ｄ２のうち設計基準で設定されたゲート・ゲート間距離分だけを残して、仮想トランジスタのレイアウトＬ６−２を生成する。
【００３２】
さらに、自動配置部Ｔ２は、レイアウトＬ１−２の拡散領域Ｄ２のドレイン電位と、レイアウトＬ１−３の拡散領域Ｄ３のソース電位とが等しく、かつ、他に接続される配線が存在しないものと判定する。このとき、自動配置部Ｔ２は、レイアウトＬ１−２のドレイン側のコンタクトを削除するとともに、拡散領域Ｄ２のうち設計基準で設定されたゲート・ゲート間距離分だけを残して、仮想トランジスタのレイアウトＬ６−２を生成する。さらに、自動配置部Ｔ２は、レイアウトＬ１−３のソース側のコンタクトを削除するとともに、拡散領域Ｄ３のうち設計基準で設定されたゲート・ゲート間距離分だけを残して、仮想トランジスタＬ６−３を生成する。また、自動配置部Ｔ２は、生成した仮想トランジスタのレイアウトＬ６−１〜Ｌ６−３を仮想トランジスタファイルＦ４に格納する（ステップＳ７）。
【００３３】
なお、本実施例では、一例として、トランジスタの拡散領域を重ねる場合について説明したが、拡散領域間の距離、ゲート間隔、ゲートとコンタクトとの間隔その他の設計基準で定められている寸法を適宜使用することによって、仮想トランジスタを生成するようにしてもよい。
【００３４】
自動配置部Ｔ２は、ステップＳ７で作成した仮想トランジスタファイルＦ４の情報に基づいて、プログラマブル・トランジスタＬ４−１〜Ｌ４−３の拡散領域を重ね合わせたレイアウトＬ４を生成する（ステップＳ８）。ここで、プログラマブル・トランジスタＬ４−１〜Ｌ４−３として、プログラマブル・トランジスタ生成部Ｔ４によって生成されたものを用いるようにしてもよい。
【００３５】
レイアウトＬ４におけるプログラマブル・トランジスタＬ４−１のゲートとレイアウトＬ４−２のゲートの間隔Ｃは、次式（１）で表される。
間隔Ｃ＝（ゲート・ゲート間距離）  式（１）
ここでゲート・ゲート間距離のパラメータはプロセスに応じて決められる設計基準に基づいて設定される。ただし、
（ゲート・ゲート間距離）＜（ゲート・コンタクト間距離）×２＋（コンタクト幅）
である。なお、レイアウトＬ４−２とレイアウトＬ４−３の間隔も、間隔Ｃと同じ距離となる。
【００３６】
本実施例に係るトランジスタ自動配置装置１０は、再配置前のレイアウトデータに含まれているハードマクロ・トランジスタをそのまま使用するのではなく、自動配置部Ｔ２と仮想トランジスタファイルＦ４とによって、次の処理を行う。すなわち、自動配置部Ｔ２は、仮想トランジスタファイルＦ４を作成し、仮想トランジスタファイルＦ４内のトランジスタの寸法や配置座標、回転や反転等の回路接続情報と１対１に対応づけられたトランジスタ個々の素子情報に基づいて、プログラマブル・トランジスタを自動生成する。これによって、レイアウト部Ｔ１は、再配置前のレイアウトデータに含まれていたハードマクロ・トランジスタを、生成したプログラマブル・トランジスタによって差し替えたレイアウトを取得する。
【００３７】
差し替え後のプログラマブル・トランジスタ間の間隔は、トランジスタ間にコンタクトが挟まれておらず、ゲート・ゲート間距離をプロセス最小ルールとして配置することができるため、レイアウト面積を削減する効果がある。
【００３８】
また、本実施例に係るトランジスタ自動配置装置によって、個々のトランジスタ毎に、ハードマクロ・トランジスタをプログラマブル・トランジスタに差し替える手作業を省くことができる。また、本実施例に係るトランジスタ自動配置装置によって、仮想トランジスタファイルに格納された仮想トランジスタの情報に基づいて、プログラマブル・トランジスタファイルの生成が自動化されることによって、設計期間の短縮を図ることができる。さらに、本実施例に係るトランジスタ自動配置装置によって、ハードマクロ・トランジスタと、自動生成されたプログラマブル・トランジスタとの差し替えも自動化されるため、手作業による差し替えの漏れの防ぐことができる。
【実施例２】
【００３９】
本発明の第２の実施例に係るトランジスタ自動配置装置について図面を参照して説明する。図７（Ａ）は、ゲート分割数が３である場合の回路素子を示す。図７（Ｂ）は、図７（Ａ）に対応づけたゲート分割数３のプログラマブル・トランジスタを示す。
【００４０】
実施例１とは異なり、ここではプログラマブル・トランジスタ生成部Ｔ４によって生成されるプログラマブル・トランジスタが自動配置の対象とされる。
【００４１】
図８は、本発明の第２の実施例に係るトランジスタ自動配置装置によって、複数のプログラマブル・トランジスタの拡散領域を重ね合わせて自動配置する方法を説明するための図である。ここでは、図７（Ａ）に示すゲート分割数が３のプログラマブル・トランジスタを例として説明する。
【００４２】
レイアウト部Ｔ１は、図７（Ａ）に示すトランジスタＣ０−２が３個直列に接続された回路素子Ｃ２（図８（Ａ）のトランジスタＣ２−１〜Ｃ２−３）の情報を取得し、ＧＤＳ２Ｆ１に存在するプログラマブル・トランジスタＬ０−２を３個（図８（Ｂ）のレイアウトＬ２−１〜Ｌ２−３）読み出すことによって、プログラマブル・トランジスタＣ２−１〜Ｃ２−３の回路接続情報と、レイアウトＬ２−１〜Ｌ２−３のプログラマブル・トランジスタとを１対１に対応づけてレイアウトする情報を得る。
【００４３】
自動配置ツールＴ２は、レイアウトＬ２−１〜Ｌ２−３に関して拡散領域Ｄ１〜Ｄ３を重ね合わせるために必要な素子寸法等の素子情報を有する仮想トランジスタのレイアウトＬ７−１〜Ｌ７−３を作成する（ステップＳ７）。
【００４４】
自動配置ツールＴ２は、配置情報Ｆ６に格納された情報に基づいて、レイアウトＬ２−１の拡散領域Ｄ１のドレイン電位とレイアウトＬ２−２の拡散領域Ｄ２のソース電位とが等しく、かつ、他に接続される配線が存在しないものと判定した場合、レイアウトＬ２−１のドレイン側のコンタクトを削除するとともに、ドレイン側の拡散領域Ｄ１のうち設計基準で設定されたゲート・ゲート間距離分だけを残して、仮想トランジスタのレイアウトＬ７−１を生成する。同様にして、自動配置ツールＴ２は、レイアウトＬ２−２のソース側のコンタクトを削除するとともに、ソース側の拡散領域Ｄ２のうち設計基準で設定されたゲート・ゲート間距離分だけを残して、仮想トランジスタのレイアウトＬ７−２を生成する。
【００４５】
さらに、自動配置ツールＴ２は、レイアウトＬ２−２の拡散領域Ｄ２のドレイン電位とレイアウトＬ２−３の拡散領域Ｄ３のソース電位とが等しく、かつ、他に接続される配線が存在しないものと判定した場合、レイアウトＬ２−２のドレイン側のコンタクトを削除するとともに、ドレイン側の拡散領域Ｄ２のうち設計基準で設定されたゲート・ゲート間距離分だけを残して、仮想トランジスタのレイアウトＬ７−２を生成する。同様にして、自動配置ツールＴ２は、レイアウトＬ５−３のソース側のコンタクトを削除するとともに、ソース側の拡散領域Ｄ３のうち設計基準で設定されたゲート・ゲート間距離分だけを残して、仮想トランジスタＬ７−３を生成する。自動配置部Ｔ２は、作成した仮想トランジスタのレイアウトＬ７−１〜Ｌ７−３を仮想トランジスタファイルＦ４に格納する。
【００４６】
なお、本実施例では、一例として、トランジスタの拡散領域を重ねる場合について説明したが、拡散領域間の距離、ゲート間隔、ゲートとコンタクト間隔その他の設計基準で定められている寸法を適宜使用することによって、仮想トランジスタを生成するようにしてもよい。
【００４７】
自動配置部Ｔ２は、ステップＳ７で作成した仮想トランジスタファイルＦ４の情報に基づいて、プログラマブル・トランジスタＬ５−１〜Ｌ５−３を再生成し、生成されたプログラマブル・トランジスタの拡散領域を重ね合わせたレイアウトＬ５を生成する（ステップＳ８）。
【００４８】
このとき、レイアウトＬ５−１のゲートとレイアウトＬ５−２のゲートとの間隔Ｃは、図６の間隔Ｃと同じ距離となり、上記式（１）で表される。レイアウトＬ５−２のゲートとレイアウトＬ５−３のゲートとの間隔も、間隔Ｃと同じ距離になる。
【００４９】
本実施例に係るトランジスタ自動配置装置は、仮想トランジスタファイルＦ４の生成時において、レイアウトＬ２−１〜Ｌ２−３のようなハードマクロ・トランジスタに対してトランジスタのゲート分割数により１対１に対応づけられた情報を仮想トランジスタファイルＦ４に追加することによって、多様なハードマクロ・トランジスタの構造に対応することができる。以上の記載は実施例に基づいて行ったが、本発明は、上記実施例に限定されるものではない。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施形態に係るトランジスタ自動配置装置の構成を示すブロック図である。
【図２】本発明の第１の実施例に係るトランジスタ自動配置装置の構成を示すブロック図である。
【図３】本発明の第１の実施例に係るトランジスタ自動配置装置の動作を示すフローチャートである。
【図４】本発明の第１の実施例に係るトランジスタ自動配置装置の構成を示すブロック図である。
【図５】本発明の第１の実施例に係るトランジスタ自動配置装置における仮想トランジスタファイルの構成例。
【図６】本発明の第１の実施例に係るトランジスタ自動配置装置の動作を説明するための図である。
【図７】ゲート分割数３のトランジスタ回路及びそれに対応づけたプログラマブル・トランジスタを表す図である。
【図８】本発明の第２の実施例に係るトランジスタ自動配置装置の動作を説明するための図である。
【図９】トランジスタ回路及びそれに対応づけたプログラマブル・トランジスタを表す図である。
【符号の説明】
【００５１】
１０、２０、３０  トランジスタ自動配置装置
３１  生成手段
３２  配置手段
Ｃ０−１、Ｃ０−２、Ｃ１、Ｃ１−１〜Ｃ１−３、Ｃ２、Ｃ２−１〜Ｃ２−３  回路
Ｄ、Ｄ１〜Ｄ３  拡散領域
Ｆ１  ＧＤＳ２（レイアウト）
Ｆ２  ネットリスト（回路接続情報）
Ｆ３  ＬＶＳ検証結果
Ｆ４  仮想トランジスタファイル
Ｆ５  回路変更情報
Ｆ６  配置情報
Ｈ１  入力装置
Ｈ２  ＣＰＵ（中央処理装置）
Ｈ３  出力装置
Ｈ４  記憶装置
Ｌ０−１、Ｌ１−１〜Ｌ１−３  ハードマクロ・トランジスタ
Ｌ２−１〜Ｌ２−３  プログラマブル・トランジスタ
Ｌ６−１〜Ｌ６−３、Ｌ７−１〜Ｌ７−３  仮想トランジスタ
Ｌ４−１〜Ｌ４−３、Ｌ５−１〜Ｌ５−３  プログラマブル・トランジスタ
Ｌ４、Ｌ５  再配置後のレイアウト
Ｔ１  ネットドリブン（回路図ドリブン）レイアウト部（レイアウト部）
Ｔ２  自動配置部
Ｔ３  ＬＶＳ検証部
Ｔ４  プログラマブル・トランジスタ生成部
【図１】
2009252028.tif 000003
【図２】
2009252028.tif 000004
【図３】
2009252028.tif 000005
【図４】
2009252028.tif 000006
【図５】
2009252028.tif 000007
【図６】
2009252028.tif 000008
【図７】
2009252028.tif 000009
【図８】
2009252028.tif 000010
【図９】
2009252028.tif 000011