(57)【特許請求の範囲】
【請求項１】
半導体集積回路として設計する電気回路中の素子を、マスタースライス上にあらかじめ形成されている実素子に割り当てて配線することにより、半導体集積回路を設計する方法であって、
割り当てが決まっていない電気回路素子を割り当てが決まっていない下地素子に対して２通りの割り当て方法を試みる第１のステップと、
前記２通りの割り当て方法の結果について、評価関数を用いた評価をして評価値を求める第２のステップと、
前記２通りの割り当て結果の評価値を比較して評価値の良くなる割り当て結果を採用して、下地素子への割り当てを決定する第３のステップと、
割り当て結果を評価する前記第２のステップは、
割り当て対象の電気回路素子と接続関係にある他の電気回路素子を下地素子に割り当てた場合に発生する端子間の距離と、割り当て対象の電気回路素子を下地素子に割り当てた場合に発生する端子間距離とに、それぞれ個別の重みを乗じた値の総和を評価値とすることを特徴とする半導体集積回路の設計方法。
【請求項２】
前記第１のステップで用いる割り当て方法の１つが、
電気回路素子毎にあらかじめ登録されている素子構成リストを基に、素子種別の適合する下地素子を検索し、割り当てを行う素子構成優先割り当て方法である請求項１に記載の半導体集積回路の設計方法。
【請求項３】
前記第１のステップで用いる割り当て方法の１つが、
割り当て対象の電気回路素子と接続関係にある他の電気回路素子の下地素子に割り当てた場合に発生する端子間の距離が短くなる下地素子から順に割り当てを行う自動素子選択割り当て方法である請求項１に記載の半導体集積回路の設計方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マスタースライス方式を用いた半導体集積回路の設計方法に関する。
【０００２】
【従来の技術】
近年、アナログ半導体集積回路の分野は多品種小量生産化が顕著であり、開発製造期間の短縮が求められている。そこで、半導体基板上にトランジスタ素子、抵抗素子、容量素子の素子形成工程までをあらかじめ準備しておき、その後に必要な配線のみを行なって半導体集積回路を構成する、いわゆるマスタースライス方式が採用されている。マスタースライス方式において半導体基板上に形成される素子を「下地素子」という。以下、図１５を用いてマスタースライス方式を用いた従来の半導体集積回路設計装置について説明する。
【０００３】
図１５は、従来の半導体集積回路設計装置を用いて、マスタースライス上の下地素子に電気回路素子を割り当てた１例を示すものである。図１５において、１５０１は電気回路中のトランジスタ素子Ｔ１５ａを割り当てた下地素子、１５０２はトランジスタ素子Ｔ１５ｂを割り当てた下地素子、１５０３はトランジスタ素子Ｔ１５ｃを割り当てた下地素子を示す。又、１５０４〜１５０７はＴ１５ａと接続関係にある抵抗素子Ｒ１５ａを割り当てた下地素子、１５０８〜１５１１はＴ１５ｂと接続関係にある抵抗素子Ｒ１５ｂを割り当てた下地素子、１５１２〜１５１５はＴ１５ｃと接続関係にある抵抗素子Ｒ１５ｃを割り当てた下地素子を示す。ここで、トランジスタ素子Ｔ１５ａ〜Ｔ１５ｃの下地素子の割り当ては既に決定されているものとする。従来は、電気回路中の抵抗素子を下地素子へ割り当てる際に、抵抗値の小さい未割り当ての下地素子を検索して接続関係にある他の回路素子からの距離（外部配線長）が短い順番に割り当てを行う方法だけを用いていた。よって、抵抗素子Ｒ１５ａ〜Ｒ１５ｃの順に割り当てを行う場合、始めに１５０４〜１５０７の下地素子へＲ１５ａの割り当てが決定し、次に１５０８〜１５１１の下地素子へＲ１５ｂの割り当てが決定する。ここで、Ｒ１５ｂと接続関係にあるＴ１５ｂからの距離が近い順に下地素子を割り当てると１５０６〜１５０９（又は、１５０７〜１５１０）となるが１５０６、１５０７は既にＲ１５ａの下地素子として割り当てが決定しているため重複して割り当てることはできない。同様にＲ１５ｃを割り当てる場合、１５１２〜１５１４が順に割り当てられ、次にＴ１５ｃから近く、抵抗値の小さい下地素子を検索した場合、１５１５の下地素子が割り当てられる。
【０００４】
【発明が解決しようとする課題】
従来装置のように、割り当て対象の回路素子を外部配線長が短くなるような下地素子から優先して割り当てを行うと、先に割り当てた回路素子が後から割り当てる回路素子の妨げになり、最適な位置に割り当てられず、図１５に示すような混雑した回路で割り当てたい近くの下地素子が不足した場合に、離れた位置にある下地素子１５１５を割り当ててしまう。これにより、回路抵抗素子Ｒ１５ｃは４本まとまった位置に割り当てることができなくなり、抵抗素子は拡散時の条件の違いによる特性のバラツキが発生する可能性が高くなる。さらに、抵抗素子を実現するために必要な下地素子間を接続する内部配線の長さも長くなるため、配線抵抗による悪影響が発生したり、未配線が発生する原因になる。
【０００５】
本発明は、上記従来の問題点を解決するもので、与えられた電気回路中の抵抗素子を他の電気回路素子との接続関係を考慮しつつ、マスタースライス上の下地素子にまとめて割り当てることで抵抗素子の特性のバラツキ発生を防止し、外部配線長及び、内部配線長を短くすることが可能な半導体集積回路の設計方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
この目的を達成するために、本発明の半導体集積回路の設計方法は、電気回路素子をマスタースライス上の下地素子へ割り当てる際に、素子構成優先割り当て法と自動素子選択割り当て法の２通りの割り当て方法を備え、それぞれの配置形状をバランス素子の隣接や組み合わせ素子の広がり等をパラメータとする評価関数により評価を行い、求めた評価値の良い方の割り当て結果を採用し、割り当て決定処理を行う。全ての電気回路素子について下地素子への割り当てが完了するまで割り当て処理を繰り返すことにより実現される。
【０００７】
【発明の実施の形態】
以下、この発明の実施形態について図１から図９を用いて説明する。マスタースライス方式では、予め半導体基板上にトランジスタ素子、抵抗素子、容量素子の素子形成工程までを準備したマスタースライス下地に、電気回路上の素子を割り当て、その素子間の配線を行なうことにより半導体集積回路を構成する。
【０００８】
図１は、発明の一実施形態である半導体集積回路設計装置のハードウェア構成を示すブロック図である。
【０００９】
半導体集積回路装置は、ワークステーションなどによって実現されるＣＡＤ（Computer Aided Design）装置であり、ディスプレイ１０１は、ＣＲＴ（陰極線管）やＬＣＤ（液晶表示装置）などによって実現される。入力部１０２は、キーボードやマウスなどによって実現される。ＣＰＵ１０３は、半導体集積回路装置全体を制御する中央演算処理装置である。記憶部１０４は、メモリやハードディスクなどによって実現される。
【００１０】
図２は、本発明の一実施形態である半導体集積回路の設計方法による処理手順を示すフローチャートである。
【００１１】
本設計装置では、まず電気回路中の抵抗素子をマスタースライス上の下地素子に割り当てる際に、電気回路素子の抵抗値を実現する為に用いる下地素子の種類、本数、接続方法を素子構成データとして入力部１０２により入力する（ステップＳ２０１）。
【００１２】
次に、与えられる電気回路中の抵抗素子をＳ２０１で入力された素子構成データに記述されている下地素子を検索して割り当てる方法と電気回路の接続情報より実素子の端子間の配線長が短くなるような下地素子を検索して割り当てる方法の２通りの方法により、マスタースライス上の下地素子へ割り当てを行い、それぞれの配置形状を評価して、評価値の良い方の割り当て結果を採用する（ステップＳ２０２）。
【００１３】
次に、マスタースライス上に確保またはあらかじめ指定された配線領域を使用し、従来のＣＡＤ装置と同様にして、例えば迷路法等により電気回路の接続情報に基づいて実素子の端子間などの配線を行なう（ステップＳ２０３）。ここで迷路法とは、始点から波紋が広がるような順序で配線格子にラベル付けを行うことによって、全方向の配線経路を探索する方法であり、配線経路があれば最短のものを必ず見つけることができるという特徴がある。
【００１４】
図３は、素子割り当て部Ｓ２０２のより詳細な処理の流れを示すフローチャートである。
【００１５】
素子割り当て部Ｓ２０２は、始めに与えられる電気回路情報を読み込み、電気回路素子の接続情報を格納する（ステップＳ３０１）。
【００１６】
次に、素子構成優先割り当てを行う（ステップＳ３０２）。素子構成優先割り当てでは、読み込んだ電気回路情報中の素子構成データに記述されている通りに、各回路素子を実現する為に必要な下地素子を検索し、仮割り当てを行う。ステップＳ３０２によって割り当てられた回路素子の配置形状を後述の評価関数を用いて評価し、その評価値を記憶する（ステップＳ３０３）。
【００１７】
次に、自動素子選択割り当てを行う（ステップＳ３０４）。自動素子選択割り当てでは、ステップＳ３０１で読み込んだ電気回路情報を基に、割り当て対象の抵抗素子と同じ種類の下地素子を検索し、抵抗値が小さく、接続関係にある他の電気回路素子との距離が近いものから順に仮割り当てを行う。割り当て対象の回路素子値と仮割り当てを行った下地素子の素子値の差が０になるまで割り当てを繰り返す。ステップＳ３０４によって割り当てられた回路素子の配置形状を後述の評価関数を用いて評価し、その評価値を記憶する（ステップＳ３０５）。
【００１８】
次に、ステップＳ３０３及びステップＳ３０５で記憶した素子構成優先割り当てによる配置形状の評価値と自動素子選択割り当てによる配置形状の評価値を比較（ステップＳ３０６）して、評価値の良くなる方（小さくなる方）の配置形状を採用し、仮の割り当てを行っていた回路素子を正式に割り当て決定する（ステップＳ３０７）。
【００１９】
次に、全ての回路素子について下地素子への割り当てが完了したかどうかの判定を行い（ステップＳ３０８）、割り当てが完了していない回路素子が存在する場合は、前述の方法（ステップＳ３０２〜Ｓ３０８）で割り当てを繰り返す。ステップＳ３０９で、全ての回路素子について割り当てが完了している場合は、素子割り当て処理を終了する。
【００２０】
図４に、一実施形態で電気回路素子を割り当てようとするマスタースライス下地を示す。図４において４０１は、５ＫΩの抵抗素子が並べられた下地素子領域、４０２は、１０ＫΩの抵抗素子が並べられた下地素子領域、４０３は、トランジスタ素子が並べられた下地素子領域を示す。又、４０１と４０２に配置されている抵抗素子の種類は「ＳＰ」である。
【００２１】
図５に、マスタースライス上の下地素子へ割り当てようとする電気回路Ａを示す。図５において、５０１〜５０３は２０ＫΩの抵抗素子、５０４〜５１１はトランジスタ素子を示す。
【００２２】
図６は、本装置を用いて図５の電気回路Ａ中の抵抗素子５０２と５０３及びトランジスタ素子５０４〜５１１を図４のマスタースライス下地上に割り当てた結果を示している。図６において、６０１〜６１０は電気回路Ａ中の素子５０２〜５１１を割り当てた結果を示す。
【００２３】
図７は、本装置のステップＳ３０２によって図５の電気回路Ａ中の抵抗素子５０１を図６の割り当て途中の下地素子へ割り当てた結果を示す。図７において、７０１は既に割り当てが決定している抵抗下地素子を示している。７０２は電気回路Ａ中のトランジスタ素子５０４を割り当てた下地素子、７０３は電気回路Ａ中の抵抗素子５０１を割り当てた下地素子を示している。
【００２４】
ここで、電気回路素子５０１には、回路情報として図８に示す素子構成の表記方法が与えられている。図８において、８０１は抵抗素子の種類、８０２は抵抗値、８０３は構成方法を示している。この実施形態の場合、「ＳＰ」は抵抗の種類を意味し、「１００００」は１００００Ωの抵抗値を意味し、「２Ｓ」は下地素子を２本直列に接続することを意味している。５０１を下地素子に割り当てる際に、素子構成データに記述されている抵抗素子と種類、抵抗値が同一の下地素子を検索し、接続関係にある他の回路素子５０４から最も距離が近くなる下地素子で他の回路素子に割り当て決定していないものを選択して、割り当て決定する。本実施形態の場合、構成方法が２本直列と記述されているため、この作業を２度繰り返すことで回路素子の下地素子への割り当てを行う。
【００２５】
次に、本装置のステップＳ３０３によってステップＳ３０２の素子構成優先割り当て結果の配置形状を評価し、その評価値を記憶する。以下に、配置形状の評価を行う際に、本装置で使用している評価関数について説明する。式１は、ある回路素子Ｃの割り当てをａｃとした場合の評価関数を示している。
【００２６】
Ｆ（ac）＝w1×L（ac）＋w2×I（ac）＋w3×D（ac）＋w4×N(ac) ‥‥（式１)  式１において、Ｆは評価値、Ｌは外部配線長、Ｉは内部配線長、Ｄは割り当て決定下地素子群との距離、Ｎは隣接素子値を表す。割り当て決定下地素子との距離Ｄは、回路素子Ｃにおいて既に割り当てが決定している下地素子群の中心点から割り当てが未決定の各下地素子の中心点までの距離の総和で求められる。隣接素子値Ｎは、割り当てられた下地素子に隣接する下地素子が既に他の回路素子として割り当てられている場合を１とし、それ以外の場合は０とする。また、w1〜w4は、各評価パラメータに係る重みを示している。評価値Ｆは、各評価パラメータ値にそれぞれの重み係数を乗じた値の総和で求められる。
【００２７】
図９は、本装置のステップＳ３０４によって図５の電気回路Ａ中の抵抗素子５０１を図６の割り当て途中の下地素子へ割り当てた結果を示す。図９において、９０１は既に割り当てが決定している抵抗下地素子を示している。９０２は電気回路Ａ中のトランジスタ素子５０４を割り当てた下地素子、９０３〜９０６は電気回路Ａ中の抵抗素子５０１を割り当てた下地素子を９０７は下地素子群を示している。自動素子選択割り当てでは、割り当て対象の回路素子５０１の抵抗値を満たすまで、回路情報として与えられたものと同じ種類の下地素子で抵抗値の小さいものを接続関係にある他の回路素子の割り当て位置から近い順に検索して、割り当てを行っていく。本実施形態では、接続関係にある回路素子９０２に近い同一の種類の抵抗下地素子９０４から順に割り当てられる。下地素子を割り当てた後、割り当て対象の抵抗素子値と割り当てた下地素子の抵抗値の差を求め、その差が０でなければ、割り当て対象の抵抗素子値を求めた差の値に更新して、次の下地素子の検索を行う。このような方法で、９０３及び９０５が順番に割り当てられ、最後に９０６が割り当てられる。この時、割り当て対象の抵抗素子値と割り当てた下地素子の抵抗値の差が０となる為、回路素子５０１の割り当てを終了する。
【００２８】
次に、本装置のステップＳ３０５によってステップＳ３０４の自動素子選択割り当て結果の配置形状を評価し、その評価値を記憶する。
【００２９】
次に、本装置のステップＳ３０６によってステップＳ３０３及びＳ３０５で記憶した２つの割り当て結果の評価値の比較を行う。本実施形態において、Ｓ３０３とＳ３０５で記憶した評価値を比較した場合、Ｓ３０５で記憶している評価値の方がＳ３０３で記憶した評価値より大きくなる。これは、Ｓ３０５で記憶している評価値がステップＳ３０４の自動素子選択割り当てにより割り当てられた配置形状の評価値であり、本実施形態の場合、ステップＳ３０４の割り当て方法では、図９に示すように９０６の下地素子がひとつだけ他に割り当てられている下地素子から離れて割り当てられるために、回路抵抗素子５０１を構成する下地素子間の距離が大きくなり、それに応じて評価関数式内のＩｙの値も大きくなる為に評価値全体としても大きくなってしまうためである。よって、ステップＳ３０７へ進む。
【００３０】
ステップＳ３０７では、ステップＳ３０２で求めた割り当て結果を採用し、割り当て結果に従って下地素子へ割り当て決定処理を行う。この割り当て決定処理により割り当て決定された下地素子には、他の回路素子を割り当てることが不可能となる。割り当て対象の下地素子全てについて割り当て処理が完了すれば、ステップＳ３０９へ進む。
【００３１】
ステップＳ３０９では、与えられた電気回路中の回路素子が全てマスタースライスの下地上に割り当てが完了しているかの判定を行い、割り当てが完了している場合は、素子割り当て処理を終了する。割り当てが完了していない回路素子が存在する場合は、残りの回路素子の割り当て処理を継続する。
【００３２】
次に、異なる抵抗値の下地素子を用いた素子構成方法が与えられている抵抗素子の割り当てる実施形態を示す。
【００３３】
図１０に割り当て対象の電気回路Ｂを示す。図１０において、１００１、１００２は２０ＫΩの抵抗素子、１００３、１００４は２５ＫΩの抵抗素子、１００５〜１００８はトランジスタ素子を示す。図１１は、図１０中の回路素子を割り当てた結果を示し、１１０１は１００１を、１１０２は１００２を、１１０３は１００３を１１０４〜１１０７は１００５〜１００８をそれぞれ割り当てたものである。１００４の抵抗素子は未割り当てとする。図１２は、割り当て途中の図１１の下地に１００４の抵抗素子をステップＳ３０２により、割り当てた結果を示している。図１２において１２０１〜１２０３、１２０５〜１２０８は既に割り当てが決定している下地素子を示し、１２０４は抵抗素子１００４を割り当てた結果を示している。
【００３４】
ここで、抵抗素子１００４の素子構成の表記方法を図１３に示す。図１３中の第１項の「ＳＰ  ５０００」は抵抗種類ＳＰで５０００Ωの下地素子１本を意味し、図１３中の第２項の「ＳＰ  １００００＊２Ｓ」は抵抗種類ＳＰで１００００Ωの下地素子を２本直列に接続することを意味し、抵抗素子１００４はそれらの抵抗を更に直列接続して構成することを表現している。
【００３５】
図１４は、割り当て途中の図１１の下地に１００４の抵抗素子をステップＳ３０４により、割り当てた結果を示している。図１４において、１４０１〜１４０３、１４０５〜１４０８は既に割り当てが決定している下地素子を示し、１４０４は１００４を割り当てた結果を示している。前記、電気回路Ａの割り当て実施形態と同様にして、電気回路Ｂにおける２通りの割り当て結果をステップＳ３０５により評価する。ステップＳ３０６によりそれぞれの評価値の比較を行い、その評価値が良くなる割り当て結果を採用する。電気回路Ｂ中の１００４の抵抗素子の割り当てにおいて、自動素子選択割り当てステップＳ３０２による１２０４は下地素子がまとまって割り当てられており、接続関係にあるトランジスタ素子１４０７からの距離も近い為、配置形状評価値は良くなる。それに比べて、素子構成優先割り当てステップＳ３０４による１４０４は５ＫΩの抵抗素子が１本だけ離れて割り当てられており、１０ＫΩの抵抗素子２本は１４０７からの距離が遠い為、配置形状評価値は悪くなる。よって、図１２に示すステップＳ３０２による割り当て結果が採用される。
【００３６】
このように、２通りの下地素子への割り当て方法を備え、それぞれについて割り当て形状を評価し、その結果、評価値として良くなる方を採用することで、他の回路素子との接続関係を考慮し、複数の下地から構成される回路素子内での特性のバラツキが発生しにくい配置結果を得ることが可能となる。
【００３７】
【発明の効果】
本発明の半導体集積回路の設計方法によれば、マスタースライス上の下地素子へ素子構成割り当て及び自動素子選択割り当てを行い、配置形状の良くなる割り当てを採用することでそれぞれの割り当て方法の欠点を補いつつ、他の回路素子の下地素子への割り当て状態に応じて、抵抗素子の特性のバラツキ、配線抵抗による抵抗値の精度劣化の発生を抑制することが可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態における半導体集積回路設計装置のハードウェア構成を示すブロック図
【図２】本発明の一実施形態における半導体集積回路の設計方法の処理手順を示すフローチャート
【図３】素子割り当て部のより詳細な処理手順の一例を示すフローチャート
【図４】本発明の一実施形態に用いるマスタースライス下地を示す図
【図５】本発明の一実施形態において割り当て対象となる電気回路Ａの回路図
【図６】本発明の一実施形態における下地素子への割り当て経過を示す説明図
【図７】ステップＳ３０２による下地素子への割り当て方法の説明図
【図８】本発明の一実施形態における素子構成の定義方法説明図
【図９】ステップＳ３０４による下地素子への割り当て方法の説明図
【図１０】本発明の一実施形態において割り当て対象となる電気回路Ｂの回路図
【図１１】本発明の一実施形態における下地素子への割り当て経過を示す説明図
【図１２】ステップＳ３０２による下地素子への割り当て方法の説明図
【図１３】抵抗素子の構成方法を示した図
【図１４】ステップＳ３０４による下地素子への割り当て方法の説明図
【図１５】従来の素子割り当て手法の一例を示す説明図
【符号の説明】
１０１  表示装置
１０２  外部入力装置
１０３  中央演算処理装置
１０４  記憶装置
４０１  ５ＫΩの抵抗下地素子領域
４０２  １０ＫΩの抵抗下地素子領域
４０３  トランジスタ素子領域
５０１〜５０３  抵抗素子
５０４〜５１１  トランジスタ素子
６０１〜６０２  下地素子に割り当てられた抵抗素子
６０３〜６１０  下地素子に割り当てられたトランジスタ素子
７０１  下地素子に割り当てが決定している抵抗素子
７０２  下地素子に割り当てられたトランジスタ素子
７０３  下地素子に割り当てられた抵抗素子
８０１  素子種別
８０２  素子値
８０３  素子構成
９０１  下地素子に割り当てが決定している抵抗素子
９０２  下地素子に割り当てられたトランジスタ素子
９０３〜９０６  下地素子に割り当てられた抵抗素子
９０７  下地素子に割り当てられた抵抗素子群
１００１〜１００４  抵抗素子
１００５〜１００８  トランジスタ素子
１１０１〜１１０３  下地素子に割り当てられた抵抗素子
１１０４〜１１０７  下地素子に割り当てられたトランジスタ素子
１２０１〜１２０３  下地素子に割り当てが決定している抵抗素子
１２０４  下地素子に割り当てられた抵抗素子
１２０５〜１２０８  下地素子に割り当てが決定しているトランジスタ素子
１４０１〜１４０３  下地素子に割り当てが決定している抵抗素子
１４０４  下地素子に割り当てられた抵抗素子
１４０５〜１４０８  下地素子に割り当てが決定しているトランジスタ素子
１５０１〜１５０３  下地素子に割り当てられたトランジスタ素子
１５０４〜１５１５  下地素子に割り当てられた抵抗素子
【図１】
0003617366.tif 000002
【図２】
0003617366.tif 000003
【図３】
0003617366.tif 000004
【図４】
0003617366.tif 000005
【図５】
0003617366.tif 000006
【図６】
0003617366.tif 000007
【図７】
0003617366.tif 000008
【図８】
0003617366.tif 000009
【図９】
0003617366.tif 000010
【図１０】
0003617366.tif 000011
【図１１】
0003617366.tif 000012
【図１２】
0003617366.tif 000013
【図１３】
0003617366.tif 000014
【図１４】
0003617366.tif 000015
【図１５】
0003617366.tif 000016