(57)【要約】【課題】本発明は、半導体集積回路の設計において、セルの多ビット化を効率的に行う。【解決手段】半導体集積回路設計支援装置１は、回路仕様に基づいて回路設計を行って回路情報（HDL）を生成し、半導体集積回路のセル情報を含むセルライブラリを使用して該回路情報（HDL）に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報である回路情報（NETLIST）を生成する。半導体集積回路設計支援装置１は、回路情報（NETLIST）の配置配線情報に基づいて、セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいてセルライブラリを参照して該回路情報（NETLIST）の少ビットセルを多ビットセルへ多ビット化する。【選択図】          図１
2016218670.tif 000002
【特許請求の範囲】
【請求項１】
回路仕様に基づいて回路設計を行って回路情報を生成する回路設計手段と、
半導体集積回路のセル情報を含む回路関連情報を記憶する回路関連情報記憶手段と、
前記回路関連情報を使用して前記回路情報に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報を生成する論理回路情報生成手段と、
前記論理回路情報の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記回路関連情報を参照して該論理回路情報の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線手段と、
を備えていることを特徴とする半導体集積回路設計支援装置。
【請求項２】
前記多ビット化配置配線手段は、
前記多ビットセルの前記配置配線情報に基づいて、該多ビットセルに対する接続を変更し、配置を決定した後に該多ビットセルの段数を決定することを特徴とする請求項１記載の半導体集積回路設計支援装置。
【請求項３】
前記多ビット化配置配線手段は、
前記セルの配線数に基づいて、該セルを多ビット化することを特徴とする請求項１または請求項２記載の半導体集積回路設計支援装置。
【請求項４】
前記論理回路情報生成手段は、
前記回路情報に基づいて仮想セルの論理回路情報を生成し、
前記多ビット化配置配線手段は、
前記仮想セルを多ビット化することを特徴とする請求項１から請求項３のいずれかに記載の半導体集積回路設計支援装置。
【請求項５】
前記多ビット化配置配線手段は、
前記セル毎に所定周辺範囲におけるセルの有無と配線数を前記配置配線情報から探索する探索手段を備え、
前記探索手段の探索結果に基づいて、前記セルの多ビット化の適否を判定して、多ビット化を行うことを特徴とする請求項１から請求項４のいずれかに記載の半導体集積回路設計支援装置。
【請求項６】
前記半導体集積回路設計支援装置は、
前記セルがフリップフロップであることを特徴とする請求項１から請求項５のいずれかに記載の半導体集積回路設計支援装置。
【請求項７】
回路仕様に基づいて回路設計を行って回路情報を生成する回路設計処理ステップと、
回路関連情報記憶手段の記憶する半導体集積回路のセル情報を含む回路関連情報を使用して前記回路情報に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報を生成する論理回路情報生成処理ステップと、
前記論理回路情報の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記回路関連情報を参照して該論理回路情報の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線処理ステップと、
を有していることを特徴とする半導体集積回路設計支援方法。
【請求項８】
コンピュータに、
回路仕様に基づいて回路設計を行って回路情報を生成する回路設計処理と、
回路関連情報記憶手段の記憶する半導体集積回路のセル情報を含む回路関連情報を使用して前記回路情報に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報を生成する論理回路情報生成処理と、
前記論理回路情報の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記回路関連情報を参照して該論理回路情報の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路設計支援装置、半導体集積回路設計支援方法及びプログラムに関し、詳細には、半導体集積回路の設計を支援する半導体集積回路設計支援装置、半導体集積回路設計支援方法及びプログラムに関する。
【背景技術】
【０００２】
半導体集積回路の設計は、半導体集積回路設計支援装置を用いて行われるようになってきており、半導体集積回路設計支援装置は、一般的に設計ツールであるＣＡＤ（Computer Aided Design）ツールを備えたコンピュータが用いられている。半導体集積回路設計支援装置は、ＣＡＤツールによりハードウェア記述言語（ＨＤＬ：Hardware Description Language）で記述されたファイルを読み込み、論理合成を行って、設計支援対象となる回路の接続状態を示すデータであるネットリストを生成する。
【０００３】
一方、近年、半導体集積回路の大規模化に伴い、半導体集積回路の消費電力を低減する設計手法が要望されている。半導体集積回路の消費電力を低減する設計手法の一つとしては、消費電力の大きなクロックライン回路が共通化されている「多ビットフリップフロップ」のセルライブラリを用いる設計手法がある。
【０００４】
ところが、従来の多ビットフリップフロップのセルライブラリを用いる設計手法は、配置配線時の混雑度が増加するという弊害あり、論理合成時に最適な多ビットフリップフロップセルの選択や最適なビット数を選択することが困難であった。
【０００５】
そして、従来、論理合成部が論理合成時に、所定の論理機能をそれぞれ発揮する複数のユニットセルを仮想配線すると共に、仮想配線された前記複数のユニットセルの一部を組み合わせて多ビット化した複数の多ビットセルを生成し、配置処理部が前記複数のユニットセルと、前記複数の多ビットセルとを配置し、制御部が前記複数のユニットセルと前記複数の多ビットセルとの仮想配線の混雑が解消するように仮想配線の繋ぎ換えを制御し、配線処理部が前記複数のユニットセルと、前記複数の多ビットセルとを本配線する半導体集積回路の設計方法が提案されている（特許文献１参照）。
【０００６】
すなわち、この従来技術は、配置配線時に多ビットセルの仮想配線の繋ぎ変えを行うことで、多ビットセルを使用する際の配線混雑の防止を図っている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記公報記載の従来技術にあっては、配置配線時に多ビットセルの仮想配線の繋ぎ変えを行っているため、論理合成時に最適な多ビットセルを選択することが困難であるとともに、最適なビット数を決定することができず、改良の必要があった。
【０００８】
そこで、本発明は、半導体集積回路の設計において最適なビット数の多ビットセルを効率的に選択することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１記載の半導体集積回路設計支援装置は、回路仕様に基づいて回路設計を行って回路情報を生成する回路設計手段と、半導体集積回路のセル情報を含む回路関連情報を記憶する回路関連情報記憶手段と、前記回路関連情報を使用して前記回路情報に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報を生成する論理回路情報生成手段と、前記論理回路情報の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記回路関連情報を参照して該論理回路情報の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線手段と、を備えていることを特徴としている。
【発明の効果】
【００１０】
本発明によれば、半導体集積回路の設計において最適なビット数の多ビットセルを効率的に選択することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例を適用した半導体集積回路設計支援装置のブロック構成図。
【図２】セルライブラリの一例を示す図。
【図３】仮想０ビットフリップフロップとその回路情報の一例を示す図。
【図４】仮想１ビットフリップフロップとその回路情報の一例を示す図。
【図５】仮想２ビットフリップフロップとその回路情報の一例を示す図。
【図６】仮想４ビットフリップフロップとその回路情報の一例を示す図。
【図７】セルライブラリの情報の一例を示す図。
【図８】半導体集積回路設計支援装置の機能ブロック図。
【図９】回路設計部の生成する回路情報（HDL）の一例を示す図。
【図１０】図９の回路情報（HDL）から生成される回路情報（NETLIST）の一例を示す図。
【図１１】図９の回路情報（HDL）から生成される多ビットフリップフロップを用いた回路情報（NETLIST）の一例を示す図。
【図１２】図１０の回路情報（NETLIST）に基づく回路を示す図。
【図１３】図１２の回路情報（NETLIST）に基づく多ビットフリップフロップを用いた回路を示す図。
【図１４】１ビットフリップフロップにおける配線混雑度の説明図。
【図１５】多ビットフリップフロップにおける配線混雑度の説明図。
【図１６】入出力の位置が相互に比較的離れているときの１ビットフリップフロップの配置の説明図。
【図１７】入出力の位置が相互に比較的離れているときの４ビットフリップフロップの配置の説明図。
【図１８】入出力の位置が相互に比較的近いときの１ビットフリップフロップの配置の説明図。
【図１９】入出力の位置が相互に比較的近いときの４ビットフリップフロップの配置の説明図。
【図２０】半導体集積回路設計支援処理を示すフローチャート。
【図２１】多ビットフリップフロップの論理的等価と多ビット化変更手法の説明図。
【図２２】多ビットフリップフロップの論理的等価と他の多ビット化変更手法の説明図。
【図２３】１ビットフリップフロップを用いた回路情報（NETLIST）と仮想１ビットフリップフロップを用いた回路情報（NETLIST）の対応関係を示す図。
【図２４】仮想フリップフロップを配置した回路からの多ビット化手法の説明図。
【図２５】仮想フリップフロップを配置した他の回路からの多ビット化手法の説明図。
【図２６】探索範囲決定の説明図。
【図２７】仮想フリップフロップの多ビット化と回路情報変更の説明図。
【図２８】多ビット化後のセルの再接続の説明図。
【図２９】入出力の位置が相互に近い場合の多ビット化対象の探索の説明図。
【図３０】図２９の場合の多ビット化の説明図。
【発明を実施するための形態】
【００１２】
以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
【実施例１】
【００１３】
図１〜図３０は、本発明の半導体集積回路設計支援装置、半導体集積回路設計支援方法及びプログラムの一実施例を示す図であり、図１は、本発明の半導体集積回路設計支援装置、半導体集積回路設計支援方法及びプログラムの一実施例を適用した半導体集積回路設計支援装置１のブロック構成図である。
【００１４】
図１において、半導体集積回路設計支援装置１は、通常のハードウェア構成及びソフトウェア構成のコンピュータに、本発明の半導体集積回路設計支援方法を実行するプログラムを搭載することで構築されている。なお、本実施例の半導体集積回路設計支援装置１は、１台のコンピュータで構築されているが、複数台のコンピュータや大容量記憶装置等がＬＡＮ（Local Area Network）、インターネット等のネットワークで接続されることで構築されていてもよい。
【００１５】
半導体集積回路設計支援装置１は、ＣＰＵ（Central Processing Unit）２、ＲＯＭ（Read Only Memory）３、ＲＡＭ（Random Access Memory）４、不揮発性メモリ５、入力Ｉ／Ｆ（Input／Output）６、出力Ｉ／Ｆ７及び外部Ｉ／Ｆ８等を備えている。半導体集積回路設計支援装置１は、上記各部が、バス９により接続されている。
【００１６】
入力Ｉ／Ｆ６には、キーボード、マウス、スタイラスペン、タッチパネル等の入力デバイス１１が接続され、入力Ｉ／Ｆ６は、入力デバイス１１から入力される各種命令等をＣＰＵ２へ出力する。
【００１７】
出力Ｉ／Ｆ７には、ディスプレイ、ランプ、スピーカ、プリンタ等の出力デバイス１２が接続され、出力Ｉ／Ｆ７は、ＣＰＵ２の制御下で、出力デバイス１２に表示データ、点滅データ、音声データ、記録データ等の出力データを出力する。
【００１８】
外部Ｉ／Ｆ８は、ネットワーク、外部記憶装置等が接続される。外部Ｉ／Ｆ８は、ＣＰＵ２の制御下で、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）やＳＭＴＰ（Simple Mail Transfer Protocol ）／ＰＯＰ（Point Of Production ）等のプロトコルの制御を行って通信を行う。また、外部Ｉ／Ｆ８は、ＣＰＵ２の制御下で、外部記憶装置へのデータの書き込み及び外部記憶装置からのデータの読み出しを行う。
【００１９】
ＲＯＭ３は、コンピュータのＯＳ（Operating System）、半導体集積回路設計支援装置１としての基本プログラム、本発明の半導体集積回路設計支援方法を実行するプログラム及びシステムデータ等を記憶している。ＲＯＭ３は、半導体集積回路設計支援方法を実行するプログラムを補完するプログラムとして、配置配線ツールプログラム等を記憶している。
【００２０】
ＲＡＭ４は、ＣＰＵ２のワークメモリとして利用され、半導体集積回路設計支援方法の実行に伴う各種データ等を記憶する。
【００２１】
ＣＰＵ２は、ＲＯＭ３内のプログラムに基づいて、ＲＡＭ４をワークメモリとして利用して、半導体集積回路設計支援装置１の各部を制御して、半導体集積回路設計支援装置１としての基本処理を実行する。また、ＣＰＵ２は、ＲＯＭ３内の半導体集積回路設計支援方法のプログラムに基づいて、本発明の半導体集積回路設計支援方法を実行する。
【００２２】
不揮発性メモリ５は、ＮＶＲＡＭ（Nonvolatile Random Access Memory）、ＳＳＤ（Solid State Drive）、ハードディスク等が用いられ、半導体集積回路設計支援装置１の電源がＯＦＦのときにも記憶内容を保持するメモリである。
【００２３】
不揮発性メモリ５は、半導体集積回路設計支援装置１の電源がＯＦＦのときにも記憶内容を保持する必要のあるデータとして、例えば、システム設定値や本発明の半導体集積回路設計支援機器管理方法で使用する各種データがＣＰＵ２の制御下で格納される。特に、不揮発性メモリ５は、図２に示すようなセルライブラリ（回路関連情報）ＣＬを格納している。セルライブラリＣＬは、１ビットフリップフロップDFF、２ビットフリップフロップDFF2、４ビットフリップフロップDFF4等の情報を含んでいる。また、不揮発性メモリ５は、これらの１ビットフリップフロップDFF、２ビットフリップフロップDFF2、４ビットフリップフロップDFF4等から生成される図３示すような仮想０ビットフリップフロップセルVDFF0とその回路情報VkJ0、図４示すような仮想１ビットフリップフロップセルVDFF1とその回路情報VkJ1、図５に示すような仮想２ビットフリップフロップセルVDFF2とその回路情報Vkj2、図６に示すような仮想４ビットフリップフロップVDFF4とその回路情報Vkj4等を格納する。また、不揮発性メモリ５は、セルライブラリＣＬとして、図７に示すような回路情報を、格納している。すなわち、セルライブラリＣＬの回路情報は、図７に示すように、セル名（BUF、DFF、DFF4等）、各セルのエリア（領域：１、４、１４等）、消費電力値（２、１０、３０等）の論理合成、配置配線に必要な情報の全てが含まれている。例えば、図７では、「BUF」という名前のライブラリセルの大きさは「１」であり、消費電力値は「２」であることが示されている。
【００２４】
そして、半導体集積回路設計支援装置１は、ＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory ）、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory ）、ＣＤ−ＲＷ（Compact Disc Rewritable ）、ＤＶＤ（Digital Versatile Disk）、ＵＳＢ（Universal Serial Bus）メモリ、ＳＤ（Secure Digital）カード、ＭＯ（Magneto-Optical Disc）等のコンピュータが読み取り可能な記録媒体に記録されている本発明の半導体集積回路設計支援方法を実行するプログラムを読み込んでＲＯＭ３や不揮発性メモリ５に導入することで、後述する半導体集積回路の設計において最適なビット数の多ビットセルを効率的に選択する半導体集積回路設計支援方法を実行する半導体集積回路設計支援装置として構築されている。この半導体集積回路設計支援方法を実行するプログラムは、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）等のレガシープログラミング言語やオブジェクト指向プログラミング言語等で記述されたコンピュータ実行可能なプログラムであり、上記記録媒体に格納して頒布することができる。
【００２５】
半導体集積回路設計支援装置１は、上記半導体集積回路設計支援方法を実行するプログラムが導入されることで、図８に示す機能ブロックが構築される。すなわち、半導体集積回路設計支援装置１は、該プログラムが導入されると、図８に示すように、回路設計部３１、セルライブラリ記憶部３２、論理回路情報生成部３３及び多ビット化配置配線部３４が構築される。
【００２６】
回路設計部３１は、ＣＰＵ２及びＲＡＭ４等により構築されている。回路設計部３１は、入力デバイス１１から入力される回路仕様または外部Ｉ／Ｆ８を介して入力される外部メモリに記憶されている回路仕様に基づいて回路設計を行って回路情報を生成する。この回路情報は、ＨＤＬ（Hardware description language）で記述されており、文字で記述するコンピュータ言語で、半導体集積回路の経時的振舞いと空間的構造が記述されている。したがって、回路設計部３１は、回路設計手段として機能している。
【００２７】
回路設計部３１は、例えば、図９に示すようなＨＤＬによる回路情報（HDL）を生成する。なお、図９は、ＨＤＬとして、Verilog（ヴェリログ）言語を用いた回路情報であり、１行目で、モジュール名は、「DUT」であることが宣言されている。図９の回路情報（HDL）は、２行目〜５行目のステートメントで、「CLK」と「IN」の２つの入力ポートを持ち、「OUT」の１つの出力ポート、「REG」というレジスタを持つことが記述されている。これらの入出力ポートやデータタイプは、全て４ビットであることが記述されている。また、図９の回路情報は、７行目〜９行目の手続き代入文で、レジスタ型の「REG」に、「CLK」の立ち上がりエッジにおいて、入力信号「IN」がノンブロッキング代入されるフリップフロップであることが記述されている。さらに、図９の回路情報は、１１行目の継続代入文により、出力ポート「OUT」に、「REG」が代入されることが記述されている。すなわち、「DUT」モジュールは、入力信号「IN」を「CLK」の立ち上がりでラッチし、「OUT」へ出力するモジュールであることが記述されている。
【００２８】
セルライブラリ記憶部３２は、不揮発性メモリ５により構築されている。セルライブラリ記憶部３２は、半導体集積回路のライブラリ情報（回路関連情報）として、図２に示したようなセルライブラリＣＬを記憶している。セルライブラリＣＬは、上述のように、１ビットフリップフロップDFF、２ビットフリップフロップDFF2、４ビットフリップフロップDFF4等の情報を含んでいる。したがって、セルライブラリ記憶部３２は、セルライブラリ記憶手段として機能している。
【００２９】
論理回路情報生成部３３は、ＣＰＵ２及びＲＡＭ４等により構築されている。論理回路情報生成部３３は、セルライブラリ記憶部３２のライブラリ情報（セルライブラリＣＬ）を使用して、回路設計部３１の生成した回路情報に対して論理合成を行って、セルの配置とセルに対する配線等の配置配線情報を含む論理回路情報である回路情報（NETLIST）を生成する。なお、以下の説明では、論理回路情報を、適宜、回路情報（NETLIST）という。
【００３０】
具体的には、論理回路情報生成部３３は、例えば、図３（ａ）に示したような仮想０ビットフリップフロップセルVDFF0を生成し、このときの仮想０ビットフリップフロップセルVDFF0の回路情報（NETLIST）は、図３（ｂ）のようになる。図３（ａ）に示す仮想０ビットフリップフロップセルVDFF0は、モジュールの内部に、セルライブラリＣＬのフリップフロップがインスタンス化（実体化）されていない。そして、仮想０ビットフリップフロップセルVDFF0のモジュールは、４ビットの入力と出力を持っている。いま、図３（ａ）の仮想０ビットフリップフロップセルVDFF0は、０ビットであるので、全ての入力ポートが入力浮きとなっており、全ての出力が「０」（グランド）に固定されている。
【００３１】
また、論理回路情報生成部３３は、図４（ａ）に示したような仮想１ビットフリップフロップセルVDFF1を生成し、このときの仮想２ビットフリップフロップVDFF1の回路情報（NETLIST）は、図４（ｂ）のようになる。図４（ａ）に示す仮想１ビットフリップフロップセルVDFF1は、モジュール内部に、セルライブラリＣＬの１ビットフリップフロップDFFがインスタンス化されているが、仮想１ビットフリップフロップセルVDFF1のモジュールは、４ビットの入力と出力を持っている。いま、図４（ａ）の仮想１ビットフリップフロップセルVDFF1は、１ビットであるので、使用していない入力ポートが入力浮きとなっており、使用していない出力が「０」（グランド）に固定されている。
【００３２】
さらに、論理回路情報生成部３３は、図５（ａ）に示したような仮想２ビットフリップフロップセルVDFF2を生成し、このときの仮想２ビットフリップフロップVDFF2の回路情報（NETLIST）は、図５（ｂ）のようになる。図５（ａ）に示す仮想２ビットフリップフロップセルVDFF2は、モジュール内部に、セルライブラリＣＬの２ビットフリップフロップDFF2がインスタンス化されているが、仮想２ビットフリップフロップセルVDFF1のモジュールは、４ビットの入力と出力を持っている。いま、図５（ａ）の仮想２ビットフリップフロップセルVDFF2は、２ビットであるので、使用していない入力ポートが入力浮きとなっており、使用していない出力が「０」（グランド）に固定されている。
【００３３】
また、論理回路情報生成部３３は、図６（ａ）に示したような仮想４ビットフリップフロップセルVDFF4を生成し、このときの仮想４ビットフリップフロップVDFF4の回路情報（NETLIST）は、図５（ｂ）のようになる。図６（ａ）に示す仮想４ビットフリップフロップセルVDFF4は、モジュール内部に、セルライブラリＣＬの４ビットフリップフロップDFF4がインスタンス化されており、仮想４ビットフリップフロップDFF4のモジュールは、４ビットの入力と出力を持っている。いま、図６（ａ）の仮想４ビットフリップフロップセルVDFF4は、４ビットであるので、入力浮きとなっている入力ポートはなく、「０」に固定されている出力がない。
【００３４】
そして、上記仮想フリップフロップセルVDFF0、VDFF1、VDFF2、VDFF4は、ポート使用情報を持っており、仮想０ビットフリップフロップセルVDFF0では、デフォルトポート使用情報は、D[0]、D[1]、D[2]、D[3]ポートの全てが使用されていない。また、仮想１ビットフリップフロップセルVDFF1では、デフォルトポート使用情報は、D[0]ポートが使用されており、他のポートは使用されていない。また、仮想２ビットフリップフロップセルVDFF2では、デフォルトポート使用情報は、D[0]、D[1]ポートが使用されており、他のポートは使用されていない。さらに、仮想４ビットフリップフロップセルVDFF4では、デフォルトポート使用情報は、D[0]、D[１]、D[2]、D[3]の全てのポートが使用されている。
【００３５】
論理回路情報生成部３３は、上述のようにして生成した仮想フリップフロップセルVDFF0、VDFF1、VDFF2、VDFF4を、不揮発性メモリ５等に一旦格納する。
【００３６】
なお、論理回路情報生成部３３は、例えば、上記図９に示した回路情報（HDL）に対して、１ビットフリップフロップセルDFFを使用して、論理合成を実施し、図１０に示すような回路情報（NETLIST）を生成する。なお、図１０の回路情報（NETLIST）では、図２の回路情報（HDL）の７行目〜９行目の手続き代入文を１ビットフリップフロップの 「DFF」にマッピングし、１１行目の継続代入文を１ビットバッファセルである「BUF」にマッピングしている。「DFF」、「BUF」は１ビットライブラリセルであるので、４ビットの代入を実現するために、図１０の回路情報（NETLIST）では、DFFセルとBUFセルをそれぞれ４つ使用している。
【００３７】
また、論理回路情報生成部３３は、図９に示した回路情報（HDL）から図１１に示すように、多ビットフリップフロップ（４ビットフリップフロップDFF4）を使用した回路情報（NETLIST）を生成する。本実施例の半導体集積回路設計支援装置１は、さらなる多ビット化については、後述する多ビット化配置配線部３４が、実際に配置配線を行って、その結果を検証した後に、多ビット化を行う。図１１では、図９の回路情報（HDL）の７〜９行目の手続き代入文を４ビットフリップフロップの 「DFF4」にマッピングし、１１行目の継続代入文を１ビットバッファセルである「BUF」にマッピングしている。「DFF4」は４ビットの手続き代入を１つのセルで実現できるため、「DFF4」を１つ、「BUF」を４つ使用している。
【００３８】
多ビット化配置配線部３４は、ＣＰＵ２及びＲＡＭ４等により構築されている。多ビット化配置配線部３４は、論理回路情報である回路情報（NETLIST）の配置配線情報に基づいて、セルの配置とセルに対する配線を実施する。また、多ビット化配置配線部３４は、実施した配置配線の実施結果に基づいて、セルライブラリ記憶部３２のライブラリ情報を参照して回路情報（NETLIST）の少ビットセル（少ビットフリップフロップ）を多ビットセル（多ビットフリップフロップ）へ多ビット化する。したがって、多ビット化配置配線部３４は、多ビット化配置配線手段として機能している。
【００３９】
例えば、多ビット化配置配線部３４は、図１０に示した回路情報（NETLIST）の配置配線情報に基づいて、配線を実施して図１２に示すような回路図を生成する。図１２は、図１０に示したように、「DFF」、「BUF」は１ビットライブラリセルであるので、４つのDFFセルとBUFセルを使用した回路図となっている。
【００４０】
また、多ビット化配置配線部３４は、図１３に示すように、多ビット化されたフリップフロップ、例えば、図１１に示した４ビットフリップフロップDFF4を使用した回路情報（NETLIST）に基づいて、配置配線も行う。図１３は、図１１に示したように、「DFF4」は４ビット、「BUF」は１ビットライブラリセルであるので、１つのDFFセル（DFF4）と４つのBUFセルを使用した回路図となっている。
【００４１】
そして、後述するが、多ビット化配置配線部３４は、この多ビット化においては、多ビットフリップフロップにおけるセルの配置情報に基づいて、該多ビットフリップフロップとの接続を変更し、配置を決定した後に該多ビットフリップフロップの段数を決定する。
【００４２】
また、多ビット化配置配線部３４は、論理回路情報生成部３３が、論理回路情報である回路情報（NETLIST）として回路情報（HDL）の仮想フリップフロップライブラリを生成すると、該仮想フリップフロップライブラリのフリップフロップを多ビット化する。
【００４３】
さらに、多ビット化配置配線部３４は、フリップフロップの所定周辺範囲のセルの有無を配置情報から探索する図示しない探索部（探索手段）を備えていてもよい。この場合、多ビット化配置配線部３４は、該探索部の探索結果に基づいて、フリップフロップの多ビット化の適否を判定して、多ビット化を行う。この探索部及び探索に基づく多ビット化については、後で説明する。
【００４４】
次に、本実施例の作用を説明する。本実施例の半導体集積回路設計支援装置１は、半導体集積回路の設計において最適なビット数の多ビットセルを効率的に選択する。
【００４５】
半導体集積回路設計支援装置１は、回路仕様が入力されると、回路設計部３１が、例えば、図９に示したような回路情報（HDL)を生成する。次に、半導体集積回路設計支援装置１は、論理回路情報生成部３３が、セルライブラリ記憶部３２を参照して、図１０に示したような回路情報（NETLIST）を生成する。このとき、多ビット化配置配線部３４は、一般的には、図１２に示した1ビットフリップフロップを用いた回路を構築することとなる。
【００４６】
この図１０に示す回路情報（NETLIST）では、回路全体の大きさが、（DFFの大きさ×４）＋（BUFの大きさ×４）であり、「２０」となる。また、図１０に示す回路情報（NETLIST）では、回路全体の消費電力値が、（DFFの消費電力値×４）＋（BUFの消費電力値×４）であり、「４８」となる。
【００４７】
一方、論理合成の結果、図１１に示した多ビットフリップフロップを用いた回路情報（NETLIST）が得られた場合、回路全体の大きさは、（DFF4の大きさ×１）＋（BUFの大きさ×４）であり、「１８」となる。また、この場合の回路全体の消費電力値は、（DFF4の消費電力値×１）＋（BUFの消費電力値×４）であり、「３８」となる。
【００４８】
すなわち、上記例の場合、セルライブラリを用いた結果の回路情報（NETLIST）が、論理的に等価であっても、１ビットの「DFF」を４つ用いる図１０の回路より、４ビットの「DFF4」を１つ用いるほうが、回路全体の大きさ及び消費電力値が小さくなる。したがって、一般的には、多ビットフリップフロップのライブラリセルを用いるほうが、省面積であり、低消費電力となる。
【００４９】
ところが、半導体集積回路の設計においては、配線混雑度を考慮する必要がある。
【００５０】
例えば、図１０に示したような１ビットフリップフロップDFFを用いた回路情報（NETLIST）を用いて、多ビット化配置配線部３４が回路の配置配線を行う場合、図１２に示したように、一般的には、データラインの配線がもっとも短くなるようにライブラリセルの配置を行う。すなわち、図１４（ａ）に示すようなセル配置となる。この場合、多ビット化配置配線部３４は、入力ポート（IN[0]〜IN[3]及びCLK）や出力ポート（OUT[0]〜OUT[3]）が、半導体集積回路の形状や半導体集積回路が設置されるボードの制約によって位置が固定されるため、「DFF」と「BUF」のライブラリセルの配置位置を調整してデータラインの配線が最も短くなるように配置を行う。すなわち、「DFF」や「BUF」は、１ビットのセルライブラリであるため、自由度が高く、最も理想的な位置に配置することができる。
【００５１】
いま、図１４（ａ）において、配置された「DFF」を中心とする一定範囲を示す破線の丸と交差する配線の数は、クロック、入力データ信号、出力データ信号の３つだけである。
【００５２】
したがって、図１４（ｂ）に示すように、回路の配置が理想的に行われた結果、配線０のように、最短での配線が可能となり、他の配線との間隔も余裕を持たせることができる。
【００５３】
ところが、いま、図１１に示したような４ビットフリップフロップDFF4を用いた回路情報（NETLIST）を用いて、多ビット化配置配線部３４が回路の配置を行って、図１５（ａ）に示すような配置が行われたものとする。
【００５４】
図１５（ａ）では、１つの「DFF4」が４ビットフリップフロップのセルライブラリであるため、配線が最短となるためには、「DFF4」は、中央あたりに配置される。「BUF」セルライブラリは、図１４と同様に自由度が高い配置となる。
【００５５】
図１５（ａ）において、配置された「DFF4」を中心とする一定範囲を示す破線の丸と交差する配線の数は、クロック、入力データ信号×４、出力データ信号×４の９本となる。したがって、「DFF」が４つ配置された図１４の回路と比較すると、配線が集中しており、配線混雑が起こる可能性が高いことが分かる。
【００５６】
図１５（ｂ）において、配線２は、最短での配線が可能であるが、配線０´は、図１４（ｂ）の配線０と比較すると配線長が長くなっている。また、図１５の回路では、IN[0]〜IN[3]からの配線が、全て「DFF4」ライブラリセルへ接続するため、「DFF4」の周囲の配線が密になっている。
【００５７】
すなわち、４ビットフリップフロップDFF4のライブラリセルを用いると、サイズや消費電力が小さくなるというメリットはあるが、配線長が長くなること、４ビットフリップフロップライブラリセルの周囲の配線が密になること等によって、他の配線の状況によっては配線混雑が発生するおそれがある。
【００５８】
また、半導体集積回路によって、入出力の位置が異なることがあり、このような場合、入出力の位置によって、フリップフロップの配置が異なる。
【００５９】
例えば、図１６は、比較的入出力の位置が離れている場合の４つの１ビットフリップフロップDFFの配置と配線を示した図である。図１６において、１ビットフリップフロップDFFの配置は、それぞれのビット毎に入力（IN[*]）から出力（OUT[*]）の配線が最短となる位置に配置されるため、他のフリップフロップDFFとの距離も一定の距離をもって配置される。
【００６０】
したがって、DFFセルの周囲の配線も分散しており、図１６に破線の丸と交差する配線は、DFFの制御信号（CLK）とデータ入力、出力の３本である。
【００６１】
一方、同じ比較的入出力位置が離れている半導体集積回路であっても、１つの４ビットフリップフロップDFF4を配置した場合には、図１７に示すようになる。すなわち、図１７に示すように、全ての入力から１つの４ビットフリップフロップDFF4への接続があるため、４ビットフリップフロップDFF4がどこに配置されても、ビット間の配線長は大きく異なる。図１７では、IN[0]から「DFF4」までの配線とIN[2]から「DFF4」までの配線長には大きく差があり、出力側においても、同様に配線長に差が生じる。さらに、図１７に示すように、配線は、４ビットフリップフロップDFF4のセルに集中しており、破線の丸と交差する配線は、４ビットフリップフロップDFF4の制御信号（CLK）とデータ入力×４、出力×４の計９本となる。
【００６２】
したがって、図１７の配置配線状況は、図１６の配置配線状況と比較すると、総配線長が長くなり、「DFF4」周辺の配線が密となるため、配線混雑が起きる可能性が高くなる。
【００６３】
次に、図１８は、入出力の位置が相互に比較的近いときの１ビットフリップフロップDFFの配置と配線を示した図である。図１８の場合、入出力の位置が非常に近いと、１ビットフリップフロップDFFの配置は、それぞれのビット毎に入力（IN[*]）から出力（OUT[*]）の配線が最短となる位置に配置されるため、１ビットフリップフロップDFFの配置も非常に近い位置に配置される。したがって、図１８に示すように、破線の丸と交差する配線は、近くに配置された４つの「DFF」の周囲の配線である、制御信号CLKと４つの１ビットフリップフロップDFFのデータの入出力で計９本となる。
【００６４】
また、図１９は、入出力の位置が相互に比較的近いときの４ビットフリップフロップDFF4の配置と配線を示した図である。図１９の場合、入出力の位置が非常に近いと、４ビットフリップフロップDFF4の配置は、それぞれのビット毎に入力（IN[*]）から出力（OUT[*]）の配線が最短となる位置に配置される。したがって、図１９に示すように、４ビットフリップフロップDFF4の周囲の配線は、制御信号CLKと４本のデータの入力、４本の出力で計９本となる。
【００６５】
すなわち、入出力の位置が非常に近い場合は、１ビットフリップフロップDFFを配置したときと比較して、配線長は若干増加する可能性があるが、セルの周囲の配線数は変わらない。したがって、４つの１ビットフリップフロップDFFを、４ビットフリップフロップDFF4に変更しても、配線混雑へ与える影響は極めて少ない。その結果、入出力の位置が非常に近いときには、４つの１ビットフリップフロップDFFを、４ビットフリップフロップ化することは、配線混雑へ与えるリスクは同じで、省面積、省電力化が実現できる。
【００６６】
このように、配線混雑へ与える影響（周囲の配線数）が、１ビットフリップフロップとほぼ同じであれば、多ビット化することで消費電力にとって有利な半導体集積回路の設計を実現することができる。また、図１６〜１９に示したように、多ビット化は、配置を行ってみないと、効果があるか否かを、正確に判断できない。
【００６７】
そこで、本実施例の半導体集積回路設計支援装置１は、回路設計部３１で生成した回路情報（HDL）に基づいて、論理回路情報生成部３３が、セルライブラリ記憶部３２のセルライブラリＣＬを用いて回路情報（NETLIST）を生成する。そして、多ビット化配置配線部３４が回路情報（NETLIST）に基づいて、実際に半導体集積回路を構築し、この半導体集積回路のフリップフロップを多ビット化して評価することで、多ビット化を行うか否か判断する。すなわち、半導体集積回路設計支援装置１は、フリップフロップの多ビット化において、多ビット化配置配線部３４が、多ビットフリップフロップにおけるセルの配置情報に基づいて、該多ビットフリップフロップとの接続を変更し、配置を決定した後に該多ビットフリップフロップの段数を決定する。
【００６８】
また、多ビット化配置配線部３４は、フリップフロップの配線数に基づいて、該フリップフロップを多ビット化する。
【００６９】
さらに、半導体集積回路設計支援装置１は、論理回路情報生成部３３が、論理回路情報である回路情報（NETLIST）として、仮想フリップフロップライブラリを生成し、多ビット化配置配線部３４が、該仮想フリップフロップライブラリのフリップフロップを多ビット化する。
【００７０】
また、多ビット化配置配線部３４は、フリップフロップの所定周辺範囲のセルの有無を配置情報から探索する探索部を備え、この探索部の探索結果に基づいて、フリップフロップの多ビット化の適否を判定して、多ビット化を行う。
【００７１】
そこで、本実施例の半導体集積回路設計支援装置１は、図２０に示すように、ＣＰＵ２が、ＲＯＭ３の半導体集積回路設計支援方法を実行するプログラムに基づいて、半導体集積回路設計支援処理を実行する。
【００７２】
すなわち、半導体集積回路設計支援装置１は、回路設計部３１に、設計対象の回路仕様が入力されると、回路設計部３１が回路情報（HDL）を生成する（ステップＳ１０１）。
【００７３】
次に、論理回路情報生成部３３が、回路設計部３１の生成した回路情報（HDL）とセルライブラリ記憶部３２のセルライブラリＣＬを利用して回路情報（NETLIST）を生成する（ステップＳ１０２）。
【００７４】
論理回路情報生成部３３は、回路情報（NETLIST）として、回路情報（HDL）に応じて、例えば、図２１（ａ）に示すような１ビットフリップフロップDFFを３つ備えた回路の回路情報（NETLIST）を生成する。また、論理回路情報生成部３３は、は、回路情報（NETLIST）として、回路情報（HDL）に応じて、図２２（ａ）に示すような１ビットフリップフロップDFFを４つ備えた回路の回路情報（NETLIST）を生成する。
【００７５】
さらに、論理回路情報生成部３３は、回路情報（HDL）に応じて、例えば、図２３（ａ）に示すような１ビットフリップフロップDFFを用いた回路情報（NETLIST）を生成する代わりに、図２３（ｂ）に示すような仮想１ビットフリップフロップVDFF1を用いた回路情報（NETLIST）を生成してもよい。すなわち、図２３において、図２３（ａ）の１ビットフリップフロップDFFを、仮想１ビットフリップフロップVDFFに置き換えたのが、図２３（ｂ）である。仮想１ビットフリップフロップVDFFは、内部に、１ビットフリップフロップDFFがインスタンス化されているため、置き換えの前後は、論理的に等価である。
【００７６】
次に、半導体集積回路設計支援装置１は、多ビット化配置配線部３４が、まず、論理回路情報回路情報（NETLIST）に基づいて、半導体集積回路を構成する配置配線処理を行う（ステップＳ１０３）。
【００７７】
多ビット化配置配線部３４は、仮想１ビットフリップフロップVDFFを用いた場合、論理回路情報回路情報（NETLIST）に基づいて、例えば、図２４、図２５に示すような回路を構成する配置配線処理を行う。
【００７８】
多ビット化配置配線部３４は、配置配線を行うと、各セルの周囲所定範囲を探索して、他のセルが存在するか判定する（ステップＳ１０４）。多ビット化配置配線部３４は、この他のセルの有無を、例えば、既知の配置配線ツールを使用して行う。
【００７９】
多ビット化配置配線部３４の探索する探索範囲は、例えば、図２６に示すように、探索の基準となる仮想フリップフロップ（U_ff0）の中心からの距離（両矢印）である。この探索の距離を決定する最も単純な方法は、セルライブラリＣＬである。すなわち、セルライブラリＣＬに含まれるセルのサイズは、設計プロセスやライブラリベンダー毎に異なるため、多ビット化配置配線部３４は、セルライブラリＣＬ毎に探索範囲を適切な値に設定する。
【００８０】
また、多ビット化配置配線部３４は、セルの配置密度によって探索範囲を変えてもよい。この場合、多ビット化配置配線部３４は、セルの配置情報を元に、配置密度を算出する。すなわち、配置密度と配線混雑度には一般的に正の相関があることが分かっており、配置密度が高い状態は、配線混雑度として望ましい状態ではない。したがって、多ビット化することにより総エリア数が減少し、配置密度が低下すれば配線混雑に良い結果が得られることが推測されるため、探索範囲を広げることが有効となる。また、配置密度は、チップ全体に対して算出することも可能であるが、例えば、チップの縦と横をそれぞれ４分割して、１６のエリアに分け、それぞれの配置密度を算出する等の方法で求めて、それぞれのエリアにより探索範囲を変えてもよい。すなわち、探索範囲を変化させることで、多ビット化を制御することができる。
【００８１】
そして、多ビット化配置配線部３４は、上述のようにして、探索処理を行うが、図２４の場合、探索範囲（図２４に破線の丸で示す範囲）内に他の仮想フリップフロップが存在しない。
【００８２】
したがって、多ビット化配置配線部３４は、図２４の場合には、近くにセルがないと判断し（ステップＳ１０４で、ＮＯのとき）、多ビット化を行うことなく、半導体集積回路設計支援処理を終了する。
【００８３】
また、多ビット化配置配線部３４は、上述のようにして、探索処理を行うが、図２５の場合、まず、セルU_ff0を基準に破線の範囲の探索を行って、U_ff1が見つかり、U_ff1を基準に探索を行って、U_ff0が見つかる。そこで、多ビット化配置配線部３４は、U_ff1とU_ff0を多ビット化対象とする。同様に、多ビット化配置配線部３４は、U_ff2とU_ff3についても探索を行い、多ビット化対象とする。ところが、多ビット化配置配線部３４は、U_ff1とU_ff2とは、探索では見つからず、U_ff1とU_ff2との関係においては、多ビット化の対象から外す。
【００８４】
多ビット化配置配線部３４は、探索で近くにセルがあることを見つけると（ステップＳ１０４で、ＹＥＳのとき）、多ビット化処理を行う（ステップＳ１０５）。
【００８５】
多ビット化配置配線部３４は、この多ビット化処理においては、上記探索結果から多ビット対象のセルを決定し、基準となるセルを決定して、基準セルに対して他のセルを、基準セルへ組み合わせて多ビット化する。
【００８６】
例えば、多ビット化配置配線部３４は、図２５の場合、図２７（ａ）、（ｂ）に示すように、多ビット化する。すなわち、図２５の場合、U_ff0とU_ff1、U_ff2とU_ff3が多ビット化対象である。そこで、多ビット化配置配線部３４は、配置情報等からU_ff0とU_ff1のどちらかを多ビット化の基準セルとする。多ビット化配置配線部３４は、基準セルを決める方法として、例えば、周囲の配置密度や配線密度等の情報から決定する。一般的に、１ビットフリップフロップセルと比べて２ビットフリップフロップはセルサイズが大きいため、配置密度や配線密度が低いほうを基準セルとして選択する。多ビット化配置配線部３４は、いま、図２７に示すように、U_ff0、U_ff2を基準セルとする。
【００８７】
次に、多ビット化配置配線部３４は、選択した２つのフリップフロップが多ビット化が可能であるかを確認する。多ビット化が可能となる条件は、上述のように、制御信号が同じであることである。図２７では、U_ff0、U_ff1がともに、リセットなし、イネーブルなし、クロックは同一信号「CLK」での接続であるため、多ビット化が可能である。
【００８８】
そこで、多ビット化配置配線部３４は、基準セルであるU_ff0へU_ff1のデータ信号を繋ぎ変える。具体的には、多ビット化配置配線部３４は、U_ff1のD0ポートに接続されている信号IN[1]を、U_ff0のD1ポートへ接続し、U_ff1のQ0ポートに接続されている信号n[1]を、U_ff0のQ1ポートに接続する。このとき、多ビット化配置配線部３４は、図２７（ａ）に示すように、U_ff0のポート使用情報にD1ポートが使用されたという情報を付与し、U_ff1のポート使用情報に、D0ポートが使用されなくなったという情報を付与する。図２７の（ａ）のように回路情報（NETLIST）を変更して、配線接続を変更すると、図２７（ｂ）に示す接続になる。
【００８９】
次に、多ビット化配置配線部３４は、セルの変更を行う。すなわち、U_ff0のポート使用情報を参照すると、D[0]とD[1]の２つのポートが使用されていることが分かる。そこで、多ビット化配置配線部３４は、U_ff0については、図２５のVDFF1から、図２７に示すように、VDFF2セルへと変更を行う。
【００９０】
また、U_ff1のポート使用情報を参照すると、全てのポートが使用されていないことが分かる。そこで、多ビット化配置配線部３４は、U_ff1については、図２５のVDFF1から、図２７に示すように、VDFF0へと変更を行う。
【００９１】
そして、多ビット化配置配線部３４は、U_ff2、U_ff3についても、U_ff0とU_ff1と同様に行って、VDFF2、VDFF0へと変更する。
【００９２】
すなわち、多ビット化配置配線部３４は、最終的に仮想フリップフロップのポートの使用状況を確認するだけでビット数を決定し、配置位置を変更することなく、信号の繋ぎかえだけで多ビット化を実行する。
【００９３】
次に、多ビット化配置配線部３４は、上記多ビット化による接続変更を実施すると、図２８に示すように、再度、配置配線を実施し、配線が完了すると、不要なセルを削除して、セルのビット数変更を確定させる。
【００９４】
すなわち、多ビット化配置配線部３４は、図２８（ａ）に示すように、不要となったVDFF0の回路情報を削除し、図２８（ｂ）に示すように、残ったVDFF2によるセルと配線の接続を行う。
【００９５】
この場合、多ビット化配置配線部３４は、配線が完了すれば、VDFF0を削除し、セルのビット数変更を確定させるが、配線が完了しなければ、配線混雑度が高い領域にある多ビット仮想フリップフロップのビットをまとめることをやめて、元のVDFF1の配線に戻す。
【００９６】
なお、本実施例の半導体集積回路設計支援装置１は、置き換え基準セルを決定し、また、最終的に削除する予定のVDFF0を残している。したがって、元の配置配線情報を可能な限り保持することができる。特に、フリップフロップのクロック配線は、初期の配置配線後が最も理想的にクロックツリーが張られた状態でタイミングが最も有利な状態にあり、多ビット化することによるタイミンへの影響をできるだけ少なくすることができる。
【００９７】
また、多ビット化配置配線部３４は、図２９に示すように、入出力の位置が近いと、探索した結果、隣接する全てのセルが見つかった場合には、全てのセルを多ビット化の対象とする。
【００９８】
多ビット化配置配線部３４は、探索範囲を、図２９に破線の丸で示すように、全ての仮想１ビットフリップフロップVDFF1の探索範囲に、隣の仮想１ビットフリップフロップVDFF1が存在することを見つける。すなわち、多ビット化配置配線部３４は、まず、U_ff0を基準に破線の丸の範囲を探索した結果、U_ff1を見つけ、次に、U_ff1を基準に探索を行った結果、U_ff0とU_ff2を見つける。多ビット化配置配線部３４は、さらに、U_ff2を基準に探索を行った結果、U_ff1とU_ff3を見つけ、最後に、U_ff3を基準に探索を行った結果、U_ff2を見つける。
【００９９】
したがって、多ビット化配置配線部３４は、全てのU_ff0、U_ff1、U_ff2、U_ff3を、多ビット化対象とする。
【０１００】
そして、多ビット化配置配線部３４は、全てのセルが多ビット化の対象のときには、図３０に示すように、新たなセルを追加する方法で、多ビット化する。
【０１０１】
すなわち、多ビット化配置配線部３４は、まず、選択した４つのフリップフロップU_ff0、U_ff1、U_ff2、U_ff3が多ビット化可能であるかを確認する。多ビット化配置配線部３４は、この多ビット化可能であるか否かを、上述のようにして判断する。すなわち、多ビット化配置配線部３４は、多ビット化が可能となる条件は、制御信号が同じであることであるが、図２９の場合、U_ff0、U_ff1、U_ff2、U_ff3の全てが、リセットなし、イネーブルなし、クロックは同一信号「CLK」で接続であるため、多ビット化が可能であると判断する。
【０１０２】
そして、U_ff0からU_ff3は、１ビット仮想フリップフロップVDFF1であるため、多ビット化が可能なフリップフロップのビット数の合計は「４」である。
【０１０３】
本実施例の半導体集積回路設計支援装置１は、仮想フリップフロップライブラリセルは、図４から図６に示したように、１ビット、２ビット、４ビットが用意されているため、仮想４ビットフリップフロップVDFF4を採用し、図３０に示すように、U_ff4として追加する。
【０１０４】
多ビット化配置配線部３４は、上記のようにして、セルの追加を行うと、制御信号の接続を行う。まず、多ビット化配置配線部３４は、U_ff4の制御信号ポート（CKポート）に、U_ff0からU_ff3の制御信号ポートに接続されていた信号と同一の信号を接続する。
【０１０５】
次に、多ビット化配置配線部３４は、データ信号の接続を変更する。すなわち、多ビット化配置配線部３４は、U_ff0のD0ポートに接続されている信号IN[0]をU_ff4のD0ポートへ接続し、U_ff0のQ0ポートに接続されている信号n[0]をU_ff4のQ0ポートに接続する。多ビット化配置配線部３４は、U_ff1のD0ポートに接続されている信号IN[1]をU_ff4のD1ポートへ接続し、U_ff1のQ0ポートに接続されている信号n[1]をU_ff4のQ1ポートに接続する。また、多ビット化配置配線部３４は、U_ff2のD0ポートに接続されている信号IN[2]をU_ff4のD2ポートへ接続し、U_ff2のQ0ポートに接続されている信号n[2]をU_ff4のQ2ポートに接続する。さらに、多ビット化配置配線部３４は、U_ff3のD0ポートに接続されている信号IN[3]をU_ff4のD3ポートへ接続し、U_ff3のQ0ポートに接続されている信号n[3]をU_ff4のQ3ポートに接続する。
【０１０６】
最後に、多ビット化配置配線部３４は、接続元となったU_ff0からU_ff3の仮想フリップフロップVDFF1を削除し、図３０（ａ）の回路情報（NETLIST）へ変更する。
【０１０７】
多ビット化配置配線部３４は、回路情報（NETLIST）を変更すると、該回路情報（NETLIST）に基づいて配置配線を行って、図３０（ｂ）に示すような回路を生成する。
【０１０８】
このように、本実施例の半導体集積回路設計支援装置１は、回路仕様に基づいて回路設計を行って回路情報（HDL）を生成する回路設計部（回路設計手段）３１と、半導体集積回路のセル情報を含むセルライブラリ（回路関連情報）ＣＬを記憶するセルライブラリ記憶部（回路関連情報記憶手段）３２と、前記セルライブラリＣＬを使用して前記回路情報（HDL）に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報である回路情報（NETLIST）を生成する論理回路情報生成部（論理回路情報生成手段）３３と、前記回路情報（NETLIST）の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記セルライブラリＣＬを参照して該回路情報（NETLIST）の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線部（多ビット化配置配線手段）３４と、を備えている。
【０１０９】
したがって、半導体集積回路の設計において、回路仕様から生成された回路情報（HDL）に対してセルライブラリＣＬを使用して論理合成してセルをマッピングし、該セルの配置配線情報に基づいて多ビット化することができる。その結果、最適なビット数の多ビットセルを効率的に選択することができる。
【０１１０】
また、本実施例の半導体集積回路設計支援装置１は、回路仕様に基づいて回路設計を行って回路情報（HDL）を生成する回路設計処理ステップと、セルライブラリ記憶部（回路関連情報記憶手段）３２の記憶する半導体集積回路のセル情報を含むセルライブラリ（回路関連情報）ＣＬを使用して前記回路情報（HDL）に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報である回路情報（NETLIST）を生成する論理回路情報生成処理ステップと、前記回路情報（NETLIST）の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記セルライブラリＣＬを参照して該回路情報（NETLIST）の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線処理ステップと、を有している半導体集積回路設計支援方法を実行する。
【０１１１】
したがって、半導体集積回路の設計において、回路仕様から生成された回路情報（HDL）に対してセルライブラリＣＬを使用して論理合成してセルをマッピングし、該セルの配置配線情報に基づいて多ビット化することができる。その結果、最適なビット数の多ビットセルを効率的に選択することができる。
【０１１２】
さらに、本実施例の半導体集積回路設計支援装置１は、コンピュータに、回路仕様に基づいて回路設計を行って回路情報（HDL）を生成する回路設計処理と、セルライブラリ記憶部（回路関連情報記憶手段）３２の記憶する半導体集積回路のセル情報を含むセルライブラリ（回路関連情報）ＣＬを使用して前記回路情報（HDL）に対して論理合成を行って、セルの配置とセルに対する配線の配置配線情報を含む論理回路情報である回路情報（NETLIST）を生成する論理回路情報生成処理と、前記回路情報（NETLIST）の前記配置配線情報に基づいて、前記セルの配置と該セルに対する配線を実施し、該配置配線の実施結果に基づいて前記セルライブラリＣＬを参照して該回路情報（NETLIST）の少ビットセルを多ビットセルへ多ビット化する多ビット化配置配線処理と、を実行させるプログラムを搭載している。
【０１１３】
したがって、半導体集積回路の設計において、回路仕様から生成された回路情報（HDL）に対してセルライブラリＣＬを使用して論理合成してセルをマッピングし、該セルの配置配線情報に基づいて多ビット化することができる。その結果、最適なビット数の多ビットセルを効率的に選択することができる。
【０１１４】
また、本実施例の半導体集積回路設計支援装置１は、前記多ビット化配置配線部３４が、前記多ビットセルの前記配置配線情報に基づいて、該多ビットセルに対する接続を変更し、配置を決定した後に該多ビットセルの段数を決定する。
【０１１５】
したがって、配線密度を考慮した多ビット化を行うことができ、より一層最適なビット数の多ビットセルを効率的に選択することができる。
【０１１６】
さらに、本実施例の半導体集積回路設計支援装置１は、前記多ビット化配置配線部３４が、前記セルの配線数に基づいて、該セルを多ビット化する。
【０１１７】
したがって、配線密度を考慮した多ビット化を行うことができ、より一層最適なビット数の多ビットセルを効率的に選択することができる。
【０１１８】
また、本実施例の半導体集積回路設計支援装置１は、前記論理回路情報生成部３３が、前記回路情報（HDL）に基づいて仮想セルの回路情報（NETLIST）を生成し、前記多ビット化配置配線部３４が、前記仮想セルを多ビット化する。
【０１１９】
したがって、仮想セルを用いて効率的に多ビット化することができ、より最適なビット数の多ビットセルをより一層効率的に選択することができる。
【０１２０】
さらに、本実施例の半導体集積回路設計支援装置１は、前記多ビット化配置配線部３４が、前記セル毎に所定周辺範囲におけるセルの有無と配線数を前記配置配線情報から探索する探索部（探索手段）を備え、前記探索部の探索結果に基づいて、前記セルの多ビット化の適否を判定して、多ビット化を行う。
【０１２１】
したがって、探索によって、より適切な範囲のセルを多ビット化し、また、探索範囲を変化させることで、多ビット化するセルの範囲を制御することができる。その結果、より最適なビット数の多ビットセルを効率的に選択することができる。
【０１２２】
また、本実施例の半導体集積回路設計支援装置１は、前記セルがフリップフロップである。
【０１２３】
したがって、セルとしてフリップフロップを用いた半導体集積回路の設計において、回路仕様から生成された回路情報（HDL）に対してセルライブラリＣＬを使用して論理合成してセルをマッピングし、該セルの配置配線情報に基づいて多ビット化することができる。その結果、最適なビット数の多ビットセルを効率的に選択することができる。
【０１２４】
なお、上記実施例においては、セルとしてフリップフロップを取り上げて説明したが、セルは、フリップフロップに限るものではない。
【０１２５】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１２６】
１  半導体集積回路設計支援装置
２  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  不揮発性メモリ
６  入力Ｉ／Ｆ
７  出力Ｉ／Ｆ
８  外部Ｉ／Ｆ
９  バス
１１  入力デバイス
１２  出力デバイス
３１  回路設計部
３２  セルライブラリ記憶部
３３  論理回路情報生成部
３４  多ビット化配置配線部
ＣＬ  セルライブラリ
DFF  １ビットフリップフロップ
DFF2  ２ビットフリップフロップ
DFF4  ４ビットフリップフロップ
VkJ0、VkJ1、Vkj2、Vkj4  回路情報
VDFF0  仮想０ビットフリップフロップセル
VDFF1  仮想１ビットフリップフロップセル
VDFF2  仮想２ビットフリップフロップセル
VDFF4  仮想４ビットフリップフロップセル
【先行技術文献】
【特許文献】
【０１２７】
【特許文献１】特開２００８−２０４１７１号公報
【図１】
2016218670.tif 000003
【図２】
2016218670.tif 000004
【図３】
2016218670.tif 000005
【図４】
2016218670.tif 000006
【図５】
2016218670.tif 000007
【図６】
2016218670.tif 000008
【図７】
2016218670.tif 000009
【図８】
2016218670.tif 000010
【図９】
2016218670.tif 000011
【図１０】
2016218670.tif 000012
【図１１】
2016218670.tif 000013
【図１２】
2016218670.tif 000014
【図１３】
2016218670.tif 000015
【図１４】
2016218670.tif 000016
【図１５】
2016218670.tif 000017
【図１６】
2016218670.tif 000018
【図１７】
2016218670.tif 000019
【図１８】
2016218670.tif 000020
【図１９】
2016218670.tif 000021
【図２０】
2016218670.tif 000022
【図２１】
2016218670.tif 000023
【図２２】
2016218670.tif 000024
【図２３】
2016218670.tif 000025
【図２４】
2016218670.tif 000026
【図２５】
2016218670.tif 000027
【図２６】
2016218670.tif 000028
【図２７】
2016218670.tif 000029
【図２８】
2016218670.tif 000030
【図２９】
2016218670.tif 000031
【図３０】
2016218670.tif 000032