(57)【要約】【課題】配線混雑の発生とレイアウト面積の増大を抑えて、効率的に論理合成、配置配線を行う。【解決手段】設計装置は、ロジックコーン４００を生成し、入力段と出力段の間にあるｍ段の論理セルとその入力に繋がる入力段両端の入力側ＦＦ３８０とを頂点とする三角形Ｉｍと、出力段の出力側ＦＦ３００とその入力に繋がるｍ段両端の論理セルとを頂点とする三角形Ｏｎとの面積比を算出する。設計装置は、算出した面積比が所定比となるｍ段から入力段側の第１ロジックコーン部及び出力段側の第２ロジックコーン部を論理合成単位に設定し、設定した論理合成単位を用いて論理合成を行う。【選択図】図３０
2015225432.tif 000002
【特許請求の範囲】
【請求項１】
ロジックコーンを生成する生成部と、
前記ロジックコーンの入力段と出力段の間にある一の段のセルと前記一の段のセルの入力に繋がる前記入力段両端のセルとを頂点とする第１三角形と、前記出力段のセルと前記出力段のセルの入力に繋がる前記一の段両端のセルとを頂点とする第２三角形との面積比を算出する算出部と、
前記面積比が所望の比となる前記一の段から前記入力段側の第１ロジックコーン部及び前記出力段側の第２ロジックコーン部を、論理合成単位に設定する設定部と、
前記論理合成単位を用いて論理合成を行う論理合成処理部と
を含むことを特徴とする設計装置。
【請求項２】
前記生成部は、前記ロジックコーンと、前記ロジックコーンに接続される回路とを含む第１レイアウトを生成し、
前記第１レイアウト内の前記ロジックコーンについて、前記算出部により、前記面積比を算出することを特徴とする請求項１に記載の設計装置。
【請求項３】
前記設定部は、
前記回路を、前記第１ロジックコーン部及び前記第２ロジックコーン部にそれぞれ接続される第１回路部及び第２回路部に分割した第２レイアウトを生成し、
前記第１レイアウトの前記出力段のセルと前記入力段両端のセルとを頂点とする第３三角形と、前記第２レイアウトの前記出力段のセルと前記入力段両端のセルとを頂点とする第４三角形との面積を比較し、
前記第４三角形の面積が前記第３三角形の面積よりも小さい場合に、前記第１ロジックコーン部及び前記第２ロジックコーン部を前記論理合成単位に設定することを特徴とする請求項２に記載の設計装置。
【請求項４】
前記生成部は、
格子を生成し、
前記格子上に、前記ロジックコーンのセル群を、隣接するセルが少なくとも１マス空けて配置されるように配置することによって、前記ロジックコーンを生成し、
前記格子上に、前記回路を、前記ロジックコーンとの間に少なくとも１マス空けて、前記ロジックコーンに隣接して配置することによって、前記第１レイアウトを生成し、
前記設定部は、
前記格子上に、前記第１回路部を、前記第１ロジックコーン部との間に少なくとも１マス空けて、前記第１ロジックコーン部に隣接して配置し、
前記格子上に、前記第２回路部を、前記第１ロジックコーン部及び前記第１回路部が含まれる領域との間に少なくとも１マス空けて、前記領域に隣接して配置することによって、
前記第２レイアウトを生成することを特徴とする請求項３に記載の設計装置。
【請求項５】
前記生成部は、前記ロジックコーンの各セルが前記格子上で占めるマス数を、当該各セルが有する論理機能に基づいて設定することを特徴とする請求項４に記載の設計装置。
【請求項６】
前記生成部は、前記ロジックコーンの各セルが前記格子上で占めるマス数を、当該各セルの端子数及びトランジスタ数に基づいて設定することを特徴とする請求項４に記載の設計装置。
【請求項７】
前記生成部は、予め設定された種類のセルを用いて前記ロジックコーンを生成し、
前記論理合成処理部は、前記種類の設定を解除して前記論理合成を行うことを特徴とする請求項１乃至６のいずれかに記載の設計装置。
【請求項８】
前記設定部は、前記論理合成単位を含む合成制約を生成し、
前記論理合成処理部は、前記合成制約を用いて前記論理合成を行うことを特徴とする請求項１乃至７のいずれかに記載の設計装置。
【請求項９】
コンピュータが、
ロジックコーンを生成し、
前記ロジックコーンの入力段と出力段の間にある一の段のセルと前記一の段のセルの入力に繋がる前記入力段両端のセルとを頂点とする第１三角形と、前記出力段のセルと前記出力段のセルの入力に繋がる前記一の段両端のセルとを頂点とする第２三角形との面積比を算出し、
前記面積比が所望の比となる前記一の段から前記入力段側の第１ロジックコーン部及び前記出力段側の第２ロジックコーン部を、論理合成単位に設定し、
前記論理合成単位を用いて論理合成を行う
ことを特徴とする設計方法。
【請求項１０】
コンピュータに、
ロジックコーンを生成し、
前記ロジックコーンの入力段と出力段の間にある一の段のセルと前記一の段のセルの入力に繋がる前記入力段両端のセルとを頂点とする第１三角形と、前記出力段のセルと前記出力段のセルの入力に繋がる前記一の段両端のセルとを頂点とする第２三角形との面積比を算出し、
前記面積比が所望の比となる前記一の段から前記入力段側の第１ロジックコーン部及び前記出力段側の第２ロジックコーン部を、論理合成単位に設定し、
前記論理合成単位を用いて論理合成を行う
処理を実行させることを特徴とする設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計装置、設計方法及び設計プログラムに関する。
【背景技術】
【０００２】
半導体集積回路の設計に関し、ＲＴＬ（Resister Transfer Level）の設計データを用いて論理合成（論理設計）を行い、論理合成により生成されるネットリストを用いてセルを配置しセル間を接続する配置配線（物理設計）を行う技術が知られている。論理合成では、タイミング、回路部の総セル面積等が考慮されてネットリストが生成される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１１５１５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような論理合成及び配置配線では、回路部の種類によっては、論理合成で回路部の総セル面積が小さくても、配置配線で配線混雑が発生する場合がある。配線混雑を抑えるために、回路部の集積度を下げると、レイアウト面積が増大してしまうことが起こり得る。配線混雑の発生とレイアウト面積の増大が抑えられる論理合成単位を設定するために、論理合成と配置配線を繰り返すと、半導体集積回路の設計効率が低下してしまうことが起こり得る。
【課題を解決するための手段】
【０００５】
本発明の一観点によれば、ロジックコーンを生成する生成部と、前記ロジックコーンの入力段と出力段の間にある一の段のセルと前記一の段のセルの入力に繋がる前記入力段両端のセルとを頂点とする第１三角形と、前記出力段のセルと前記出力段のセルの入力に繋がる前記一の段両端のセルとを頂点とする第２三角形との面積比を算出する算出部と、前記面積比が所望の比となる前記一の段から前記入力段側の第１ロジックコーン部及び前記出力段側の第２ロジックコーン部を、論理合成単位に設定する設定部と、前記論理合成単位を用いて論理合成を行う論理合成処理部とを含む設計装置が提供される。
【０００６】
また、本発明の一観点によれば、コンピュータを用いた設計方法、コンピュータに実行させる設計プログラムが提供される。
【発明の効果】
【０００７】
開示の技術によれば、配線混雑の発生とレイアウト面積の増大を抑え、繰り返しを抑えて効率的に、論理合成及び配置配線を行うことが可能になる。
【図面の簡単な説明】
【０００８】
【図１】設計方法の説明図である。
【図２】設計装置の一例を示す図である。
【図３】設計装置の構成例を示す図である。
【図４】論理合成フローの一例を示す図（その１）である。
【図５】論理合成フローの一例を示す図（その２）である。
【図６】論理合成フローの一例を示す図（その３）である。
【図７】論理合成のサブフローの一例を示す図（その１）である。
【図８】論理合成のサブフローの一例を示す図（その２）である。
【図９】論理合成のサブフローの一例を示す図（その３）である。
【図１０】論理合成のサブフローの一例を示す図（その４）である。
【図１１】論理合成のサブフローの一例を示す図（その５）である。
【図１２】論理合成のサブフローの一例を示す図（その６）である。
【図１３】論理合成のサブフローの一例を示す図（その７）である。
【図１４】論理合成のサブフローの一例を示す図（その８）である。
【図１５】論理合成のサブフローの一例を示す図（その９）である。
【図１６】論理合成のサブフローの一例を示す図（その１０）である。
【図１７】論理合成のサブフローの一例を示す図（その１１）である。
【図１８】論理合成のサブフローの一例を示す図（その１２）である。
【図１９】論理合成のサブフローの一例を示す図（その１３）である。
【図２０】論理合成のサブフローの一例を示す図（その１４）である。
【図２１】論理合成のサブフローの一例を示す図（その１５）である。
【図２２】論理合成のサブフローの一例を示す図（その１６）である。
【図２３】論理合成のサブフローの説明図（その１）である。
【図２４】論理合成のサブフローの説明図（その２）である。
【図２５】論理合成のサブフローの説明図（その３）である。
【図２６】論理合成のサブフローの説明図（その４）である。
【図２７】論理合成のサブフローの説明図（その５）である。
【図２８】論理合成のサブフローの説明図（その６）である。
【図２９】論理合成のサブフローの説明図（その７）である。
【図３０】論理合成のサブフローの説明図（その８）である。
【図３１】論理合成のサブフローの説明図（その９）である。
【図３２】論理合成のサブフローの説明図（その１０）である。
【図３３】論理合成のサブフローの説明図（その１１）である。
【図３４】論理合成のサブフローの説明図（その１２）である。
【図３５】論理合成のサブフローの説明図（その１３）である。
【図３６】論理合成のサブフローの説明図（その１４）である。
【図３７】配線混雑度の評価結果の一例を示す図である。
【図３８】回路の一例を示す図（その１）である。
【図３９】回路の一例を示す図（その２）である。
【図４０】コンピュータのハードウェアの構成例を示す図である。
【発明を実施するための形態】
【０００９】
図１は設計方法の説明図である。
ここでは、半導体集積回路の設計における論理合成ステップ（ステップＳ１）及び配置配線ステップ（ステップＳ２）を示している。
【００１０】
論理合成ステップ（Ｓ１）では、ＲＴＬ設計データ１、タイミングライブラリ２、タイミング制約３、合成制約４及びセルネットリスト５の情報が用いられ、論理合成が行われる。
【００１１】
ここで、ＲＴＬ設計データ１は、設計対象の半導体集積回路が有する論理をＲＴＬで記述したデータである。タイミングライブラリ２には、論理合成に用いるタイミング情報、配置配線に用いるタイミング情報が格納される。タイミング制約３には、仮想配線遅延、遅延時間、クロック周期、入力遅延値、出力遅延値等、論理合成、配置配線において満足させるべきタイミングに関する各種条件が登録される。合成制約４には、論理合成単位（論理合成規模）、各回路構成要素の使用可能個数、回路部（機能ブロック）の論理セルの合計面積（論理面積）やクロック周期、半導体テクノロジや配線層構造等、論理合成に関する各種条件が登録される。セルネットリスト５には、設計対象の半導体集積回路に用いられる論理セルの、トランジスタ等の構成要素の接続情報が格納される。例えば、セルネットリスト５から、論理セルに含まれるトランジスタ数、論理セルの入力端子数、出力端子数等の情報を取得することができる。
【００１２】
これらの情報を用いた論理合成により、ゲートレベルで記述されたネットリスト６が生成される。
配置配線ステップ（Ｓ２）では、論理合成により生成されたネットリスト６、並びに、タイミングライブラリ２、タイミング制約３、レイアウトライブラリ７及びレイアウト制約８の情報が用いられ、配置配線が行われる。
【００１３】
ここで、レイアウトライブラリ７には、スタンダードセル、マクロセルといった論理セルのサイズ（縦横寸法）、面積、構造（論理セル内部のレイアウト、端子の配置等）等の情報が格納される。レイアウト制約８には、配置領域、配線領域、配線の幅、間隔等、配置配線において満足させるべきレイアウトに関する各種条件が登録される。
【００１４】
これらの情報を用いた配置配線処理により、配置配線データ９が生成される。
上記のような論理合成及び配置配線は、次の図２に示すような設計装置を用いて行うことができる。
【００１５】
図２は設計装置の一例を示す図である。
図２に示す設計装置１００は、入出力用端末装置１０１、入出力用端末装置１０１に接続されたエンジニアリングワークステーション（ＥＷＳ）１０２、及び、ＥＷＳ１０２に接続されたファイルサーバ１０３を備える。尚、ＥＷＳ１０２には、複数の入出力用端末装置１０１が接続されてよい。
【００１６】
ファイルサーバ１０３には、ＲＴＬ設計データ１、タイミングライブラリ２、タイミング制約３、合成制約４、セルネットリスト５、レイアウトライブラリ７及びレイアウト制約８が格納される。ファイルサーバ１０３には更に、論理合成の処理を実行する論理合成プログラム１０、配置配線の処理を実行する配置配線プログラム１１が格納される。ファイルサーバ１０３には、論理合成によって生成されるネットリスト６、配置配線によって生成される配置配線データ９が格納される。尚、ファイルサーバ１０３は、各々所定の情報が格納されたサーバ群で構成されてもよい。
【００１７】
設計装置１００では、入出力用端末装置１０１からの入力を基に、ファイルサーバ１０３に格納された各種情報が用いられ、ＥＷＳ１０２を利用して論理合成プログラム１０に従った論理合成の処理、及び、配置配線プログラム１１に従った配置配線の処理が実行される。入出力用端末装置１０１には、論理合成及び配置配線の各処理に使用される情報、論理合成及び配置配線の各処理で取得される情報が、モニタ等の表示装置に出力される。
【００１８】
設計装置１００では、入出力用端末装置１０１、ＥＷＳ１０２及びファイルサーバ１０３が協働して、論理合成、配置配線の各処理が実行される。設計装置１００は、論理合成ツール及び配置配線ツールとして機能する。
【００１９】
設計装置１００の構成について、更に図３を参照して説明する。
図３は設計装置の構成例を示す図である。
設計装置１００は、論理合成部１１０及び配置配線部１２０を備える。論理合成部１１０は、論理合成単位設定処理部１１１及び論理合成処理部１１２を有する。論理合成単位設定処理部１１１は、生成部１１１ａ、算出部１１１ｂ及び設定部１１１ｃを含む。
【００２０】
生成部１１１ａは、ＲＴＬ設計データ１及びセルネットリスト５の情報を用いて、所定論理セルのロジックコーン（論理コーン、コーンとも称される）を含むレイアウトを生成する。生成部１１１ａは、ＮＡＮＤゲート、ＮＯＲゲート、インバータ、２入力１出力セレクタ、フリップフロップ（ＦＦ）等、基本論理構成を有する所定種の論理セルを用いてロジックコーンを生成し、そのロジックコーンを含む第１レイアウトを生成する。
【００２１】
ロジックコーン（Logic Cone）とは、ＦＦを頂点として論理的に接続された複数の論理セルで構成された概ね三角形の形状を持つ論理ブロックのことである。円錐（Cone）を横から見た場合の三角形との類似からロジックコーンと称される。
【００２２】
例えば、生成部１１１ａは、ＲＴＬ設計データ１等の情報を用いて基本論理構成の論理セルの論理合成を行い、その論理セルを格子上に配置する。論理セルのサイズ（格子上で占めるマス数）は、セルネットリスト５から取得されるトランジスタ数や入出力端子数等の情報を基に決定されるサイズ、或いは予め決定されているサイズに設定される。生成部１１１ａは、出力側のＦＦ等の論理セルを始点として、それに接続される論理セルを一定のルールに従って格子上に順次接続していき、入力側のＦＦ等の論理セルまで接続したロジックコーンを生成する。生成部１１１ａは、生成したロジックコーンに接続される回路、例えば制御信号生成回路を、一定のルールに従って格子上に配置し、基本論理構成の論理セルのロジックコーン及び制御信号生成回路を含む第１レイアウトを生成する。尚、配置する制御信号生成回路も、上記ロジックコーンと同様に、出力側の始点の論理セルから、それに接続される論理セルを一定のルールに従って入力側の論理セルまで格子上に順次接続していくことで、生成される。
【００２３】
算出部１１１ｂは、生成部１１１ａで生成されたロジックコーンの、所定論理セル段と入力論理セル段に含まれる論理セルを頂点とする三角形と、出力論理セル段と当該所定論理セル段に含まれる論理セルを頂点とする三角形との面積比を算出する。更に、算出部１１１ｂは、算出した面積比が、予め設定された、例えば１：１といった特定の比となるか否かを判定する。
【００２４】
例えば、算出部１１１ｂは、生成部１１１ａで生成されたロジックコーンの所定段の論理セルと、その論理セルの入力に直接又は別の論理セルを介して繋がる入力段の論理セル（ＦＦ等）の、両端の論理セルとを頂点とする第１三角形を生成する。更に、算出部１１１ｂは、そのロジックコーンの出力段の論理セル（ＦＦ等）と、その入力に直接又は別の論理セルを介して繋がる所定段（第１三角形の頂点の段）の論理セルの、両端の論理セルとを頂点とする第２三角形を生成する。算出部１１１ｂは、このようにして生成した第１三角形と第２三角形の面積を算出し、それらの比（第１三角形と第２三角形の面積比）を算出して、所定比となるか否かを判定する。
【００２５】
設定部１１１ｃは、算出部１１１ｂで第１三角形と第２三角形の面積比が所定比になると判定された所定論理セル段を論理分割段として設定する。そして、設定部１１１ｃは、その論理分割段から入力論理セル段までの第１ロジックコーン部、及び、出力論理セル段から論理分割段までの第２ロジックコーン部を、論理合成単位に設定する。
【００２６】
例えば、設定部１１１ｃは、算出部１１１ｂで算出された面積比が所定比となる所定論理セル段（第１三角形の頂点の段）を、論理を分割する論理分割段として設定する。そして、設定部１１１ｃは、その論理分割段の論理セルから入力段の論理セルまで（或いは入力段の論理セルから論理分割段の論理セルまで）トレースして得られる第１ロジックコーン部を、第１論理合成単位に設定する。更に、設定部１１１ｃは、出力段の論理セルから、論理分割段より１段出力側の段の論理セルまで（或いは論理分割段より１段出力側の段の論理セルから、出力段の論理セルまで）トレースして得られる第２ロジックコーン部を、第２論理合成単位に設定する。
【００２７】
その際、設定部１１１ｃは、まず、生成部１１１ａで生成された第１レイアウト内の制御信号生成回路を、論理分割段で分割する。そして、設定部１１１ｃは、分割した一方の制御信号生成回路部を第１ロジックコーン部に接続し、他方の制御信号生成回路部を第２ロジックコーン部に接続した第２レイアウトを生成する。設定部１１１ｃは、分割前の制御信号生成回路を含む第１レイアウトの出力段と入力段両端の論理セルで形成される第３三角形と、分割された制御信号生成回路部を含む第２レイアウトの出力段と入力段両端の論理セルで形成される第４三角形の面積を比較する。そして、設定部１１１ｃは、第４三角形の面積が第３三角形の面積よりも小さい場合に、第１ロジックコーン部及び第２ロジックコーン部をそれぞれ、第１論理合成単位及び第２論理合成単位に設定する。
【００２８】
設定部１１１ｃは、設定された第１論理合成単位及び第２論理合成単位を、合成制約４に追加する。
論理合成処理部１１２は、ＲＴＬ設計データ１、タイミングライブラリ２、タイミング制約３、並びに、論理合成単位設定処理部１１１により設定された第１論理合成単位及び第２論理合成単位を含む合成制約４の情報を用いて論理合成を行う。論理合成は、論理合成プログラム１０に従って、その処理が実行される。
【００２９】
論理合成部１１０は、このように論理合成単位設定処理部１１１により設定された第１論理合成単位及び第２論理合成単位を含む合成制約４の情報を用いて、論理合成処理部１１２により論理合成を行い、ゲートレベルのネットリスト６を生成する。
【００３０】
配置配線部１２０は、タイミングライブラリ２、タイミング制約３、レイアウトライブラリ７、レイアウト制約８、並びに、論理合成部１１０により生成されたネットリスト６の情報を用いて配置配線を行い、配置配線データ９を生成する。配置配線は、配置配線プログラム１１に従って、その処理が実行される。
【００３１】
以下、設計装置１００を用いた設計方法について詳細に説明する。ここでは、設計装置１００を用いた設計における論理合成の手法について主に説明する。
図４〜図６は論理合成フローの一例を示す図である。図４〜図６に示す論理合成フローの所定ステップについては、その内容の一例をサブフロー（ＳＦ）として図７〜図２２に示している。また、図２３〜図３６は図４〜図６に示す論理合成フローの所定ステップの説明図である。以下、図７〜図２２のＳＦ、及び図２３〜図３６の説明図を参照しながら、図４〜図６のフローについて順に説明する。
【００３２】
設計装置１００の論理合成部１１０による論理合成では、はじめに、格子上に制御信号生成回路を除く論理セルの配置が行われる。
まず、論理合成単位設定処理部１１１の生成部１１１ａが、使用する論理セルを、ＮＡＮＤ／ＮＯＲゲート、インバータ、２入力１出力セレクタ、ＦＦ等の基本駆動能力の論理セルに限定し（図４；ステップＳ１０）、論理合成（第１論理合成）を行う（図４；ステップＳ２０）。生成部１１１ａは、縦横同じ長さの個々のマス目を有する格子（図２５に示すような格子２００）を生成し（ステップＳ３０）、以下に述べるように、生成した格子上に論理セルを配置していき、所定のロジックコーンを含む第１レイアウトを生成する。ロジックコーンとしては、多入力多出力のセレクタ回路、多入力１出力のセレクタ回路等が挙げられる。
【００３３】
生成部１１１ａは、ステップＳ３０の格子の生成後、まず、その格子上に配置するＦＦのサイズを決定する（図４；ステップＳ４０）。ＦＦは、図２３に示すような、クロックＣＬＫとデータＤＡＴＡの２つの入力、及び出力Ｑを有する回路構成であり、クロックＣＬＫの入力時点でのデータＤＡＴＡの論理値（１，０）を記憶し、次のクロックＣＬＫが入力されるまでその状態を保持する。例えば、生成部１１１ａは、この図２３に示すような回路構成を有するＦＦを、格子の１マス分のサイズに設定する。
【００３４】
生成部１１１ａは、ステップＳ２０の結果を用い、出力側ＦＦを抽出し（図４；ステップＳ５０）、抽出した出力側ＦＦを、格子上の１マスに配置する（図４；ステップＳ６０）。ステップＳ５０で複数の出力側ＦＦが抽出される場合には、図７のＳＦ１のように、抽出された全ての出力側ＦＦを、格子上の縦１列のマスに並べて配置し（図７；ステップＳ６１）、互いに縦に１マス空けて配置されるように移動する（図７；ステップＳ６２）。
【００３５】
図２５（及びそれ以後の図２６〜図３３）には、６４入力１出力セレクタ回路（６４ｔｏ１ＭＵＸ回路）を生成する場合を例示している。例えば、ＦＦと２入力１出力セレクタを用いた６４入力１出力セレクタ回路には、入力側ＦＦ（６４個）、所定段数の２入力１出力セレクタ（３２個、１６個、８個、４個、２個、１個の計６段の２入力１出力セレクタ）、及び出力側ＦＦ（１個）が含まれる。
【００３６】
ステップＳ１０〜Ｓ６０に関し、このような６４入力１出力セレクタ回路の場合、生成部１１１ａは、まず、使用する論理セルの限定及び論理合成を行う（図４；ステップＳ１０，２０）。次いで、生成部１１１ａは、図２５に示すような格子２００を生成し（図４；ステップＳ３０）、格子２００上に配置するＦＦを、格子２００の１マス分と決定する（図４；ステップＳ４０）。生成部１１１ａは、ステップＳ２０の結果を用いて出力側ＦＦ３００（この例では１個）を抽出する（図４；ステップＳ５０）。生成部１１１ａは、抽出した出力側ＦＦ３００を、格子２００の１つのマス２１０（例えば格子２００上の右側領域のマス２１０）に配置する（図４；ステップＳ６０）。
【００３７】
上記のようにして出力側ＦＦを配置した後、生成部１１１ａは、ステップＳ２０の結果を用い、ＦＦ及び制御信号生成回路以外の論理セルを抽出し（図４；ステップＳ７０）、抽出した論理セルの、格子上に配置する際のサイズを決定する（図４；ステップＳ８０）。
【００３８】
例えば、生成部１１１ａは、図８のＳＦ２のように、抽出した論理セルがインバータの場合には（図８；ステップＳ８１）、縦方向のサイズを格子の１マス分のサイズとし、横方向のサイズを格子の１マス分のサイズとする（図８；ステップＳ８２）。
【００３９】
生成部１１１ａは、抽出した論理セルがＮＡＮＤ／ＮＯＲゲートの場合には（図８；ステップＳ８３）、縦方向のサイズを格子の２マス分のサイズとし、横方向のサイズを格子の１マス分のサイズとする（図８；ステップＳ８４）。
【００４０】
生成部１１１ａは、抽出した論理セルがインバータ、ＮＡＮＤ／ＮＯＲゲート以外の場合には、セルネットリスト５を用い、入力端子数及び出力端子数、トランジスタ数を示す情報を取得し、その情報を用いてサイズを決定する（図８；ステップＳ８５）。生成部１１１ａは、入力端子数がａ、出力端子数がｂの場合、論理セルの縦方向のサイズを、ａ，ｂの多い方のマス分のサイズとし、トランジスタ数がｃの場合、横方向のサイズを、ｃを４で除して余りを繰り上げた数のマス分のサイズとする。
【００４１】
例えば、２入力１出力セレクタは、図２４に示すような、２つの入力Ａ，Ｂと１つ出力Ｙを有する回路構成であり、選択信号Ｓに従って入力Ａ，Ｂのいずれかを出力Ｙとして出力する。抽出した論理セルが、この図２４に示すような２入力１出力セレクタの場合、入力端子数ａ＝３、出力端子数ｂ＝１、トランジスタ数ｃ＝１２であることから、縦方向が３マス分、横方向が３マス分のサイズとなる。
【００４２】
生成部１１１ａは、ステップＳ７０，Ｓ８０のように、所定の論理セルを抽出し、抽出した論理セルのサイズを決定した後は、出力側ＦＦのデータ入力端子と接続される論理セル（出力側ＦＦの前段の論理セル）を、格子上に配置する（図４；ステップＳ９０）。尚、本実施形態において、論理セルの前段とは、当該論理セルの入力側の段であり、論理セルの後段とは、当該論理セルの出力側の段である。
【００４３】
ステップＳ９０において、生成部１１１ａは、図９のＳＦ３のように、出力側ＦＦ（１個又は複数個）の前段論理セル（１個又は複数個）を、出力側ＦＦの左側に、１マス空けて配置する（図９；ステップＳ９１）。
【００４４】
出力側ＦＦの前段論理セルが複数個の場合、生成部１１１ａは、それらを格子上の縦方向に互いに１マス空けて配置されるように移動する（図９；ステップＳ９２）。尚、この時点で配置する複数個の前段論理セルの、格子上の縦方向の配置順は、任意の順とすることができる。
【００４５】
出力側ＦＦの前段論理セルの配置、移動の後、生成部１１１ａは、出力側ＦＦと前段論理セルの中央が揃うように、前段論理セル（又は出力側ＦＦ）を移動する（図９；ステップＳ９３）。
【００４６】
次いで、生成部１１１ａは、配置された出力側ＦＦと前段論理セルについて、接続される出力側ＦＦのデータ入力端子と前段論理セルの出力端子とを線で結ぶ（図９；ステップＳ９４）。
【００４７】
そして、生成部１１１ａは、前段論理セル同士の配置の入れ替えで線の交差が減るか否かを判定する（図９；ステップＳ９５）。出力側ＦＦの前段論理セルが複数個であり、前段論理セル同士の配置の入れ替えで線の交差が減る場合には、生成部１１１ａは、該当する前段論理セル同士の配置を入れ替え（図９；ステップＳ９６）、ステップＳ９５の処理に戻る。出力側ＦＦの前段論理セルが１個の場合や、前段論理セルが複数個でも配置の入れ替えで線の交差が減らない場合には、生成部１１１ａは、次のステップＳ１００へと処理を進める。
【００４８】
ステップＳ９５及びステップＳ９６のような処理を実行することで、出力側ＦＦと接続のある前段論理セルを、その出力側ＦＦの付近に、線の長大化や交差の発生を抑えて、配置することができる。このステップＳ９５及びステップＳ９６のような処理を行うため、ステップＳ９１での前段論理セルの配置順は任意とすることができる。
【００４９】
ステップＳ７０〜Ｓ９０に関し、一例として６４入力１出力セレクタ回路の場合、生成部１１１ａは、まず、ステップＳ２０の結果を用い、論理セルとして２入力１出力セレクタを抽出する（図４；ステップＳ７０）。
【００５０】
生成部１１１ａは、抽出した２入力１出力セレクタを図２６に示す格子２００上に配置する際のサイズを決定し（図４；ステップＳ８０）、その２入力１出力セレクタを格子２００上に配置する（図４；ステップＳ９０）。
【００５１】
その際、生成部１１１ａは、図２６に示すように、１個の出力側ＦＦ３００の前段に設けられる１個の２入力１出力セレクタ（単に「セレクタ」という）３１０（前段論理セル）を、その出力側ＦＦ３００の左側に１マス空けて格子２００上に配置する（図９；ステップＳ９１）。出力側ＦＦ３００の前段に設けられるセレクタ３１０は、格子２００上のマス２１０を、縦方向に３マス分、横方向に３マス分、占有するサイズである（図８；ステップＳ８１〜Ｓ８５）。
【００５２】
生成部１１１ａは、出力側ＦＦ３００とセレクタ３１０の互いの中央が揃うように、出力側ＦＦ３００又はセレクタ３１０を移動する（図９；ステップＳ９３）。
そして、生成部１１１ａは、出力側ＦＦ３００のデータ入力端子とセレクタ３１０の出力端子とを線３２０で結ぶ（図９；ステップＳ９４）。
【００５３】
この６４入力１出力セレクタ回路の例では、１個の出力側ＦＦ３００の前段に１個のセレクタ３１０が接続される回路構成のため、論理セルの配置の入れ替えによる線の交差の減少はなく、生成部１１１ａは、次のステップＳ１００へと処理を進める。
【００５４】
ステップＳ９０のように、出力側ＦＦの前段の論理セルを格子上に配置した後は、生成部１１１ａは、ステップＳ２０の結果を用い、入力側ＦＦを抽出し（図４；ステップＳ１００）、更に前段の論理セルを格子上に配置する（図４；ステップＳ１１０）。
【００５５】
ステップＳ１１０において、出力側ＦＦの前段の論理セルよりも更に前段の論理セルを配置する際には、生成部１１１ａは、図１０のＳＦ４のような処理を行う。
生成部１１１ａは、まず、後段となる論理セル（１個又は複数個）の前段の論理セル（１個又は複数個）を、後段論理セルの左側に、１マス空けて配置する（図１０；ステップＳ１１１）。
【００５６】
前段論理セルが複数個の場合には、生成部１１１ａは、それらを格子上の縦方向に互いに１マス空けて配置されるように移動する（図１０；ステップＳ１１２）。尚、この時点で配置する複数個の前段論理セルの、格子上の縦方向の配置順は、任意の順とすることができる。
【００５７】
前段論理セルの配置、移動の後、生成部１１１ａは、後段論理セルと前段論理セルの中央が揃うように、前段論理セルを移動する（図１０；ステップＳ１１３）。
次いで、生成部１１１ａは、配置された後段論理セルと前段論理セルについて、接続される後段論理セルの入力端子と前段論理セルの出力端子とを線で結ぶ（図１０；ステップＳ１１４）。
【００５８】
そして、生成部１１１ａは、前段論理セル同士の配置の入れ替えで線の交差が減るか否かを判定する（図１０；ステップＳ１１５）。前段論理セルが複数個であり、前段論理セル同士の配置の入れ替えで線の交差が減る場合には、生成部１１１ａは、該当する前段論理セル同士の配置を入れ替え（図１０；ステップＳ１１６）、ステップＳ１１５の処理に戻る。前段論理セルが１個の場合や、前段論理セルが複数個でも配置の入れ替えで線の交差が減らない場合には、生成部１１１ａは、次のステップＳ１２０へと処理を進める。
【００５９】
ステップＳ１１５及びステップＳ１１６のような処理を実行することで、後段論理セルと接続のある前段論理セルを、その後段論理セルの付近に、線の長大化や交差の発生を抑えて、配置することができる。このステップＳ１１５及びステップＳ１１６のような処理を行うため、ステップＳ１１１での前段論理セルの配置順は任意とすることができる。
【００６０】
生成部１１１ａは、このような前段論理セルの配置を、入力側ＦＦに接続される論理セルの配置を終えるまで順次繰り返す（図４；ステップＳ１２０）。
ステップＳ１００〜Ｓ１２０に関し、一例として６４入力１出力セレクタ回路の場合、生成部１１１ａは、ステップＳ２０の結果を用いて入力側ＦＦを抽出した後（図４；ステップＳ１００）、前段の論理セルとして、２入力１出力セレクタを格子上に配置する（図４；ステップＳ１１０）。
【００６１】
その際、生成部１１１ａは、図２７に示すように、１個のセレクタ３１０（後段論理セル）の前段に設けられる２個の２入力１出力セレクタ（単に「セレクタ」という）３３０（前段論理セル）を、後段のセレクタ３１０の左側に１マス空けて格子２００上に配置する（図１０；ステップＳ１１１）。セレクタ３３０は、格子２００上のマス２１０を、縦方向に３マス分、横方向に３マス分、占有するサイズである。
【００６２】
生成部１１１ａは、２個のセレクタ３３０を、縦方向に互いに１マス空けて配置されるように移動する（図１０；ステップＳ１１２）。
生成部１１１ａは、１個のセレクタ３１０と２個のセレクタ３３０の、互いの中央が揃うように、２個のセレクタ３３０を移動する（図１０；ステップＳ１１３）。
【００６３】
生成部１１１ａは、セレクタ３１０の入力端子と２個のセレクタ３３０の出力端子とを線３４０で結ぶ（図１０；ステップＳ１１４）。
この６４入力１出力セレクタ回路の例では、１個のセレクタ３１０の前段に２個のセレクタ３３０が接続される回路構成のため、論理セルの配置の入れ替えによる線の交差の減少はなく、生成部１１１ａは、次のステップＳ１２０へと処理を進める。
【００６４】
６４入力１出力セレクタ回路の場合、セレクタ３３０は、入力側ＦＦに接続される論理セルに相当しない（図４；ステップＳ１２０）。そのため、生成部１１１ａは、２個のセレクタ３３０（後段論理セル）の更に前段に設けられる４個の２入力１出力セレクタ（単に「セレクタ」という）３５０（前段論理セル）を、後段のセレクタ３３０の左側に１マス空けて格子２００上に配置する（図１０；ステップＳ１１１）。セレクタ３５０は、格子２００上のマス２１０を、縦方向に３マス分、横方向に３マス分、占有するサイズである。
【００６５】
生成部１１１ａは、４個のセレクタ３５０を、縦方向に互いに１マス空けて配置されるように移動する（図１０；ステップＳ１１２）。
生成部１１１ａは、２個のセレクタ３３０と４個のセレクタ３５０の、互いの中央が揃うように、４個のセレクタ３５０を移動する（図１０；ステップＳ１１３）。
【００６６】
生成部１１１ａは、２個のセレクタ３３０の入力端子と４個のセレクタ３５０の出力端子とを線３６０で結ぶ（図１０；ステップＳ１１４）。
生成部１１１ａは、セレクタ３５０の配置の入れ替えで線３６０の交差が減る場合には（図１０；ステップＳ１１５）、セレクタ３５０の配置を入れ替える（図１０；ステップＳ１１６）。尚、図２７には、元々或いはこれ以上、セレクタ３５０の配置の入れ替えによって線３６０の交差が減らない状態を例示している。
【００６７】
生成部１１１ａは、このような処理を、入力側ＦＦに接続される２入力１出力セレクタの配置を終えるまで順次繰り返す（図４；ステップＳ１２０）。
生成部１１１ａは、出力側ＦＦから入力側に向かって順次論理セルを配置していき、配置した論理セルが、入力側ＦＦのデータ出力端子に接続される論理セルとなった場合（図４；ステップＳ１２０）、入力側ＦＦを格子上に配置する（図４；ステップＳ１３０）。
【００６８】
ステップＳ１３０において、生成部１１１ａは、図１１のＳＦ５のように、全ての入力側ＦＦを、その後段の論理セルの左側に、１マス空けて配置する（図１１；ステップＳ１３１）。
【００６９】
生成部１１１ａは、１個の入力側ＦＦに接続される後段論理セルが複数ある場合には、それらのうち格子上で最上位に配置されている後段論理セルの位置に合わせて、その入力側ＦＦを配置する（図１１；ステップＳ１３２）。
【００７０】
生成部１１１ａは、全ての入力側ＦＦのうち格子上で最上位に配置されている入力側ＦＦを、全ての後段論理セルのうち格子上で最上位に配置されている後段論理セルの位置に合わせる（図１１；ステップＳ１３３）。
【００７１】
更に、生成部１１１ａは、全ての入力側ＦＦのうち格子上で最下位に配置されている入力側ＦＦを、全ての後段論理セルのうち格子上で最下位に配置されている後段論理セルの位置に合わせる（図１１；ステップＳ１３４）。
【００７２】
生成部１１１ａは、接続される後段論理セルの入力端子と入力側ＦＦのデータ出力端子とを線で結ぶ（図１１；ステップＳ１３５）。
このようにして入力側ＦＦを配置した後、生成部１１１ａは、これまでのステップで格子上に配置した論理セルの位置を調整する処理を行う（図５；ステップＳ１４０）。
【００７３】
ステップＳ１４０において、生成部１１１ａは、図１２のＳＦ６のように、格子上の入力側ＦＦとそれに接続される論理セル（最前段論理セル）を抽出する（図１２；ステップＳ１４１）。
【００７４】
生成部１１１ａは、最前段論理セルに接続される後段論理セルを抽出する（図１２；ステップＳ１４２）。
生成部１１１ａは、格子上で、抽出した後段論理セルを、それと接続のある前段論理セルの中央に揃える（図１２；ステップＳ１４３）。
【００７５】
生成部１１１ａは、後段論理セルが出力側ＦＦと接続されるものか否かを判定し（図１２；ステップＳ１４４）、出力側ＦＦと接続されるものと判定されるまで、ステップＳ１４２及びステップＳ１４３の処理を繰り返す。
【００７６】
生成部１１１ａは、後段論理セルが出力側ＦＦと接続されるものと判定した場合には、出力側ＦＦを、後段論理セル（出力側ＦＦから見て前段論理セル）の中央に揃える（図１２；ステップＳ１４５）。
【００７７】
ステップＳ１２０〜Ｓ１４０に関し、一例として６４入力１出力セレクタ回路の場合、生成部１１１ａは、まず、配置した論理セルである２入力１出力セレクタが、入力側ＦＦに接続されるものか否かを判定する（図４；ステップＳ１２０）。
【００７８】
生成部１１１ａは、配置した２入力１出力セレクタが入力側ＦＦに接続されるものである場合、入力側ＦＦを格子上に配置し（図４；ステップＳ１３０）、その後、入力側ＦＦ、２入力１出力セレクタ、出力側ＦＦの配置を調整する（図５；ステップＳ１４０）。
【００７９】
生成部１１１ａは、図２８に示すように、入力側ＦＦに接続される２入力１出力セレクタ（単に「セレクタ」という）３７０の左側に、入力側ＦＦ３８０を、１マス空けて格子２００上に配置する（図４；ステップＳ１２０，Ｓ１３０）。セレクタ３７０は、格子２００上のマス２１０を、縦方向に３マス分、横方向に３マス分、占有するサイズであり、入力側ＦＦ３８０は、格子２００上のマス２１０を、１マス分、占有するサイズである。１個のセレクタ３７０に、２個の入力側ＦＦ３８０が接続される。
【００８０】
生成部１１１ａは、各セレクタ３７０の左側に１マス空けて２個の入力側ＦＦ３８０を配置する（図１１；ステップＳ１３１，Ｓ１３２）。
生成部１１１ａは、全ての入力側ＦＦ３８０のうち格子２００上で最上位の入力側ＦＦ３８０を、全てのセレクタ３７０のうち格子２００上で最上位のセレクタ３７０の位置に合わせる（図１１；ステップＳ１３３）。
【００８１】
生成部１１１ａは、全ての入力側ＦＦ３８０のうち格子２００上で最下位の入力側ＦＦ３８０を、全てのセレクタ３７０のうち格子２００上で最下位のセレクタ３７０の位置に合わせる（図１１；ステップＳ１３４）。
【００８２】
生成部１１１ａは、接続されるセレクタ３７０の入力端子と入力側ＦＦ３８０のデータ出力端子とを線３９０で結ぶ（図１１；ステップＳ１３５）。
その後、生成部１１１ａは、まず、格子２００上の入力側ＦＦ３８０とセレクタ３７０を抽出し（図１２；ステップＳ１４１）、セレクタ３７０に接続されるセレクタを抽出して（図１２；ステップＳ１４２）、中央を揃える（図１２；ステップＳ１４３）。このような処理を、出力側ＦＦ３００まで行う（図１２；ステップＳ１４４，Ｓ１４５）。
【００８３】
以上述べたステップＳ１０〜Ｓ１４０（ＳＦ１〜ＳＦ６を含む）により、所定の論理セルで形成された回路網であるロジックコーン（例えば図２８のロジックコーン４００）が、格子上に生成、配置される。このロジックコーンを示す情報は、例えば、設計装置１００が備える記憶部（メモリ等）に格納される。
【００８４】
上記のようにして格子上に配置した論理セルの位置の調整まで行った後、生成部１１１ａは、制御信号生成回路を生成し（図５；ステップＳ１５０）、それを格子上の所定領域に配置し（図５；ステップＳ１６０）、制御信号線の配置を行う（図５；ステップＳ１７０）。
【００８５】
ステップＳ１５０において、生成部１１１ａは、図１３のＳＦ７のように、ステップＳ８０〜Ｓ１４０（ＳＦ２〜ＳＦ６）の例に従う処理を実行して制御信号生成回路を生成する。その際、入力側ＦＦ、出力側ＦＦがない場合は、論理セルの出力端子、入力端子をＦＦと見立てて処理を実行する。その場合、ＦＦと見立てる論理セルの出力端子、入力端子の格子上での横幅（マス数）は０とする。
【００８６】
まず、生成部１１１ａは、図８のＳＦ２の例に従い、格子上に配置する論理セルのサイズを決定する（図１３；ステップＳ１５１）。
次いで、生成部１１１ａは、図９のＳＦ３の例に従い、出力側ＦＦのデータ入力端子に接続される論理セル（又は終点の出力端子を有する論理セル）を格子上に配置する（図１３；ステップＳ１５２）。
【００８７】
生成部１１１ａは、入力側ＦＦ（又は始点の入力端子を有する論理セル）を抽出した後（図１３；ステップＳ１５３）、図１０のＳＦ４の例に従い、格子上に配置した論理セルの前段の論理セルを格子上に配置する（図１３；ステップＳ１５４）。
【００８８】
生成部１１１ａは、同様に入力側ＦＦのデータ出力端子に接続される論理セル（又は始点の入力端子を有する論理セル）まで配置する（図１３；ステップＳ１５４，Ｓ１５５）。
【００８９】
入力側ＦＦがある場合、生成部１１１ａは、図１１のＳＦ５の例に従い、入力側ＦＦを格子上に配置する（図１３；ステップＳ１５６）。
生成部１１１ａは、図１２のＳＦ６の例に従い、格子上に配置した論理セルの位置を調整する（図１３；ステップＳ１５７）。
【００９０】
このようにして制御信号生成回路を生成した後、生成部１１１ａは、それを格子上の所定領域に配置する（図５；ステップＳ１６０）。
ステップＳ１６０において、生成部１１１ａは、図１４のＳＦ８のように、生成した制御信号生成回路の外形を生成する（図１４；ステップＳ１６１）。
【００９１】
生成部１１１ａは、その外形を、ステップＳ１０〜Ｓ１４０（ＳＦ１〜ＳＦ６を含む）の処理によって格子上に配置したロジックコーン（回路網）との間に１マス空けて、格子の左下に配置する（図１４；ステップＳ１６２）。
【００９２】
制御信号生成回路の外形を配置した後、生成部１１１ａは、制御信号生成回路とロジックコーンとを接続する制御信号線を、格子上に配置する（図５；ステップＳ１７０）。
ステップＳ１７０において、生成部１１１ａは、図１５のＳＦ９のように、まず、格子の１マスを縦に通る制御信号線の本数の上限を、例えば、半導体テクノロジ（形成可能な配線幅、配線間隔等）、設計対象の配線層構造（多層配線の層数等）を基に、決定する（図１５；ステップＳ１７１）。尚、このような半導体テクノロジ、配線層構造に関する情報は、合成制約４に登録しておくことができる。
【００９３】
生成部１１１ａは、このようにして決定された制御信号線の本数制限の下で、格子上の制御信号生成回路とロジックコーンを制御信号線で結ぶ（図１５；ステップＳ１７２）。
制御信号生成回路とロジックコーンとを結んだ結果、制御信号線同士が交差してもそれらを入れ替えることで交差が減る場合には（図１５；ステップＳ１７３）、生成部１１１ａは、それらの制御信号線の入れ替えを行う（図１５；ステップＳ１７４）。
【００９４】
生成部１１１ａは、先に決定された制御信号線の本数制限の下で格子上に制御信号線を配置すると論理セルに交差してしまう場合には（図１５；ステップＳ１７５）、交差する論理セルから右（後段）の回路部を、制御信号線との交差がなくなるまで右側に移動する（図１５；ステップＳ１７６）。
【００９５】
ステップＳ１５０〜Ｓ１７０に関し、一例として６４入力１出力セレクタ回路の場合、生成部１１１ａは、ステップＳ１５０（図５）及びＳＦ７（図１３）に従い、図２９に示す制御信号生成回路５００（内部回路は図示せず）を生成する。例えば、制御信号生成回路５００として、Ｘビット（Ｘは自然数）のデコーダを生成する。
【００９６】
生成部１１１ａは、図２９に示すように、生成した制御信号生成回路５００の外形５００ａを、格子２００の左下領域に配置する（図１４；ステップＳ１６１，Ｓ１６２）。
配置後、生成部１１１ａは、格子２００の１マスを縦に通る制御信号線の本数の上限を、例えば２本に決定する（図１５；ステップＳ１７１）。
【００９７】
生成部１１１ａは、その本数制限の下で、格子２００上の制御信号生成回路５００とロジックコーン４００とを制御信号線６００で結ぶ（図１５；ステップＳ１７２）。
生成部１１１ａは、制御信号線６００同士の配置の入れ替えで交差が減る場合には、制御信号線６００同士の配置を入れ替える（図１５；ステップＳ１７３，Ｓ１７４）。
【００９８】
生成部１１１ａは、制御信号線６００がロジックコーン４００内の２入力１出力セレクタ（論理セル）と交差する場合には、交差する２入力１出力セレクタから右の回路部（出力側ＦＦ３００まで）を、交差がなくなるまで右側に移動する（図１５；ステップＳ１７５，Ｓ１７６）。
【００９９】
以上述べたステップＳ１０〜Ｓ１７０により、所定の論理セルのロジックコーン及び制御信号生成回路を含む第１レイアウト（例えば図２９のロジックコーン４００及び制御信号生成回路５００を含む第１レイアウト２１）が、格子上に生成、配置される。この第１レイアウトを示す情報は、例えば、設計装置１００が備える記憶部（メモリ等）に格納される。
【０１００】
上記のようにしてロジックコーン並びに制御信号生成回路及び制御信号線の配置まで行った後は、論理合成単位設定処理部１１１の算出部１１１ｂ（図３）が、所定の論理セルを頂点とする三角形を生成する（図５；ステップＳ１８０）。そして、算出部１１１ｂは、所定の三角形の組について面積比を算出する（図５；ステップＳ１９０〜Ｓ２１０）。
【０１０１】
ステップＳ１８０において、算出部１１１ｂは、図１６のＳＦ１０のように、まず、格子上のロジックコーンにおける、入力側ＦＦからｍ段目の論理セルと、それに繋がる最上位の入力側ＦＦ及び最下位の入力側ＦＦとで規定される三角形Ｉｍを生成する。ここで、ｍは、１≦ｍ≦Ｘの自然数であり、Ｘは、入力側ＦＦと出力側ＦＦの間の論理セル段数である。算出部１１１ｂは、入力側ＦＦから１段目の論理セルを一頂点とする三角形Ｉ１から、出力側ＦＦと接続される論理セル（出力側ＦＦの前段の論理セル）を一頂点とする三角形ＩＸまで、生成する（図１６；ステップＳ１８１〜Ｓ１８４）。
【０１０２】
また、算出部１１１ｂは、図１６のＳＦ１０のように、格子上のロジックコーンにおける、出力側ＦＦと、それに繋がる論理セルであって、出力側ＦＦからｎ段目の最上位の論理セル及び最下位の論理セルとで規定される三角形Ｏｎを生成する。ここで、ｎは、１≦ｎ≦Ｘの自然数であり、Ｘは、入力側ＦＦと出力側ＦＦの間の論理セル段数である。算出部１１１ｂは、出力側ＦＦから１段目の論理セルを辺に含む三角形Ｏ１から、入力側ＦＦと接続される論理セル（入力側ＦＦの後段の論理セル）を辺に含む三角形ＯＸまで、生成する（図１６；ステップＳ１８５〜Ｓ１８８）。
【０１０３】
このような三角形Ｉｍ及び三角形Ｏｎを生成した後、算出部１１１ｂは、次のような処理を行う。
即ち、算出部１１１ｂは、図１７のＳＦ１１のように、三角形Ｉｍの面積Ａ〔Ｉｍ〕、及び、その三角形Ｉｍの頂点の論理セル（入力側ＦＦからｍ段目の論理セル）を辺に含む三角形Ｏｎ（ｎ＝Ｘ＋１−ｍ）の面積Ａ〔Ｏｎ〕を算出し、それらの比を算出する（図１７；ステップＳ１９２）。
【０１０４】
算出部１１１ｂは、このような処理を、論理セルの段ｍを変化させて繰り返し、面積Ａ〔Ｉｍ〕と面積Ａ〔Ｏｎ〕が所定の比となる三角形Ｉｍと三角形Ｏｎの組み合わせを得る（図１７；ステップＳ１９１，Ｓ１９２，Ｓ２００，Ｓ２１０）。
【０１０５】
例えば、算出部１１１ｂは、面積Ａ〔Ｉｍ〕と面積Ａ〔Ｏｎ〕が１：１となるような三角形Ｉｍと三角形Ｏｎの組み合わせを得る。尚、面積Ａ〔Ｉｍ〕と面積Ａ〔Ｏｎ〕が満たすべき面積比は、予め設計装置１００に設定しておくことができる。面積比は、１：１に限らず、設計対象の半導体集積回路の形態を基に各種値に設定することができ、また、一定の範囲で設定することもできる。
【０１０６】
算出部１１１ｂで得られる、所定の面積比となる三角形Ｉｍと三角形Ｏｎの組み合わせを示す情報、所定の面積比となる三角形Ｉｍと三角形Ｏｎの境界の論理セル段（ｍ又はｎの値）を示す情報は、設定部１１１ｃに送られる。
【０１０７】
上記の三角形Ｉｍ及び三角形Ｏｎについて、６４入力１出力セレクタ回路の場合を例に、図３０を参照して説明する。
図３０には、ステップＳ１０〜Ｓ１７０により得られる第１レイアウト２１、即ち、格子（図示せず）上に配置されたロジックコーン４００及び制御信号生成回路５００並びにそれらを接続する制御信号線６００を図示している。尚、ここでは、格子の１マスを縦に通る制御信号線６００の本数の上限は４本とする。制御信号生成回路５００は、６ビット（Ｘ＝６）のデコーダとする。
【０１０８】
算出部１１１ｂは、まず、入力側ＦＦ３８０から１段目（ｍ＝１）のセレクタ３７０とそれに接続される最上位及び最下位の２個の入力側ＦＦ３８０を頂点とする三角形Ｉ１を生成する（図１６；ステップＳ１８１，Ｓ１８２）。
【０１０９】
この入力側ＦＦ３８０から１段目のセレクタ３７０は、出力側ＦＦ３００と接続されるセレクタには相当しない（図１６；ステップＳ１８３）。そのため、算出部１１１ｂは、続いて入力側ＦＦ３８０から２段目（ｍ＝２）のセレクタ３７２とそれに接続される最上位及び最下位の２個の入力側ＦＦ３８０を頂点とする三角形Ｉ２を生成する（図１６；ステップＳ１８４，Ｓ１８１，Ｓ１８２）。
【０１１０】
算出部１１１ｂは、このような処理を繰り返し、三角形Ｉ３、三角形Ｉ４、三角形Ｉ５、及び、出力側ＦＦ３００と接続されるセレクタ３１０を一頂点とする三角形Ｉ６を生成する。尚、図３０には、三角形Ｉ１〜Ｉ６のうち、三角形Ｉ１、三角形Ｉ２、三角形Ｉ４のみを図示している。
【０１１１】
次いで、算出部１１１ｂは、出力側ＦＦ３００から１段目（ｎ＝１）のセレクタ３１０を辺に含む三角形Ｏ１を生成する処理を行う（図１６；ステップＳ１８５，Ｓ１８６）。但し、この例では、出力側ＦＦ３００から１段目のセレクタ３１０が１個であるため、三角形Ｏ１に相当する三角形は得られない。
【０１１２】
出力側ＦＦ３００から１段目のセレクタ３１０は、入力側ＦＦ３８０と接続されるセレクタには相当しない（図１６；ステップＳ１８７）。そのため、算出部１１１ｂは、続いて出力側ＦＦ３００とそれに接続される２段目（ｎ＝２）の２個のセレクタ３３０を頂点とする三角形Ｏ２を生成する（図１６；ステップＳ１８８，Ｓ１８６，Ｓ１８７）。
【０１１３】
算出部１１１ｂは、このような処理を繰り返し、三角形Ｏ３、三角形Ｏ４、三角形Ｏ５、及び、入力側ＦＦ３８０と接続される最上位及び最下位のセレクタ３７０を頂点に含む三角形Ｏ６を生成する。尚、図３０には、三角形Ｏ１〜Ｏ６のうち、三角形Ｏ２、三角形Ｏ３のみを図示している。
【０１１４】
算出部１１１ｂは、このように三角形Ｉ１〜Ｉ６及び三角形Ｏ１〜Ｏ６を生成した後、それらの面積を算出する。算出部１１１ｂは、三角形Ｉ１の面積Ａ〔Ｉ１〕と、その三角形Ｉ１の頂点のセレクタ３７０を辺に含む三角形Ｏ６の面積Ａ〔Ｏ６〕との面積比を算出し（図１７；ステップＳ１９１，Ｓ１９２）、所定の面積比となるか否かを判定する（図１７；ステップＳ２００）。
【０１１５】
算出部１１１ｂは、面積Ａ〔Ｉ１〕と面積Ａ〔Ｏ６〕が所定の面積比とならない場合には、三角形Ｉ２の面積Ａ〔Ｉ２〕と、その三角形Ｉ２の頂点のセレクタ３７２を辺に含む三角形Ｏ５の面積Ａ〔Ｏ５〕の面積比を算出する（図１７；ステップＳ２１０，Ｓ１９１，Ｓ１９２）。算出部１１１ｂは、面積Ａ〔Ｉ２〕と面積Ａ〔Ｏ５〕が所定の面積比となるか否かを判定する（図１７；ステップＳ２００）。
【０１１６】
算出部１１１ｂは、同様にして、所定の面積比の組み合わせが得られるまで、三角形Ｉ３と三角形Ｏ４、三角形Ｉ４と三角形Ｏ３、三角形Ｉ５と三角形Ｏ２、三角形Ｉ６と三角形Ｏ１の各面積比の算出、比較を行う。尚、この例では、処理上、面積Ａ〔Ｏ１〕＝０とする。
【０１１７】
このようにして算出部１１１ｂで得られる、所定の面積比となる三角形Ｉｍと三角形Ｏｎの組み合わせを示す情報、所定の面積比となる三角形Ｉｍと三角形Ｏｎの境界のセレクタ段（ｍの値）を示す情報が、設定部１１１ｃに送られる。例えば、三角形Ｉ４（ｍ＝４）と三角形Ｏ３（ｎ＝３）の面積比が、予め設定された比である１：１となった場合、算出部１１１ｂは、三角形Ｉ４と三角形Ｏ３の境界のセレクタ段をｍ＝４（又はｎ＝３）とし、図１７のＳＦ１１の処理を終了する。
【０１１８】
尚、ここでは、三角形Ｉ１〜Ｉ６を生成し、次いで三角形Ｏ１〜Ｏ６を生成する場合（図１６のＳＦ１０）を例示した。このほか、三角形Ｏ１〜Ｏ６を生成し、次いで三角形Ｉ１〜Ｉ６を生成するようにしたり、所定段の論理セルを頂点と辺に共有する三角形Ｉｍと三角形Ｏｎの組を順次生成したりすることもできる。
【０１１９】
また、ここでは、三角形Ｉ１〜Ｉ６及び三角形Ｏ１〜Ｏ６を生成した後、所定段の論理セルを頂点と辺に共有する三角形の組についてその面積比を算出する場合（図１７のＳＦ１１）を例示した。このほか、所定段の論理セルを頂点と辺に共有する三角形Ｉｍと三角形Ｏｎの組を生成しながらその面積比を算出していくようにすることもできる。このような方法によれば、全ての三角形Ｉ１〜Ｉ６及び三角形Ｏ１〜Ｏ６の生成及びそれらの面積の算出を行わずに済む場合があるため、そのような場合に、処理量の削減を図ることが可能になる。
【０１２０】
上記のようにして所定の面積比となる三角形Ｉｍと三角形Ｏｎの境界の論理セル段を示す情報が得られた後、論理合成単位設定処理部１１１の設定部１１１ｃ（図３）は、その論理セル段を論理分割段とし、上記第１レイアウトの制御信号生成回路を分割する（図５；ステップＳ２２０）。設定部１１１ｃは、分割した制御信号生成回路（第１制御信号生成回路部及び第２制御信号生成回路部）を格子上に配置する（図５；ステップＳ２３０，Ｓ２４０）。
【０１２１】
ステップＳ２２０において、設定部１１１ｃは、図１８のＳＦ１２のような処理を行う。
即ち、設定部１１１ｃは、まず、論理分割段の論理セルから入力側ＦＦまで（或いは入力側ＦＦから論理分割段の論理セルまで）トレースして得られる第１ロジックコーン部について、その第１ロジックコーン部に接続される制御信号線を抽出する（図１８；ステップＳ２２１）。
【０１２２】
次いで、設定部１１１ｃは、分割前の制御信号生成回路から、ステップＳ２２１で抽出した制御信号線に接続される回路部（第１制御信号生成回路部）を、図１３のＳＦ７に従って、生成する（図１８；ステップＳ２２２）。
【０１２３】
更に、設定部１１１ｃは、出力側ＦＦから、論理分割段の後段の論理セルまで（或いは論理分割段の後段の論理セルから出力側ＦＦまで）トレースして得られる第２ロジックコーン部について、その第２ロジックコーン部に接続される制御信号線を抽出する（図１８；ステップＳ２２３）。
【０１２４】
次いで、設定部１１１ｃは、分割前の制御信号生成回路から、ステップＳ２２３で抽出した制御信号線に接続される回路部（第２制御信号生成回路部）を、図１３のＳＦ７に従って、生成する（図１８；ステップＳ２２４）。
【０１２５】
続くステップＳ２３０において、設定部１１１ｃは、図１９のＳＦ１３のような処理を行う。
即ち、設定部１１１ｃは、生成した第１制御信号生成回路部を、格子上の、第１ロジックコーン部の左下に１マス空けて配置する（図１９；ステップＳ２３１）。
【０１２６】
設定部１１１ｃは、生成した第２制御信号生成回路部を、ステップＳ２３１のように第１制御信号生成回路部を配置した後の回路、即ち第１ロジックコーン部と第１制御信号生成回路を含む領域との間に１マス空けて格子の左下に配置する（図１９；ステップＳ２３２）。
【０１２７】
続くステップＳ２４０においては、設定部１１１ｃは、図２０のＳＦ１４のような処理を行う。
即ち、設定部１１１ｃは、第１制御信号生成回路部及び第２制御信号生成回路部を配置した回路について、入力側ＦＦ、論理セル、出力側ＦＦの配置、接続を修正する（図２０；ステップＳ２４１，Ｓ２４２）。その際、設定部１１１ｃは、図１５のＳＦ９までの処理を満たすように、入力側ＦＦ、論理セル、出力側ＦＦの配置、接続を修正する。
【０１２８】
上記の制御信号生成回路の分割及び配置について、６４入力１出力セレクタ回路の場合を例に、図３１を参照して説明する。尚、図３１には、制御信号生成回路の分割及び配置後のレイアウト（第２レイアウト２２）の一例を図示している。
【０１２９】
例えば、前述のように、図３０の三角形Ｉ４（ｍ＝４）と三角形Ｏ３（ｎ＝３）の面積比が所定比となった場合、三角形Ｉ４と三角形Ｏ３の境界のセレクタ段（ｍ＝４）が、論理分割段とされる。
【０１３０】
設定部１１１ｃは、論理分割段のセレクタ３５０から入力側ＦＦ３８０までトレースして得られる第１ロジックコーン部４１０について、それに接続される制御信号線６００を抽出する（図１８；ステップＳ２２１）。
【０１３１】
設定部１１１ｃは、抽出した制御信号線６００に接続される第１制御信号生成回路部５１０を、図１３のＳＦ７に従って生成する（図１８；ステップＳ２２２）。この例では、図３０に示したような６ビットデコーダの制御信号生成回路５００から、図３１に示すような、入力側ＦＦ３８０と４段のセレクタを含む第１ロジックコーン部４１０に接続される、４ビットデコーダの第１制御信号生成回路部５１０が生成される。
【０１３２】
また、設定部１１１ｃは、出力側ＦＦ３００から、論理分割段の後段のセレクタ３３０までトレースして得られる第２ロジックコーン部４２０について、それに接続される制御信号線６００を抽出する（図１８；ステップＳ２２３）。
【０１３３】
設定部１１１ｃは、抽出した制御信号線６００に接続される第２制御信号生成回路部５２０を、図１３のＳＦ７に従って、生成する（図１８；ステップＳ２２４）。この例では、図３０に示したような６ビットデコーダの制御信号生成回路５００から、図３１に示すような、出力側ＦＦ３００と２段のセレクタを含む第２ロジックコーン部４２０に接続される、２ビットデコーダの第２制御信号生成回路部５２０が生成される。
【０１３４】
設定部１１１ｃは、生成した第１制御信号生成回路部５１０を、格子上の、第１ロジックコーン部４１０の左下に１マス空けて配置する（図１９；ステップＳ２３１）。この例では、図３１に示すように、論理分割段（ｍ＝４）に４個のセレクタ３５０があり、これらのセレクタ３５０をそれぞれ頂点とする４個の第１ロジックコーン部４１０の、各々の左下に、第１制御信号生成回路部５１０が配置される。
【０１３５】
また、設定部１１１ｃは、生成した第２制御信号生成回路部５２０を、第１制御信号生成回路部５１０を配置した後の回路、即ち第１ロジックコーン部４１０と第１制御信号生成回路５１０を含む領域との間に１マス空けて左下に配置する（図１９；ステップＳ２３２）。
【０１３６】
その後、設定部１１１ｃは、第１制御信号生成回路部５１０及び第２制御信号生成回路部５２０を配置した回路の入力側ＦＦ３８０、セレクタ群、出力側ＦＦ３００について、一定ルールを満たすように移動や繋ぎ直しを行う（図２０；ステップＳ２４１，Ｓ２４２）。
【０１３７】
ステップＳ２２０〜Ｓ２４０により、ロジックコーン部及び制御信号生成回路部を含む第２レイアウト（例えば図３１の第１，第２ロジックコーン部４１０，４２０及び第１，第２制御信号生成回路部５１０，５２０を含む第２レイアウト２２）が、格子上に生成、配置される。この第２レイアウトを示す情報は、例えば、設計装置１００が備える記憶部（メモリ等）に格納される。
【０１３８】
上記のようにして第１制御信号生成回路部及び第２制御信号生成回路部の生成（制御信号生成回路の分割）及び配置を行って第２レイアウトを生成した後、設定部１１１ｃは、次のような処理を行う。
【０１３９】
即ち、設定部１１１ｃは、分割前の制御信号生成回路を含む第１レイアウトから生成される三角形と、分割後の第１制御信号生成回路部及び第２制御信号生成回路部を含む第２レイアウトから生成される三角形との面積を比較する（図６；ステップＳ２５０，Ｓ２６０）。
【０１４０】
ステップＳ２５０では、設定部１１１ｃは、図２１のＳＦ１５のような処理を行う。
設定部１１１ｃは、分割前の制御信号生成回路を含む第１レイアウトについて、その出力側ＦＦ（複数個の場合はそのうちの１個）と、最上位及び最下位の入力側ＦＦとを頂点とする三角形を生成する（図２１；ステップＳ２５１）。
【０１４１】
設定部１１１ｃは、分割された第１制御信号生成回路部及び第２制御信号生成回路部を含む第２レイアウトについて、その出力側ＦＦ（複数個の場合はそのうちの１個）と、最上位及び最下位の入力側ＦＦとを頂点とする三角形を生成する（図２１；ステップＳ２５２）。
【０１４２】
このような三角形について、６４入力１出力セレクタ回路の場合を例に、図３２及び図３３を参照して説明する。
設定部１１１ｃは、図３２に示すような、ロジックコーン４００及びそれと制御信号線６００で接続された分割前の制御信号生成回路５００（６ビットデコーダ）を含む第１レイアウト２１について、三角形Ｔ０を生成する。図３２に示す第１レイアウト２１では、１個の出力側ＦＦ３００と、セレクタ３７０に繋がる最上位の入力側ＦＦ３８０と、制御信号生成回路５００に繋がる最下位の入力側ＦＦ３８０とを頂点とする、三角形Ｔ０が生成される。
【０１４３】
設定部１１１ｃは、図３３に示すような、第１，第２ロジックコーン部４１０，４２０及びそれらと制御信号線６００で接続された第１，第２制御信号生成回路部５１０，５２０（４，２ビットデコーダ）を含む第２レイアウト２２について、三角形Ｔを生成する。図３３に示す第２レイアウト２２では、１個の出力側ＦＦ３００と、セレクタ３７０に繋がる最上位の入力側ＦＦ３８０と、第２制御信号生成回路部５２０に繋がる最下位の入力側ＦＦ３８０とを頂点とする、三角形Ｔが生成される。
【０１４４】
設定部１１１ｃは、ステップＳ２５０において、このように制御信号生成回路分割前の第１レイアウト及び制御信号生成回路分割後の第２レイアウトについてそれぞれ三角形を生成する。
【０１４５】
次いで、設定部１１１ｃは、それらの三角形の面積を算出し、大きさを比較する（図６；ステップＳ２６０）。設定部１１１ｃは、制御信号生成回路分割後の第２レイアウトで得られる三角形の面積が、制御信号生成回路分割前の第１レイアウトで得られる三角形の面積よりも小さくなる場合、上記論理分割段で論理を分割し、論理合成単位を設定する（図６；ステップＳ２７０，Ｓ２８０）。
【０１４６】
図３２及び図３３の６４入力１出力セレクタ回路の例では、設定部１１１ｃは、図３２に示す第１レイアウト２１の三角形Ｔ０と、図３３に示す第２レイアウト２２の三角形Ｔの面積を算出し、比較する。一例として、第１レイアウト２１（図３２）の三角形Ｔ０の面積は１９２×４５／２＝４３２０（任意単位）、第２レイアウト２２（図３３）の三角形Ｔの面積は２００×３４／２＝３４００（任意単位）である。
【０１４７】
このように三角形Ｔの面積の方が、三角形Ｔ０の面積よりも小さくなる場合、設定部１１１ｃは、上記論理分割段、即ち、入力側ＦＦ３８０から４段目のセレクタ３５０の段（ｍ＝４）で、論理を分割する。設定部１１１ｃは、この論理分割段を境にした、図３３に示す第１ロジックコーン部４１０及び第２ロジックコーン部４２０を、論理合成時に用いる論理合成単位に設定する。或いは設定部１１１ｃは、第１ロジックコーン部４１０とそれに接続される第１制御信号生成回路５１０、及び、第２ロジックコーン部４２０とそれに接続される第２制御信号生成回路５２０を、論理合成時に用いる論理合成単位に設定する。
【０１４８】
三角形Ｔの面積の方が、三角形Ｔ０の面積よりも大きくなる場合には、設定部１１１ｃは、論理の分割を行わない。このように論理の分割を行わない場合には（図６；ステップＳ２７０）、ステップＳ３００の処理に進む。
【０１４９】
上記のようにして論理合成単位を設定した後、設定部１１１ｃは、設定した論理合成単位を合成制約４に追加する（図６；ステップＳ２９０）。
ステップＳ２９０において、設定部１１１ｃは、図２２のＳＦ１６のような処理を行う。
【０１５０】
即ち、設定部１１１ｃは、まず論理合成ツールが保有する基本セル構造（ジェネリックレベル）までの合成を実行する（図２２；ステップＳ２９１）。
設定部１１１ｃは、設定した論理合成単位に基づき、ラッパー階層を生成し（図２２；ステップＳ２９２）、セレクタの選択信号生成回路階層を組み換える（図２２；ステップＳ２９３）。
【０１５１】
設定部１１１ｃは、変更後の階層についてジェネリックレベルのネットリストと合成制約を生成する（図２２；ステップＳ２９４）。
例えば、ステップＳ２８０までの処理で、図３４に示すような論理合成単位７００（Ｔｏｐ，ＭｏｄｕｌｅＡ，ＭｏｄｕｌｅＢ，ＭｏｄｕｌｅＳ）が設定された場合を想定する。この論理合成単位７００に合わせてラッパー（ｗｒａｐｐｅｒ）階層を生成し（図３４）、選択信号生成回路階層を組み換え、図３５に示すような論理階層とする場合、合成制約は、図３６（Ａ）〜図３６（Ｃ）のようなものとなる。
【０１５２】
図３６（Ａ）は、次のような内容を含む。Ｔｏｐ以下にＭｏｄｕｌｅＡ，ＭｏｄｕｌｅＢを生成し（＊１）、ＭｏｄｕｌｅＡ以下にＭｏｄｕｌｅＡ０，ＭｏｄｕｌｅＡ１を生成する（＊２）。同様に、ＭｏｄｕｌｅＢ以下にＭｏｄｕｌｅＢ０，ＭｏｄｕｌｅＢ１を生成する。そして、ジェネリックレベルのセルｇｃｅｌｌＡ０１，ｇｃｅｌｌＡ０２，・・・をＭｏｄｕｌｅＡ０以下に集める（＊３）。ＭｏｄｕｌｅＡ１，ＭｏｄｕｌｅＢ０，ＭｏｄｕｌｅＢ１についても同様とする。
【０１５３】
図３６（Ｂ）は、次のような内容を含む。ＭｏｄｕｌｅＳ０，ＭｏｄｕｌｅＳ１を複製する（＊４）。ＭｏｄｕｌｅＳ０，ＭｏｄｕｌｅＳ１をＭｏｄｕｌｅＡ内に移動し、複製したＭｏｄｕｌｅＳ０＿２，ＭｏｄｕｌｅＳ１＿２をＭｏｄｕｌｅＢ内に移動する（＊５）。
【０１５４】
論理合成単位を示す合成制約は、図３６（Ｃ）のように記述される。
設定部１１１ｃは、変更後の階層についてジェネリックレベルのネットリストと合成制約を生成した後（図２２；ステップＳ２９４）、論理合成ツール内部でジェネリックレベルのネットリストと合成制約を保持して次の処理（Ｓ３００，Ｓ３１０）へと移行する。
【０１５５】
以上のようにして論理合成単位が設定され、その情報が追加された合成制約４が生成された後、論理合成部１１０の論理合成処理部１１２（図３）が、論理合成プログラム１０に従った論理合成の処理を実行し、ネットリスト６を生成する。その際、論理合成処理部１１２は、ＦＦや２入力１出力セレクタ等に限定していた論理セル種の限定を解除し（図６；ステップＳ３００）、合成制約４を用いて、論理合成（第２論理合成）を行い（図６；ステップＳ３１０）、ネットリスト６を生成する。そして、配置配線部１２０（図３）が、合成制約４及びネットリスト６等を用いて、配置配線プログラム１１に従った配置配線の処理を実行し、配置配線データ９を生成する。
【０１５６】
上記のように、論理合成単位は、基本論理構成の論理セルでロジックコーンを作成し、そのロジックコーンに対し、一定ルールの下で制御信号線の配置、論理セルの配置を行い、所定の三角形を基に論理分割段を決定し、論理分割することで、設定される。
【０１５７】
設定される論理合成単位は、設計対象の半導体集積回路（全部又は一部）の論理を、配線混雑を抑えて配線可能な論理合成単位に分割したものである。このような論理合成単位を用いることで、論理合成後の配置配線において、配線混雑が発生する可能性を低く抑えることができる。
【０１５８】
また、このように、配線可能な論理合成単位に分割し、それに合わせて分割した制御信号生成回路を含めた三角形の面積が、分割前の三角形の面積よりも小さくなる場合に、論理合成単位を設定する。そのため、そのような論理合成単位を用いて論理合成を行って配置配線を行った後の、レイアウト面積が増大する可能性を低く抑えることができる。
【０１５９】
上記手法によれば、配置配線時の配線混雑の発生とレイアウト面積の増大が抑制可能な論理合成単位を、論理合成の段階で設定することができ、論理合成と配置配線の繰り返しを抑制し、半導体集積回路の設計効率の向上を図ることができる。
【０１６０】
従来の論理合成では、例えば、タイミングと論理セルの合計面積を重視してネットリストが生成される。多入力多出力の選択回路、デコーダ回路、エンコーダ回路、演算器等では、論理セルの論理面積（合計面積、総セル面積）は小さくても、物理的に配置配線を行った場合に、配線混雑が発生する場合がある。この場合、集積度を下げて配線混雑を抑える措置が取られるのが一般的であるが、レイアウト面積は大きくなる。論理合成単位を小さくし、それぞれの制御回路を分割すると、論理面積は大きくなり得るものの、配線混雑を緩和し、レイアウト面積の増大を抑制することが可能になる場合がある。しかし、そのような論理合成単位を得るために、何度か論理合成と配置配線をやり直したり、得られた論理合成単位でレイアウト面積が削減可能かどうか、更に何度か論理合成と配置配線をやり直したりする必要が生じ得る。このような論理合成と配置配線の繰り返しにより、設計効率が低下することがある。
【０１６１】
上記手法では、論理合成時に、配線混雑の発生とレイアウト面積の増大を抑えるような論理合成単位を設定する。これにより、レイアウト面積の増大を抑えて配線可能な論理合成単位を得るために、論理合成と配置配線を繰り返すといった事態を回避することが可能になり、設計効率の向上が図られるようになる。
【０１６２】
配置配線後における配線混雑度の評価結果の一例を図３７及び表１に示す。
【０１６３】
【表１】
2015225432.tif 000003
【０１６４】
図３７（Ａ）及び図３７（Ｂ）並びに表１には、４０９６入力１出力セレクタ回路を２つ配置し配線した場合の評価結果の一例を示している。図３７（Ａ）及び図３７（Ｂ）並びに表１では、上記のような論理分割を行わずに配置配線を行ったものを「分割なし」（図３７（Ａ））と記し、上記のような論理分割を行って配置配線を行ったものを「分割あり」（図３７（Ｂ））と記している。図３７（Ａ）及び図３７（Ｂ）では、配線混雑が生じている部分が明るい（薄い）色で表わされている。
【０１６５】
図３７（Ａ）及び図３７（Ｂ）並びに表１より、上記のような論理分割を行って配置配線を行うことで、配線混雑の発生及びそれによる配線特性の劣化を効果的に抑制することが可能になる。
【０１６６】
上記のような設計装置１００を用いた設計手法は、先に例示した６４入力１出力セレクタ回路等に限らず、図３８及び図３９に示すような回路にも適用することができる。
図３８に示す回路８００は、５１２×４＝２０４８ビットの入力を、１６個のＲＡＭ部８１０（１６ビットＲＡＭ（ＦＦ）×１２８）、３２７６８（＝２０４８×１６）入力３２出力のセレクタ回路８２０、３２個のＦＦ８３０を介して出力する。このような回路８００の、例えば範囲８００ａについて、上記設計装置１００を用いた設計手法を適用することができる。
【０１６７】
図３９に示す回路９００は、６４×３２＝２０４８ビットの入力を、２０４８個のＦＦ９１０、１２８入力１出力のセレクタ回路９２０を介し、２個の積和演算部９３０を通じて８ビットで出力する。各積和演算部９３０は、２個の乗算器（ＭＵＬ）９３１と、それらに接続された１個の加算器（ＡＤＤ）９３２と、ＡＤＤ９３２に接続されたＦＦ群９３３とを含む。このような回路９００の、例えば範囲９００ａについて、上記設計装置１００を用いた設計手法を適用することができる。
【０１６８】
以上説明した設計装置１００の処理機能は、コンピュータを用いて実現することができる。
図４０はコンピュータのハードウェアの構成例を示す図である。
【０１６９】
コンピュータ１０００は、プロセッサ１０１０によって装置全体が制御される。プロセッサ１０１０には、バス１０９０を介してＲＡＭ（Random Access Memory）１０２０と複数の周辺機器が接続される。プロセッサ１０１０は、マルチプロセッサであってもよい。プロセッサ１０１０は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）又はＰＬＤ（Programmable Logic Device）である。プロセッサ１０１０は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうち２以上の要素の組み合わせであってもよい。
【０１７０】
ＲＡＭ１０２０は、コンピュータ１０００の主記憶装置として使用される。ＲＡＭ１０２０には、プロセッサ１０１０に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２０には、プロセッサ１０１０による処理に必要な各種データが格納される。
【０１７１】
バス１０９０に接続されている周辺機器としては、ＨＤＤ（Hard Disk Drive）１０３０、グラフィック処理装置１０４０、入力インタフェース１０５０、光学ドライブ装置１０６０、機器接続インタフェース１０７０及びネットワークインタフェース１０８０がある。
【０１７２】
ＨＤＤ１０３０は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ１０３０は、コンピュータ１０００の補助記憶装置として使用される。ＨＤＤ１０３０には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。尚、補助記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【０１７３】
グラフィック処理装置１０４０には、モニタ１２１０が接続される。グラフィック処理装置１０４０は、プロセッサ１０１０からの命令に従って、画像をモニタ１２１０の画面に表示させる。モニタ１２１０としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置等がある。
【０１７４】
入力インタフェース１０５０には、キーボード１２２０とマウス１２３０とが接続されている。入力インタフェース１０５０は、キーボード１２２０やマウス１２３０から送られてくる信号をプロセッサ１０１０に送信する。尚、マウス１２３０は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボール等がある。
【０１７５】
光学ドライブ装置１０６０は、レーザ光等を利用して、光ディスク１２４０に記録されたデータの読み取りを行う。光ディスク１２４０は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１２４０には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等がある。
【０１７６】
機器接続インタフェース１０７０は、コンピュータ１０００に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース１０７０には、メモリ装置１２５０やメモリリーダライタ１２６０を接続することができる。メモリ装置１２５０は、機器接続インタフェース１０７０との通信機能を搭載した記録媒体である。メモリリーダライタ１２６０は、メモリカード１２７０へのデータの書き込み、又はメモリカード１２７０からのデータの読み出しを行う装置である。メモリカード１２７０は、カード型の記録媒体である。
【０１７７】
ネットワークインタフェース１０８０は、ネットワーク１１００に接続されている。ネットワークインタフェース１０８０は、ネットワーク１１００を介して、他のコンピュータ又は通信機器との間でデータの送受信を行う。
【０１７８】
以上のようなハードウェア構成によって、設計装置１００の処理機能、例えば上記の論理合成部１１０、論理合成単位設定処理部１１１、生成部１１１ａ、算出部１１１ｂ及び設定部１１１ｃの処理機能、配置配線部１２０の処理機能を実現することができる。
【０１７９】
コンピュータ１０００は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、設計装置１００の処理機能を実現する。コンピュータ１０００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、コンピュータ１０００に実行させるプログラムをＨＤＤ１０３０に格納しておくことができる。プロセッサ１０１０は、ＨＤＤ１０３０内のプログラムの少なくとも一部をＲＡＭ１０２０にロードし、プログラムを実行する。またコンピュータ１０００に実行させるプログラムを、光ディスク１２４０、メモリ装置１２５０、メモリカード１２７０等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ１０１０からの制御により、ＨＤＤ１０３０にインストールされた後、実行可能となる。またプロセッサ１０１０が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【０１８０】
以上説明した実施の形態に関し、更に以下の付記を開示する。
（付記１）  ロジックコーンを生成する生成部と、
前記ロジックコーンの入力段と出力段の間にある一の段のセルと前記一の段のセルの入力に繋がる前記入力段両端のセルとを頂点とする第１三角形と、前記出力段のセルと前記出力段のセルの入力に繋がる前記一の段両端のセルとを頂点とする第２三角形との面積比を算出する算出部と、
前記面積比が所望の比となる前記一の段から前記入力段側の第１ロジックコーン部及び前記出力段側の第２ロジックコーン部を、論理合成単位に設定する設定部と、
前記論理合成単位を用いて論理合成を行う論理合成処理部と
を含むことを特徴とする設計装置。
【０１８１】
（付記２）  前記生成部は、前記ロジックコーンと、前記ロジックコーンに接続される回路とを含む第１レイアウトを生成し、
前記第１レイアウト内の前記ロジックコーンについて、前記算出部により、前記面積比を算出することを特徴とする付記１に記載の設計装置。
【０１８２】
（付記３）  前記設定部は、
前記回路を、前記第１ロジックコーン部及び前記第２ロジックコーン部にそれぞれ接続される第１回路部及び第２回路部に分割した第２レイアウトを生成し、
前記第１レイアウトの前記出力段のセルと前記入力段両端のセルとを頂点とする第３三角形と、前記第２レイアウトの前記出力段のセルと前記入力段両端のセルとを頂点とする第４三角形との面積を比較し、
前記第４三角形の面積が前記第３三角形の面積よりも小さい場合に、前記第１ロジックコーン部及び前記第２ロジックコーン部を前記論理合成単位に設定することを特徴とする付記２に記載の設計装置。
【０１８３】
（付記４）  前記生成部は、
格子を生成し、
前記格子上に、前記ロジックコーンのセル群を、隣接するセルが少なくとも１マス空けて配置されるように配置することによって、前記ロジックコーンを生成することを特徴とする付記１に記載の設計装置。
【０１８４】
（付記５）  前記生成部は、
格子を生成し、
前記格子上に、前記ロジックコーンのセル群を、隣接するセルが少なくとも１マス空けて配置されるように配置することによって、前記ロジックコーンを生成し、
前記格子上に、前記回路を、前記ロジックコーンとの間に少なくとも１マス空けて、前記ロジックコーンに隣接して配置することによって、前記第１レイアウトを生成することを特徴とする付記２に記載の設計装置。
【０１８５】
（付記６）  前記生成部は、
格子を生成し、
前記格子上に、前記ロジックコーンのセル群を、隣接するセルが少なくとも１マス空けて配置されるように配置することによって、前記ロジックコーンを生成し、
前記格子上に、前記回路を、前記ロジックコーンとの間に少なくとも１マス空けて、前記ロジックコーンに隣接して配置することによって、前記第１レイアウトを生成し、
前記設定部は、
前記格子上に、前記第１回路部を、前記第１ロジックコーン部との間に少なくとも１マス空けて、前記第１ロジックコーン部に隣接して配置し、
前記格子上に、前記第２回路部を、前記第１ロジックコーン部及び前記第１回路部が含まれる領域との間に少なくとも１マス空けて、前記領域に隣接して配置することによって、
前記第２レイアウトを生成することを特徴とする付記３に記載の設計装置。
【０１８６】
（付記７）  前記生成部は、前記ロジックコーンの各セルが前記格子上で占めるマス数を、当該各セルが有する論理機能に基づいて設定することを特徴とする付記６に記載の設計装置。
【０１８７】
（付記８）  前記生成部は、前記ロジックコーンの各セルが前記格子上で占めるマス数を、当該各セルの端子数及びトランジスタ数に基づいて設定することを特徴とする付記６に記載の設計装置。
【０１８８】
（付記９）  前記生成部は、前記ロジックコーンと前記回路とを接続する第１信号線を、前記格子上の空いているマスに、予め設定された１マス当たりに配置可能な本数を上限として、配置することを特徴とする付記６乃至８のいずれかに記載の設計装置。
【０１８９】
（付記１０）  前記生成部は、前記第１信号線を配置する際に、前記ロジックコーン内のセルを前記格子上の別のマスに移動し、移動により空いたマスに、前記第１信号線を配置することを特徴とする付記９に記載の設計装置。
【０１９０】
（付記１１）  前記設定部は、前記第１ロジックコーン部と前記第１回路部とを接続する第２信号線、及び、前記第２ロジックコーン部と前記第２回路部とを接続する第３信号線を、前記格子上の空いているマスに、予め設定された１マス当たりに配置可能な本数を上限として、配置することを特徴とする付記６乃至１０のいずれかに記載の設計装置。
【０１９１】
（付記１２）  前記設定部は、前記第２信号線及び前記第３信号線を配置する際に、前記第１ロジックコーン部内及び前記第２ロジックコーン部内のセルを前記格子上の別のマスに移動し、移動により空いたマスに、前記第２信号線及び前記第３信号線を配置することを特徴とする付記１１に記載の設計装置。
【０１９２】
（付記１３）  前記生成部は、予め設定された種類のセルを用いて前記ロジックコーンを生成し、
前記論理合成処理部は、前記種類の設定を解除して前記論理合成を行うことを特徴とする付記１乃至１２のいずれかに記載の設計装置。
【０１９３】
（付記１４）  前記設定部は、前記論理合成単位を含む合成制約を生成し、
前記論理合成処理部は、前記合成制約を用いて前記論理合成を行うことを特徴とする付記１乃至１３のいずれかに記載の設計装置。
【０１９４】
（付記１５）  前記論理合成によって生成されるネットリストを用いて配置配線を行う配置配線部を更に含むことを特徴とする付記１乃至１４のいずれかに記載の設計装置。
（付記１６）  コンピュータが、
ロジックコーンを生成し、
前記ロジックコーンの入力段と出力段の間にある一の段のセルと前記一の段のセルの入力に繋がる前記入力段両端のセルとを頂点とする第１三角形と、前記出力段のセルと前記出力段のセルの入力に繋がる前記一の段両端のセルとを頂点とする第２三角形との面積比を算出し、
前記面積比が所望の比となる前記一の段から前記入力段側の第１ロジックコーン部及び前記出力段側の第２ロジックコーン部を、論理合成単位に設定し、
前記論理合成単位を用いて論理合成を行う
ことを特徴とする設計方法。
【０１９５】
（付記１７）  コンピュータに、
ロジックコーンを生成し、
前記ロジックコーンの入力段と出力段の間にある一の段のセルと前記一の段のセルの入力に繋がる前記入力段両端のセルとを頂点とする第１三角形と、前記出力段のセルと前記出力段のセルの入力に繋がる前記一の段両端のセルとを頂点とする第２三角形との面積比を算出し、
前記面積比が所望の比となる前記一の段から前記入力段側の第１ロジックコーン部及び前記出力段側の第２ロジックコーン部を、論理合成単位に設定し、
前記論理合成単位を用いて論理合成を行う
処理を実行させることを特徴とする設計プログラム。
【符号の説明】
【０１９６】
１  ＲＴＬ設計データ
２  タイミングライブラリ
３  タイミング制約
４  合成制約
５  セルネットリスト
６  ネットリスト
７  レイアウトライブラリ
８  レイアウト制約
９  配置配線データ
１０  論理合成プログラム
１１  配置配線プログラム
２１  第１レイアウト
２２  第２レイアウト
１００  設計装置
１０１  入出力用端末装置
１０２  ＥＷＳ
１０３  ファイルサーバ
１１０  論理合成部
１１１  論理合成単位設定処理部
１１１ａ  生成部
１１１ｂ  算出部
１１１ｃ  設定部
１１２  論理合成処理部
１２０  配置配線部
２００  格子
２１０  マス
３００  出力側ＦＦ
３１０，３３０，３５０，３７０，３７２  セレクタ
３２０，３４０，３６０，３９０  線
３８０  入力側ＦＦ
４００  ロジックコーン
４１０  第１ロジックコーン
４２０  第２ロジックコーン
５００  制御信号生成回路
５００ａ  外形
５１０  第１制御信号生成回路部
５２０  第２制御信号生成回路部
６００  制御信号線
１０００  コンピュータ
１０１０  プロセッサ
１０２０  ＲＡＭ
１０３０  ＨＤＤ
１０４０  グラフィック処理装置
１０５０  入力インタフェース
１０６０  光学ドライブ装置
１０７０  機器接続インタフェース
１０８０  ネットワークインタフェース
１０９０  バス
１１００  ネットワーク
１２１０  モニタ
１２２０  キーボード
１２３０  マウス
１２４０  光ディスク
１２５０  メモリ装置
１２６０  メモリリーダライタ
１２７０  メモリカード
７００  論理合成単位
８００，９００  回路
８００ａ，９００ａ  範囲
８１０  ＲＡＭ部
８２０，９２０  セレクタ回路
８３０，９１０，９３３  ＦＦ
９３０  積和演算部
９３１  ＭＵＬ
９３２  ＡＤＤ
Ｉｍ，Ｏｎ，Ｔ０，Ｔ  三角形
【図１】
2015225432.tif 000004
【図２】
2015225432.tif 000005
【図３】
2015225432.tif 000006
【図４】
2015225432.tif 000007
【図５】
2015225432.tif 000008
【図６】
2015225432.tif 000009
【図７】
2015225432.tif 000010
【図８】
2015225432.tif 000011
【図９】
2015225432.tif 000012
【図１０】
2015225432.tif 000013
【図１１】
2015225432.tif 000014
【図１２】
2015225432.tif 000015
【図１３】
2015225432.tif 000016
【図１４】
2015225432.tif 000017
【図１５】
2015225432.tif 000018
【図１６】
2015225432.tif 000019
【図１７】
2015225432.tif 000020
【図１８】
2015225432.tif 000021
【図１９】
2015225432.tif 000022
【図２０】
2015225432.tif 000023
【図２１】
2015225432.tif 000024
【図２２】
2015225432.tif 000025
【図２３】
2015225432.tif 000026
【図２４】
2015225432.tif 000027
【図２５】
2015225432.tif 000028
【図２６】
2015225432.tif 000029
【図２７】
2015225432.tif 000030
【図２８】
2015225432.tif 000031
【図２９】
2015225432.tif 000032
【図３０】
2015225432.tif 000033
【図３１】
2015225432.tif 000034
【図３２】
2015225432.tif 000035
【図３３】
2015225432.tif 000036
【図３４】
2015225432.tif 000037
【図３５】
2015225432.tif 000038
【図３６】
2015225432.tif 000039
【図３７】
2015225432.tif 000040
【図３８】
2015225432.tif 000041
【図３９】
2015225432.tif 000042
【図４０】
2015225432.tif 000043