(57)【要約】【課題】本発明は、多ビットセルを使用した半導体集積回路の設計方法及び半導体集積回路の設計プログラム並びに半導体集積回路の設計支援装置に関し、ユニットセルを多ビット化しても配線の混雑を防止でき、小型化を図ることができる半導体集積回路の設計方法及び半導体集積回路の設計プログラム並びに半導体集積回路の設計支援装置を提供することを目的とする。【解決手段】論理合成時に、複数のユニットセルを仮想配線すると共に仮想配線された当該複数のユニットセルの一部を組み合わせて複数の多ビットセルを生成し（ステップＳ１）、当該複数のユニットセルと当該複数の多ビットセルとを配置し（ステップＳ２）、当該複数のユニットセルと当該複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御し（ステップＳ３）、当該複数のユニットセルと当該複数の多ビットセルとを本配線する（ステップＳ４）。【選択図】図２
2008204171.tif 000002
【特許請求の範囲】
【請求項１】
論理合成部が論理合成時に、所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された前記複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成し、
配置処理部が前記複数のユニットセルと、前記複数の多ビットセルとを配置し、
制御部が前記複数のユニットセルと前記複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御し、
配線処理部が前記複数のユニットセルと、前記複数の多ビットセルとを本配線すること
を特徴とする半導体集積回路の設計方法。
【請求項２】
請求項１記載の半導体集積回路の設計方法において、
前記論理合成後に、前記配置処理部は、前記多ビットセルを構成する前記複数のユニットセルのうちの１つの入出力端子に仮想配線された前記複数のユニットセル同士を短絡してから、前記複数の多ビットセルと、前記複数のユニットセルとを配置し、
前記制御部は、短絡された前記複数のユニットセルの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御すること
を特徴とする半導体集積回路の設計方法。
【請求項３】
請求項１又は２に記載の半導体集積回路の設計方法において、
前記制御部は、前記複数の多ビットセルに接続された前記複数のユニットセルから、仮想配線の繋ぎ換えの対象となる対象ユニットセルと、前記対象ユニットセルとの間で仮想配線が繋ぎ換えられる被対象ユニットセルとを選択し、
前記配置処理部は、前記対象ユニットセルと前記被対象ユニットセルとの仮想配線を繋ぎ換え、
前記制御部は、繋ぎ換え前に対して繋ぎ換え後の方が前記対象ユニットセルの配線長が短くなったら前記対象ユニットセルと前記被対象ユニットセルとの仮想配線を繋ぎ換えるように前記配置処理部を制御し、繋ぎ換え前に対して繋ぎ換え後の方が前記対象ユニットセルの配線長が長くなった又は変わらなかったら前記対象ユニットセルと前記被対象ユニットセルとの仮想配線の繋ぎ換えをしないように前記配置処理部を制御すること
を特徴とする半導体集積回路の設計方法。
【請求項４】
請求項１又は２に記載の半導体集積回路の設計方法において、
前記配置処理部は、前記複数の多ビットセルの入出力端子に仮想配線された前記複数のユニットセル同士の中点位置をそれぞれ算出し、
前記制御部は、
前記複数の多ビットセルが仮想配線された前記複数のユニットセルから仮想配線の繋ぎ換えの対象となる対象ユニットセルを選択し、
前記対象ユニットセルに接続された前記複数の多ビットセルの配置位置と、前記中点位置との距離に基づいて前記対象ユニットセルの仮想配線の繋ぎ換えを制御すること
を特徴とする半導体集積回路の設計方法。
【請求項５】
請求項４記載の半導体集積回路の設計方法において、
前記制御部は、
前記複数のユニットセルから前記距離が最短となる被対象ユニットセルを抽出し、
前記対象ユニットセルと前記被対象ユニットセルとが異なる場合には前記対象ユニットセルと前記被対象ユニットセルとの仮想配線を繋ぎ換えるように前記配置処理部を制御し、前記対象ユニットセルと前記被対象ユニットセルとが同一の場合には前記対象ユニットセルと前記被対象ユニットセルとの仮想配線を繋ぎ換えないように前記配置処理部を制御すること
を特徴とする半導体集積回路の設計方法。
【請求項６】
請求項１乃至５のいずれか１項に記載の半導体集積回路の設計方法をコンピュータに実行させる半導体集積回路の設計プログラム。
【請求項７】
論理合成時に、所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された前記複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成する論理合成部と、
前記複数のユニットセルと、前記複数の多ビットセルとを配置する配置処理部と、
前記複数のユニットセルと前記複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御する制御部と、
前記複数のユニットセルと、前記複数の多ビットセルとを本配線する配線処理部と
を有することを特徴とする半導体集積回路の設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多ビットセルを使用した半導体集積回路の設計方法及び半導体集積回路の設計プログラム並びに半導体集積回路の設計支援装置に関する。
【背景技術】
【０００２】
本願では、多ビットセルとは、同一の機能・論理を有する２個以上のユニットセルが組み合わされた１つのセル、又は異なる機能・論理を有する２個以上のユニットセルが組み合わされた１つのセルをいう。
【０００３】
例えば２ｂｉｔインバータ回路等の多ビットのユニットセルのセルサイズは、トランジスタのソース領域の共通化等により、１ｂｉｔのユニットセルのビット数倍よりセルサイズを小さくすることができる。これにより、半導体集積回路のチップサイズの削減を図ることができる。
【０００４】
ユニットセルの多ビット化は論理合成段階で行われる。そのため、レイアウト設計段階でユニットセルを配置すると、配置位置の遠い１ビットのユニットセル同士が多ビット化されていることがある。その結果、半導体集積回路の配線は混雑してしまう。
【０００５】
図１１は、従来の半導体集積回路の設計方法のフローチャートである。図１１に示すように、従来の半導体集積回路の設計方法は、論理合成する段階で所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された当該複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成し（ステップＳ１０１）、当該複数の多ビットセルと当該複数のユニットセルを自動配置し（ステップＳ１０２）、当該複数の多ビットセル及び当該複数のユニットセルを自動配線する（ステップＳ１０３）ことにより行われる。
【０００６】
図１２は、図１１に示すステップＳ１０２において自動配線された半導体集積回路のレイアウト図を模式的に示している。ステップＳ１０１において、バッファ機能を発揮する入力側ユニットセルＩｃ０の出力端子は、インバータ回路機能を発揮するユニットセルＵｃ０の入力端子に仮想的に接続され、ユニットセルＵｃ０の出力端子は、バッファ機能を発揮する出力側ユニットセルＯｃ０に仮想的に接続される。同様に、入力側ユニットセルＩｃ１、Ｉｃ２、Ｉｃ３の入力端子はユニットセルＵｃ１、Ｕｃ２、Ｕｃ３の入力端子に仮想的にそれぞれ接続され、ユニットセルＵｃ１、Ｕｃ２、Ｕｃ３の出力端子は、出力側ユニットセルＯｃ１、Ｏｃ２、Ｏｃ３に仮想的にそれぞれ接続される。
【０００７】
さらに、ステップＳ１０１において、ユニットセルＵｃ０、Ｕｃ１、Ｕｃ２、Ｕｃ３は多ビット化されて、ユニットセルＵｃ０、Ｕｃ２を組み合わせて多ビット化（図１２では、２ビット化）した多ビットセルＭｃ０と、ユニットセルＵｃ１、Ｕｃ３を組み合わせて多ビット化した多ビットセルＭｃ１とが生成される。
【０００８】
ステップＳ１０１の論理合成段階では、入力側ユニットセルＩｃ０〜Ｉｃ３、多ビットセルＭｃ０、Ｍｃ１及び出力側ユニットセルＯｃ０〜Ｏｃ３の接続関係が決定されるだけで、実際に配線されない。また、論理合成段階では、入力側ユニットセルＩｃ１〜Ｉｃ４、多ビットセルＭｃ０、Ｍｃ１及び出力側ユニットセルＯｃ０〜Ｏｃ３の互いの配置関係は不明である。このため、図１２に示すように、ステップＳ１０２において、各セルＩｃ１〜Ｉｃ４、Ｍｃ１、Ｍｃ２、Ｏｃ１〜Ｏｃ４が配置されると、領域αにおいて仮想配線が混雑する。ステップＳ１０３において、仮想配線に基づいて実際に配線（本配線）される。このため、設計が完了した半導体集積回路の配線は混雑してしまう。
【特許文献１】特開２００６−１３９７６５号公報
【特許文献２】特開平０５−２３５１６５号公報
【特許文献３】特開２００１−５３１５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
このように、論理合成段階で多ビット化された多ビットセルＭｃ０、Ｍｃ１を有する半導体集積回路は、配置位置が遠い１ビットのユニットセルＵｃ０、Ｕｃ２を多ビット化し、ユニットセルＵｃ１、Ｕｃ３を多ビット化していることがある。これにより、半導体集積回路は、配線が困難になる可能性がある。自動配線した結果、半導体集積回路の配線が混雑した場合には、ユニットセルの多ビット化を諦めるか、半導体集積回路の配線の混雑を許容するしかなかった。
【００１０】
本発明の目的は、ユニットセルを多ビット化しても配線の混雑を防止でき、チップサイズの小型化を図ることができる半導体集積回路の設計方法及び半導体集積回路の設計プログラム並びに半導体集積回路の設計支援装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的は、論理合成部が論理合成時に、所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された前記複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成し、配置処理部が前記複数のユニットセルと、前記複数の多ビットセルとを配置し、制御部が前記複数のユニットセルと前記複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御し、配線処理部が前記複数のユニットセルと、前記複数の多ビットセルとを本配線することを特徴とする半導体集積回路の設計方法によって達成される。
【００１２】
また、上記目的は、上記本発明の半導体集積回路の設計方法をコンピュータに実行させる半導体集積回路の設計プログラムによって達成される。
【００１３】
また、上記目的は、論理合成時に、所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された前記複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成する論理合成部と、前記複数のユニットセルと、前記複数の多ビットセルとを配置する配置処理部と、前記複数のユニットセルと前記複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御する制御部と、前記複数のユニットセルと、前記複数の多ビットセルとを本配線する配線処理部とを有することを特徴とする半導体集積回路の設計支援装置によって達成される。
【発明の効果】
【００１４】
本発明によれば、ユニットセルを多ビット化しても配線の混雑が解消され、チップサイズが小型化された半導体集積回路が実現できる。
【発明を実施するための最良の形態】
【００１５】
本発明の一実施の形態による半導体集積回路の設計方法及び半導体集積回路の設計プログラム並びに半導体集積回路の設計支援装置について図１乃至図１０を用いて説明する。本実施の形態による半導体集積回路の設計方法は、スタンダードセル設計方法に関する。まず、本実施の形態による半導体集積回路の設計支援装置の概略の構成を図１を用いて説明する。図１は、本実施の形態による半導体集積回路の設計支援装置１のブロック図である。図１に示すように、半導体集積回路の設計支援装置１は、論理合成時に、所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された当該複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成する論理合成部５を有している。また、半導体集積回路の設計支援装置１は、当該複数のユニットセルと、当該複数の多ビットセルとを配置する配置処理部７と、当該複数のユニットセルと当該複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御する制御部３とを有している。さらに、半導体集積回路の設計支援装置１は、当該複数のユニットセルと、当該複数の多ビットセルとを本配線する配線処理部９とを有している。
【００１６】
また、半導体集積回路の設計支援装置１は、主記憶部１１と、表示部１３と、補助記憶部１５と、入出力部１７とを有している。主記憶部１１は、例えば論理合成部５で仮想配線されたユニットセルと多ビットセルとの接続関係等を記憶している。補助記憶部１５は、本実施の形態の半導体集積回路の設計方法を実行するプログラムや例えば種々の機能を有する複数種類のユニットセルのライブラリを記憶している。表示部１３は、例えば配置処理部７や配線処理部９で生成されたレイアウト図を表示する。入出力部１７は、例えば論理合成部５で論理合成する論理回路を記述したハードウェア記述言語が入力されたり、論理合成部５によって仮想配線されたユニットセルや多ビットセルの接続関係をテキストデータで表したネットリストを出力したりする。
【００１７】
制御部３は、論理合成部５、配置処理部７、配線処理部９、主記憶部１１、表示部１３、補助記憶部１５及び入出力部１７を制御するようになっている。制御部３、論理合成部５、配置処理部７及び配線処理部９は、例えば中央処理装置２の有する一機能であってもよい。
【００１８】
本実施の形態による半導体集積回路の設計方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することにより実現することができる。また、プログラムは、例えばハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、当該記録媒体を介して、また、伝送媒体としてネットワークを介して配布することができる。
【００１９】
次に、本実施の形態による半導体集積回路の設計方法について図２乃至図４を用いて説明する。図２は、半導体集積回路の設計方法の基本フローチャートを示している。以下に説明する半導体集積回路の設計方法は、例えば当該半導体集積回路の設計方法をコンピュータに実行させるプログラムを用いてコンピュータで実行される。図２に示すように、論理合成部５が論理合成時に、所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された当該複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成し（ステップＳ１）、配置処理部７が当該複数のユニットセルと、当該複数の多ビットセルとを例えば自動配置し（ステップＳ２）、制御部３が当該複数のユニットセルと当該複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御し（ステップＳ３）、配線処理部９が当該複数のユニットセルと、当該複数の多ビットセルとを例えば自動的に本配線する（ステップＳ４）。
【００２０】
本実施の形態の半導体集積回路の設計方法は、図１１に示す従来の半導体集積回路の設計方法と同様の論理合成処理（ステップＳ１）、自動配置処理（ステップＳ２）及び自動配線処理（ステップＳ４）が行われる。ところが、本実施の形態の半導体集積回路の設計方法は、従来の半導体集積回路の設計方法と異なり自動配線処理を行う前に多ビットセルに仮想的に接続された配線の配線長が短くなるように配線の繋ぎ換えを行うフェーズ（ステップＳ３）が追加されている点に特徴を有している。これにより、半導体集積回路の配線の混雑は解消される。
【００２１】
図３は、図２に示すステップＳ３の多ビットセルの配線繋ぎ変え処理のフローチャートである。図４は、ステップＳ３の多ビットセルの配線繋ぎ換え処理前後の半導体集積回路の模式的なレイアウト図である。図４に示す半導体集積回路は、物理的な構造物ではなく、例えば表示部１３に表示された画像である。図４（ａ）は、配線繋ぎ換え処理前の半導体集積回路のレイアウト図であり、図４（ｂ）は、配線繋ぎ換え処理後の半導体集積回路のレイアウト図である。なお、図４（ａ）及び図４（ｂ）において、多ビットセルＭｃｉ、Ｍｃ（ｎ／２）に仮想配線されたユニットセルの記載は省略されている。
【００２２】
図３に示す多ビットセルの配線の繋ぎ換えを行うアルゴリズムは、自動配置アルゴリズムの配置改善手法であるペア交換法を応用している。当該アルゴリズムはユニットセルと多ビットセルとを接続する仮想配線に対して行われる。図４（ａ）に示すように、本実施の形態の半導体集積回路の設計方法では、多ビットセルＭｃ０、Ｍｃ１等と接続関係のある入力側の仮想配線に番号Ｉ０、Ｉ１等を割り付け、出力側の仮想配線に番号Ｏ０、Ｏ１等を割り付けて、総当りで入出力側の仮想配線の交換が行われる。配線交換の前後で配線長が見積もられ、交換後の配線長が交換前の配線長より短くなった場合には、当該交換が採用される。
【００２３】
図３に示すように、多ビットセルの配線繋ぎ換え処理では、まず初期設定が行われる（ステップＳ１０）。ステップＳ１０では、入力側ユニットセルＩｃ及び出力側ユニットセルＯｃの最大値が設定される。さらに、ステップＳ１０では、対象ユニットセルＲｃｉの初期値がｉ＝０に設定され、被対象ユニットセルＲＲｃｊの初期値がｊ＝１に設定される。対象ユニットセルＲｃｉとは、複数の多ビットセルＭｃ０〜Ｍｃ（ｎ／２）に接続された入出力側の複数のユニットセルＩｃ０〜Ｉｃｎ、Ｏｃ０〜Ｏｃｎから選択され、仮想配線の繋ぎ換えの対象となるユニットセルをいう。また、被対象ユニットセルＲＲｃｊとは、対象ユニットセルＲｃｉとの間で仮想配線が繋ぎ換えられるユニットセルをいう。なお、対象ユニットセルＲｃｉは入力側ユニットセルＩｃｉと出力側ユニットセルＯｃｉとを含み、被対象ユニットセルＲＲｃｊは入力側ユニットセルＩｃｊと出力側ユニットセルＯｃｊとを含む。
【００２４】
次に、対象ユニットセルＲｃｉと被対象ユニットセルＲＲｃｊとが同一であるか否か、すなわちｉ＝ｊの関係を満たすか否かが判断される（ステップＳ１１）。ｉ＝ｊである場合には（ステップＳ１１のＹ）、仮想配線の交換をすることができないので、ｊに１を加算して（ステップＳ１２）、対象ユニットセルＲｃｉの仮想配線の長さが算出される（ステップＳ１３）。ｉ＝ｊでない場合には（ステップＳ１１のＮ）、対象ユニットセルＲｃｉの仮想配線の長さが算出される（ステップＳ１３）。対象ユニットセルＲｃｉの仮想配線の長さは、入力側ユニットセルＩｃｉ及び出力側ユニットセルＯｃｉにそれぞれ接続された仮想的な入力側配線Ｉｉ及び出力側配線Ｏｉの各長さの合計である。
【００２５】
次に、対象ユニットセルＲｃｉの入力側配線Ｉｉの多ビットセルＭｃへの繋ぎ先と、被対象ユニットセルＲＲｃｊの入力側配線Ｉｊの多ビットセルＭｃへの繋ぎ先とを交換する（ステップＳ１４）。同様に、対象ユニットセルＲｃｉの出力側配線Ｏｉの多ビットセルＭｃへの繋ぎ先と、被対象ユニットセルＲＲｃｊの出力側配線Ｏｊの多ビットセルＭｃへの繋ぎ先とを交換する（ステップＳ１４）。
【００２６】
次に、対象ユニットセルＲｃｉの仮想的な配線長を算出する（ステップＳ１５）。次に、対象ユニットセルＲｃｉの仮想的な入出力側の各配線Ｉｉ、Ｏｉの繋ぎ換え前後の配線長を比較して、繋ぎ換え前に対して繋ぎ換え後の方が対象ユニットセルＲｃｉの仮想配線の配線長が短くなったら（ステップＳ１６のＹ）、対象ユニットセルＲｃｉと被対象ユニットセルＲＲｃｊとの仮想配線の繋ぎ換えを採用する（ステップＳ１７）。また、繋ぎ換え前に対して繋ぎ換え後の方が対象ユニットセルＲｃｉの仮想配線の配線長が長くなった又は変わらなかったら対象ユニットセルＲｃｉと被対象ユニットセルＲＲｃｊとの繋ぎ換えを不採用（破棄）にして、多ビットセルＭｃと対象ユニットセルＲｃｉ及び被対象ユニットセルＲＲｃｊとの仮想配線を元に戻す（ステップＳ１８）。
【００２７】
次に、被対象ユニットセルＲＲｃのｊが最大値か否かを判断する（ステップＳ１９）。ｊが最大値でない場合には（ステップＳ１９のＮ）、ｊに１を加算して、ステップＳ１１からステップＳ２０まで同様の動作が行われ、対象ユニットセルＲｃｉと被対象ユニットセルＲＲｃｊとの仮想配線を交換する。ｊが最大値である場合には（ステップＳ１９のＹ）、対象ユニットセルＲｃのｉが最大値か否かを判断する（ステップＳ２１）。ｉが最大値でない場合には（ステップＳ２１のＮ）、ｉに１を加算し、ｊを０に設定して（ステップＳ２２）、ステップＳ１１からステップＳ２２まで同様の動作が行われ、対象ユニットセルＲｃｉと被対象ユニットセルＲＲｃｊとの仮想配線を交換する。ｉが最大値である場合には（ステップＳ２１のＹ）、図２に示すステップＳ３の多ビットセルの配線繋ぎ換え処理が終了する（Ａ終了）。
【００２８】
次に、図１、図３及び図４を用いて、図２に示すステップＳ３の多ビットセルの配線繋ぎ換え処理をより具体的に説明する。制御部３は、入出力側の各ユニットセルＩｃ、Ｏｃのそれぞれの最大値ｎと、対象ユニットセルＲｃｉ及び被対象ユニットセルＲＲｃｊの初期値をｉ＝０、ｊ＝１を主記憶部１１に記憶する（ステップＳ１０）。これにより、制御部３は、複数の多ビットセルＭｃ０〜Ｍｃ（ｎ／２）に接続された複数の入力側ユニットセルＩｃ０〜Ｉｃｎ及び複数の出力側ユニットセルＯｃ０〜Ｏｃｎから、仮想配線の繋ぎ換えの対象となる対象ユニットセルＲｃ０（入出力側の各ユニットセルＩｃ０、Ｏｃ０）と、対象ユニットセルＲｃ０との間で仮想配線が繋ぎ換えられる被対象ユニットセルＲＲｃ１（入出力側の各ユニットセルＩｃ１、Ｏｃ１）とを選択する。
【００２９】
対象ユニットセルＲｃ０はｉ＝０であり、被対象ユニットセルＲＲｃ１はｊ＝１であるので、ｉとｊとは異なる値となり（ステップＳ１１のＮ）、制御部３は対象ユニットセルＲｃ０の仮想配線の配線長を算出して当該配線長を主記憶部１１に記憶する。（ステップＳ１３）。次に、配置処理部７は、被対象ユニットセルＲＲｃ１と、対象ユニットセルＲｃ０との仮想配線を繋ぎ換える（ステップＳ１４）。例えば、配置処理部７は、図４に示す入出力側の各配線Ｉ０、Ｏ０を多ビットセルＭｃ１のユニットセルＵｃ１に仮想的に接続し、入出力側の各配線Ｉ１、Ｏ１を多ビットセルＭｃ０のユニットセルＵｃ０に仮想的に接続する。
【００３０】
次に、制御部３は、配線交換後の対象ユニットセルＲｃ０の配線長を算出して算出結果を主記憶部１１に記憶する（ステップＳ１５）。制御部３は対象ユニットセルＲｃ０の配線交換前後の配線長を比較する（ステップＳ１６）。図４に示すように、ユニットセルＵｃ１は、ユニットセルＵｃ０と比較して入出力側の各ユニットセルＩｃ０、Ｏｃ０から離れた位置に配置されている。このため、制御部３は、繋ぎ換え前に対して繋ぎ換え後の対象ユニットセルＲｃ０の配線長が長くなったと判断し（ステップＳ１６のＮ）、対象ユニットセルＲｃ０と被対象ユニットセルＲＲｃ１との繋ぎ換えをしないように配置処理部７を制御する（ステップＳ１８）。配置処理部７は、対象ユニットセルＲｃ０、被対象ユニットセルＲＲｃ１及び多ビットセルＭｃ０、Ｍｃ１の仮想配線を元に戻す。
【００３１】
次に、制御部３は被対象ユニットセルＲＲｃ１のｊが最大値ｎでないため（ステップＳ１９のＮ）、１（＝ｊ）に１を加算する（ステップＳ２０）。半導体集積回路の設計支援装置１は、以下ステップＳ１１〜ステップＳ２０を繰り返し実行して、対象ユニットセルＲｃ０と、被対象ユニットセルＲＲｃ２〜ＲＲｃｎとを総当りで仮想配線を交換する。対象ユニットセルＲｃ０と被対象ユニットセルＲＲｃｎ（ｎはｊの最大値）との配線交換が終了すると（ステップＳ１９のＹ）、対象ユニットセルＲｃ０のｉは最大値ｎでないため（ステップＳ２１のＮ）、制御部３は０（＝ｉ）に１を加算し、ｊを０に設定する（ステップＳ２２）。半導体集積回路の設計支援装置１は、ステップＳ１１〜ステップＳ２０を繰り返し実行して、対象ユニットセルＲｃ１と、被対象ユニットセルＲＲｃ０〜ＲＲｃｎとを総当りで配線交換する。
【００３２】
以下同様に、半導体集積回路の設計支援装置１は、対象ユニットセルＲｃｎ（ｎはｉの最大値）となるまで配線交換処理を繰り返す。例えば、図４（ａ）に示すように、対象ユニットセルＲｃ１（入出力側の各ユニットセルＩｃ１、Ｏｃ１）と被対象ユニットセルＲＲｃ２（入出力側の各ユニットセルＩｃ２、Ｏｃ２）との仮想配線を交換すると、対象ユニットセルＲｃ１の配線長は短くなる（ステップＳ１６のＹ）。このため、制御部１は、対象ユニットセルＲｃ１の入出力側の各配線Ｉ１、Ｏ１と、被対象ユニットセルＲＲｃ２の入出力側の各配線Ｉ２、Ｏ２との配線交換を採用する（ステップＳ１７）。これにより、図４（ｂ）に示すように、半導体集積回路の仮想配線の混雑が解消される。
【００３３】
以上説明したように、本実施の形態による半導体集積回路の設計方法によれば、レイアウト段階で多ビットセルＭｃの仮想配線の繋ぎ換え等を行うことにより、複数の多ビットセルと当該複数の多ビットセルにそれぞれ接続された複数のユニットセルとの配線の混雑を解消することができる。半導体集積回路は、複数の多ビットセルと複数のユニットセルとを接続する配線の長さが短くなるので、チップサイズの縮小化を図ることができる。これにより、半導体集積回路の配線容量は小さくなるので、低消費電力化及び高速化を容易に図ることができる。また、半導体集積回路の自動配線が容易になる。さらに、本実施の形態による半導体集積回路の設計方法及びそれを用いた設計プログラムは、複数の多ビットセルと複数のユニットセルとを接続する配線に対してペア交換法を応用することにより、所定の時間をかけることにより良好な結果が得られるというペア交換法の優位性を享受できる。
【００３４】
次に、本実施の形態の第１の変形例による半導体集積回路の設計方法について、図５乃至図９を用いて説明する。本変形例による半導体集積回路の設計方法は、多ビットセルの配線繋ぎ換え処理が上記実施の形態と異なる点を除いて、図２に示す基本的なフローチャートに基づいて実行される。図５は、図２に示すステップＳ３の多ビットセルの配線繋ぎ変え処理のフローチャートである。図６は、図５に示すステップＳ３２のインスタンスの中点位置の算出処理のフローチャートである。図７は、図５に示すステップＳ３３の対象ユニットセルに接続された多ビットセルの配置位置と、インスタンスの中点位置との距離の算出処理のフローチャートである。図８は、図５に示すステップＳ３４の配線交換処理のフローチャートである。図９は、図２に示すステップＳ３の多ビットセルの配線繋ぎ換え処理前後の半導体集積回路の模式的なレイアウト図である。図９に示す半導体集積回路は、物理的な構造物ではなく、例えば表示部１３に表示された画像である。図９（ａ）は、配線繋ぎ換え処理前の半導体集積回路のレイアウト図であり、図９（ｂ）は、配線繋ぎ換え処理後の半導体集積回路のレイアウト図である。なお、図９（ａ）及び図９（ｂ）において、ユニットセルＵｃｊ、Ｕｃｍに仮想配線された入出力側の各ユニットセルの記載は省略されている。
【００３５】
本変形例による半導体集積回路の設計方法は、複数の多ビットセルと接続関係にある全ての入出力側の各ユニットセルの端子位置の中点座標を計算し、当該端子位置に最も近い多ビットセルに入出力側の各ユニットセルの配線が交換されるようになっている。
【００３６】
図５に示すように、本変形例の多ビットセルの配線繋ぎ換え処理では、まず初期設定が行われる（ステップＳ３１）。ステップＳ３１では、入力側ユニットセルＩｃ及び出力側ユニットセルＯｃの最大値が設定される。さらに、ステップＳ３１では、対象ユニットセルＲｃｉの初期値がｉ＝０に設定され、被対象ユニットセルＲＲｃｊの初期値がｊ＝０に設定される。
【００３７】
次に、多ビットセルＭｃ０〜Ｍｃ（ｎ／２）の入出力端子に仮想配線された全てのインスタンス（入力側ユニットセルＩｃ０〜Ｉｃｎ及び出力側ユニットセルＯｃ０〜Ｏｃｎ）同士の中点位置をそれぞれ算出する（ステップＳ３２）。
【００３８】
ここで、ステップＳ３２での処理について図６を用いて具体的に説明する。ステップＳ３２では、図９（ａ）に示すように、多ビットセルＭｃ０〜Ｍｃ（ｎ／２）と接続関係があり、多ビットセルＭｃ０〜Ｍｃ（ｎ／２）以外のインスタンスである全ての入出力側の各ユニットセルＩｃ０〜Ｉｃｎ、Ｏｃ０〜Ｏｃｎの端子位置Ｉｐ０〜Ｉｐｎ、Ｏｐ０〜Ｏｐｎの中点位置Ｃｐ０〜Ｃｐｎがそれぞれ算出される。図６に示すように、まずインスタンス（ｉ）の中点位置が算出される（ステップＳ４１）。初期設定によりｉ＝０と設定されているので、ステップＳ４１において、インスタンス（０）である入力側ユニットセルＩｃ０の端子位置Ｉｐ０及び出力側ユニットセルＯｃ０の端子位置Ｏｐ０との中点位置Ｃｐ０が算出さる。次いで、中点位置Ｃｐ０を記憶する（ステップＳ４２）。次いで、入出力側の各ユニットセルＩｃ、Ｏｃのｉが最大値か否かが判断される（ステップＳ４３）。ｉは最大値ｎではないので（ステップＳ４３のＮ）、０に１が加算される（ステップＳ４４）。以下、ステップＳ４１からステップＳ４４が繰り返され、中点位置Ｃｐ１〜Ｃｐｎが算出されて記憶される。ｉが最大値となったら（ステップＳ４３のＹ）、ｉに０が入力されて（ステップＳ４５）、インスタンス（ｉ）の中点位置の算出処理が終了する（Ｂ終了）。
【００３９】
次に、図５に示すように、多ビットセルＭｃ０に仮想配線されたユニットセルから仮想配線の繋ぎ換えの対象となる対象ユニットセルＲｃ０（入出力側の各ユニットセルＩｃ０、Ｏｃ０）を選択して、対象ユニットセルＲｃ０に接続された多ビットセルＭｃ０の配置位置と、全てのインスタンス（ｊ）の中点位置との距離ｌ（０ｊ）をそれぞれ算出する（ステップＳ３３）。
【００４０】
ここで、ステップＳ３３での処理について図７を用いて具体的に説明する。図７に示すように、ステップＳ４２で記憶されたインスタンス（ｊ＝０）の中点位置Ｃｐ０を読出す（ステップＳ５１）。次に、対象ユニットセルＲｃ０に接続されて多ビットセルＭｃ０を構成するユニットセルＵｃ０の配置位置Ｕｐ０を読出す（ステップＳ５２）。多ビットセルＭｃ０〜Ｍｃ（ｎ／２）をそれぞれ構成するユニットセルＵｃ０〜Ｕｃｎの配置位置Ｕｐ０〜Ｕｐｎは、自動配置処理（ステップＳ２）が終了した段階で算出され、主記憶部１１に記憶される。
【００４１】
次に、ユニットセルＵｃ０の配置位置Ｕｐ０と、インスタンスの中点位置Ｃｐ０との距離ｌ（００）を算出する（ステップＳ５３）。次に、距離ｌ（００）を記憶する（ステップＳ５４）。次に、中点位置Ｃｐのｊの値が最大値か否かを判断する（ステップＳ５５）。距離ｌが算出されたインスタンスは、ｊ＝０であって最大値ではなので（ステップＳ５５のＮ）、ｊに１が加算される（ステップＳ５６）。以下、ステップＳ５１からステップＳ５６が繰り返し実行され、ユニットセルＵｃ０の配置位置Ｕｐ０と、中点位置Ｃｐ１〜Ｃｐｎとの距離ｌ（０１）〜ｌ（０ｎ）が算出される。ｊが最大値になると（ステップＳ５５のＹ）、図５に示すステップＳ３３の処理が終了する（Ｃ終了）。
【００４２】
次に、ステップＳ３３の算出結果に基づいて、対象ユニットセルの仮想配線の繋ぎ換えを制御する配線交換処理が実行される（ステップＳ３４）。図８に示すように、ステップＳ３４では、ステップＳ３３で算出された距離ｌ（０ｊ）が最短となるユニットセルＵｃｊに仮想配線された被対象ユニットセルＲＲｃｊ（入出力側の各ユニットセルＩｃｊ、Ｏｃｊ）を抽出する（ステップＳ６１）。
【００４３】
次に、対象ユニットセルＲｃ０と被対象ユニットセルＲＲｃｊとが同一か否か、すなわちｉ＝ｊであるか否かを判断する（ステップＳ６２）。ｉ＝ｊである場合には（ステップＳ６２のＹ）、仮想的な入出力側の各配線Ｉ０、Ｏ０を交換する必要がないので、仮想配線を繋ぎ換えないように制御して交換不採用とし（ステップＳ６４）、図５に示すステップＳ３４の処理が終了する（Ｄ終了）。ｉ＝ｊでない場合には（ステップＳ６２のＮ）、対象ユニットセルＲｃ０と被対象ユニットセルＲＲｃｊとの仮想配線を繋ぎ換えるように制御して交換採用とし（ステップＳ６３）、図５に示すステップＳ３４の処理が終了する（Ｄ終了）。
【００４４】
次に、図５に示すように、対象ユニットセルＲｃのｉが最大値か否かが判断される（ステップＳ３５）。ｉが最大値でない場合には（ステップＳ３５のＮ）、ｉに１が加算され、ｊに０が入力される（ステップＳ３６）。以下、ステップＳ３３からステップＳ３６が繰り返し実行され、対象ユニットセルＲｃｉのｉの値が最大値になると（ステップＳ３５）、図２に示すステップＳ３の処理が終了する（Ａ終了）。
【００４５】
次に、図１、図５乃至図９を用いて、本変形例の半導体集積回路の設計方法の配線交換処理をより具体的に説明する。図５に示すように、制御部３は、入出力側の各ユニットセルＩｃ、Ｏｃのそれぞれの最大値ｎと、対象ユニットセルＲｃｉ及び被対象ユニットセルＲＲｃｊの初期値ｉ＝０、ｊ＝０を主記憶部１１に記憶する（ステップＳ３１）。
【００４６】
次に、インスタンス（ｉ）の中点位置の算出処理が実行される（ステップＳ３２）。インスタンスｉの初期値は０に設定されているので、制御部３は、図６に示すように、図９（ａ）に示す入力側ユニットセルＩｃ０の端子位置Ｉｐ０と、出力側ユニットセルＯｃ０の端子位置Ｏｐ０との中点位置Ｃｐ０を算出し（ステップＳ４１）、主記憶部１１に中点位置Ｃｐ０を記憶する（ステップＳ４２）。次に、インスタンス（０）であって、ｉは最大値ではないので（ステップＳ４３のＮ）、制御部３は０に１を加算する（ステップＳ４４）。制御部３は、ステップＳ４１からステップＳ４４を繰り返し実行し、図９（ａ）に示す多ビットセルＭｃ０〜Ｍｃ（ｎ／２）に接続された全ての入出力側の各ユニットセルＩｃ１〜Ｉｃｎ、Ｏｃ１〜Ｏｃｎの中点位置Ｃｐ１〜Ｃｐｎを算出して（ステップＳ４１）、主記憶部１１にそれぞれ記憶する（ステップＳ４２）。制御部３が中点位置Ｃｐｎまで算出したら、インスタンス（ｎ）であって、ｉは最大値となるので（ステップＳ４３のＹ）、制御部３はｉに０を入力して（ステップＳ４５）、図５に示すステップＳ３２が終了する（Ｂ終了）。
【００４７】
次に、図５に示すステップＳ３３の距離ｌ（ｉｊ）の算出処理が実行される（図７のＣ開始）。Ｃ開始時には、ｉ＝０及びｊ＝０に設定されているので、図７及び図９（ａ）に示すように、制御部３はインスタンス（０）である入出力側の各ユニットセルＩｃ０、Ｏｃ０の中点位置Ｃｐ０を主記憶部１１から読出す（ステップＳ５１）。次に、制御部３は、多ビットセルＭｃ０を構成し、対象ユニットセルＲｃ０と仮想的に接続関係のあるユニットセルＵｃ０の配置位置Ｕｐ０を主記憶部１１から読出す（ステップＳ５２）。
【００４８】
次に、制御部３は、配置位置Ｕｐ０と中点位置Ｃｐ０との距離ｌ（００）を算出する（ステップＳ５３）。図９（ａ）に示すように、配置位置Ｕｐ０と中点位置Ｃｐ０とは、ほぼ同じ位置であるため、距離ｌ（００）は０に近い値となる。次に、制御部３は、距離ｌ（００）を主記憶部１１に記憶する（ステップＳ５４）。次に、インスタンス（０）であって、ｊは最大値でないため（ステップＳ５５のＮ）、制御部３は０に１を加算する（ステップＳ５６）。制御部３は、ステップＳ５１からステップＳ５６を繰り返し実行して、中点位置Ｃｐ０と、ユニットセルＵｃ１〜Ｕｃｎの配置位置Ｕｐ１〜Ｕｐｎとの距離ｌ（０１）〜ｌ（０ｎ）を算出して主記憶部１１にそれぞれ記憶する（ステップＳ５３、Ｓ５４）。次いで、インスタンス（ｎ）であって、ｊは最大値ｎとなるので（ステップＳ５５のＹ）、図５に示すステップＳ３３の距離ｌ（ｉｊ）の算出処理が終了する（Ｃ終了）。
【００４９】
次に、図５に示すステップＳ３４の配線交換処理が実行される（図８のＤ開始）。まず、制御部３は、上記のステップＳ３３において算出された距離ｌ（００）〜ｌ（０ｎ）のうちの最短の距離ｌを主記憶部１１から読出す（ステップＳ６１）。図９(ａ)に示すように、ユニットセルＵｃ０は、他のユニットセルＵｃ１〜Ｕｃｎと比較して、中点位置Ｃｐ０に近い位置に配置されている。このため、制御部３は、中点位置Ｃｐ０とユニットセルＵｃ０との間の距離ｌ（００）を最小となる距離ｌとして主記憶部１１から読出す。これにより、制御部３は、ユニットセルＵｃ０に仮想配線された入出力側の各ユニットセルＩｃ０、Ｏｃ０を被対象ユニットセルＲＲｃｊとして抽出する。対象ユニットセルＲｃ０と被対象ユニットセルＲＲｃ０とは同一であり、ｉ＝ｊであるため（ステップＳ６２のＹ）、制御部３は、対象ユニットセルＲｃ０及び被対象ユニットセルＲＲｃ０の仮想配線の繋ぎ換えをしないように配置処理部７を制御する（ステップＳ６４）。これにより、ステップＳ３４が終了する（Ｄ終了）。
【００５０】
次に、図５に示すように、ｉが最大値でないため（ステップＳ３５のＮ）、制御部３は０に１を加算し、ｊを０に設定する（ステップＳ３６）。本変形例の半導体集積回路の設計方法では、以下、ステップＳ３３〜ステップＳ３６が繰り返し実行され、多ビットセルＭｃ１〜Ｍｃ（ｎ／２）の仮想配線の繋ぎ換えが実行される。対象ユニットセルＲｃｉのｉが最大値となると（ステップＳ３５のＹ）、多ビットセルの配線繋ぎ換え処理（図２のステップＳ３）が終了する（Ａ終了）。
【００５１】
例えば、図９（ａ）に示すように、対象ユニットセルＲｃ１（ｉ＝１）の入出力側の各ユニットセルＩｃ１、Ｏｃ１の中点位置Ｃｐ１と、入出力側の各ユニットセルＩｃ１、Ｏｃ１が仮想配線されたユニットセルＵｃ１との距離は、距離ｌ（１１）である。また、中点位置Ｃｐ１と、ユニットセルＵｃ２の配置位置Ｕｐ２との距離は、距離ｌ（１２）である。距離ｌ（１２）は距離ｌ（１１）より短く、且つ距離ｌ（１０）〜ｌ（１ｎ）のうち最も短い。さらに、対象ユニットセルＲｃ１のｉ値と、距離ｌ（１２）となる被対象ユニットセルＲＲｃ２のｊ値とは、等しくないので（図８のステップＳ６２のＮ）、制御部３は対象ユニットセルＲｃ１の入出力側の各ユニットセルＩｃ１、Ｏｃ１をユニットセルＵｃ２に仮想配線し、入出力側の各ユニットセルＩｃ２、Ｏｃ２をユニットセルＵｃ１に仮想配線するように配置処理部７を制御する。これにより、図９（ｂ）に示すように、入出力側の各配線Ｉ１、Ｏ１及び入出力側の各配線Ｉｃ２、Ｏｃ２の仮想配線の混雑が解消される。
【００５２】
以上説明したように、本変形例による半導体集積回路の設計方法によれば、入出力側の各ユニットセルＩｃ０〜Ｉｃｎ、Ｏｃ０〜Ｏｃｎと、多ビットセルＭｃ０〜Ｍｃ（ｎ／２）との仮想配線を単純なアルゴリズムで繋ぎ換えることができるので、上記実施の形態と同様の効果が得られる。
【００５３】
次に、本実施の形態の第２の変形例による半導体集積回路の設計方法について図１０を用いて説明する。図１０は、本変形例による半導体集積回路の設計方法の基本フローチャートである。図１０に示すように、本変形例による半導体集積回路の設計方法は、上記実施の形態と同様の論理合成処理（ステップＳ７１）が実行される。次いで、多ビットセルＭｃ０〜Ｍｃ（ｎ／２）にそれぞれ仮想配線された１ビット分のインスタンス（入力側ユニットセルＩｃ０〜Ｉｃｎ及び出力側ユニットセルＯｃ０〜Ｏｃｎ）の短絡処理（ステップＳ７２）が実行される。例えば、図４において、入力側ユニットセルＩｃ２及び出力側ユニットセルＯｃ２は、多ビットセルＭｃ０に仮想配線された１ビット分のインスタンスとして仮想的に短絡される。同様に、他の多ビットセルＭｃ１〜Ｍｃ（ｎ／２）の２ビットのうちのいずれか一方にそれぞれ仮想配線された入出力側の各ユニットセルＩｃ、Ｏｃがそれぞれ短絡される。
【００５４】
次いで、上記実施の形態と同様の自動配置処理が実行される（ステップＳ７２）。次に、短絡されたインスタンスの接続を元に戻し（ステップＳ７３）、元に戻したインスタンスの配線交換処理が実行される（ステップＳ７４）。ステップＳ７４では、元に戻したインスタンスの配線長がそれぞれ最小となるように配線の繋ぎ換えを行う。ステップＳ７４での配線の繋ぎ換えは、上記実施の形態又は上記第１の変形例と同様のアルゴリズムが用いられる。また、ステップＳ７２において短絡しなかった他のビットは仮想配線が最適化されているとして、配線の繋ぎ換え処理が実行されない。このため、図４又は図９に示すように、多ビットセルのビット数が２ビットの場合には、本変形例の半導体集積回路の設計方法は、上記実施の形態及び上記第１の変形例と比較して、配線繋ぎ換え処理の実行時間を約１／２に短縮できる。なお、ステップＳ７２において、短絡されるインスタンスは、多ビットセルに仮想配線されたいずれのインスタンスを短絡しても同様の効果が得られる。
【００５５】
以上説明したように、本変形例によれば、入出力側の各ユニットセルと多ビットセルとの配線の混雑を解消できるので、上記実施の形態及び第１の変形例と同様の効果が得られる。
【００５６】
本発明は、上記実施の形態に限らず種々の変形が可能である。
上記実施の形態では、多ビットセルのビット数は２ビットであるが、本発明はこれに限られない。多ビットセルのビット数が３ビット以上であっても、上記実施の形態と同様の効果が得られる。
【００５７】
また、上記実施の形態の第２の変形例において、多ビットセルのビット数がＮビットの場合には、上記実施の形態及び上記第１の変形例と比較して、配線繋ぎ換え処理の実行時間を約（Ｎ−１）／Ｎに短縮できる。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施の形態による半導体集積回路の設計支援装置の概略構成を示すブロック図である。
【図２】本発明の一実施の形態による半導体集積回路の設計方法の基本フローチャートである。
【図３】本発明の一実施の形態による半導体集積回路の設計方法であって、図２に示すステップＳ３のフローチャートである。
【図４】本発明の一実施の形態による半導体集積回路の設計方法であって、多ビットセルの配線繋ぎ換え処理前後の半導体集積回路の模式的なレイアウト図である。
【図５】本発明の一実施の形態の第１の変形例による半導体集積回路の設計方法であって、図２に示すステップＳ３のフローチャートである。
【図６】本発明の一実施の形態の第１の変形例による半導体集積回路の設計方法であって、図５に示すステップＳ３２のフローチャートである。
【図７】本発明の一実施の形態の第１の変形例による半導体集積回路の設計方法であって、図５に示すステップＳ３３のフローチャートである。
【図８】本発明の一実施の形態の第１の変形例による半導体集積回路の設計方法であって、図５に示すステップＳ３４のフローチャートである。
【図９】本発明の一実施の形態の第１の変形例による半導体集積回路の設計方法であって、多ビットセルの配線繋ぎ換え処理前後の半導体集積回路の模式的なレイアウト図である。
【図１０】本発明の一実施の形態の第２の変形例による半導体集積回路の設計方法の基本フローチャートである。
【図１１】従来の半導体集積回路の設計方法のフローチャートである。
【図１２】従来の半導体集積回路の設計方法であって、自動配線された半導体集積回路の模式的なレイアウト図である。
【符号の説明】
【００５９】
１  半導体集積回路の設計支援装置
２  中央処理装置
３  制御部
５  論理合成部
７  配置処理部
９  配線処理部
１１  主記憶部
１３  表示部
１５  補助記憶部
１７  入出力部
【図１】
2008204171.tif 000003
【図２】
2008204171.tif 000004
【図３】
2008204171.tif 000005
【図４】
2008204171.tif 000006
【図５】
2008204171.tif 000007
【図６】
2008204171.tif 000008
【図７】
2008204171.tif 000009
【図８】
2008204171.tif 000010
【図９】
2008204171.tif 000011
【図１０】
2008204171.tif 000012
【図１１】
2008204171.tif 000013
【図１２】
2008204171.tif 000014