(57)【要約】【課題】回路の設計作業の効率化を図ること。【解決手段】ＣＡＤ装置１０１は、設計対象回路のレイアウトデータに基づいて、設計対象回路のレイアウト領域ｒ内に、ＥＣＯ−ＤＯＴセルＤを配置するとともに複数のＥＣＯセルＣ１〜Ｃ４を配置する。ＥＣＯ−ＤＯＴセルＤは、長さが同一の配線によって、複数の入力端子Ｉ１〜Ｉ４と、複数の入力端子の各々の入力端子に接続された出力端子Ｙと、を有するセルである。そして、ＣＡＤ装置１０１は、配置した複数のＥＣＯセルＣ１〜Ｃ４の各々の出力端子とＥＣＯ−ＤＯＴセルＤの各々の入力端子Ｉ１〜Ｉ４とを、長さが同一の配線によってそれぞれ接続する。【選択図】図１
2015210703.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力端子と、前記複数の入力端子の各々から同一の長さの配線によって接続された出力端子と、を有するセルと、複数のバッファとを、設計対象回路のレイアウトデータに基づいて、前記設計対象回路のレイアウト領域内に配置し、配置した前記複数のバッファの各々の出力端子と前記セルの前記複数の入力端子の各々とを、同一の長さの配線によってそれぞれ接続する、
制御部を有することを特徴とするＣＡＤ装置。
【請求項２】
前記制御部は、
前記レイアウト領域内に、前記複数のバッファの入力端子に出力端子が接続される入力セルの配置位置および前記セルの出力端子が入力端子に接続される出力セルの配置位置に基づいて、前記セルと、前記複数のバッファとを配置することを特徴とする請求項１に記載のＣＡＤ装置。
【請求項３】
前記制御部は、
前記レイアウト領域内に、前記複数のバッファの入力端子に出力端子が接続される入力セルの配置位置および前記セルの出力端子が入力端子が接続される出力セルの配置位置に基づいて、前記複数のバッファを配置し、
前記レイアウト領域内に、配置した前記複数のバッファの配置位置と前記出力セルの配置位置とに基づいて、前記セルを配置することを特徴とする請求項１に記載のＣＡＤ装置。
【請求項４】
前記制御部は、
前記レイアウト領域内に、前記入力セルの配置位置と前記出力セルの配置位置との中間地点に基づいて、前記複数のバッファを配置することを特徴とする請求項２または３に記載のＣＡＤ装置。
【請求項５】
前記制御部は、
前記レイアウト領域内に、配置した前記複数のバッファのうちのいずれかのバッファの配置位置と前記出力セルの配置位置との中間地点に基づいて、前記セルを配置することを特徴とする請求項２〜４のいずれか一つに記載のＣＡＤ装置。
【請求項６】
前記セルの出力端子は、前記複数の入力端子に入力された値の論理和を出力することを特徴とする請求項２〜５のいずれか一つに記載のＣＡＤ装置。
【請求項７】
前記制御部は、
前記レイアウトデータに基づいて、前記セルの出力端子と前記出力セルの入力端子とを接続するとともに、前記入力セルの出力端子と前記複数のバッファの入力端子とを同一の長さの配線によって接続することを特徴とする請求項２〜６のいずれか一つに記載のＣＡＤ装置。
【請求項８】
複数の入力端子と、
前記複数の入力端子の各々から同一の長さの配線によって接続された出力端子と、を有し、
前記複数の入力端子の各々と、同一の長さの配線によって複数のバッファの各々の出力端子とが、それぞれ接続されることを特徴とするセル。
【請求項９】
コンピュータが、
複数の入力端子と、前記複数の入力端子の各々から同一の長さの配線によって接続された出力端子と、を有するセルと、複数のバッファとを、設計対象回路のレイアウトデータに基づいて、前記設計対象回路のレイアウト領域内に配置し、配置した前記複数のバッファの各々の出力端子と前記セルの前記複数の入力端子の各々とを、同一の長さの配線によってそれぞれ接続する、
処理を実行することを特徴とするレイアウト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）装置、セル、およびレイアウト方法に関する。
【背景技術】
【０００２】
従来、回路の設計作業において、設計対象回路上の入力セルから出力セルまでが離れているために入力セルの駆動能力が不足する場合に、論理的には何もせず駆動能力を有するバッファを入力セルと出力セルとの間に接続して駆動能力を補うことがある。このとき、駆動能力が異なるバッファの中から、不足した駆動能力に応じたバッファを入力セルと出力セルとの間に接続することにより、不足した駆動能力を補うことができる。ここで、バッファの駆動能力が大きくなるにつれて、レイアウト領域内でのバッファが占有する領域が広くなる。関連する先行技術として、例えば、ドット接続、すなわちワイヤードＡＮＤまたはワイヤードＯＲが目標テクノロジーで許容されるならば、ワイヤードＡＮＤやワイヤードＯＲを用いた論理合成を探索するものがある。また、セレクタ回路をワイヤードＯＲ型セレクタ回路に変換し、ワイヤードＯＲ型セレクタ回路の３ステートバッファが何も選択されないときにワイヤードＯＲ型セレクタ回路の出力がハイインピーダンス状態にならないようにする保護回路を挿入する技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６１−８８３７１号公報
【特許文献２】特開平１０−１７１８４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、不足した駆動能力に応じたバッファを配置できる領域が確保できない場合には、例えば、設計対象回路の配置配線をやり直してバッファを配置できる領域を確保することになり、設計者による設計作業に時間がかかる。
【０００５】
また、不足した駆動能力に応じたバッファを配置する領域よりも狭い領域で配置できるバッファを並列に接続して、不足した駆動能力に応じたバッファと同等の駆動能力を得ることが考えられる。ここで、バッファを並列に接続して、不足した駆動能力を補うためには、複数のバッファをドット接続する際に、ドットそのものと各々のバッファとの配線長を同一にすることが求められる。しかしながら、既存のレイアウトツールでは、ドットと各々のバッファとを接続する配線長を同一にすることができないため、設計者の手作業によりドットと各々のバッファとの配線長が同一となるように配線することになり、設計者による設計作業に時間がかかる。
【０００６】
１つの側面では、本発明は、回路の設計作業の効率化を図ることができるＣＡＤ装置、セル、およびレイアウト方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、複数の入力端子と、複数の入力端子の各々の入力端子に接続された出力端子と、を有するセルと、複数のバッファとを、設計対象回路のレイアウトデータに基づいて、設計対象回路のレイアウト領域内に配置し、配置した複数のバッファの各々の出力端子とセルの各々の入力端子とを、同一の長さの配線によってそれぞれ接続するＣＡＤ装置、およびレイアウト方法が提案される。
【０００８】
また、本発明の他の側面によれば、複数の入力端子と、複数の入力端子の各々から同一の長さの配線によって接続された出力端子と、を有し、複数の入力端子の各々と、同一の長さの配線によって複数のバッファの各々の出力端子とが、それぞれ接続されるセルが提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、回路の設計作業の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、ＣＡＤ装置１０１の動作例を示す説明図である。
【図２】図２は、ＥＣＯ−ＤＯＴセルＤのレイアウトの第１の例を示す説明図である。
【図３】図３は、ＥＣＯ−ＤＯＴセルＤのレイアウトの第２の例を示す説明図である。
【図４】図４は、ＥＣＯ−ＤＯＴセルＤのレイアウトの第３の例を示す説明図である。
【図５】図５は、ＥＣＯ−ＤＯＴセルＤの論理ファンクションの一例を示す説明図である。
【図６】図６は、ＣＡＤ装置１０１のハードウェア構成例を示すブロック図である。
【図７】図７は、ＣＡＤ装置１０１の機能的構成例を示すブロック図である。
【図８】図８は、ＥＣＯバルクセルのレイアウトの一例を示す説明図である。
【図９】図９は、ＥＣＯセルＣのレイアウトの一例を示す説明図である。
【図１０】図１０は、４倍駆動分のＥＣＯセルＣを追加する一例を示す説明図である。
【図１１】図１１は、ＥＣＯセルＣの配置例を示す説明図である。
【図１２】図１２は、ＥＣＯ−ＤＯＴセルＤの配置例を示す説明図である。
【図１３】図１３は、ＥＣＯ−ＤＯＴセルＤから出力セルＢへの接続例を示す説明図である。
【図１４】図１４は、レイアウト処理手順の一例を示すフローチャートである。
【図１５】図１５は、Ｐ＆Ｒ  ＥＣＯ処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に図面を参照して、開示のＣＡＤ装置、セル、およびレイアウト方法の実施の形態を詳細に説明する。
【００１２】
図１は、ＣＡＤ装置１０１の動作例を示す説明図である。本実施の形態にかかるＣＡＤ装置１０１は、回路設計を支援するコンピュータである。ＣＡＤ装置１０１は、例えば、パーソナルコンピュータであり、サーバ等でもよい。具体的には、例えば、ＣＡＤ装置１０１は、レイアウト処理として、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）で記述された設計対象回路のデザインデータと、設計対象回路が遵守すべき制約条件とライブラリとを用いて、論理合成を行い、ネットリストを得る。ネットリストは、セル間の接続情報を示す。以下、セル間の接続を、「ネット」と称する場合がある。次に、ＣＡＤ装置１０１は、ネットリストに対して、配置配線（Ｐｌａｃｅ＆Ｒｏｕｔｅ：Ｐ＆Ｒ）を行い、タイミング解析を行って、ネットリストとレイアウトデータを出力する。レイアウトデータは、配置配線により得られるデータであり、例えば、ＧＤＳなどのフォーマットに従ったデータである。
【００１３】
ここで、半導体集積回路の高集積化に伴い、チップのセル列間の領域の削減や、空いた領域の有効活用が求められている。空いた領域の有効活用を図る技術として、ＥＣＯ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒ）と呼ばれる技術が行われる。ＥＣＯは、設計開発において、最終段階で発見されたエラーを一部修正する技術である。修正する内容の具体例としては、論理回路の一部修正や、レイアウト設計における一部の素子配置改善や配線修正などである。
【００１４】
ＥＣＯにおいて、設計対象回路のセルを配置配線した後に、何らかのエラーの修正のために、論理調整を行うことがある。例えば、２つのセルを接続した回路に対して、論理変更により、２つのセル間の配線長が長くなる場合がある。セル間の配線長が長いネットでは、レイアウト配線の寄生素子に起因して信号遅延が増加するようになる。そこで、一般的にはリピータセルを挿入し、駆動能力を補うことにより、信号遅延の増加を調整する。リピータセルとは、回路ブロック間を接続する配線が長い場合に、パス遅延を小さくするために結線の途中に挿入されるバッファである。この場合、ＥＣＯによって、セル配置を変えずに、論理調整を行うことができる。
【００１５】
ＥＣＯにおいて挿入するリピータセルを、以下、「ＥＣＯセル」と呼称する。また、ＥＣＯセルを配置することが可能な箇所は、設計対象回路のセル配置を決定する前に、ＥＣＯセルを配置する領域として予め配置したセル上となる。前述の予め配置したセルを、「ＥＣＯバルクセル」と呼称する。ＥＣＯセルのレイアウトの一例を、図９で後述する。また、ＥＣＯバルクセルのレイアウトの一例を、図８で後述する。図９で示すように、ＥＣＯセルは、補いたい駆動能力の大きさに応じて複数の種類が存在しており、不足した駆動能力に応じたＥＣＯセルを入力セルと出力セルとの間に接続することにより、不足した駆動能力を補うことができる。ここで、ＥＣＯセルの駆動能力が大きくなるにつれて、ＥＣＯセルが占有する領域が広くなる。以下の説明では、単に「ＥＣＯセル」と記載した場合には、１つのＥＣＯバルクセル上に配置した際のＥＣＯセルを指すものとする。
【００１６】
ここで、１つのＥＣＯバルクセル分のＥＣＯセルが有する駆動能力の複数倍の駆動能力を得たい状況が発生したとする。この場合、複数個のＥＣＯバルクセルが連続した箇所がある場合に、複数倍の駆動能力を有するＥＣＯセルに置き換えが可能である。しかしながら、近年更なるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）集積度の向上を求められ、設計対象回路のレイアウト領域内に、集積度を下げる要因となるＥＣＯバルクセルを多く挿入することができなくなっており、特に連続して配置しておくことが困難となっている。
【００１７】
そこで、隣接していないＥＣＯバルクセルを用いて、複数のＥＣＯセルを並列に接続することにより複数倍の駆動能力を得ることが考えられる。ここで、複数のＥＣＯセルを並列に接続すると、複数のＥＣＯセルによる出力からのドット接続が生じることになる。そして、複数のＥＣＯセルを並列に接続することにより複数倍の駆動能力を得るには、複数のＥＣＯセルからドット接続までの配線長を同一にすることになる。
【００１８】
しかしながら、自動配線において配線長を同一にする際に、異なるノードであれば配線長を同一にするという設定が行えるが、複数のＥＣＯセルからドット接続までは、一つのネットとして扱われるため、一つのネット内の配線長を同一に設定するということが困難である。設計者によるマニュアル配線を行えば、一つのネット内の配線長を同一に設定することができるが、マニュアル配線には多大な手間がかかってしまう。
【００１９】
そこで、本実施の形態にかかるＣＡＤ装置１０１は、レイアウト領域に、接続専用のセルと、複数のＥＣＯセルとを配置して、配置した複数のＥＣＯセルの各々の出力端子と接続専用のセルの複数の入力端子とを、長さが同一の配線によってそれぞれ接続する。以下、接続専用のセルを、「ＥＣＯ−ＤＯＴセル」と呼称する。ＥＣＯ−ＤＯＴセルは、長さが同一の配線によって、複数の入力端子と、複数の入力端子の各々の入力端子に接続された出力端子と、を有するセルである。また、ＥＣＯ−ＤＯＴセルは、トランジスタ素子を有さない。ここで、各々の入力端子と出力端子とを接続する配線の長さは、各々の入力端子から出力端子までの配線の長さである。また、各々の入力端子から出力端子までの配線の一部が共有していてもよい。
【００２０】
以下に、図１を用いて、ＥＣＯ−ＤＯＴセルと複数のＥＣＯセルとを配置して、ＥＣＯ−ＤＯＴセルの複数の入力端子と複数のＥＣＯセルとの配線を等長配線に設定する例を示す。図１の（ａ）では、設計対象回路のレイアウトデータを模式的に示したものである。図１の（ａ）に示す設計対象回路のレイアウト領域ｒには、入力セルＡと出力セルＢとが配置される。そして、入力セルＡと出力セルＢとの配線長が長くなった結果、タイミング解析によってエラーが発生し、１つのＥＣＯセルが有する駆動能力の４倍の駆動能力を補うようにタイミング解析の結果として出力されたものとする。ここで、図１の（ａ）に示すレイアウト領域ｒ内の薄いハッチを付与したセルは、ＥＣＯバルクセルを示す。
【００２１】
図１の（ｂ）では、図１の（ａ）におけるレイアウト領域ｒに、４つのＥＣＯセルＣ１〜Ｃ４とＥＣＯ−ＤＯＴセルＤとを配置した例である。また、図１の（ｂ）では、ＥＣＯ−ＤＯＴセルＤの内部のレイアウトについて示す。ここで、図１の（ｂ）に示すレイアウト領域ｒ内の薄いハッチを付与したセルは、ＥＣＯバルクセルを示す。また、ＥＣＯセルＣ１〜Ｃ４は、図１の（ｂ）に示すレイアウト領域ｒ内の濃いハッチを付与したセルである。同様に、ＥＣＯ−ＤＯＴセルＤは、図１の（ｂ）に示すレイアウト領域ｒ内の中程度の濃さのハッチを付与したセルである。
【００２２】
ＥＣＯ−ＤＯＴセルＤの内部のレイアウトについて説明する。ＥＣＯ−ＤＯＴセルＤは、長さが同一の配線によって、複数の入力端子Ｉ１〜Ｉ４と、複数の入力端子Ｉ１〜Ｉ４の各々の入力端子に接続された出力端子Ｙとを有する。ここで、入力端子Ｉ１から出力端子Ｙまでの配線の長さと、入力端子Ｉ２から出力端子Ｙまでの配線の長さと、入力端子Ｉ３から出力端子Ｙまでの配線の長さと、入力端子Ｉ４から出力端子Ｙまでの配線の長さとが同一である。より詳細なＥＣＯ−ＤＯＴセルのレイアウトについては、図２〜図４で説明する。
【００２３】
ＣＡＤ装置１０１は、設計対象回路のレイアウトデータに基づいて、設計対象回路のレイアウト領域ｒ内に、ＥＣＯ−ＤＯＴセルＤを配置するとともに複数のＥＣＯセルＣ１〜Ｃ４を配置する。具体的には、ＣＡＤ装置１０１は、レイアウトデータ内のＥＣＯバルクセル上に、ＥＣＯ−ＤＯＴセルＤを配置するとともに複数のＥＣＯセルＣ１〜Ｃ４を配置する。ＣＡＤ装置１０１は、ＥＣＯセルＣ１〜Ｃ４を配置した後にＥＣＯ−ＤＯＴセルＤを配置してもよいし、ＥＣＯ−ＤＯＴセルＤを配置した後にＥＣＯセルＣ１〜Ｃ４を配置してもよい。より詳細なＥＣＯ−ＤＯＴセルＤとＥＣＯセルＣ１〜Ｃ４との配置例については、図１０〜図１３で後述する。
【００２４】
そして、ＣＡＤ装置１０１は、配置した複数のＥＣＯセルＣ１〜Ｃ４とＥＣＯ−ＤＯＴセルＤの各々の入力端子Ｉ１〜Ｉ４とを、長さが同一の配線によってそれぞれ接続する。図１の（ｂ）では、例えば、ＣＡＤ装置１０１は、ＥＣＯセルＣ１と入力端子Ｉ１とを接続し、ＥＣＯセルＣ２と入力端子Ｉ２とを接続し、ＥＣＯセルＣ３と入力端子Ｉ３とを接続し、ＥＣＯセルＣ４と入力端子Ｉ４とを接続する。そして、ＣＡＤ装置１０１は、ＥＣＯセルＣ１から入力端子Ｉ１までの配線と、ＥＣＯセルＣ２から入力端子Ｉ２までの配線と、ＥＣＯセルＣ３から入力端子Ｉ３までの配線と、ＥＣＯセルＣ４から入力端子Ｉ４までの配線と、の長さを同一に設定する。
【００２５】
次に、図２〜図４を用いて、ＥＣＯ−ＤＯＴセルのレイアウト例を示す。以下、図２〜図４、図８、図９で示すレイアウトについて共通する内容について説明する。図２〜図４、図８、図９内の、濃いハッチで囲まれた部分は、メタル層を示す。また、図２〜図４、図８、図９内の、右上から左下に向かう斜線による薄いハッチで囲まれた部分は、ポリシリコン層を示す。また、図２〜図４、図８、図９内の、左上から右下に向かう斜線による薄いハッチで囲まれた部分は、ディフュージョン層を示す。また、図９内の、等間隔に並んだ斑点模様による中程度の濃さのハッチで囲まれた部分は、コンタクト層を示す。
【００２６】
図２は、ＥＣＯ−ＤＯＴセルＤのレイアウトの第１の例を示す説明図である。図２に示すＥＣＯ−ＤＯＴセルＤは、４つの入力端子Ｉ１、Ｉ２、Ｉ３、Ｉ４と、１つの出力端子Ｙとを有する。ここで、入力端子Ｉ１−出力端子Ｙ間と、入力端子Ｉ２−出力端子Ｙ間と、入力端子Ｉ３−出力端子Ｙ間と、入力端子Ｉ４−出力端子Ｙ間と、の配線の長さは同一となる。
【００２７】
図３は、ＥＣＯ−ＤＯＴセルＤのレイアウトの第２の例を示す説明図である。図３に示すＥＣＯ−ＤＯＴセルＤは、２つの入力端子Ｉ１、Ｉ２と、１つの出力端子Ｙとを有する。ここで、入力端子Ｉ１−出力端子Ｙ間と、入力端子Ｉ２−出力端子Ｙ間との配線の長さは同一となる。
【００２８】
図４は、ＥＣＯ−ＤＯＴセルＤのレイアウトの第３の例を示す説明図である。図４に示すＥＣＯ−ＤＯＴセルＤは、６つの入力端子Ｉ１、Ｉ２、Ｉ３、Ｉ４、Ｉ５、Ｉ６と、１つの出力端子Ｙとを有する。ここで、入力端子Ｉ１−出力端子Ｙ間と、入力端子Ｉ２−出力端子Ｙ間と、入力端子Ｉ３−出力端子Ｙ間と、入力端子Ｉ４−出力端子Ｙ間と、入力端子Ｉ５−出力端子Ｙ間と、入力端子Ｉ６−出力端子Ｙ間との配線の長さは同一となる。
【００２９】
ここで、ＥＣＯ−ＤＯＴセルＤの内の各入力端子と出力端子との配線の長さは、図２〜図４で示すように同一である。しかし、ＥＣＯ−ＤＯＴセルＤ内部の配線の長さのずれは、セル外の配線の長さと比較して微小なものであるから、ＥＣＯ−ＤＯＴセルＤ内部の配線の長さのずれにより貫通電流等が発生しない範囲でずれてもよい。次に、図５を用いて、ＥＣＯ−ＤＯＴセルＤの論理ファンクションの一例について説明する。
【００３０】
図５は、ＥＣＯ−ＤＯＴセルＤの論理ファンクションの一例を示す説明図である。図５の例では、図２に示した入力端子が４つある場合のＥＣＯ−ＤＯＴセルＤにおける論理ファンクションの例である。ＥＣＯ−ＤＯＴセルＤは、各入力端子の値と、同一の値を出力する論理回路であればどのようなものでもよい。図５の（ａ）および図５の（ｂ）では、ＥＣＯ−ＤＯＴセルＤは、入力端子Ｉ１〜Ｉ４の論理和を出力端子Ｙから出力する例を示す。
【００３１】
図５の（ａ）では、ＥＣＯ−ＤＯＴセルＤの機能を、Ｖｅｒｉｌｏｇ−ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）により記述した例を示す。また、図５の（ｂ）では、ＥＣＯ−ＤＯＴセルＤの機能を、回路記号を用いて示したものである。
【００３２】
図５の（ａ）および図５の（ｂ）に示したＥＣＯ−ＤＯＴセルＤの論理回路とは異なる例としては、各入力端子の論理積を出力端子Ｙから出力してもよい。ここで、論理和を用いることにより、各入力端子のうちのいずれか一つの入力端子の値の変化によって出力端子の値が変化するため、ＥＣＯ−ＤＯＴセルＤの論理回路として論理積を採用するより論理和を採用した方が、信号の伝達速度を向上することができる。
【００３３】
（ＣＡＤ装置１０１のハードウェア構成例）
図６は、ＣＡＤ装置１０１のハードウェア構成例を示すブロック図である。ＣＡＤ装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０１と、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）６０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６０３と、を含む。また、ＣＡＤ装置１０１は、ディスクドライブ６０４と、ディスク６０５と、通信インターフェース６０６と、を含む。また、ＣＡＤ装置１０１は、ディスプレイ６０７と、キーボード６０８と、マウス６０９とを含む。また、ＣＰＵ６０１〜ディスクドライブ６０４と、通信インターフェース６０６〜マウス６０９とは、バス６１０によってそれぞれ接続される。
【００３４】
ＣＰＵ６０１は、ＣＡＤ装置１０１の全体の制御を司る演算処理装置である。ＲＯＭ６０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ６０３は、ＣＰＵ６０１のワークエリアとして使用される揮発性メモリである。
【００３５】
ディスクドライブ６０４は、ＣＰＵ６０１の制御に従ってディスク６０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ６０４には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク６０５は、ディスクドライブ６０４の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ６０４が磁気ディスクドライブである場合、ディスク６０５には、磁気ディスクを採用することができる。また、ディスクドライブ６０４が光ディスクドライブである場合、ディスク６０５には、光ディスクを採用することができる。また、ディスクドライブ６０４がソリッドステートドライブである場合、ディスク６０５には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
【００３６】
通信インターフェース６０６は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。通信インターフェース６０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００３７】
ディスプレイ６０７は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ６０７には、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００３８】
キーボード６０８は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード６０８は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス６０９は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス６０９は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００３９】
（ＣＡＤ装置１０１の機能的構成例）
図７は、ＣＡＤ装置１０１の機能的構成例を示すブロック図である。ＣＡＤ装置１０１は、制御部７００を含む。制御部７００は、配置部７０１と、接続部７０２とを含む。制御部７００は、記憶装置に記憶されたプログラムをＣＰＵ６０１が実行することにより、配置部７０１と接続部７０２との機能を実現する。記憶装置とは、具体的には、例えば、図６に示したＲＯＭ６０２、ＲＡＭ６０３、ディスク６０５などである。または、通信インターフェース６０６を経由して他のＣＰＵが実行することにより、配置部７０１と接続部７０２の機能を実現してもよい。また、各部の処理結果は、ＣＰＵ６０１が有するレジスタや、ＲＡＭ６０３等に記憶される。
【００４０】
配置部７０１は、設計対象回路のレイアウトデータに基づいて、設計対象回路のレイアウト領域ｒ内に、ＥＣＯ−ＤＯＴセルＤと、複数のＥＣＯセルＣとを配置する。
【００４１】
また、配置部７０１は、レイアウト領域ｒ内に、入力セルＡの配置位置および出力セルＢの配置位置に基づいて、ＥＣＯ−ＤＯＴセルＤと、複数のＥＣＯセルとを配置してもよい。入力セルＡは、複数のＥＣＯセルＣに値を入力するセルである。また、出力セルＢは、ＥＣＯ−ＤＯＴセルＤの出力端子から出力された値が入力されるセルである。
【００４２】
また、配置部７０１は、レイアウト領域ｒ内に、入力セルＡの配置位置および出力セルＢの配置位置に基づいて、複数のＥＣＯセルＣを配置してもよい。そして、配置部７０１は、レイアウト領域ｒ内に、配置した複数のＥＣＯセルＣの配置位置と出力セルＢの配置位置とに基づいて、ＥＣＯ−ＤＯＴセルＤを配置する。例えば、配置部７０１は、入力セルＡの配置位置と出力セルＢの配置位置とを頂点とする矩形に含まれるＥＣＯバルクセル上に、複数のＥＣＯセルＣを配置する。そして、配置部７０１は、複数のＥＣＯセルＣのいずれかのＥＣＯセルの配置位置と出力セルＢの配置位置とを頂点とする矩形に含まれるＥＣＯバルクセル上に、ＥＣＯ−ＤＯＴセルＤを配置する。
【００４３】
また、配置部７０１は、レイアウト領域ｒ内に、入力セルＡの配置位置と出力セルＢの配置位置との中間地点に基づいて、複数のＥＣＯセルＣを配置してもよい。
【００４４】
また、配置部７０１は、レイアウト領域ｒ内に、配置した複数のＥＣＯセルＣのうちのいずれかのＥＣＯセルＣの配置位置と出力セルＢの配置位置との中間地点に基づいて、セルを配置してもよい。
【００４５】
接続部７０２は、配置部７０１が配置した複数のＥＣＯセルＣの各々のＥＣＯセルＣとＥＣＯ−ＤＯＴセルＤの各々の入力端子とを、長さが同一の配線によってそれぞれ接続する。
【００４６】
また、接続部７０２は、レイアウトデータに基づいて、ＥＣＯ−ＤＯＴセルＤの出力端子と出力セルＢの入力端子とを接続するとともに、入力セルＡの出力端子と複数のＥＣＯセルＣとを長さが同一の配線によって接続する。
【００４７】
図８は、ＥＣＯバルクセルのレイアウトの一例を示す説明図である。ＥＣＯバルクセルは、ＥＣＯセルおよびＥＣＯ−ＤＯＴセルを配置する領域として配置しておくセルである。ここで、前述したＥＣＯ−ＤＯＴセルは、ＥＣＯセルに対して、メタル配線を追加したセルである。
【００４８】
図９は、ＥＣＯセルＣのレイアウトの一例を示す説明図である。図９の（ａ）で示すＥＣＯセルＣは、１倍駆動のＥＣＯセルを示す。また、図９の（ｂ）は、２倍駆動のＥＣＯセルを示す。
【００４９】
次に、図１０〜図１３を用いて、レイアウト処理として、隣接していないＥＣＯバルクセルに４つのＥＣＯセルＣを追加する例を用いて、隣接したＥＣＯバルクセルに４倍駆動のＥＣＯセルＣと同等の機能を実現する例について説明する。ここで、４倍駆動のＥＣＯセルＣを追加すべきという情報は、例えば、タイミング解析結果により得られるものである。
【００５０】
図１０〜図１３の例では、図２で示した４つの入力端子Ｉ１〜Ｉ４を有するＥＣＯ−ＤＯＴセルＤを用いて説明する。また、以下の説明において、記述を省略するために、セルｘとセルｙとのネットを、単に、「ネットｘ＿ｙ」と記載することがある。
【００５１】
（レイアウト処理の説明）
図１０は、４倍駆動分のＥＣＯセルＣを追加する一例を示す説明図である。図１０では、ＥＣＯセルを挿入する前の状態を示す。図１０の（ａ）は、レイアウトデータを模式的に示したものであり、ＥＣＯセルを挿入する前のレイアウト領域ｒを示す。図１０の（ａ）で示すレイアウト領域ｒ内には、入力セルＡと出力セルＢとが配置されている。また、図１０の（ａ）におけるレイアウト領域ｒ内の薄いハッチを付与したセルは、ＥＣＯバルクセルを示す。図１０の（ａ）におけるレイアウト領域ｒが示すように、入力セルＡと出力セルＢとが接続されている。図１０に示すレイアウトデータは、具体的には、入力セルＡの配置位置と、出力セルＢの配置位置と、ＥＣＯバルクセルの配置位置と、入力セルＡと出力セルＢとを接続する配線の位置とを、特定する情報を含む。
【００５２】
図１０の（ａ）におけるレイアウト領域ｒが示すように、ＬＳＩ集積度が向上した結果、集積度を下げる要因となるＥＣＯバルクセルを多く挿入することができなくなっており、ＥＣＯバルクセルを連続して配置することは特に困難である。
【００５３】
図１０の（ｂ）は、図１０の（ａ）におけるレイアウト領域ｒ内のセルのネットリストｎを模式的に示したものである。図１０の（ｂ）で示すネットリストｎは、入力セルＡと出力セルＢとが接続されていることを示す。
【００５４】
図１１は、ＥＣＯセルＣの配置例を示す説明図である。まず、ＣＡＤ装置１０１は、入力端子Ｉ１〜Ｉ４から出力端子Ｙまでの配線遅延値を定義しておく。次に、ＣＡＤ装置１０１は、設計対象回路の設計者であるＣＡＤ装置１０１の利用者により、４倍駆動のリピータセルを１倍駆動のＥＣＯセルＣを４つと、ＥＣＯ−ＤＯＴセルＤを１つとで形成するように編集されたＶｅｒｉｌｏｇネットリストを受け付ける。続けて、ＣＡＤ装置１０１は、レイアウト領域ｒから、４倍駆動のリピータセル分のＥＣＯセルＣを配置する位置を探索する。そして、ＣＡＤ装置１０１は、入力セルＡから、次段となる複数のＥＣＯセルまでの配線長が同一となるように制御する。ここで、あるセルから複数のセルに対して配線長が等しくなるように配線する技術は、クロックツリー配線の技術としてあるものである。
【００５５】
図１１の（ａ）に示すレイアウト領域ｒは、図１０に示すレイアウト領域ｒから、４倍駆動のリピータセル分のＥＣＯセルＣを配置する位置を探索し、入力セルＡと探索したＥＣＯバルクセルとの配線長とを同一にした状態を示す。ここで、図１１の（ａ）におけるレイアウト領域ｒ内の濃いハッチを付与したセルＣ１〜Ｃ４が、ＥＣＯセルを配置する候補であるとする。
【００５６】
ＥＣＯセルを配置する位置の探索例を示す。まず、ＣＡＤ装置１０１は、入力セルＡの配置位置と出力セルＢの配置位置との中間地点から最も近いＥＣＯバルクセルを探索する。図１１の（ａ）に示すレイアウト領域ｒの例では、ＣＡＤ装置１０１は、入力セルＡと出力セルＢとの中間位置から最も近いＥＣＯバルクセルとして、ＥＣＯバルクセルＣ３を検出する。続けて、ＣＡＤ装置１０１は、ＥＣＯバルクセルＣ３に近い位置にあるＥＣＯバルクセルとして、順に、ＥＣＯバルクセルＣ２、Ｃ４、Ｃ１を検出する。以下、ＥＣＯバルクセルＣ１〜Ｃ４の位置にＥＣＯセルを配置したものとして、ＥＣＯセルＣ１〜Ｃ４として扱う。
【００５７】
また、入力セルＡと探索したＥＣＯセルＣとの配線長を同一にする方法の一例を示す。まず、ＣＡＤ装置１０１は、ネットＡ＿Ｃ１、ネットＡ＿Ｃ２、ネットＡ＿Ｃ３、ネットＡ＿Ｃ４の各ネットを最短で接続した場合に、配線長が最も長いネットを特定する。そして、ＣＡＤ装置１０１は、配線長が最も長いネット以外のネットの配線を、配線長が最も長いネットの配線長と同一になるように、最短ではなく迂回するように設定する。
【００５８】
図１１の（ｂ）は、図１１の（ａ）におけるレイアウト領域ｒ内の入力セルＡとＥＣＯセルＣ１〜Ｃ４とを有するネットリストｎを模式的に示したものである。図１１の（ｂ）で示すネットリストｎは、入力セルＡとＥＣＯセルＣ１〜Ｃ４とがそれぞれ接続されていることを示す。
【００５９】
図１２は、ＥＣＯ−ＤＯＴセルＤの配置例を示す説明図である。図１２では、ＣＡＤ装置１０１が、ＥＣＯセルＣ１〜Ｃ４を探索した後、レイアウト領域ｒ内に、ＥＣＯ−ＤＯＴＤセルを配置して、複数のＥＣＯバルクセルから、ＥＣＯ−ＤＯＴセルＤまでの配線長が同一となるように制御するまでを説明する。
【００６０】
図１２の（ａ）に示すレイアウト領域ｒは、図１１の（ａ）に示すレイアウト領域ｒから、ＥＣＯ−ＤＯＴセルＤを配置する位置を探索し、ＥＣＯセルＣ１〜Ｃ４からＥＣＯ−ＤＯＴセルＤまでの配線長を同一にした状態を示す。ここで、図１２の（ａ）におけるレイアウト領域ｒ内の中程度の濃さのハッチを付与したセルＤが、探索したＥＣＯ−ＤＯＴセルの位置にあるセルであることを示す。
【００６１】
ＥＣＯ−ＤＯＴセルＤを配置する位置の探索例を示す。まず、ＣＡＤ装置１０１は、ＥＣＯセルＣ１〜Ｃ４の配置位置と出力セルＢの配置位置との中間地点の位置を算出する。また、ＣＡＤ装置１０１は、ＥＣＯセルＣ１〜Ｃ４のいずれか１つの配置位置と、出力セルＢの配置位置との中間地点の位置を算出してもよい。また、ＣＡＤ装置１０１は、ＥＣＯセルＣ１〜Ｃ４の中間地点を算出した後、算出した中間地点と、出力セルＢの配置位置との中間地点の位置を算出してもよい。そして、ＣＡＤ装置１０１は、算出した中間位置から最も近いＥＣＯバルクセルの位置を、ＥＣＯ−ＤＯＴセルＤを配置する位置として決定する。
【００６２】
また、ＥＣＯセルＣ１〜Ｃ４とＥＣＯ−ＤＯＴセルＤとの配線長を同一にする方法の一例を示す。まず、ＣＡＤ装置１０１は、ネットＣ１＿Ｄ、ネットＣ２＿Ｄ、ネットＣ３＿Ｄ、ネットＣ４＿Ｄの各ネットを最短で接続した場合に、配線長が最も長いネットを特定する。そして、ＣＡＤ装置１０１は、配線長が最も長いネット以外のネットの配線長を、配線長が最も長いネットの配線長と同一になるように、最短ではなく迂回するように設定する。
【００６３】
図１２の（ｂ）は、図１２の（ａ）におけるレイアウト領域ｒ内の入力セルＡとＥＣＯセルＣ１〜Ｃ４と、ＥＣＯ−ＤＯＴセルＤとを有するネットリストｎを模式的に示したものである。図１２の（ｂ）で示すネットリストｎは、入力セルＡとＥＣＯセルＣ１〜Ｃ４とがそれぞれ接続されており、ＥＣＯセルＣ１〜Ｃ４とＥＣＯ−ＤＯＴセルＤとがそれぞれ接続されていることを示す。
【００６４】
図１２の（ａ）と図１２の（ｂ）とで示したように、ＥＣＯ−ＤＯＴセルＤを配置することにより、ＥＣＯセルＣ１〜Ｃ４−ＥＣＯ−ＤＯＴセルＤ間のネットが分けて定義されるため、それぞれのネットの配線長を指定できるようになる。
【００６５】
図１３は、ＥＣＯ−ＤＯＴセルＤから出力セルＢへの接続例を示す説明図である。図１３では、ＥＣＯ−ＤＯＴセルＤを配置した後、ＣＡＤ装置１０１が、ＥＣＯ−ＤＯＴセルＤと、出力セルＢとを接続するまでを説明する。
【００６６】
図１３の（ａ）に示すレイアウト領域ｒは、図１２の（ａ）に示すレイアウト領域ｒから、ＥＣＯ−ＤＯＴセルＤと、出力セルＢとを接続した状態を示す。図１３の（ｂ）は、図１３の（ａ）におけるレイアウト領域ｒ内の入力セルＡとＥＣＯセルＣ１〜Ｃ４と、ＥＣＯ−ＤＯＴセルＤと出力セルＢとを有するネットリストｎを模式的に示したものである。
【００６７】
図１０〜図１３で示した処理の終了後、ＣＡＤ装置１０１は、ＥＣＯセルＣを配置する位置と、ＥＣＯ−ＤＯＴセルＤを配置する位置とが適切か否かを判断する。適切か否かの具体的な判断基準については、図１５で後述する。ＥＣＯセルＣを配置する位置と、ＥＣＯ−ＤＯＴセルＤを配置する位置とが適切であれば、ＣＡＤ装置１０１は、タイミング解析を行う。一方、ＥＣＯセルＣを配置する位置と、ＥＣＯ−ＤＯＴセルＤを配置する位置とが適切でなければ、ＣＡＤ装置１０１は、ＥＣＯセルを配置する位置と、ＥＣＯ−ＤＯＴセルＤを配置する位置とを探索し直す。
【００６８】
また、図１０〜図１３では、ＥＣＯセルＣを配置する位置を探索した後に、ＥＣＯ−ＤＯＴセルＤを配置する位置を探索したが、先にＥＣＯ−ＤＯＴセルＤを配置する位置を探索してもよい。先にＥＣＯ−ＤＯＴセルＤを配置する位置を探索する方法としては、例えば、ＣＡＤ装置１０１は、出力セルＢに最も近いＥＣＯバルクセルの位置を、ＥＣＯ−ＤＯＴセルＤを配置する位置にする。次に、ＣＡＤ装置１０１は、入力セルＡの位置とＥＣＯ−ＤＯＴセルＤを配置する位置との中間地点から最も近いＥＣＯバルクセルの位置を、ＥＣＯセルＣを配置する位置とする。続けて、ＣＡＤ装置１０１は、ＥＣＯ−ＤＯＴセルを配置する位置と入力セルＡとの中間位置から最も近いＥＣＯバルクセルの位置を探索し、中間位置から最も近いＥＣＯバルクセルの位置から近いＥＣＯバルクセルから順に、ＥＣＯセルＣを配置する位置にする。
【００６９】
なお、図１０〜図１３で示したレイアウト領域ｒは、入力セルＡの位置と出力セルＢの位置とを頂点とする矩形を含むものである。そして、入力セルＡとＥＣＯセルＣ１〜Ｃ４との配線、ＥＣＯセルＣ１〜Ｃ４とＥＣＯ−ＤＯＴセルＤとの配線、ＥＣＯ−ＤＯＴセルＤと出力セルＢとの配線は、レイアウト領域ｒ内であって、前述の矩形の外側に存在してもよい。また、ＥＣＯセルやＥＣＯ−ＤＯＴセルを配置するＥＣＯバルクセルは、レイアウト領域ｒ内であって、前述の矩形の外側に存在するものでもよい。ただし、ＥＣＯセルＣやＥＣＯ−ＤＯＴセルＤの位置を探索する際には、配線長を短くすることを図るために、前述の矩の中にあるＥＣＯバルクセルを優先して探索してもよい。
【００７０】
次に、図１４と図１５とを用いて、ＣＡＤ装置１０１が実行するレイアウト処理手順のフローチャートについて説明する。
【００７１】
図１４は、レイアウト処理手順の一例を示すフローチャートである。レイアウト処理は、ＲＴＬで記述された設計対象回路のデザインデータから、ネットリストとレイアウトデータを出力する処理である。
【００７２】
ＣＡＤ装置１０１は、設計対象回路のデザインデータと、設計対象回路が遵守すべき制約条件とライブラリとを用いて、論理合成を行う（ステップＳ１４０１）。ステップＳ１４０１の処理により、ＣＡＤ装置１０１は、ネットリストを得る。次に、ＣＡＤ装置１０１は、Ｐ＆Ｒ  ＥＣＯ処理を実行する（ステップＳ１４０２）。Ｐ＆Ｒ  ＥＣＯ処理については、図１５で後述する。
【００７３】
そして、ＣＡＤ装置１０１は、Ｐ＆Ｒ  ＥＣＯ処理を行ったネットリストに対して、タイミング解析を行う（ステップＳ１４０３）。ステップＳ１４０３の処理により、ＣＡＤ装置１０１は、タイミング解析結果と、レイアウトデータを得る。
【００７４】
次に、ＣＡＤ装置１０１は、ＥＣＯセルの挿入が要求されたか否かを判断する（ステップＳ１４０４）。具体的には、ＣＡＤ装置１０１は、タイミング解析結果が、Ｍａｘ＿ｃａｐエラーや、Ｍａｘ＿ｔｒａｎエラーである場合、ＥＣＯセルの挿入が要求されたと判断する。
【００７５】
ＥＣＯセルの挿入が要求された場合（ステップＳ１４０４：Ｙｅｓ）、ＣＡＤ装置１０１は、ＣＡＤ装置１０１の利用者によってＥＣＯセルを挿入するように書き換えられたネットリストを受け付ける（ステップＳ１４０５）。そして、ＣＡＤ装置１０１は、ステップＳ１４０２の処理に移行する。
【００７６】
一方、ＥＣＯセルの挿入が要求されていない場合（ステップＳ１４０４：Ｎｏ）、ＣＡＤ装置１０１は、レイアウト処理を終了する。レイアウト処理を実行することにより、ＣＡＤ装置１０１は、自動レイアウトを行うことができる。
【００７７】
図１５は、Ｐ＆Ｒ  ＥＣＯ処理手順の一例を示すフローチャートである。Ｐ＆Ｒ  ＥＣＯ処理は、配置配線を行い、ＥＣＯを行う処理である。
【００７８】
ＣＡＤ装置１０１は、レイアウトデータに基づいて、複数のＥＣＯセルＣを配置する候補として、入力セルＡと、出力セルＢとの間の中間位置にあるＥＣＯバルクセルを探索する（ステップＳ１５０１）。次に、ＣＡＤ装置１０１は、レイアウトデータに基づいて、ＥＣＯ−ＤＯＴセルの配置位置の候補として、複数のＥＣＯセルＣと出力セルＢとの間の中間位置からＥＣＯバルクセルを探索する（ステップＳ１５０２）。
【００７９】
そして、ＣＡＤ装置１０１は、複数のＥＣＯセルＣを配置する位置と、ＥＣＯ−ＤＯＴセルＤを配置する位置とが適切か否かを判断する（ステップＳ１５０３）。具体的には、ＣＡＤ装置１０１は、下記（１）式と（２）式とがともに満たされる場合に、複数のＥＣＯセルＣを配置する位置と、ＥＣＯ−ＤＯＴセルＤを配置する位置とが適切であると判断する。（１）式および（２）式において、Ｍａｘ＿ｃａｐは、最大の負荷容量を示す。
【００８０】
入力セルＡのＭａｘ＿ｃａｐ≧（入力セルＡと複数のＥＣＯセルＣとの間の配線負荷＋複数のＥＣＯセルＣの入力容量）  …（１）
複数のＥＣＯセルＣのＭａｘ＿ｃａｐの合計≧（複数のＥＣＯセルＣの各々のＥＣＯセルとＥＣＯ−ＤＯＴセルＤとの間の配線負荷のうちの最大値）×ＥＣＯセルＣの個数＋ＥＣＯ−ＤＯＴセルＤの配線固定容量＋ＥＣＯ−ＤＯＴセルＤと出力セルＢとの間の配線負荷＋出力セルＢの入力容量  …（２）
【００８１】
複数のＥＣＯセルＣを配置する位置と、ＥＣＯ−ＤＯＴセルＤを配置する位置とが適切である場合（ステップＳ１５０３：Ｙｅｓ）、ＣＡＤ装置１０１は、探索した位置で、ＥＣＯセルＣとＥＣＯ−ＤＯＴセルＤとの位置を決定する（ステップＳ１５０４）。次に、ＣＡＤ装置１０１は、入力セルＡと複数のＥＣＯセルＣとのネットを等長配線に設定する（ステップＳ１５０５）。さらに、ＣＡＤ装置１０１は、複数のＥＣＯセルＣとＥＣＯ−ＤＯＴセルＤとのネットを等長配線に設定する（ステップＳ１５０６）。ステップＳ１５０６の処理終了後、ＣＡＤ装置１０１は、Ｐ＆Ｒ  ＥＣＯ処理を終了する。
【００８２】
一方、複数のＥＣＯセルＣを配置する位置と、ＥＣＯ−ＤＯＴセルＤを配置する位置とが適切でない場合（ステップＳ１５０３：Ｎｏ）、ＣＡＤ装置１０１は、ステップＳ１５０１の処理に移行する。再びステップＳ１５０１の処理を行う際には、ＣＡＤ装置１０１は、適切でないと判断した複数のＥＣＯセルＣを配置する位置とＥＣＯ−ＤＯＴセルＤを配置する位置との組み合わせを除いて探索する。Ｐ＆Ｒ  ＥＣＯ処理を実行することにより、ＣＡＤ装置１０１は、ＥＣＯセルを並列に配置した状態でも、１つのＥＣＯセルの複数倍の駆動能力を得ることができるＥＣＯセルおよびＥＣＯ−ＤＯＴセルの配置位置を取得することができる。
【００８３】
ここで、図１５に示したＰ＆Ｒ  ＥＣＯ処理は、ステップＳ１４０４がＹｅｓとなることにより複数回実行される。具体的には、例えば、ＣＡＤ装置１０１は、１回目のＰ＆Ｒ  ＥＣＯ処理において、４つのＥＣＯセルＣを配置する。そして、ステップＳ１４０４がＹｅｓとなった場合、ＣＡＤ装置１０１は、ステップＳ１４０３のタイミング解析により、さらに何個のＥＣＯセルＣがあればよいかという情報を出力する。ＣＡＤ装置１０１の利用者は、出力された情報に従った個数分のＥＣＯセルＣを追加するようにネットリストを編集する。
【００８４】
例えば、ＣＡＤ装置１０１は、タイミング解析により、さらに２個のＥＣＯセルＣがあればよいという情報を出力したとする。この場合、ＣＡＤ装置１０１は、ステップＳ１４０５の処理により、ＣＡＤ装置１０１の利用者によってＥＣＯセルＣが２個追加されたネットリストを受け付ける。そして、ＣＡＤ装置１０１は、図１５に示したＰ＆Ｒ  ＥＣＯ処理を再び行う。このとき、ＣＡＤ装置１０１は、ステップＳ１５０１の処理において、例えば、４つのＥＣＯセルＣとＥＣＯ−ＤＯＴセルＤとの位置をそのままにして、追加された２つのＥＣＯセルＣの位置を探索する。
【００８５】
以上説明したように、ＣＡＤ装置１０１によれば、複数のＥＣＯセルＣを配置して駆動能力を補う際、複数の入力端子と出力端子を等長配線したＥＣＯ−ＤＯＴセルＤを配置し、各入力端子と各バッファをそれぞれ等長配線する。これにより、１つのＥＣＯセルＣが有する駆動能力の複数倍の駆動能力を、複数のＥＣＯセルＣを連続して配置する領域を確保しなくても得ることができる。そして、ＣＡＤ装置１０１は、既存のレイアウトツールにより、複数のＥＣＯセルＣを連続して配置した際と同等の駆動能力を得られる自動配線を行える。従って、ＣＡＤ装置１０１の利用者は、ＥＣＯセルＣを連続配置するようにレイアウトを修正しなくてもよくなり、設計作業を効率化することができる。
【００８６】
また、ＣＡＤ装置１０１によれば、レイアウト領域内に、入力セルＡおよび出力セルＢの配置位置に基づいて、複数のＥＣＯセルＣとＥＣＯ−ＤＯＴセルＤとを配置してもよい。これにより、ＣＡＤ装置１０１は、設計作業を効率化するとともに、ＥＣＯセルＣとＥＣＯ−ＤＯＴセルＤとをランダムに配置することに比較して配線長を短くすることを図ることができる。
【００８７】
また、ＣＡＤ装置１０１によれば、レイアウト領域内に、入力セルＡおよび出力セルＢの配置位置に基づいて複数のＥＣＯセルＣを配置し、配置した複数のＥＣＯセルＣおよび出力セルＢの配置位置に基づいて、ＥＣＯ−ＤＯＴセルＤを配置してもよい。これにより、ＣＡＤ装置１０１は、設計作業を効率化するとともに、ネットＡ＿Ｃ、ネットＣ＿Ｄ、ネットＤ＿Ｂの配線長が長くなることを抑制することができる。
【００８８】
例えば、ＥＣＯ−ＤＯＴセルＤを先に配置した後、複数のＥＣＯセルＣを配置するとする。この場合、ネットＡ＿Ｃの配線長とネットＣ＿Ｄとの配線長とが長くなることを抑制するには、入力セルＡの配置位置とＥＣＯ−ＤＯＴセルＤの配置位置とを頂点とする矩形内のＥＣＯバルクセルから複数のＥＣＯセルを配置することが好ましい。
【００８９】
しかしながら、前述の矩形に含まれるＥＣＯバルクセルの個数が、配置しようとするＥＣＯセルの数より少ないと、前述の矩形の外側に存在するＥＣＯバルクセルに、ＥＣＯセルを配置することになる。前述の矩形の外側に存在するＥＣＯバルクセルの位置にＥＣＯセルを配置すると、ネットＡ＿Ｃとの配線長とネットＣ＿Ｄの配線長とが長くなってしまう。
【００９０】
これに対し、ＥＣＯセルＣを配置した後に、ＥＣＯ−ＤＯＴセルＤを配置するとする。この場合、ネットＣ＿Ｄの配線長とネットＤ＿Ｂとの配線長とが長くなることを抑制するには、ＥＣＯセルＣのいずれか一つの配置位置と出力セルＢの配置位置とを頂点とする矩形内のＥＣＯバルクセルからＥＣＯ−ＤＯＴセルＤを配置することが好ましい。そして、ＥＣＯ−ＤＯＴセルＤは一つだけ配置するため、前述の矩形に含まれるＥＣＯバルクセルの個数が１以上であれば、ネットＣ＿Ｄの配線長とネットＤ＿Ｂとの配線長とが長くなることを抑制することができる。
【００９１】
また、ＣＡＤ装置１０１によれば、入力セルＡの配置位置と出力セルＢの配置位置との中間地点に基づいて、複数のＥＣＯセルＣを配置してもよい。これにより、ＣＡＤ装置１０１は、入力セルＡおよび出力セルＢの配置位置を頂点とする矩形内のＥＣＯバルクセルからランダムに複数のＥＣＯセルＣを配置することと比較して、ネットＡ＿Ｃ、Ｃ＿Ｄ、Ｄ＿Ｂの各配線長を短くすることを図ることができる。
【００９２】
また、ＣＡＤ装置１０１によれば、配置した複数のＥＣＯセルＣのうちのいずれかのＥＣＯセルの配置位置と出力セルＢの配置位置との中間地点に基づいて、ＥＣＯ−ＤＯＴセルＤを配置してもよい。これにより、ＣＡＤ装置１０１は、入力セルＡおよび出力セルＢの配置位置を頂点とする矩形内のＥＣＯバルクセルからランダムにＥＣＯ−ＤＯＴセルＤを配置することと比較して、ネットＣ＿Ｄ、Ｄ＿Ｂの各配線長を短くすることを図ることができる。
【００９３】
また、本実施の形態にかかるＥＣＯ−ＤＯＴセルＤは、複数の入力端子に入力された値の論理和を出力してもよい。図４において、ＥＣＯ−ＤＯＴセルＤ内の複数の入力端子から出力端子までの配線長は、貫通電流等が発生しない範囲でずれてもよいことを説明した。従って、出力端子に到達する際の入力端子の値の変化のタイミングは、貫通電流等が発生しない範囲でずれがあってもよい。そして、複数の入力端子に入力された値の論理和を出力することにより、複数の入力端子のうちのいずれか一つの入力端子の値の変化によって出力端子の値が変化することになる。従って、ＥＣＯ−ＤＯＴセルＤの論理回路として論理積を採用するより論理和を採用した方が、信号の伝達速度を向上することができる。
【００９４】
なお、本実施の形態で説明したレイアウト方法は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本レイアウト方法を実行するプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本レイアウト方法を実行するプログラムは、インターネット等のネットワークを介して配布してもよい。
【００９５】
また、本実施の形態で説明したＥＣＯ−ＤＯＴセルＤは、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。
【００９６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【００９７】
（付記１）複数の入力端子と、前記複数の入力端子の各々から同一の長さの配線によって接続された出力端子と、を有するセルと、複数のバッファとを、設計対象回路のレイアウトデータに基づいて、前記設計対象回路のレイアウト領域内に配置し、配置した前記複数のバッファの各々の出力端子と前記セルの前記複数の入力端子とを、同一の長さの配線によってそれぞれ接続する、
制御部を有することを特徴とするＣＡＤ装置。
【００９８】
（付記２）前記制御部は、
前記レイアウト領域内に、前記複数のバッファの入力端子に出力端子が接続される入力セルの配置位置および前記セルの出力端子が入力端子に接続される出力セルの配置位置に基づいて、前記セルと、前記複数のバッファとを配置することを特徴とする付記１に記載のＣＡＤ装置。
【００９９】
（付記３）前記制御部は、
前記レイアウト領域内に、前記複数のバッファの入力端子に出力端子が接続される入力セルの配置位置および前記セルの出力端子が入力端子に接続される出力セルの配置位置に基づいて、前記複数のバッファを配置し、
前記レイアウト領域内に、配置した前記複数のバッファの配置位置と前記出力セルの配置位置とに基づいて、前記セルを配置することを特徴とする付記１に記載のＣＡＤ装置。
【０１００】
（付記４）前記制御部は、
前記レイアウト領域内に、前記入力セルの配置位置と前記出力セルの配置位置との中間地点に基づいて、前記複数のバッファを配置することを特徴とする付記２または３に記載のＣＡＤ装置。
【０１０１】
（付記５）前記制御部は、
前記レイアウト領域内に、配置した前記複数のバッファのうちのいずれかのバッファの配置位置と前記出力セルの配置位置との中間地点に基づいて、前記セルを配置することを特徴とする付記２〜４のいずれか一つに記載のＣＡＤ装置。
【０１０２】
（付記６）前記セルの出力端子は、前記複数の入力端子に入力された値の論理和を出力することを特徴とする付記２〜５のいずれか一つに記載のＣＡＤ装置。
【０１０３】
（付記７）前記制御部は、
前記レイアウトデータに基づいて、前記セルの出力端子と前記出力セルの入力端子とを接続するとともに、前記入力セルの出力端子と前記複数のバッファの入力端子とを同一の長さの配線によって接続することを特徴とする付記２〜６のいずれか一つに記載のＣＡＤ装置。
【０１０４】
（付記８）複数の入力端子と、
前記複数の入力端子の各々から同一の長さの配線によって接続された出力端子と、を有し、
前記複数の入力端子の各々と、同一の長さの配線によって複数のバッファの各々の出力端子とが、それぞれ接続されることを特徴とするセル。
【０１０５】
（付記９）コンピュータが、
複数の入力端子と、前記複数の入力端子の各々から同一の長さの配線によって接続された出力端子と、を有するセルと、複数のバッファとを、設計対象回路のレイアウトデータに基づいて、前記設計対象回路のレイアウト領域内に配置し、配置した前記複数のバッファの各々の出力端子と前記セルの前記複数の入力端子の各々とを、同一の長さの配線によってそれぞれ接続する、
処理を実行することを特徴とするレイアウト方法。
【０１０６】
（付記１０）コンピュータに、
複数の入力端子と、前記複数の入力端子の各々から同一の長さの配線によって接続された出力端子と、を有するセルと、複数のバッファとを、設計対象回路のレイアウトデータに基づいて、前記設計対象回路のレイアウト領域内に配置し、配置した前記複数のバッファの各々の出力端子と前記セルの前記複数の入力端子の各々とを、同一の長さの配線によってそれぞれ接続する、
処理を実行させることを特徴とするレイアウトプログラム。
【符号の説明】
【０１０７】
Ａ  入力セル
Ｂ  出力セル
Ｃ１〜Ｃ４  ＥＣＯセル
Ｄ  ＥＣＯ−ＤＯＴセル
Ｉ１〜Ｉ４  入力端子
Ｙ  出力端子
１０１  ＣＡＤ装置
７００  制御部
７０１  配置部
７０２  接続部
【図１】
2015210703.tif 000003
【図２】
2015210703.tif 000004
【図３】
2015210703.tif 000005
【図４】
2015210703.tif 000006
【図５】
2015210703.tif 000007
【図６】
2015210703.tif 000008
【図７】
2015210703.tif 000009
【図８】
2015210703.tif 000010
【図９】
2015210703.tif 000011
【図１０】
2015210703.tif 000012
【図１１】
2015210703.tif 000013
【図１２】
2015210703.tif 000014
【図１３】
2015210703.tif 000015
【図１４】
2015210703.tif 000016
【図１５】
2015210703.tif 000017