(57)【特許請求の範囲】
【請求項１】
回路基板上に複数の素子を配設し、前記素子の有する各端子を配線して構成された半導体集積回路のレイアウト方法において、
前記各端子の配線を行う前にそれぞれの端子の周辺に、各端子に接続される配線以外の配線の通過を禁止する領域を設定する配線禁止領域設定工程と、前記各端子についての配線が終了した後、その端子についての前記配線禁止領域の設定を解除する配線禁止領域解除工程とを備え、
前記配線禁止領域設定工程において、前記配線禁止領域内にビア配置候補点を設け、前記各端子の配線を行う際にビアが必要な場合には、前記各端子に対する前記配線禁止領域内の前記ビア配置候補点にビアを設けることを特徴とする半導体集積回路のレイアウト方法。
【請求項２】
回路基板上に複数の素子を配設し、前記素子の有する各端子を配線して構成された半導体集積回路のレイアウト方法において、
前記回路基板上を複数のユニットに区分けして、同一ユニット内に含まれた前記端子を対象として配線経路の検索を行った後に同一ユニット内の端子間の配線を行うユニット内配線工程と、同一行にあるユニットで構成されたブロック行内に含まれた前記端子を対象として配線経路の検索を行った後に前記ブロック行内の端子間の配線を行うブロック行内配線工程と、前記回路基板上において配線が残っている端子を対象として配線経路の検索を行った後に前記端子間の配線を行う工程と、前記各端子の配線を行う前にそれぞれの端子の周辺に、各端子に接続される配線以外の配線の通過を禁止する領域を設定する配線禁止領域設定工程と、前記各端子についての配線が終了した後、その端子についての前記配線禁止領域の設定を解除する配線禁止領域解除工程とを備え、
前記配線禁止領域設定工程において、前記配線禁止領域内にビア配置候補点を設け、前記各端子の配線を行う際にビアが必要な場合には、前記各端子に対する前記配線禁止領域内の前記ビア配置候補点にビアを設けることを特徴とする半導体集積回路のレイアウト方法。
【請求項３】
前記ユニット内配線工程において、適当な配線経路が見つからなかった端子については、この工程以降の工程で配線を行う請求項２に記載の半導体集積回路のレイアウト方法。
【請求項４】
前記ブロック行内配線工程において、適当な配線経路が見つからなかった端子については、この工程以降の工程で配線を行う請求項２に記載の半導体集積回路のレイアウト方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路のレイアウト方法に関し、詳しくは、コンピュータを利用して設計を行う半導体集積回路のレイアウト方法に関するものである。
【０００２】
【従来の技術】
近年、半導体集積回路の分野では、多品種少量生産化が顕著であり、開発製造期間の短縮が求められている。そこで、半導体集積回路のレイアウト方法においては、コンピュータを利用したレイアウト設計の自動化が進んでいる。このようなレイアウト設計の自動化は、アナログＩＣの分野でも進んでおり、最近では、トランジスタ、抵抗および容量といった素子を予めチップ上に配置しておき、配線工程だけを設計することで目的の機能を実現するという、アナログマスタースライスが開発されている。以下、このアナログマスタースライスにおける従来のレイアウト方法について説明する。
【０００３】
図１４は、従来技術に係る半導体集積回路のレイアウト方法であるアナログマスタースライスにおける配線工程のフローチャートを示したものである。この従来技術によれば、まず、ステップ１４０１において、配線の終了していないネットが一つ選択される。次に、ステップ１４０２において、選択されたネットを構成する各端子間の配線が行われる。次に、ステップ１４０３において、全てのネットの配線が終了しているか否かの判断を行う。ここで、全てのネットの配線が終了していれば（ステップ１４０３において「Ｙｅｓ」と判断されれば）、配線工程は終了するが、全てのネットの配線が終了していなければ（ステップ１４０３において「Ｎｏ」と判断されれば）、再びステップ１４０１に戻って、配線工程が繰り返し行なわれる。
【０００４】
以上の図１４に示された配線工程のフローチャートに従って自動配線を行う場合には、通常、チップ上に配線グリッドを付加する。この場合、配線グリッド上に配線を行えば、配線間隔などのマスク設計上のデザインルールが満たされるような構成となっている。また、半導体チップは２層以上のアルミ配線により配線を行うが、自動配線の場合には、配線層ごとに配線方向が固定されており、横方向の配線は１層アルミを使用し、縦方向の配線は２層アルミを使用するものとして、配線処理を容易にしている。１層アルミと２層アルミとの配線間は、通常、ビアによって接続される。そして、素子の端子はすべて１層アルミに存在するものとし、素子の上であっても端子、ビア、他の配線などの障害がない領域であれば、配線は自由に通ることができるものとする。
【０００５】
このようなチップに対して、従来技術に係るアナログマスタースライス方式のレイアウト方法においては、チップ上の素子数が少ないために、階層的な設計方法が取られず、迷路法を基本とする配線手法を用いて配線を行う方法が主に行われている。ここで、迷路法とは、ある始点から波紋が広がるような順序で配線グリッドの格子点に、始点からの距離をラベルとして付けていくことにより、全方向の配線経路を求める方法であり、配線経路があれば必ず最短のものを見つけるという特徴を有している。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記の従来技術に係るレイアウト方法においては、マスタースライス方式のように配線領域が固定された半導体集積回路に配線を行う場合、従来の迷路法のような配線手法を利用した自動配線を行うと、以下のような問題が生ずる。
【０００７】
まず、チップ上の配線領域を広げることができないために、各ネットの配線を順番に最短経路で行うと、素子の混雑した部分に配線が集中してしまい、後から行う配線が通れなくなる可能性が高い。そうすると、配線を行うことが不可能な領域（以下、「配線不能領域」という。）が発生して自動配線ができなくなり、未配線の数が増加してしまう。
【０００８】
また、自動配線を行う際に、素子の端子周辺および端子上を他の素子に接続するネットの配線が通過すると、端子から配線を引き出すことができなくなり、配線がそれほど混雑していない場合でも、未配線になってしまうことがある。これの解決策としては、従来、端子周辺に端子候補点を設定し、その部分を他の配線が通れないようにする考えがあったが、端子候補点を設定するだけでは端子から配線が引き出せるかどうかは保証できない。
【０００９】
さらに、迷路法のようなチップ全面を対象にした配線手法を用いると、経路の検索範囲が非常に広くなり、処理時間が長くなる傾向にある。
そこで、本発明は、このような課題を解決するためになされたもので、マスタースライス方式のように配線領域が固定化された半導体集積回路上に配線を行う場合において、素子の混雑した部分における配線の集中を緩和するとともに、端子から配線を引き出す領域を確保することによって、配線不能領域の発生を防止して未配線の数を減少させることが可能であり、同時に、配線を行う経路の検索範囲を限定することによって、経路検索の処理時間（計算時間）の短縮を可能とする、半導体集積回路のレイアウト方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明に係る第一の半導体集積回路のレイアウト方法は、回路基板上に複数の素子を配設し、前記素子の有する各端子を配線して構成された半導体集積回路のレイアウト方法において、前記各端子の配線を行う前にそれぞれの端子の周辺に、各端子に接続される配線以外の配線の通過を禁止する領域を設定する配線禁止領域設定工程と、前記各端子についての配線が終了した後、その端子についての前記配線禁止領域の設定を解除する配線禁止領域解除工程とを備え、前記配線禁止領域設定工程において、前記配線禁止領域内にビア配置候補点を設け、前記各端子の配線を行う際にビアが必要な場合には、前記各端子に対する前記配線禁止領域内の前記ビア配置候補点にビアを設けることを特徴とする。
【００１３】
この第一の半導体集積回路のレイアウト方法によれば、前記各端子の配線を行う前に、それぞれの端子に対して前記配線禁止領域を設定しているので、前記各端子からの配線が引き出し不能となることはなく、未配線を減少させることができる。また、前記各端子についての配線が終了した後、その端子についての配線禁止領域の設定が解除されるので、その後は、その領域（元配線禁止領域）も他の端子の配線に利用することが可能であり、前記配線禁止領域を追加することによって、未配線が増加するということはない。
【００１４】
また、本発明に係る第二の半導体集積回路のレイアウト方法は、回路基板上に複数の素子を配設し、前記素子の有する各端子を配線して構成された半導体集積回路のレイアウト方法において、前記回路基板上を複数のユニットに区分けして、同一ユニット内に含まれた前記端子を対象として配線経路の検索を行った後に同一ユニット内の端子間の配線を行うユニット内配線工程と、同一行にあるユニットで構成されたブロック行内に含まれた前記端子を対象として配線経路の検索を行った後に前記ブロック行内の端子間の配線を行うブロック行内配線工程と、前記回路基板上において配線が残っている端子を対象として配線経路の検索を行った後に前記端子間の配線を行う工程と、前記各端子の配線を行う前にそれぞれの端子の周辺に、各端子に接続される配線以外の配線の通過を禁止する領域を設定する配線禁止領域設定工程と、前記各端子についての配線が終了した後、その端子についての前記配線禁止領域の設定を解除する配線禁止領域解除工程とを備え、前記配線禁止領域設定工程において、前記配線禁止領域内にビア配置候補点を設け、前記各端子の配線を行う際にビアが必要な場合には、前記各端子に対する前記配線禁止領域内の前記ビア配置候補点にビアを設けることを特徴とする。
【００１５】
この第二の半導体集積回路のレイアウト方法によれば、各ユニット内の配線を行った後に、ユニット間（ブロック行内）の配線を行い、各ブロック行内の配線を行った後に、ブロック行間（回路基板全体）の配線を行っているので、ユニット間を接続する配線がユニット内の端子間の配線の障害とならず、また、ブロック行間を接続する配線がブロック行内の端子間の配線の障害とならない。また、前記各端子の配線を行う前に、それぞれの端子に対して前記配線禁止領域を設定しているので、前記各端子からの配線が引き出し不能となることがなく、適宜、前記配線禁止領域の解除を行うことにより、前記配線禁止領域を追加することによって、未配線が増加するということはない。したがって、効率的な配線を行うことが可能となり、未配線を減少させることができる。さらに、はじめは配線経路の検索範囲を小さく設定し、その範囲を徐々に階層的に大きくしていくことによって最終的に回路基板上の全体の配線を行っているので、従来のように、はじめから回路基板上の全体を対象としたレイアウト方法と比較すると、より短い処理時間で配線を行うことが可能となる。
【００１６】
さらに、第二の半導体集積回路のレイアウト方法においては、前記ユニット内配線工程において、適当な配線経路が見つからなかった端子については、この工程以降の工程で配線を行うことが好ましく、前記ブロック行内配線工程において、適当な配線経路が見つからなかった端子については、この工程以降の工程で配線を行うことが好ましい。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
図１２は、アナログマスタースライス方式における半導体集積回路（以下、「チップ」ともいう。）の構造図を示したものである。図１２に示されたチップはユニット構造になっており、基板中の周辺（周縁）部分には、信号を入出力するための複数のＩ／Ｏパッド１２０１が設けられ、この複数のＩ／Ｏパッド１２０１で囲まれた（基板中の内側）部分には、複数のユニット１２０２が設けられている。各ユニット１２０２には、各種の素子が規則的に配置されており、ユニット１２０２を横方向に複数個並べて、ブロック行１２０３が構成されている。そして、チップは、ブロック行１２０３を縦に複数段並べることによって、構成されている。
【００１９】
図１３は、図１２に示されたチップを構成しているユニットの構造図の一例を示したものである。このユニットは、複数の抵抗素子１３０１と、複数のトランジスタ１３０２とを用いて構成されている。また、ユニットの右縁部分には抵抗素子が複数個並べられた領域１３０３が存在する。この図１３に示されたユニットにおいては、ユニット内に配置されていても実際に利用しない抵抗素子の上は配線領域として利用できる。そして、この領域１３０３に存在する抵抗素子は、基本的にあまり利用されない部分であるので、領域１３０３は主に配線のために利用される。以下、このような領域１３０３を、配線用チャネル領域１３０３という。さらに、このユニット中においては、配線用チャネル領域１３０３以外の領域であっても、抵抗素子１３０１およびトランジスタ１３０２が設けられていない領域については、配線領域として利用することができる。したがって、本実施形態において、「配線領域」という場合は、配線用チャネル領域１３０３のみならず、ユニット内における抵抗素子１３０１およびトランジスタ１３０２が設けられていない領域をも含む。
【００２０】
以下、本発明の実施の形態に係る半導体集積回路のレイアウト方法を、以上の図１２および図１３に示されたチップ構造を対象として、図面を用いて説明する。
【００２１】
〈第一の実施形態〉
図１は、本発明の第一の実施形態に係る半導体集積回路のレイアウト方法における配線工程のフローチャートを示したものである。本実施形態において、各種の素子が配設されるチップ上は、複数のユニットに区分けされている。そして、まず、ステップ１０１において、チップを構成している各ユニット内の配線が行なわれる。ここでは、各ユニットについて、ユニット内に含まれる素子同士を接続するネットの配線が行なわれる。次に、ステップ１０２において、複数のユニットで構成されている、チップ上の同一ブロック行内の配線が行なわれる。すなわち、ここでは、同一ブロック行内において、一つのブロック行を構成している各ユニット同士およびブロック行内の素子同士を接続するネットの配線が行なわれる。次に、ステップ１０３において、残りの配線（まだ接続されていないものの配線）、すなわち、チップを構成しているそれぞれのブロック行同士およびチップ内の素子同士の配線が行なわれる。
【００２２】
以上のように、本実施形態においては、まず第一にユニット内の素子同士の配線が行われ、第二に同一ブロック行内の素子同士の配線が行われ、第三にチップ全体についての配線が行なわれる。すなわち、本実施形態においては、このように、配線を行う際の検索範囲を徐々に階層的に広げいくことによって、チップ上に規則的に配設された各素子の配線が行なわれる。したがって、本実施形態によれば、はじめは配線経路の検索範囲を小さく設定し、その範囲を階層的に徐々に大きくすることによって、最終的にチップ全面についての配線を行っているので、従来の迷路法のように、はじめからチップ全面を対象にした配線手法と比較すると、処理時間を短縮することが可能となる。
【００２３】
図２は、図１における配線工程のフローチャートに従って、ある一つのチップ上に配線を行なう場合の配線工程の一例を示した図である。
図２（ａ）は、チップ（を構成する各ユニット）上に配設されている各素子の端子を示した図である。この図２（ａ）においては、チップが複数のユニット（第一のユニット２１１、第二のユニット２１２、第三のユニット２１３、第四のユニット２１４、第五のユニット２１５および第六のユニット２１６）に区分けされており、第一のユニット２１１中に第一の端子２０１および第二の端子２０２が設けられ、第四のユニット２１４中に第三の端子２０３および第四の端子２０４が設けられ、第五のユニット２１５中に第五の端子２０５および第六の端子２０６が設けられ、第六のユニット２１６中に第七の端子２０７が設けられている。ここで、第一の端子２０１から第七の端子２０７は、このチップ上においてネットを構成するように接続されるべき各素子の端子である。
【００２４】
以下、図２（ｂ）〜図２（ｄ）を用いて、図１のステップ１０１以降についての配線工程を説明する。
（ユニット内の配線）
図２（ｂ）は、図１のステップ１０１によって各ユニット内の配線を行った後の状態を示した図である。このステップ１０１においては、各ユニット内のみの配線が行なわれるため、それぞれのユニットが配線検索範囲となり、各素子の端子を有するユニットごとに、配線経路の検索および実際の配線が行なわれる。なお、この際、各ユニット内において、適当な配線経路が見つからなかった場合には、これらの端子間の配線は行われず、その間の配線については、その後のステップに持越しとなる。ここで、「適当な配線経路」とは、配線禁止領域を回避して各端子間を配線し得る経路の中で、より好ましい（配線長が短い等の）配線経路である。また、ユニット内に端子が一つしか存在しない場合には、このステップにおいて、そのユニット内での配線は行われない。
【００２５】
例えば、この図２（ｂ）においては、第一のユニット２１１および第五のユニット２１５は、適当な配線経路が見つかった状態を示したおり、第四のユニット２１４は、適当な配線経路が見つからなかった状態を示している。具体的に説明すると、第一のユニット２１１中の第一の端子２０１と第二の端子２０２との間においては、適当な配線経路が見つかり、これらの端子間は第一の配線２２１で接続され、第五のユニット２１５中の第五の端子２０５と第六の端子２０６との間においても、適当な配線経路が見つかり、これらの端子間は第二の配線２２２で接続されている。一方、第四のユニット２１４中の第三の端子２０３と第四の端子２０４との間には、適当な配線経路が見つからなかったので、このステップにおいて、第三の端子２０３と第四の端子２０４との配線は行われない。また、第六のユニット２１６については、この第六のユニット２１６内に第七の端子２０７以外の端子は存在しないので、このステップにおいて、第七の端子２０７の配線は行われない。
【００２６】
ここで、以上に説明したステップ１０１におけるユニット内の配線工程を、フローチャートに基づいて、さらに詳細に説明する。図３は、図１のステップ１０１によって行われるユニット内の配線工程のフローチャートを示したものである。
【００２７】
まず、ステップ３０１において、ネットリストが作成されていないユニットが、チップ全体の中から選択される。次に、ステップ３０２において、選択されたユニット内のネットリストが作成される。ここでは、チップ全体のネットリストから、選択されたユニット内に含まれる素子端子に接続する部分（ネット）だけが取り出され、それに基づいてユニット内のネットリストが作成される。次に、ステップ３０３において、全てのユニットについてのネットリストが完成しているか否かの判断が行われる。ここで、全てのユニットについてのネットリストが完成していれば（ステップ３０３において「Ｙｅｓ」と判断されれば）、次のステップに進み、そうでなければ（ステップ３０３において「Ｎｏ」と判断されれば）、再びステップ３０１に戻って各ユニットについてのネットリストの作成が行われる。次に、ステップ３０４において、各ユニットの配線を行う際の優先順位を決定する。ここでは、各ユニットのネットリストに基づいて、短いネットが遠回りすることを防止するために、基本的には、配線長の短いものから配線を行うように、優先順位が決定されている。ただし、それぞれのユニットには、重要性の軽重が存在するので、それらも考慮した上で、配線を行う際の最終的なユニットの優先順位が決定される。
【００２８】
次に、ステップ３０５において、未配線のユニットの中で優先順位が最高位のユニットの選択が行われる。次に、ステップ３０６において、選択されたユニットについての配線が行われる。ここでは、配線手法として、迷路法やラインサーチなどの一般的な手法を用いることができるが、配線を行う際の検索範囲をユニット内に限定しているので、処理時間を短縮することが可能になるとともに、配線が遠回りして他のユニットの配線に影響するのを防いでいる。次にステップ３０７において、そのユニット内の配線配線が全て終了しているか否かの判断が行われる。ここで、全てのユニット内の配線が全て終了していれば（ステップ３０７において「Ｙｅｓ」と判断されれば）、次のステップに進み、そうでなければ（ステップ３０７において「Ｎｏ」と判断されれば）、再びステップ３０６に戻ってユニット内の配線が繰り返し行われる。次に、ステップ３０８において、チップ上の全てのユニットについての配線が終了しているか否かの判断が行われる。ここで、全てのユニットについての配線が終了していれば（ステップ３０８において「Ｙｅｓ」と判断されれば）、この工程（図１のステップ１０１におけるユニット内の配線工程）は終了するが、そうでなければ（ステップ３０８において「Ｎｏ」と判断されれば）、再びステップ３０５に戻って、配線の終了していないユニットを選択し、そのユニットについての配線工程が行われる。
【００２９】
なお、このユニット内の配線工程を行う場合には、ユニット内に配置されてはいるが、適当な配線経路が存在しないために、この工程では配線を見送り、この工程以降で配線を行うことが好ましい素子端子も存在する。このような素子端子については、ステップ３０２において、この工程における配線を行う各ユニット内のネットリストから除外することが好ましい。
【００３０】
（ブロック行内の配線）
図２（ｃ）は、図１のステップ１０２によって各ブロック行内の配線を行った後の状態を示した図である。この図２（ｃ）において、第一のユニット２１１、第三のユニット２１３および第五のユニット２１５から第一のブロック行２１７が形成され、第二のユニット２１２、第四のユニット２１４および第六のユニット２１６から第二のブロック行２１８が形成されている。ステップ１０２においては、各ブロック行内のみの配線が行なわれるため、それぞれのブロック行内が配線検索範囲となり、各ブロック行ごとに、配線経路の検索および実際の配線が行なわれる。したがって、ステップ１０１において適当な配線経路が見つからなかった端子、およびブロック行を構成している各ユニットについての配線経路の検索等が、このステップ１０２で行なわれる。なお、この際、各ブロック行内に存在する端子あるいはユニットに、適当な配線経路が見つからなかった場合には、これらについての配線は行われず、その間の配線は、その後のステップに持越しとなる。
【００３１】
例えば、この図２（ｃ）の第一のブロック行２１７内においては、第一のユニット２１１中の第二の端子２０２と、第五のユニット２１５中の第二の配線２２２とが、第一のユニット２１１と第三のユニット２１３と第五のユニット２１５との間に連続して存在する第三の配線２２３を介して接続される。また、第二のブロック行２１８内においては、ステップ１０１（図２（ｂ）参照）で配線を持ち越されていた、第三の端子２０３、第四の端子２０４および第七の端子２０７についての配線経路の検索が行なわれる。そして、これらの端子についての第二のブロック行２１８内における適当な配線経路の検索の結果、それぞれの端子２０３，２０４，２０７は、第四の配線２２４を介して接続される。なお、本実施形態においては、配線の検索範囲を第二のブロック行２１８内に拡大したことによって、第三の端子２０３、第四の端子２０４および第七の端子２０７についての適当な配線経路を見つけることができた場合について説明したが、仮にこのステップにおいても適当な配線経路を見つけることができなければ、これらの端子についての配線は、次のステップに持ち越される。
【００３２】
なお、ここでは、以上に説明したステップ１０２におけるブロック行内の配線工程についてのフローチャートによる詳細な説明は省略するが、基本的には、図３を用いて説明したステップ１０１におけるユニット内の配線工程と同様である。すなわち、図３において、各ユニットに対して行われている処理を、各ブロック行に対して行われるものと考えれば（ユニットをブロック行に置き換えれば）、ステップ１０２におけるブロック行内の配線工程についてのフローチャートとして、図３を見ることができる。本工程においては、配線を行う際の検索範囲をブロック行内に限定した上で、このようなフローチャートに基づいて、各ブロック行内の配線工程が行われる。
【００３３】
（残りの配線）
図２（ｄ）は、図１のステップ１０３によって残りの配線を行なった状態、すなわち、チップ内の残りの配線を全て行った後の状態を示した図である。先に述べたように、チップ上は、第一のユニット２１１、第三のユニット２１３および第五のユニット２１５で形成された第一のブロック行２１７と、第二のユニット２１２、第四のユニット２１４および第六のユニット２１６で形成された第二のブロック行２１８とに区分けされており、このステップ１０３においては、これらのブロック行を合わせたチップ全体を配線経路の検索の範囲に設定している。したがって、このステップ１０３においては、ステップ１０２までに適当な配線経路が見つからなかった端子についての配線経路の検索および実際の配線、また、各ブロック行同士についての適当な配線経路の検索および実際の配線、さらに、チップのＩ／Ｏパッドと接続するネットの配線等が行われることにより、チップ全体についての配線が完了する。
【００３４】
例えば、この図２（ｄ）のチップ上においては、適当な配線経路の検索の結果、第一のブロック行２１７中の第三の配線２２３と、第二のブロック行２１８中の第三の端子２０３とが、第五の配線２２５を介して接続される。この処理により、本実施形態に係るチップの上の全体の配線が完了する。
【００３５】
本実施形態においては、以上の図１、図２および図３を用いて説明したように、チップ上に配線を行なう場合、チップ上を複数のユニットに区分けして、まず、ユニット内の素子同士の配線を行い、次に、複数のユニットで構成されたブロック行内の素子同士の配線を行い、最後に、チップ全体についての配線を行っている。したがって、ユニット間を接続する配線がユニット内の端子間の配線の障害となることはなく、また、ブロック行間を接続する配線がブロック行内の端子間の配線の障害となることもないので、未配線を減少させることが可能となる。また、本実施形態においては、はじめは配線経路の検索範囲を小さく設定し、その範囲を徐々に階層的に大きくしていくことによって最終的にチップ上に規則的に配設された全ての素子の配線を行っているので、従来の迷路法のように、はじめからチップ全面を対象にした配線手法と比較すると、処理時間を短縮することが可能となる。
【００３６】
なお、例えば、オペアンプ等の回路上の機能ブロックは、チップ上のユニットに対応するように配置される場合が多く、さらに、機能ブロック内はブロック間に比べて素子の結合が強く、多くのネットで結ばれている場合が多い。したがって、本実施形態によれば、ユニット単位で配線を行うことにより、結合度の強い機能ブロック内の素子を優先的に配線することが可能となり、効率よく配線を行うことができる。しかも、ユニット内の配線を行う場合には、経路の探索範囲をユニット内に限定することができるため、配線の遠回りによる冗長配線を防止し、処理時間を短縮できるというメリットもある。
【００３７】
〈第二の実施形態〉
図４は、本発明の第二の実施形態に係る半導体集積回路のレイアウト方法における配線工程のフローチャートを示したものである。本実施形態においては、まず、ステップ４０１において、それぞれの素子を構成する端子の配線を行う前に、チップ上に配置されて使用される全ての素子（端子）の周辺に、その素子（端子）に接続される配線以外の配線の通過等を禁止する領域（以下、「配線禁止領域」という。）が、あらかじめ設定される。次に、ステップ４０２において、配線を行う領域から未配線の端子が選択される。次に、ステップ４０３において、選択された端子についての配線が行われる。次に、ステップ４０４において、配線が終了した端子周辺における配線禁止領域の設定が解除される。ここで、配線が終了した端子については配線禁止領域が解除されるので、これ以降、他の端子の配線を行う場合であっても、この領域（元配線禁止領域）の使用が可能となる。したがって、配線が完了している端子の周辺および素子上は、自由に他の配線が通過できるので、配線禁止領域を追加することにより、素子上を配線が通れなくなったり、未配線が増加するということはない。次に、ステップ４０５において、全ての端子についての配線が終了しているか否かの判断を行う。ここで、全ての端子の配線が終了していれば（ステップ４０５において「Ｙｅｓ」と判断されれば）、配線工程は終了するが、全ての端子の配線が終了していなければ（ステップ４０５において「Ｎｏ」と判断されれば）、再びステップ４０２に戻って、配線工程が繰り返し行なわれる。
【００３８】
以上のように、本実施形態においては、まず第一に素子周辺に対する配線禁止領域の設定が行われ、第二に選択された端子についての配線が行われ、第三にその端子についての配線禁止領域の設定が解除され、そして、全ての端子についての配線が終了するまで第二と第三の工程が繰り返して行われる。すなわち、本実施形態によれば、このように、あらかじめ配線禁止領域を設定することにより、端子から配線を引き出す前に、他の端子に接続されるネットの配線が端子付近を通過することがなくなり、それぞれの端子についての配線領域を確保することが可能となる。したがって、配線不能領域の発生を防止して未配線の数を減少させることができる。
【００３９】
（素子周辺に対する配線禁止領域の設定）
次に、図４のステップ４０１における素子周辺に対する配線禁止領域の設定方法について、図面を用いて詳細に説明する。
【００４０】
図５は、図４のステップ４０１によって、抵抗素子の周辺に配線禁止領域を設定した状態を示した図であり、これは、配線禁止領域の設定箇所の一例を示したものである。図５において、抵抗素子５０１は、抵抗素子の第一端子（以下、「第一端子」ともいう。）５０２と、抵抗素子の第二端子（以下、「第二端子」ともいう。）５０３との２つの端子を有し、この抵抗素子５０１が縦に配置されている場合には、接続されるべきこれらの端子５０２，５０３は、上下に位置することとなる。そこで、この図５においては、それぞれの端子５０２，５０３が接続不能な状態にならないように、上側に位置する第一端子５０２については、その端子周辺の上側に第一端子の配線禁止領域５０４を設け、下側に位置する第二端子５０３については、その端子周辺の下側に第二端子の配線禁止領域５０５を設けている。
【００４１】
第一および第二端子５０２，５０３から配線を引き出すためには、これらの端子５０２，５０３に隣接するグリッドに、配線等の障害がなく、ビアの配置が可能であるということと、そこから縦方向に２層アルミ配線の障害がないか、または端子の横方向に１層アルミ配線の障害がないことが条件となる。ところが、抵抗素子は通常１グリッド間隔で隣接して配置されているため、横方向の配線障害は必ず存在することとなる。
【００４２】
そこで、本実施形態においては、図５に示すように、縦方向について配線障害がなくなるように、配線禁止領域５０４，５０５が設定されている。この配線禁止領域５０４，５０５内においては、他の素子に接続するネット（他ネット）について、１層２層とも配線はおろか通過することもできないものとされ、その素子（ここでは抵抗素子５０１）に接続するネット（同一ネット）の配線であれば、１層２層とも配線することができるものとされている。
【００４３】
また、本実施形態においては、第一端子の配線禁止領域５０４内に第一端子のビア配置候補点５０６が設けられ、第二端子の配線禁止領域５０５内に第二端子のビア配置候補点５０７が設けられている。このように、これらの配線禁止領域５０４，５０５内であっても、隣接する端子（ここでは、第一端子５０２と第二端子５０３のことである。）に接続されるネットのビアであれば、配置することが可能である。ここでは、これらのビア配置候補点５０６，５０７以外の位置には、ビアを配置することができないものとする。また、ビア配置候補点５０６，５０７にビアを配置してもデザインルールを違反することがないようにするために、ビア配置候補点５０６，５０７の上下をビア配置禁止点（第一端子のビア配置禁止点５０８，第二端子のビア配置禁止点５０９）とする。これらのビア配置禁止点５０８，５０９は、ビアを配置することができない箇所ではあるが、他ネットであっても、１層または２層の配線が通過することは許される点である。
【００４４】
本実施形態によれば、以上のように、抵抗素子５０１を構成する各端子５０２，５０３の周囲に、適切な配線禁止領域５０４，５０５、ビア配置候補点５０６，５０７およびビア配置禁止点５０８，５０９が設けられているので、配線を引き出すための領域があらかじめ確保される。したがって、配線不能領域の発生を防止することが可能となり、未配線の数を減少させることができる。
【００４５】
図６は、図４のステップ４０１によって、トランジスタ素子の周辺に配線禁止領域を設定した状態を示した図であり、これは図５と同様に、配線禁止領域の設定箇所の一例を示したものである。トランジスタ素子６０１には、通常、３つの端子が設けられており、ここでは、トランジスタ素子の第一端子（以下、単に「第一端子」ともいう。）６０２、トランジスタ素子の第二端子（以下、単に「第二端子」ともいう。）６０３およびトランジスタ素子の第三端子（以下、単に「第三端子」ともいう。）６０４が設けられている。
【００４６】
このトランジスタ素子６０１が、図６に示されるように縦に配置されている場合には、上下の端子（第一端子６０２、第三端子６０４）については、図５で説明した抵抗素子の場合と同様に、それぞれの端子６０２，６０４の上下の領域を配線禁止領域とし、中央の第二端子６０３については、この端子６０３の左右どちらかの領域を配線禁止領域とする。左右どちらの領域を配線禁止領域に設定するかは、トランジスタ素子６０１の左右どちらの領域に配線障害が少ないかによって決定する。両方が同一条件の場合には、他の素子との関係等を考慮して、どちらか一方を選択する。
【００４７】
トランジスタ素子も、抵抗素子と同様に、通常、１〜２グリッド間隔で隣接して配置されているため、中央の端子（ここでは第二端子６０３）から出た配線を確実に引き出すためには、第二端子６０３からの配線が、トランジスタ素子６０１の上側または下側に確実に配線できるように、配線するための領域を確保しておかなければならない。これは、端子の数が４つ以上ある場合についても同様であり、最も上にある端子、または最も下にある端子以外は、左右どちらかの領域に配線禁止領域を設定しなければならない。
【００４８】
本実施形態においては、上述したように、トランジスタ素子６０１には、第一〜第三端子６０２，６０３，６０４が設けられており、上側の第一端子６０２と下側の第三端子６０４とについては、図５の抵抗素子の場合と同様に、上下に配線を引き出すことが可能なように、配線禁止領域を設定すればよい。また、中央の第二端子６０３については、トランジスタ素子６０１の左右どちらかの領域に配線禁止領域を設定すればよく、ここでは、トランジスタ端子６０１の右側に、第二端子６０３からの配線が可能なように、配線禁止領域が設定されている。このようにして、本実施形態においては、図６に示すように、配線禁止領域６０５が設定されている。
また、それぞれの端子６０２，６０３，６０４について、上側、右側および下側に配線を行なうために、配線禁止領域６０５内においては、第一端子６０２の上側に第一端子のビア配置候補点６０６が設けられ、第二端子６０３の右側に第二端子のビア配置候補点６０７が設けられ、第三端子６０４の下側に第三端子のビア配置候補点６０８が設けられている。そして、第一端子のビア配置候補点６０６の上側に第一端子のビア配置禁止点６０９が設けられ、第三端子のビア配置候補点６０８の下側に第三端子のビア配置禁止点６１０が設けられている。なお、中央の第二端子６０３においては、図６に示すように第二端子のビア配置候補点６０７が設定されていたとしても、第二端子のビア配置候補点６０７の上下に２層アルミの配線障害があると、配線が上下のどちらにも出られなくなってしまう。したがって、配線禁止領域６０５を設定する場合には、この点にも留意しなければならない。本実施形態は、この点にも留意して、第二端子のビア配置候補点６０７の上下に配線可能な領域を確保するように、配線禁止領域６０５が設定されている。
【００４９】
本実施形態によれば、以上のように、トランジスタ素子６０１を構成する各端子６０２，６０３，６０４の周囲に適切な配線禁止領域６０５、ビア配置候補点６０６〜６０８およびビア配置禁止点６０９，６１０が設けられているので、配線を引き出すための領域があらかじめ確保され、他の素子の接続を行なうための配線は、トランジスタ素子６０１の端子付近を通過することがなくなる。したがって、配線不能領域の発生を防止することが可能となり、未配線の数を減少させることができる。
【００５０】
図７〜図９は、本発明に係る実施形態に基づいて、各素子の端子付近に配線禁止領域を設定した場合の効果を説明するための図である。図７および図８は、トランジスタ素子の端子付近に配線禁止領域を設定した場合の効果を説明するための図であり、図９は、抵抗素子の端子付近に配線禁止領域を設定した場合の効果を説明するための図である。以下、各図面に基づいて説明する。
【００５１】
図７は、トランジスタ素子の端子付近に配線禁止領域を設定した場合の効果を説明するための図である。図７（ａ）は、トランジスタ素子の端子付近に配線禁止領域を設定せずに配線を行なった場合の一例を示したものである。この図７（ａ）の例では、配線禁止領域を設定していないために、第一のトランジスタ７０１と第三のトランジスタ７０３に接続するネットが、図のような経路に配線されてしまう可能性がある。このような配線が行なわれると、第二のトランジスタ７０２の中央の端子には、配線ができなくなってしまう。一方、図７（ｂ）は、本発明に係る実施形態に基づいて、トランジスタ素子の端子付近に配線禁止領域を設定した場合の一例を示したものである。本実施形態によれば、この図７（ｂ）に示すように、端子の配線経路を確保するように配線禁止領域７０４が設定されるので、第二のトランジスタ７０２の端子付近に配線が通過することはなくなり、配線を確実に行うことができる。
【００５２】
図８は、トランジスタ素子の端子付近に配線禁止領域を設定した場合の効果を説明するための他の例の図である。図８（ａ）は、トランジスタ素子の端子付近に配線禁止領域を設定せずに配線を行なった場合の一例を示したものである。この図８（ａ）の例では、配線禁止領域を設定しておらず、また、ビアが適切な位置に設けられていない。具体的には、配線禁止領域が設定されていないので、中央に位置するトランジスタ素子の上部端子、下部端子に接続される第一のビア８０１、第二のビア８０２が、図８（ａ）に示すように、それぞれの端子の右側に設けられる可能性がある。第一のビア８０１および第二のビア８０２が、このような位置に設けられると、結果としてトランジスタ素子の中央部の端子の配線ができなくなってしまう。一方、図８（ｂ）は、本発明に係る実施形態に基づいて、トランジスタ素子の端子付近に配線禁止領域を設定し、さらに適切な位置にビア配置候補点を設けた場合の一例を示したものである。本実施形態によれば、この図８（ｂ）に示すように、配線禁止領域８０５が設定され、同一ネットのビアもビア配置候補点にしか配置できないために、トランジスタ素子の上部端子についての第一のビア８０３は、図に示すように上部端子の上側に設けられ、下部端子についての第二のビア８０４は、図に示すように下部端子の下側に設けられることとなる。このような位置にそれぞれのビア８０３，８０４が設けられれば、中央部の端子の配線領域が確保され、上下端子の配線が通過することはなくなるので、中央部の端子の配線を確実に行なうことができる。
【００５３】
図９は、抵抗素子の端子付近に配線禁止領域を設定した場合の効果を説明するための図である。図９（ａ）は、抵抗素子の端子付近に配線禁止領域を設定せずに配線を行なった場合の一例を示したものである。この図９（ａ）の例では、配線禁止領域が設定されておらず、また、ビアも適切な位置に設けられていない。具体的には、配線禁止領域が設定されていないので、第一の抵抗素子９０１の上部端子に接続されるビア９０４が、図に示すように第二の抵抗素子９０２の上部端子近傍に配置され、この第一の抵抗素子９０１とビア９０４とが、配線９０５で接続される可能性がある。また、第三の抵抗素子９０３の上部端子を接続するためのネットが、配線９０６のように引き出される可能性もある。このようなビアの配置および配線が行なわれると、結果として第二の抵抗素子９０２の上部端子については、配線ができなくなってしまう。一方、図９（ｂ）は、本発明に係る実施形態に基づいて、第二の抵抗素子９０２の上部端子付近に配線禁止領域を設定した場合の一例を示したものである。本実施形態によれば、この図９（ｂ）に示すように、第二の抵抗素子９０２の上部端子についての配線領域を確保するように配線禁止領域９０８が設定されているので、第二の抵抗素子９０２の上部端子付近を他のネットの配線が通過することはなくなり、また、第一の抵抗素子９０１に接続されるビア９０７も図に示すように配置される。したがって、第二の抵抗素子９０２の上部端子についての配線領域が確保され、配線を確実に行なうことができる。
【００５４】
（配線禁止領域の解除）
以上の図４〜図９を用いて説明した配線禁止領域については、配線禁止領域が設定されているその素子端子に関する全ての配線が終了すると、終了と同時に、その設定が解除される（図４参照）。したがって、配線が完了している素子端子の周辺および素子上は、自由に他の配線が通過できることとなるので、配線禁止領域を追加することにより、素子上を配線が通れなくなったり、未配線が増加するということはない。
【００５５】
〈第三の実施形態〉
図１０は、本発明の第三の実施形態に係る半導体集積回路のレイアウト方法における配線工程のフローチャートを示したものである。本実施形態は、先に説明した第一の実施形態と第二の実施形態とを組み合わせた半導体集積回路のレイアウト方法である。以下、具体的に説明する。
【００５６】
まず、ステップ１００１において、チップ上に配置されて使用される全ての素子端子の周辺に対して、配線禁止領域が設定される。
次に、ステップ１００２において、チップを構成している各ユニット内の配線が行われる。ここでは、各ユニットについて、各ユニット内を配線検索領域として、ユニット内に含まれる素子同士を接続するネットの配線が行われる。そして、ユニット内のそれぞれの端子の周辺に設定されている各配線禁止領域については、その端子に関する配線が全て終了したものに限り、配線終了と同時に、その設定が解除される。
【００５７】
図１１は、このステップ１００２における配線工程のフローチャートを示したものである。この図１１は、基本的には第二の実施形態における図３と同様であり、図３のステップ３０１〜３０８と、図１１のステップ１１０１〜１１０８とは、同様の工程である。しかし、本実施形態においては、図１１中にステップ１１０９を有する点で、第二の実施形態と異なり、ステップ１１０９では、上述したように、配線禁止領域の解除が行われる。こうすることにより、配線が完了している素子端子の周辺および素子上は、自由に他の配線のために利用され、通過が可能となる。したがって、配線禁止領域を追加することによる不具合（配線禁止領域のために配線がままならない等）は緩和され、配線禁止領域を追加することによって、素子上を配線が通れなくなったり、未配線が増加するということはない。この点は、次のブロック行内の配線工程を行う場合についても同様である。
【００５８】
次に、ステップ１００３において、複数のユニットで構成されている、チップ上の同一ブロック行内の配線が行われる。ここでは、各ブロック行内を配線検索領域として、各ブロック行内において、ブロック行内に設けられている素子端子同士、あるいはユニット同士を接続するためのネットの配線が行われる。そして、この工程においても、ステップ１００２の場合と同様に、ブロック行内のそれぞれの端子の周辺に設定されている各配線禁止領域については、その端子に関する配線が全て終了したものに限り、配線終了と同時に、その設定が解除される。この工程におけるフローチャートは、図１１において、「ユニット」を「ブロック行」と置き換えたものである。
【００５９】
次に、ステップ１００４において、チップ上においてまだ接続されていない、いわゆる残りの配線が行われる。すなわち、このこのステップ１００４においては、ステップ１００３までに適当な配線経路が見つからなかった端子についての配線経路の検索および実際の配線、また、各ブロック行同士についての適当な配線経路の検索および実際の配線、さらに、チップのＩ／Ｏパッドと接続するネットの配線等が行われることにより、チップ全体についての配線が完了する。
【００６０】
以上説明したように、本実施形態は、第一の実施形態で説明した「階層的な配線方法」と、第二の実施形態で説明した「配線禁止領域を用いた配線方法」とを組み合わせたものであるので、これらの各実施形態の効果をあわせ持った半導体集積回路のレイアウト方法を得ることができる。
【００６１】
すなわち、本実施形態によれば、ユニット内配線のときは、素子端子のほとんどに対して配線禁止領域が設定されているため、ユニット内の混雑した部分を配線する場合にも、配線が特定の端子付近に集中することがなく、未配線を生じることがない。また、ユニット内配線が終わると、素子端子の大部分の配線が終了し、配線禁止領域が解除されることとなるため、ユニット間の配線（ブロック行内の配線）を行う際にも、素子端子の配線禁止領域が配線の障害になる場合は少ない。そして、さらに、その後、チップ全体についての配線を行なう場合においても、同様の手法を用いることにより、未配線の少ない適切な配線を行なうことができる。
【００６２】
なお、以上の各実施形態において、ユニット間あるいはブロック行間をまたがるような長い配線については、素子の配置領域を避けて、なるべく配線用チャネル領域等の配線領域を通過するように配線することが好ましい。こうすれば、効率のよい配線を行うことができるからである。
【００６３】
【発明の効果】
以上説明したように、本発明によれば、マスタースライス方式のように配線領域が固定化された半導体集積回路上に配線を行う場合において、ユニット内の配線を先に行い、素子周辺にあらかじめ配線禁止領域を設定することによって、素子の混雑した部分における配線の集中を緩和し、端子から配線を引き出す領域を確保することができる。また、配線を行う経路の検索範囲を限定することによって、経路検索の処理時間（計算時間）を短縮することもできる。したがって、本発明によれば、配線不能領域の発生を防止して未配線の数を減少させることが可能であり、同時に、経路検索の処理時間（計算時間）の短縮を可能とする、半導体集積回路のレイアウト方法を得ることができる。
【図面の簡単な説明】
【図１】本発明の第一の実施形態に係る半導体集積回路のレイアウト方法における配線工程のフローチャート
【図２】図１のフローチャートに従って配線を行った場合の一例を示した図
【図３】図１のステップ１０１によって行われる配線工程のフローチャート
【図４】本発明の第二の実施形態に係る半導体集積回路のレイアウト方法における配線工程のフローチャート
【図５】図４のステップ４０１によって抵抗素子の周辺に配線禁止領域を設定した状態を示した図
【図６】図４のステップ４０１によってトランジスタ素子の周辺に配線禁止領域を設定した状態を示した図
【図７】トランジスタ素子の端子付近に配線禁止領域を設定した場合の効果を説明するための図
【図８】トランジスタ素子の端子付近に配線禁止領域を設定した場合の効果を説明するための図
【図９】抵抗素子の端子付近に配線禁止領域を設定した場合の効果を説明するための図
【図１０】本発明の第三の実施形態に係る半導体集積回路のレイアウト方法における配線工程のフローチャート
【図１１】図１０のステップ１００２によって行われる配線工程のフローチャート
【図１２】アナログマスタースライス方式における半導体集積回路の構造図
【図１３】図１２に示された半導体集積回路を構成しているユニットの構造図
【図１４】従来技術に係る半導体集積回路のレイアウト方法における配線工程のフローチャート
【符号の説明】
２０１    第一の端子
２０２    第二の端子
２０３    第三の端子
２０４    第四の端子
２０５    第五の端子
２０６    第六の端子
２０７    第七の端子
２１１    第一のユニット
２１２    第二のユニット
２１３    第三のユニット
２１４    第四のユニット
２１５    第五のユニット
２１６    第六のユニット
２１７    第一のブロック行
２１８    第二のブロック行
２２１    第一の配線
２２２    第二の配線
２２３    第三の配線
２２４    第四の配線
２２５    第五の配線
５０１    抵抗素子
５０２    抵抗素子の第一端子
５０３    抵抗素子の第二端子
５０４    第一端子の配線禁止領域
５０５    第二端子の配線禁止領域
５０６    第一端子のビア配置候補点
５０７    第二端子のビア配置候補点
５０８    第一端子のビア配置禁止点
５０９    第二端子のビア配置禁止点
６０１    トランジスタ素子
６０２    トランジスタ素子の第一端子
６０３    トランジスタ素子の第二端子
６０４    トランジスタ素子の第三端子
６０５    配線禁止領域
６０６    第一端子のビア配置候補点
６０７    第二端子のビア配置候補点
６０８    第三端子のビア配置候補点
６０９    第一端子のビア配置禁止点
６１０    第三端子のビア配置禁止点
７０１    第一のトランジスタ素子
７０２    第二のトランジスタ素子
７０３    第三のトランジスタ素子
７０４    配線禁止領域
８０１    第一のビア
８０２    第二のビア
８０３    配線禁止領域がある場合の第一のビア
８０４    配線禁止領域がある場合の第二のビア
８０５    配線禁止領域
９０１    第一の抵抗素子
９０２    第二の抵抗素子
９０３    第三の抵抗素子
９０４    第一の抵抗素子に接続するビア
９０５    第一の抵抗素子に接続する配線
９０６    第三の抵抗素子に接続する配線
９０７    配線禁止領域がある場合の第一のビア
９０８    配線禁止領域
１２０１    Ｉ／Ｏパッド
１２０２    ユニット
１２０３    ブロック行
１３０１    抵抗素子
１３０２    トランジスタ素子
１３０３    配線用チャネル領域
【図１】
0003578615.tif 000002
【図２】
0003578615.tif 000003
【図３】
0003578615.tif 000004
【図４】
0003578615.tif 000005
【図５】
0003578615.tif 000006
【図６】
0003578615.tif 000007
【図７】
0003578615.tif 000008
【図８】
0003578615.tif 000009
【図９】
0003578615.tif 000010
【図１０】
0003578615.tif 000011
【図１１】
0003578615.tif 000012
【図１２】
0003578615.tif 000013
【図１３】
0003578615.tif 000014
【図１４】
0003578615.tif 000015