(57)【要約】【課題】設計時間を短縮する。【解決手段】半導体集積回路の設計方法は、複数のセルを有する第１のブロック内の配線を生成する工程と、第１のブロックに含まれるセルＣ１及びＣ２を接続するパス上に配線混雑領域が存在する場合に、第１のブロックに隣接する第２のブロックの配線混雑情報を取得する工程と、配線混雑情報に基づいて、第２のブロックを経由するようにしてセルＣ１及びＣ２を接続する配線を生成する工程とを含む。【選択図】図２
2013182472.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルを有する第１のブロック内の配線を生成する工程と、
前記第１のブロックに含まれる第１及び第２のセルを接続するパス上に配線混雑領域が存在する場合に、前記第１のブロックに隣接する第２のブロックの配線混雑情報を取得する工程と、
前記配線混雑情報に基づいて、前記第２のブロックを経由するようにして前記第１及び第２のセルを接続する配線を生成する工程と、
を具備することを特徴とする半導体集積回路の設計方法。
【請求項２】
第１のブロック内に複数のセルを配置する工程と、
前記複数のセルを接続する配線を生成する工程と、
前記第１のブロックに含まれる第１及び第２のセルを接続するパス上に配線混雑領域が存在する場合に、前記第１のブロックに隣接する第２のブロックの配線混雑情報を取得する工程と、
前記配線混雑情報に基づいて、前記第１及び第１のセルを接続する配線が短くなるように、前記第１及び第２のセルを再配置する工程と、
前記第２のブロックを経由するようにして前記第１及び第２のセルを接続する配線を生成する工程と、
を具備することを特徴とする半導体集積回路の設計方法。
【請求項３】
前記配線混雑情報は、前記第２のブロックを分割する複数の領域ごとに生成されることを特徴とする請求項１又は２に記載の半導体集積回路の設計方法。
【請求項４】
前記第１及び第２のセルを接続する配線は、前記複数の領域のうち配線リソースに余裕がある領域を経由するように生成されることを特徴とする請求項３に記載の半導体集積回路の設計方法。
【請求項５】
前記第１及び第２のセルを接続するパス上かつ前記第１及び第２のブロックの境界にポートを生成する工程をさらに具備することを特徴とする請求項１乃至４のいずれかに記載の半導体集積回路の設計方法。
【請求項６】
前記第１及び第２のセルを接続する配線を生成する工程は、仮想配線を生成する工程と、前記仮想配線に基づいて実配線を生成する工程とを含むことを特徴とする請求項１乃至５のいずれかに記載の半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路の設計方法に関する。
【背景技術】
【０００２】
近年の設計プロセスの微細化に伴い、大規模な半導体集積回路の開発が盛んになっている。特に、データ規模の増加に伴って各設計の処理時間も増大しており、局所的な配線混雑によるフロアプラン変更等の設計後戻りを如何に抑えるかが、設計時間短縮を実現させるために重要になっている。
【０００３】
従来の自動配置配線手法を用いた半導体集積回路の設計では、設計単位が隣接する複数の独立したブロックで構成されている場合、与えられたネットリスト通りに各々のブロック内で信号配線を行い、設計を完了させている。そのため、ある一つのブロック内の配線混雑度が高く、ＤＲＣ（Design Rule Check）違反無く信号配線を生成することが困難な場合、たとえ隣接するブロック内の配線リソースに余裕がある場合においても、その配線リソースを利用できないため、配線設計を完了することができない。
【０００４】
特に、設計後期での設計変更指示（ＥＣＯ：Engineering Change Order）により、配線混雑領域で配線数が大幅に増加した場合には、ブロックの大きさを変更する等のフロアプラン変更は設計期間へのインパクトが大きいため難しい。従って、配線リソースを新たに確保する手段が無くなるため、ＤＲＣ違反無く配線設計を完了することはさらに困難となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１３２５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態は、設計時間を短縮することが可能な半導体集積回路の設計方法を提供する。
【課題を解決するための手段】
【０００７】
実施形態に係る半導体集積回路の設計方法は、複数のセルを有する第１のブロック内の配線を生成する工程と、前記第１のブロックに含まれる第１及び第２のセルを接続するパス上に配線混雑領域が存在する場合に、前記第１のブロックに隣接する第２のブロックの配線混雑情報を取得する工程と、前記配線混雑情報に基づいて、前記第２のブロックを経由するようにして前記第１及び第２のセルを接続する配線を生成する工程とを具備する。
【図面の簡単な説明】
【０００８】
【図１】設計装置１０のブロック図。
【図２】第１の実施形態に係る半導体集積回路の設計方法を示すフローチャート。
【図３】半導体集積回路の設計方法の一工程を説明する図。
【図４】仮想配線工程を説明する図。
【図５】隣接ブロックＢの配線混雑情報を説明する図。
【図６】仮想配線工程を説明する図。
【図７】ポート生成工程を説明する図。
【図８】設計対象ブロック内の実配線工程を説明する図。
【図９】隣接ブロック内の実配線工程を説明する図。
【図１０】第２の実施形態に係る半導体集積回路の設計方法を示すフローチャート。
【図１１】隣接ブロックＢの配線混雑情報を説明する図。
【図１２】セルの再配置工程を説明する図。
【図１３】ポート生成工程を説明する図。
【発明を実施するための形態】
【０００９】
以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らない。特に、以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１０】
［第１の実施形態］
図１は、半導体集積回路の設計を行う設計装置１０のブロック図である。設計装置１０は、入力部１１、表示部１２、出力部１３、入出力制御部１４、ＲＡＭ１５、ＲＯＭ１６、及び制御部１７を備えている。
【００１１】
入力部１１は、ユーザがデータを入力するために使用され、例えばキーボードにより構成される。表示部１２は、制御部１７による処理結果をユーザに伝えるために使用され、例えばディスプレイにより構成される。出力部１３は、制御部１７による処理結果をデータとして出力、或いは制御部１７による処理結果を紙媒体として出力するものであり、例えばプリンタにより構成される。入出力制御部１４は、入力部１１、表示部１２及び出力部１３と、制御部１７との間のインターフェース処理を実行する。
【００１２】
ＲＯＭ１６は、本実施形態のレイアウト設計及び配線設計を実現するためのプログラムが格納された記憶媒体であり、制御部１７がＲＯＭ１６に格納されたプログラムに基づいて演算処理を実行することで、所望のレイアウト設計及び配線設計を行うことができる。ＲＯＭ１６に格納されるプログラムは、レイアウト設計及び配線設計用の制御プログラムとしての自動配置配線プログラムが含まれる。ＲＡＭ１５は、レイアウト設計及び配線設計時に生成されたデータを一時的に格納したり、ユーザが入力したデータを一時的に格納したりする。
【００１３】
制御部１７は、例えば中央演算処理装置（ＣＰＵ：central processing unit）から構成される。制御部１７は、レイアウト部１７Ａ、配線部１７Ｂ、設計エラー判定部１７Ｃ、及びポート生成部１７Ｄを備えている。レイアウト部１７Ａは、ブロック及びセルのレイアウトを設計する。配線部１７Ｂは、信号線用の仮想配線及び実配線を生成する。設計エラー判定部１７Ｃは、予め決められた設計ルールを用いて、設計エラーの有無をチェックする。ポート生成部１７Ｄは、隣接ブロック間をまたぐ配線上にポートを生成する。
【００１４】
次に、半導体集積回路の設計方法について図面を参照しながら説明する。図２は、第１の実施形態に係る半導体集積回路の設計方法を示すフローチャートである。
【００１５】
なお、半導体集積回路は、複数のブロックから構成され、各ブロックは、例えば半導体集積回路における１つの機能を実現する機能ブロックから構成される。また、各ブロックは、複数のセル（スタンダードセル）を備えており、各セルは、ブロックより小さな回路要素（論理回路など）から構成される。
【００１６】
本実施形態では、設計単位は一つのブロックであり、設計を行うブロックを設計対象ブロックと呼ぶ。以下の説明では、設計対象ブロックに隣接する隣接ブロックは、ある程度の設計が終了しており、また、基板領域内における設計対象ブロックの配置も既に決まっているものとする。まず、レイアウト部１７Ａは、設計対象ブロックの全てのセルを配置する（ステップＳ１００）。続いて、配線部１７Ｂは、設計対象ブロックの全ての信号線を配線する（ステップＳ１０１）。
【００１７】
続いて、設計エラー判定部１７Ｃは、予め決められた設計ルールを用いて、エラーチェック、すなわちＤＲＣ（Design Rule Check）を実行する（ステップＳ１０２）。ステップＳ１０２で用いられる設計ルールは、半導体集積回路を最適に設計する上でユーザが任意に設定することができる。設計ルールの一例としては、信号線間のスペースが所定値以上あるか、及び信号線が交差（ショート）しているか否かなどが含まれる。
【００１８】
続いて、設計エラー判定部１７Ｃは、ステップＳ１０２におけるＤＲＣの結果、重大なＤＲＣ（critical ＤＲＣ）エラーが存在するか否かを判定する（ステップＳ１０３）。critical ＤＲＣエラーとは、ユーザが画面上で手修正できないエラーをいう。critical ＤＲＣエラーの一例としては、信号線がショートしている場合、又は局所的に多くの信号線が近接しているため信号線がずらせない場合などが含まれる。ステップＳ１０２におけるＤＲＣの結果、ＤＲＣエラーは発生したが、このＤＲＣエラーがcritical ＤＲＣエラーでない場合、ユーザは、画面上でエラー箇所を手修正する。ステップＳ１０３においてcritical ＤＲＣエラーが存在しない場合、設計対象ブロックの設計が終了する。
【００１９】
図３は、半導体集積回路の設計方法の一工程を説明する図である。図３は、半導体集積回路に含まれる設計対象ブロックＢと、設計対象ブロックＢに隣接する隣接ブロックＡを抽出して示している。設計対象ブロックＢは、現在設計を行っているブロックであり、図３の段階では、設計対象ブロックＢは、これに含まれる複数のセルの配置がある程度決まっている。隣接ブロックＡは、ある程度の配線設計が終了している。
【００２０】
図３において、設計対象ブロックＢは、局所的に配線混雑領域（High congestion region）２０が存在している。このため、設計対象ブロックＢ内の配線リソースではセルＣ１（始点）とセルＣ２（終点）とを配線することができずに、critical ＤＲＣエラーが存在している。ステップＳ１０３においてcritical ＤＲＣエラーが存在する場合、制御部１７は、設計対象ブロックに隣接する複数の隣接ブロックの配線混雑情報を取得（retrieve）する（ステップＳ１０４）。図３の例では、隣接ブロックＡの配線混雑情報が取得される。本実施形態では、例えば、隣接ブロックＡの配線混雑情報のうち設計対象ブロックＢとの境界領域における配線混雑情報を取得する。
【００２１】
続いて、配線部１７Ｂは、隣接ブロックの配線混雑情報に基づいて、critical ＤＲＣエラーの元となった第１のセル（始点）と第２のセル（終点）とを接続するための仮想配線（概略配線ともいう）を生成する（ステップＳ１０５）。この時、仮想配線は、隣接ブロックを経由するように生成され、さらに隣接ブロックのうち配線混雑率が低い領域を通るように生成される。図４は、仮想配線工程を説明する図である。図中の破線が仮想配線を表している。設計対象ブロックＢ内のセルＣ１とセルＣ２とは、隣接ブロックＡ内のうち配線混雑率が低い領域を通るように仮想配線される。
【００２２】
ステップＳ１０４及びステップＳ１０５の設計工程を図５及び図６を用いてより詳細に説明する。図５は、隣接ブロックＢの配線混雑情報を説明する図である。隣接ブロックＡのうち設計対象ブロックＢとの境界領域には、複数の領域２１（本例では、領域２１−１〜２１−７）ごとに配線混雑情報が示されている。１つの配線混雑情報を表示する領域２１のサイズは任意に設定可能である。図面の“Ｈ”は水平方向の配線混雑率であり、“Ｖ”は垂直方向の配線混雑率である。水平方向配線混雑率が１００％とは、当該領域２１にはさらに配線を行うための水平方向の配線リソースが存在しないことを意味し、水平方向配線混雑率が０％とは、当該領域２１には水平方向の配線リソースが全て残っていることを意味する。すなわち、水平方向配線混雑率が高くなるほど、水平方向に追加できる配線数が少なくなる。垂直方向についても同様である。図５において、一列の領域２１にパスが生成できない場合には、２列目またはそれ以上の配線混雑情報を考慮して仮想配線用のパスを検索する。
【００２３】
図６に示すように、水平方向の配線混雑率が比較的低い領域２１−２の配線リソースと、垂直方向の配線リソースが残っている領域２１−３〜２１−５の配線リソースと、水平方向の配線混雑率が比較的低い領域２１−６の配線リソースとを使用することで、設計対象ブロックＢ内のセルＣ１から、隣接ブロックＡを経由して、再度設計対象ブロックＢ内のセルＣ２までを接続する仮想配線が生成される。
【００２４】
隣接ブロックの配線リソースを用いても設計対象ブロックの仮想配線が生成できなかった場合（ステップＳ１０６）、設計フローが終了となる。この場合は、設計対象ブロックの設計を再度やり直すことになる。
【００２５】
続いて、配線部１７Ｂは、ステップＳ１０３でcritical ＤＲＣエラーとなった信号線を削除する（ステップＳ１０７）。
【００２６】
続いて、ポート生成部１７Ｄは、仮想配線のパスのうち設計対象ブロックと隣接ブロックとの境界にポートを生成する（ステップＳ１０８）。ポートとは、２つの隣接ブロックを信号線で接続する際の接続部である。図７は、ポート生成工程を説明する図である。仮想配線上かつ設計対象ブロックＢと隣接ブロックＡとの境界には、ポートＰ１及びＰ２が生成される。
【００２７】
続いて、配線部１７Ｂは、設計対象ブロック内の実配線を生成する（ステップＳ１０９）。すなわち、配線部１７Ｂは、設計対象ブロックにおいて、始点と第１のポートとを接続する実配線を生成し、また終点と第２のポートとを接続する実配線を生成する。図８は、設計対象ブロック内の実配線工程を説明する図である。図中の実線が実配線を表している。設計対象ブロックＢにおいて、セルＣ１（始点）とポートＰ１とは実配線で接続され、セルＣ２（終点）とポートＰ２とは実配線で接続される。
【００２８】
続いて、配線部１７Ｂは、仮想配線が通る隣接ブロック内の実配線を生成する（ステップＳ１１０）。すなわち、配線部１７Ｂは、ステップＳ１０５で生成した仮想配線に基づいて、隣接ブロックにおいて、２つのポート間を接続する実配線を生成する。図９は、隣接ブロック内の実配線工程を説明する図である。隣接ブロックＡにおいて、ポートＰ１及びＰ２間が実配線で接続される。
【００２９】
以上の設計方法により、設計対象ブロック内の第１のセル（始点）と第２のセル（終点）とが隣接ブロック内の配線リソースを利用して実配線にて接続される。
【００３０】
（効果）
以上詳述したように第１の実施形態では、半導体集積回路の設計方法において、設計単位のある一つのブロック（設計対象ブロック）において配線混雑率が高く、ＤＲＣ違反無く配線（信号線）を生成することが難しい場合、設計対象ブロック隣接する隣接ブロック内の配線リソースに余裕があるかどうかを確認する。そして、余裕がある場合には、設計対象ブロックと隣接ブロックとの間に新たにポートを生成し、そのポートを通して隣接ブロック内の配線リソースを利用することで、設計対象ブロック内の第１のセル（始点）と第２のセル（終点）とを接続する配線を生成するようにしている。
【００３１】
従って第１の実施形態によれば、設計対象ブロックの配線設計中にＤＲＣエラーが発生した場合でも、再度設計対象ブロックの設計をやり直すことなく、ＤＲＣエラーの原因である第１のセルと第２のセルとを接続する信号線の設計を完了することができる。これにより、設計後戻りをする必要がないため、半導体集積回路の設計時間を短縮することができる。
【００３２】
また、ＤＲＣエラーが発生した場合でも、ブロックの大きさを変更する等のフロアプラン変更を行う必要もない。さらに、設計後期でフロアプラン変更等が生じた場合でも、設計後戻りをすることなく柔軟に対応できる。
【００３３】
［第２の実施形態］
第２の実施形態は、設計対象ブロックのＤＲＣエラーの原因である第１のセルと第２のセルとを接続する配線を生成する場合に、隣接ブロックの配線リソースを利用しつつ、配線をより短くするようにしている。
【００３４】
図１０は、第２の実施形態に係る半導体集積回路の設計方法を示すフローチャートである。設計装置１０のブロック図は、第１の実施形態で説明した図１と同じである。
【００３５】
図１０において、ステップＳ２００〜Ｓ２０４の工程は、第１の実施形態のステップＳ２００〜Ｓ２０４の工程と同じである。ここまでの工程で、図１１に示すように、critical ＤＲＣエラーの原因であるセルＣ１（始点）とセルＣ２（終点）とが設計対象ブロックＢに配置され、また、隣接ブロックＡの配線混雑情報が取得されているものとする。
【００３６】
続いて、レイアウト部１７Ａは、隣接ブロックの配線混雑情報に基づいて、セルを再配置する（ステップＳ２０５）。図１２は、セルの再配置工程を説明する図である。図１２に示すように、レイアウト部１７Ａは、水平方向の配線混雑率が比較的低い領域２１−２を選択し、この領域２１−２に隣接するようにセルＣ１を再配置する。また、レイアウト部１７Ａは、水平方向の配線混雑率が比較的低い領域２１−６を選択し、この領域２１−６に隣接するようにセルＣ２を再配置する。
【００３７】
続いて、配線部１７Ｂは、隣接ブロックの配線混雑情報に基づいて、critical ＤＲＣエラーの原因である第１のセル（始点）と第２のセル（終点）とを接続するための仮想配線を生成する（ステップＳ２０６）。具体的には、図１２に示すように、設計対象ブロックＢ内のセルＣ１（始点）から、隣接ブロックＡ内の領域２１−２〜２１−６を経由して、再度設計対象ブロックＢ内のセルＣ２（終点）までを接続する仮想配線が生成される。
【００３８】
続いて、ステップＳ２０７及びＳ２０８（第１の実施形態のステップＳ１０６及びＳ１０７と同じ）を経た後、ポート生成部１７Ｄは、仮想配線のパスのうち設計対象ブロックと隣接ブロックとの境界にポートを生成する（ステップＳ２０９）。図１３は、ポート生成工程を説明する図である。仮想配線上かつ設計対象ブロックＢと隣接ブロックＡとの境界には、ポートＰ１及びＰ２が生成される。
【００３９】
その後の設計工程（ステップＳ２１０及びＳ２１１）は、第１の実施形態（ステップＳ１０９及びＳ１１０）と同じである。以上の設計方法により、設計対象ブロック内の第１のセル（始点）と第２のセル（終点）とが隣接ブロック内の配線リソースを利用して実配線にて接続される。
【００４０】
（効果）
以上詳述したように第２の実施形態によれば、設計対象ブロックの配線設計中にＤＲＣエラーが発生した場合でも、再度設計対象ブロックの設計をやり直すことなく、ＤＲＣエラーの原因である第１のセルと第２のセルとを接続する信号線の設計を完了することができる。さらに、配線設計途中で第１のセルと第２のセルとを再配置するようにしているので、第１のセルと第２のセルとを接続する配線をより短くすることができる。その他の効果は、第１の実施形態と同じである。
【００４１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４２】
１０…設計装置、１１…入力部、１２…表示部、１３…出力部、１４…入出力制御部、１５…ＲＡＭ、１６…ＲＯＭ、１７…制御部、２０…配線混雑領域。
【図１】
2013182472.tif 000003
【図２】
2013182472.tif 000004
【図３】
2013182472.tif 000005
【図４】
2013182472.tif 000006
【図５】
2013182472.tif 000007
【図６】
2013182472.tif 000008
【図７】
2013182472.tif 000009
【図８】
2013182472.tif 000010
【図９】
2013182472.tif 000011
【図１０】
2013182472.tif 000012
【図１１】
2013182472.tif 000013
【図１２】
2013182472.tif 000014
【図１３】
2013182472.tif 000015