(57)【要約】【課題】信号線間のカップリング容量を低減する。【解決手段】レイアウト設計方法は、複数の回路ブロックＢＬＫ間に跨る複数の信号のうち、相補信号からなる複数のペアを抽出する工程と、上記ペアの各々をツイストさせて配線する工程とを含む。【選択図】      図４
2009302132.tif 000002
【特許請求の範囲】
【請求項１】
複数の回路ブロック間に跨る複数の信号のうち、相補信号からなる複数のペアを抽出する工程と、
前記ペアの各々をツイストさせて配線する工程と、
を具備することを特徴とするレイアウト設計方法。
【請求項２】
前記複数のペアは、跨るブロックが同じ相補信号からなることを特徴とする請求項１に記載のレイアウト設計方法。
【請求項３】
前記複数のペアは、跨るブロックが同じ相補信号からなる複数の第１のペアと、跨るブロックが異なる相補信号からなる複数の第２のペアとを含むことを特徴とする請求項１に記載のレイアウト設計方法。
【請求項４】
前記相補信号内にバッファを挿入する工程をさらに具備し、
前記配線する工程は、各ブロック及び前記バッファ間のペアをツイストさせて配線することを特徴とする請求項１又は２に記載のレイアウト設計方法。
【請求項５】
コンピュータに、
複数の回路ブロック間に跨る複数の信号のうち、相補信号からなる複数のペアを抽出する工程と、
前記ペアの各々をツイストさせて配線する工程と、
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト設計方法及びこれを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体に係り、例えばツイスト配線を有する半導体集積回路のレイアウト設計方法に関する。
【背景技術】
【０００２】
複数の回路ブロックを同一基板上に搭載した半導体集積回路では、回路ブロック間を接続する複数の信号線が配設される。この信号線が長い距離並走した場合、各信号線の寄生容量が大きくなり、よって信号線間のカップリング容量が大きくなる。信号線間のカップリング容量が大きくなると、同一周波数で動作する隣接信号線からのカップリングによって信号変化速度が遅くなる場合が生じる。例えば、第１の信号線がハイレベルからローレベルに遷移する信号を伝送するとき、それと隣接する第２の信号線がローレベルからハイレベルに遷移すると、第１の信号線によって伝送される信号が極端に遅くなってしまう。従って、信号変化速度に対して動作周波数を高くすると誤動作が生じ、一方、信号変化速度に適合させると動作周波数が低くなってしまうという問題が生じる。
【０００３】
信号線間のカップリング容量を低減する方法としては、（１）信号線を電源線によってシールドする、（２）信号線の間隔を十分に離す、などが考えられる。これらの方法は、カップリング容量を低減する対策としては十分な効果を発揮するが、ペナルティとして面積増加がある。今後益々、半導体集積回路の集積度を上げていく必要がある中で、この面積増加は容認し難いものがある。
【０００４】
また、この種の関連技術として、伝送回路において、隣接する信号線の線間容量を介して生じるカップリングノイズを低減する技術が開示されている（特許文献１参照）。
【特許文献１】特開２００１−１６７５７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、信号線間のカップリング容量を低減することが可能なレイアウト設計方法を提供する。また、本発明は、上記レイアウト設計方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供する。
【課題を解決するための手段】
【０００６】
本発明の一視点に係るレイアウト設計方法は、複数の回路ブロック間に跨る複数の信号のうち、相補信号からなる複数のペアを抽出する工程と、前記ペアの各々をツイストさせて配線する工程とを具備する。
【０００７】
本発明の一視点に係るコンピュータ読み取り可能な記録媒体は、コンピュータに、複数の回路ブロック間に跨る複数の信号のうち、相補信号からなる複数のペアを抽出する工程と、前記ペアの各々をツイストさせて配線する工程とを実行させるためのプログラムを記録する。
【発明の効果】
【０００８】
本発明によれば、信号線間のカップリング容量を低減することが可能なレイアウト設計方法を提供することができる。また、本発明によれば、上記レイアウト設計方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１０】
［第１の実施形態］
本実施形態は、システムオンチップ（ＳｏＣ：system-on-a-chip）に使用される信号線のツイスト構造に関するものである。さらに、本実施形態は、ツイスト構造を有する信号線のレイアウト設計に関するものである。なお、ＳｏＣとは、同一基板上に複数の回路ブロックが搭載された半導体集積回路である。まず、本実施形態のツイスト構造の原理について説明する。
【００１１】
［１．ツイスト構造の原理］
図１は、本発明の第１の実施形態に係るツイスト構造からなる信号線を有する半導体集積回路の主要部を示すレイアウト図である。半導体集積回路は、２つのブロック（回路ブロック）ＢＬＫ１、ＢＬＫ２を備えている。各ブロックＢＬＫは、所定の機能を果たす回路からなり、例えば、各種のロジック回路、演算回路、及びメモリ等から構成されている。
【００１２】
ブロックＢＬＫ１及びＢＬＫ２間は、６本の信号線Ａ〜Ｆで接続されている。信号線Ａ及びＢ、信号線Ｃ及びＤ、信号線Ｅ及びＦをそれぞれペアとすると、これらのペアは以下の関係を満たしている。  
Ａ＝／Ｂ
Ｃ＝／Ｄ
Ｅ＝／Ｆ
なお、“／”は、反転信号を表している。すなわち、信号線Ａ及びＢ、信号線Ｃ及びＤ、信号線Ｅ及びＦはそれぞれ相補信号である。
【００１３】
図１中の３本の破線は、信号線を４等分した場合の位置を示している。ツイスト構造を生成するために、信号線を４つのセグメントに分ける。そして、図１に示すように、相補信号からなるペアをツイストさせてツイスト構造を生成する。ツイストする位置は、信号線を４等分した位置を使用する。さらに、隣接するペアでツイストする位置をずらすことで、カップリング容量が最も低減できるツイスト構造を生成することができる。
【００１４】
図１の例では、信号線Ａは、ブロックＢＬＫ１のピンＰ１と、ブロックＢＬＫ２のピンＰ２とに接続されている。信号線Ｂは、ブロックＢＬＫ１のピンＰ２と、ブロックＢＬＫ２のピンＰ１とに接続されている。信号線Ｃは、ブロックＢＬＫ１のピンＰ３と、ブロックＢＬＫ２のピンＰ３とに接続されている。信号線Ｄは、ブロックＢＬＫ１のピンＰ４と、ブロックＢＬＫ２のピンＰ４とに接続されている。信号線Ｅは、ブロックＢＬＫ１のピンＰ５と、ブロックＢＬＫ２のピンＰ６とに接続されている。信号線Ｆは、ブロックＢＬＫ１のピンＰ６と、ブロックＢＬＫ２のピンＰ５とに接続されている。
【００１５】
以下に、カップリング容量の低減効果について図２を用いて説明する。図２は、図１の６本の信号線Ａ〜Ｆを抽出して示している。図１の数字（１）〜（４）はそれぞれ、信号線の１／４セグメントを示している。例えば、信号線Ａの（１）部分に対応するセグメントをＡ＠（１）と表記する。信号Ａがローレベル（信号Ｂがハイレベル）、信号Ｃがハイレベル（信号Ｄがローレベル）、信号Ｅがハイレベル（信号Ｆがローレベル）にそれぞれ遷移するものとし、この様子を図２の矢印にて示している。上方向の矢印はハイレベル、下方向の矢印はローレベルに遷移する様子を表している。
【００１６】
信号線Ｃを例に取ると、信号線Ｃのカップリング容量に影響を与える信号線はＡ、Ｂ、Ｅ、Ｆである。セグメントＣ＠（１）及びＣ＠（４）はそれぞれ、セグメントＢ＠（１）及びＡ＠（４）からカップリング容量の影響を受ける。ここで、セグメントＢ＠（１）はハイレベル、セグメントＡ＠（４）はローレベルなので、セグメントＣ＠（１）及びＣ＠（４）のカップリング容量による影響は相殺される。
【００１７】
セグメントＣ＠（２）及びＣ＠（３）はそれぞれ、セグメントＥ＠（２）及びＦ＠（３）からカップリング容量の影響を受ける。ここで、セグメントＥ＠（２）はハイレベル、セグメントＦ＠（３）はローレベルなので、セグメントＣ＠（２）及びＣ＠（３）のカップリング容量による影響は相殺される。図１の例は、６本の信号線Ａ〜Ｆが同一長であり、カップリング容量の低減効果が最大に発揮される例である。
【００１８】
次に、長さが異なる信号線を有する半導体集積回路の例について説明する。図３は、半導体集積回路の他の例の主要部を示すレイアウト図である。
【００１９】
ブロックＢＬＫ１及びＢＬＫ２間は、６本の信号線Ａ〜Ｆで接続されている。信号線Ａ及びＢ、信号線Ｃ及びＤ、信号線Ｅ及びＦをそれぞれペアとすると、これらの信号線は以下の関係を満たしている。  
Ａ＝／Ｂ
Ｃ＝／Ｄ
Ｅ＝／Ｆ
信号線Ａ及びＢは、他の信号線Ｃ〜Ｆに比べてその長さが短くなっている。このような構成の場合、図３の３本の破線で示すように、短い信号線Ａ及びＢを４等分した位置をツイストする位置に設定する。そして、隣接するペアでツイストする位置をずらすことで、カップリング容量が最も低減できるツイスト構造を作ることができる。
【００２０】
信号線Ａ〜ＦとブロックのピンＰとの接続関係は、図１と同じである。なお、図３の構成では、信号線Ａ及びＢが短いため、セグメントＢ＠（１）及びＡ＠（４）に隣接する信号線Ｃに対するカップリング容量低減の効果は小さくなる。
【００２１】
［２．半導体集積回路のレイアウト設計］
次に、ツイスト構造からなる信号線を有する半導体集積回路のレイアウト設計について説明する。図４は、ツイスト構造からなる信号線を有する半導体集積回路のレイアウト設計方法を示すフローチャートである。図５は、ツイスト構造からなる信号線を有する半導体集積回路のレイアウト設計を行う設計装置１０の構成を示すブロック図である。
【００２２】
設計装置１０は、入力部１１、表示部１２、出力部１３、入出力制御部１４、データ記憶部１５、プログラム記憶部１６、及び中央処理装置（ＣＰＵ：central processing unit）１７を備えている。
【００２３】
入力部１１は、ユーザがデータを入力するために使用され、例えばキーボードにより構成される。表示部１２は、ＣＰＵ１７による処理結果をユーザに伝えるために使用され、例えばディスプレイにより構成される。出力部１３は、ＣＰＵ１７による処理結果をデータとして出力、或いはＣＰＵ１７による処理結果を紙媒体として出力するものであり、例えばプリンタにより構成される。入出力制御部１４は、入力部１１、表示部１２及び出力部１３と、ＣＰＵ１７との間のインターフェース処理を実行する。
【００２４】
プログラム記憶部１６は、本実施形態のレイアウト設計を実現するためのプログラムが格納された記憶媒体であり、ＣＰＵ１７がプログラム記憶部１６に格納されたプログラムに基づいて演算処理を実行することで、所望のレイアウト設計を行うことができる。データ記憶部１５は、レイアウト設計時に生成されたデータを格納したり、ユーザが入力したデータを格納したりする。
【００２５】
ＣＰＵ１７は、相補信号抽出部１７Ａ、相補信号グループ化部１７Ｂ、ブロック配置部１７Ｃ、ピン設定部１７Ｄ、配線部１７Ｅ、及びツイスト構造生成部１７Ｆを備えている。ＣＰＵ１７に含まれる各部の動作については後述する。
【００２６】
以下に、図面を参照しながらツイスト構造からなる信号線を有する半導体集積回路のレイアウト設計方法について説明する。
【００２７】
まず、ステップＳ１０１において、相補信号抽出部１７Ａは、跨るブロックＢＬＫが同じ信号の中から相補信号からなるペアを抽出する。すなわち、相補信号抽出部１７Ａは、２個のブロックＢＬＫ間を跨る信号のすべての組み合わせに対して、相補を確認するためのアサーションを生成する。相補信号抽出部１７Ａは、このアサーション生成処理を、２個のブロックＢＬＫのすべての組み合わせに対して実行する。続いて、相補信号抽出部１７Ａは、生成されたアサーションに対してアサーションチェックを実行し、相補信号からなるペアを抽出する。
【００２８】
この相補信号の抽出処理を、図６を用いて説明する。図６では、３個のブロックＢＬＫ１〜ＢＬＫ３が配置されている。ブロックＢＬＫ１及びＢＬＫ２間に跨る信号として、信号Ｓ１、Ｓ２、Ｓ３及びＳ４が存在する。また、ブロックＢＬＫ１及びＢＬＫ３間に跨る信号として、信号Ｓ５、Ｓ６及びＳ７が存在する。さらに、ブロックＢＬＫ２及びＢＬＫ３間に跨る信号として、信号Ｓ８及びＳ９が存在する。
【００２９】
ブロックＢＬＫ１及びＢＬＫ２間に跨る信号のすべての組み合わせは、（Ｓ１，Ｓ２）、（Ｓ１，Ｓ３）、（Ｓ１，Ｓ４）、（Ｓ２，Ｓ３）、（Ｓ２，Ｓ４）、及び（Ｓ３，Ｓ４）の６通りである。
【００３０】
ブロックＢＬＫ１及びＢＬＫ３間に跨る信号のすべての組み合わせは、（Ｓ５，Ｓ６）、（Ｓ５，Ｓ７）、及び（Ｓ６，Ｓ７）の３通りである。
【００３１】
ブロックＢＬＫ２及びＢＬＫ３間に跨る信号のすべての組み合わせは、（Ｓ８，Ｓ９）の１通りである。
【００３２】
相補信号抽出部１７Ａは、これら合計１０通りの組み合わせに対して、相補であることを確認するためのアサーションを生成する。生成されたアサーションに対して、アサーションチェックを実行することによって相補信号が抽出される。
【００３３】
次に、ステップＳ１０２において、相補信号グループ化部１７Ｂは、接続される（跨る）ブロックＢＬＫが同じ相補信号を同じグループに属するようにグループ化する。このグループ化処理を、図７及び図８を用いて説明する。
【００３４】
図７に示すように、（Ｓ１，Ｓ２）、（Ｓ３，Ｓ４）、及び（Ｓ６，Ｓ７）のペアがそれぞれ相補信号であるものとする。これら３個のペアのうち、（Ｓ１，Ｓ２）及び（Ｓ３，Ｓ４）は、接続されるブロックＢＬＫが同じなので１個のグループとしてグループ化される。すなわち、図８に示すように、相補信号グループ化部１７Ｂは、（Ｓ１，Ｓ２）及び（Ｓ３，Ｓ４）をグループ信号ＧＳ１としてグループ化する。また、（Ｓ６，Ｓ７）をグループ信号ＧＳ２としてグループ化する。
【００３５】
次に、ステップＳ１０３において、所定のアルゴリズムに基づいてブロックＢＬＫを配置する。例えば、ブロック配置部１７Ｃは、チップの面積が極力小さくなるようにして、さらに、ブロック間に跨る信号線の長さが極力短くなるようにして、ブロックＢＬＫを配置する。
【００３６】
次に、ステップＳ１０４において、ピン設定部１７Ｄは、各ブロックＢＬＫのピンを定義する。このとき、グループ化された相補信号については、これら相補信号に対応する全てのピンを代表する仮想的な１個のピンを定義する。グループを代表する仮想的なピンの大きさは、そのグループに属する信号数のピンを実現可能な大きさを持つものとする。
【００３７】
図９は、仮想的なピンＰの配置例を示す図である。ここで、グループ信号ＧＳ１は４個の信号を、グループ信号Ｇ２は２個の信号をグループ化したものとする。信号Ｓ１は、グループ化されなかった信号である。図９に示すブロックＢＬＫには、ピン設定部１７Ｄによって３個のピンＰ１〜Ｐ３が配置される。グループ信号ＧＳ１はピンＰ１、信号Ｓ１はピンＰ２、グループ信号ＧＳ２はピンＰ３に接続される。グループ信号ＧＳ１のピンＰ１は４個の信号を、グループ信号ＧＳ２のピンＰ３は２個の信号を引き出せるだけの大きさを有する。
【００３８】
次に、ステップＳ１０５において、配線部１７Ｅは、ステップＳ１０２でグループ化された相補信号（グループ信号）について、１個のグループを１個の信号とみなして概略配線（仮配線）する。ただし、グループ信号の配線に必要な配線リソースは、グループ内の信号数分必要なものとして概略配線する。なお、「概略配線」とは、大まかな配線経路を求める処理である。具体的には、チップ（或いは、配線領域）を大きな格子に分割し、この格子のレベルでの配線経路（各配線がどの格子を通過するか）を決定する処理である。
【００３９】
図１０は、概略配線の結果の例を示す図である。チップ（基板）には、ブロックＢＬＫ１〜ＢＬＫ９が配置されており、さらに、グループ化された相補信号（グループ信号ＧＳ１〜ＧＳ９）が概略配線されている。ブロックＢＬＫ１及びＢＬＫ２間には、グループ信号ＧＳ１が配線されている。ブロックＢＬＫ２及びＢＬＫ３間には、グループ信号ＧＳ４が配線されている。ブロックＢＬＫ２及びＢＬＫ４間には、グループ信号ＧＳ２が配線されている。ブロックＢＬＫ３及びＢＬＫ５間には、グループ信号ＧＳ３が配線されている。ブロックＢＬＫ４及びＢＬＫ８間には、グループ信号ＧＳ５が配線されている。ブロックＢＬＫ５及びＢＬＫ８間には、グループ信号ＧＳ６が配線されている。ブロックＢＬＫ６及びＢＬＫ８間には、グループ信号ＧＳ７が配線されている。ブロックＢＬＫ８及びＢＬＫ７間には、グループ信号ＧＳ８が配線されている。ブロックＢＬＫ６及びＢＬＫ９間には、グループ信号ＧＳ９が配線されている。
【００４０】
次に、ステップＳ１０６において、相補信号グループ化部１７Ｂは、ステップＳ１０５で得られた概略配線の結果に対して、信号の概略配線を包含する最小矩形が重なるグループ信号ＧＳをさらにグループ化する。
【００４１】
図１１は、図１０の概略配線の結果に対して、各グループ信号ＧＳの概略配線を包含する最小矩形（以下、ＢＢＯＸ（banding box）と表記する）を示す図である。破線で囲まれた矩形が各グループ信号のＢＢＯＸである。図１１の例では、グループ信号ＧＳ２及びＧＳ３、ＧＳ８及びＧＳ９のＢＢＯＸがそれぞれ重なっているので、それらが相補信号グループ化部１７Ｂによって更にグループ化される。
【００４２】
次に、ステップＳ１０７において、配線部１７Ｅは、ステップＳ１０６で再グループ化された相補信号（グループ信号）について、１個のグループを１個の信号とみなして再度概略配線する。ここでも、ステップＳ１０５と同様に、グループ信号の配線に必要な配線リソースは、グループ内の信号数分必要なものとして概略配線する。
【００４３】
図１２は、ステップＳ１０６で再グループ化されたグループ信号を概略配線した結果を示す図である。グループ信号ＧＳ２及びＧＳ３が１個のグループ信号ＧＳ２_３として、グループ信号ＧＳ８及びＧＳ９が１個のグループ信号ＧＳ８_９として概略配線されている。なお、図１２には図示を省略するが、この２回目の概略配線工程において、グループ化されなかった（相補信号でない）信号Ｓも概略配線する。
【００４４】
次に、ステップＳ１０８において、グループ化された相補信号を隣接するツイスト構造として詳細配線（実配線）する。また、ステップＳ１０８において、グループ化されなかった信号Ｓを詳細配線する。なお、「詳細配線」とは、配線チャネル単位に信号の最終的な配線をする処理であり、例えば、概略配線時の格子をさらに細分化した格子を用いて配線経路を求める。この詳細配線処理は、配線部１７Ｅ及びツイスト構造生成部１７Ｆによって実行される。
【００４５】
グループ信号ＧＳ２_３をツイスト構造として実現した例を図１３に、グループ信号ＧＳ８_９をツイスト構造として実現した例を図１４にそれぞれ示す。ここでは、グループ信号ＧＳ２を２組の相補信号をもつグループとして、グループ信号ＧＳ３、ＧＳ８及びＧＳ９を１組の相補信号を持つグループとしている。図１０の段階では離れた位置にあったグループ信号ＧＳ２及びＧＳ３や、グループ信号ＧＳ８及びＧＳ９が、ステップＳ１０６及びＳ１０７を経ることによって、隣接した位置に配線されることになる。
【００４６】
以上詳述したように本実施形態では、複数の回路ブロック間に跨る複数の信号のうち、接続されるブロックが同じ相補信号からなる複数のペアを抽出する。そして、抽出された複数のペアのうち接続されるブロックＢＬＫが同じ相補信号を１個のグループ信号としてグループ化した後に概略配線する。さらに、相補信号を隣接して配置し、相補信号からなる複数のペアの各々をツイストさせて詳細配線するようにしている。
【００４７】
従って本実施形態によれば、より多くの相補信号を隣接して配置させることができ、さらにこれらの相補信号をツイスト構造として配線することができる。これにより、信号線間のカップリング容量を低減することができ、ひいては、カップリングノイズを低減することが可能となる。また、カップリング容量を低減させることで、回路の高速動作が可能となる。
【００４８】
また、本実施形態を利用することにより、特に高速動作を行う回路のノイズマージンを削減できるため、信号のタイミング設計が容易になり、特性歩留まり（parametric yield）を向上させることが可能となる。
【００４９】
［第２の実施形態］
第２の実施形態は、ブロック間にバッファを挿入し、このバッファを介してブロック間を信号線で接続するようにしている。さらに、ブロック及びバッファ間の相補信号をツイスト構造にして配線するようにしている。
【００５０】
図１５は、本発明の第２の実施形態に係るツイスト構造からなる信号線を有する半導体集積回路の主要部を示すレイアウト図である。ブロックＢＬＫ１及びＢＬＫ２間は、６本の信号線Ａ〜Ｆで接続されている。信号線Ａ及びＢ、信号線Ｃ及びＤ、信号線Ｅ及びＦをそれぞれペアとすると、これらのペアは以下の関係を満たしている。  
Ａ＝／Ｂ
Ｃ＝／Ｄ
Ｅ＝／Ｆ
信号線Ａの第１のセグメントは、ブロックＢＬＫ１のピンＰ１とバッファＢＦの入力とに接続されている。信号線Ａの第２のセグメントは、バッファＢＦの出力とブロックＢＬＫ２のピンＰ１とに接続されている。同様に、信号線Ｂ〜Ｆの第１のセグメントはそれぞれ、ブロックＢＬＫ１のピンＰ２〜Ｐ６とバッファＢＦの入力とに接続されている。信号線Ｂ〜Ｆの第２のセグメントはそれぞれ、バッファＢＦの出力とブロックＢＬＫ２のピンＰ２〜Ｐ６とに接続されている。
【００５１】
また、各信号線の第１及び第２のセグメントはそれぞれ、図１と同様のツイスト構造を有している。これにより、信号線が長くなった場合でも、カップリング容量を低減することが可能となる。
【００５２】
図１５の構成は、バッファＢＦが一段（すなわち、セグメントが２段）の例であり、この場合は、ピン配置と信号線との関係は、ブロックＢＬＫ１とＢＬＫ２とで同じになる。勿論、信号線に挿入するバッファの数に制限はなく、複数のバッファを挿入するようにしてもよい。バッファが偶数段（セグメントは奇数段）になると、図１のようなピン配置になる。一方、バッファが奇数段（セグメントは偶数段）になると、図１５のようなピン配置になる。
【００５３】
次に、ツイスト構造からなる信号線を有する半導体集積回路のレイアウト設計について説明する。図１６は、ツイスト構造からなる信号線を有する半導体集積回路のレイアウト設計方法を示すフローチャートである。図１７は、ツイスト構造からなる信号線を有する半導体集積回路のレイアウト設計を行う設計装置１０の構成を示すブロック図である。
【００５４】
ＣＰＵ１７は、図５の構成に加えて、新たにバッファ挿入部１７Ｇを備えている。バッファ挿入部１７Ｇの動作については後述する。
【００５５】
以下に、図面を参照しながらツイスト構造からなる信号線を有する半導体集積回路のレイアウト設計方法について説明する。なお、図１６において、ステップＳ１０１〜Ｓ１０７までの動作は、第１の実施形態と同じである。
【００５６】
次に、ステップＳ２０１において、バッファ挿入部１７Ｇは、信号線が所定長さを超えるか否かを判定する。そして、信号線が所定長さを超えた場合、その信号線の途中にバッファＢＦを挿入する。挿入するバッファＢＦの数は、信号線が所定長さの１倍〜２倍の範囲では１個、信号線が所定長さの２倍〜３倍の範囲では２個、というように信号線の長さが長くなるにつれて増加する。
【００５７】
次に、ステップＳ１０８において、グループ化された相補信号を隣接するツイスト構造として詳細配線する。また、ステップＳ１０８において、グループ化されなかった信号Ｓを詳細配線する。これにより、図１５に示すように、ブロックＢＬＫ及びバッファＢＦ間を跨る信号線をツイスト構造にすることができる。
【００５８】
以上詳述したように本実施形態によれば、信号線の長さに応じて信号線の途中にバッファＢＦを挿入することが可能となる。さらに、ブロックＢＬＫ及びバッファＢＦ間を跨る信号線をツイスト構造にすることができる。これにより、信号線のカップリング容量を低減することができる。
【００５９】
また、信号線の途中にバッファＢＦを挿入することで、これらの信号線の配線遅延を低減することが可能となる。その他の効果は第１の実施形態と同じである。
【００６０】
［第３の実施形態］
第１の実施形態では、図４のステップＳ１０１に示した相補信号抽出工程は、２個のブロックＢＬＫごとに信号の組み合わせに対してアサーションを生成していたが、第３の実施形態では、跨るブロックが同じ信号に加えて、跨るブロックが異なるブロック信号のすべての組み合わせに対してもアサーションを生成するようにしている。
【００６１】
図１８は、本発明の第３の実施形態に係る半導体集積回路のレイアウト設計方法を示すフローチャートである。ステップＳ１０１において、相補信号抽出部１７Ａは、跨るブロックＢＬＫが同じ信号と、跨るブロックＢＬＫが異なる信号との中から相補信号からなるペアを抽出する。すなわち、相補信号抽出部１７Ａは、全てのブロックＢＬＫ間を跨る信号のすべての組み合わせに対して、相補を確認するためのアサーションを生成する。
【００６２】
図６の信号Ｓ１〜Ｓ９の例で説明すると、相補信号抽出部１７Ａは、（Ｓ１，Ｓ２）〜（Ｓ８，Ｓ９）の３６通りの信号の組み合わせに対して、相補であることを確認するためのアサーションを生成する。このように、第１の実施形態では、１０個のアサーションが生成されるが、本実施形態では、３６個のアサーションが生成されることになる。
【００６３】
続いて、生成されたアサーションに対して、アサーションチェックを実行することによって相補信号が抽出される。このようにして、ステップＳ１０１での相補信号抽出工程が行われる。その後の工程は、第１の実施形態と同じである。
【００６４】
生成されるアサーションの数が増加すると、アサーションチェックの処理時間が増加するが、抽出可能な相補信号の数も増加し、第１の実施形態よりも多くの相補信号に対してノイズ低減効果を得ることができる。なお、本実施形態は、第２の実施形態に適用可能であることは勿論である。
【００６５】
［第４の実施形態］
第１の実施形態では、図４のステップＳ１０４に示したピン設定工程は、グループを代表する仮想的なピンがそのグループに属する信号数のピンを実現可能な大きさを持つものとしていたが、第４の実施形態では、同工程において、そのグループに属する信号数の１．５倍のピンを実現可能な大きさにするようにしている。
【００６６】
以下に、図面を参照しながらステップＳ１０４のピン設定工程について説明する。なお、他の工程については、第１の実施形態と同じである。
【００６７】
図１９は、２個の信号Ａ及びＢに対して１．５倍の大きさを持つピンＰの構成を示す図である。例えば、ブロックＢＬＫに接続されるグループ信号ＧＳが信号Ａ及びＢの相補信号からなるものとする。ピン設定部１７Ｄは、ブロックＢＬＫのピンＰとして、グループ信号ＧＳに属する２個の信号Ａ及びＢの１．５倍のピンを実現可能な大きさを持つピンを定義する。図１９に示すように、２個の信号Ａ及びＢを接続するために定義されたピンＰは、３個の信号が接続可能な大きさを有している。
【００６８】
図２０は、実際に配置されるピンＰの数を説明する図である。２個の信号Ａ及びＢ用のピンとして、信号Ａに接続可能なピンＰ１（Ａ）及びＰ３（Ａ）、信号Ｂに接続可能なピンＰ２（Ｂ）の合計３個のピンが配置される。なお、信号Ａに接続可能なピンの数を１個、信号Ｂに接続可能なピンの数を２個に設定してもよい。
【００６９】
このようにピンを配置することで、図２１（ａ）に示すように、２個の信号Ａ及びＢをそれぞれピンＰ１（Ａ）及びピンＰ２（Ｂ）に接続することも可能であるし、図２１（ｂ）に示すように、２個の信号Ａ及びＢをそれぞれピンＰ３（Ａ）及びピンＰ２（Ｂ）に接続することも可能である。
【００７０】
以上詳述したように本実施形態によれば、ツイスト構造を実現する際の信号の順番に柔軟に対応することが可能となる。これにより、隣接する多くの相補信号にツイスト構造を適用した場合でも、これらの相補信号を確実にかつ無理なくブロックに接続することが可能である。
【００７１】
さらに、相補信号の途中にバッファＢＦを挿入することで、信号の順番が入れ替わった場合でも、信号線をそれ用のピンに接続することが可能である。
【００７２】
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を構成することができる。例えば、実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１の実施形態に係る半導体集積回路の主要部を示すレイアウト図。
【図２】図１の６本の信号線Ａ〜Ｆを抽出して示した図。
【図３】半導体集積回路の他の例の主要部を示すレイアウト図。
【図４】第１の実施形態に係る半導体集積回路のレイアウト設計方法を示すフローチャート。
【図５】第１の実施形態に係る半導体集積回路のレイアウト設計を行う設計装置１０の構成を示すブロック図。
【図６】ステップＳ１０１における相補信号の抽出処理を説明する図。
【図７】ステップＳ１０２におけるグループ化処理を説明する図。
【図８】図７に続くグループ化処理を説明する図。
【図９】ステップＳ１０４におけるピン設定処理を説明する図。
【図１０】ステップＳ１０５における１回目の概略配線処理を説明する図。
【図１１】ステップＳ１０６における再グループ化処理を説明する図。
【図１２】ステップＳ１０７における２回目の概略配線処理を説明する図。
【図１３】ステップＳ１０８における詳細配線処理の一例を説明する図。
【図１４】ステップＳ１０８における詳細配線処理の他の一例を説明する図。
【図１５】本発明の第２の実施形態に係る半導体集積回路の主要部を示すレイアウト図。
【図１６】第２の実施形態に係る半導体集積回路のレイアウト設計方法を示すフローチャート。
【図１７】第２の実施形態に係る半導体集積回路のレイアウト設計を行う設計装置１０の構成を示すブロック図。
【図１８】本発明の第３の実施形態に係る半導体集積回路のレイアウト設計方法を示すフローチャート。
【図１９】本発明の第４の実施形態に係るピンＰの構成を示す図。
【図２０】実際に配置されるピンＰの数を説明する図。
【図２１】ピンＰと信号との接続関係を示す図。
【符号の説明】
【００７４】
ＢＬＫ…ブロック、Ａ〜Ｆ…信号線、Ｐ…ピン、ＢＦ…バッファ、Ｓ…信号、ＧＳ…グループ信号、１０…設計装置、１１…入力部、１２…表示部、１３…出力部、１４…入出力制御部、１５…データ記憶部、１６…プログラム記憶部、１７…ＣＰＵ、１７Ａ…相補信号抽出部、１７Ｂ…相補信号グループ化部、１７Ｃ…ブロック配置部、１７Ｄ…ピン設定部、１７Ｅ…配線部、１７Ｆ…ツイスト構造生成部、１７Ｇ…バッファ挿入部。
【図１】
2009302132.tif 000003
【図２】
2009302132.tif 000004
【図３】
2009302132.tif 000005
【図４】
2009302132.tif 000006
【図５】
2009302132.tif 000007
【図６】
2009302132.tif 000008
【図７】
2009302132.tif 000009
【図８】
2009302132.tif 000010
【図９】
2009302132.tif 000011
【図１０】
2009302132.tif 000012
【図１１】
2009302132.tif 000013
【図１２】
2009302132.tif 000014
【図１３】
2009302132.tif 000015
【図１４】
2009302132.tif 000016
【図１５】
2009302132.tif 000017
【図１６】
2009302132.tif 000018
【図１７】
2009302132.tif 000019
【図１８】
2009302132.tif 000020
【図１９】
2009302132.tif 000021
【図２０】
2009302132.tif 000022
【図２１】
2009302132.tif 000023