(57)【要約】【課題】半導体集積回路の論理回路の設計に用いるネットリストを最適化することにより設計時間を短縮することができる方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供する。【解決手段】論理回路記述データを取得し、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成し、第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する。第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する。出力されたタイミングレポートに基づいて、所望の動作速度を満たしていないブロックを抽出し、抽出されたブロックについて、第一のネットリストを第二のネットリストに置換し、配置配線を行う。【選択図】図９
2014021573.tif 000002
【特許請求の範囲】
【請求項１】
論理回路の設計を支援する装置で実行することが可能な方法において、
論理回路記述データを取得する工程と、
取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する工程と、
取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する工程と、
前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う工程と、
所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する工程と、
出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出する工程と、
抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換する工程と
を含み、
一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、再度タイミングレポートを出力する方法。
【請求項２】
前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項１に記載の方法。  
【請求項３】
前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する工程を含み、
抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する請求項１又は２に記載の方法。  
【請求項４】
論理回路の設計を支援する装置において、
論理回路記述データを取得する記述データ取得手段と、
取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段と、
取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段と、
前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段と、
所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段と、
出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段と、
抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段と
を備え、
前記配置配線手段は、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、前記タイミングレポート出力手段は、再度タイミングレポートを出力する装置。
【請求項５】
前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項４に記載の装置。  
【請求項６】
前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段を備え、
前記ネットリスト置換手段は、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する請求項４又は５に記載の装置。  
【請求項７】
論理回路の設計を支援する装置で実行することが可能なコンピュータプログラムにおいて、
前記装置を、
論理回路記述データを取得する記述データ取得手段、
取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段、
取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段、
前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段、
所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段、
出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段、及び
抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段
として機能させ、
前記配置配線手段を、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う手段として機能させ、
前記タイミングレポート出力手段を、再度タイミングレポートを出力する手段として機能させるコンピュータプログラム。
【請求項８】
前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されている請求項７に記載のコンピュータプログラム。  
【請求項９】
前記装置を、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段として機能させ、
前記ネットリスト置換手段を、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する手段として機能させる請求項７又は８に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の論理回路設計に用いるネットリストを最適化する方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムに関する。
【背景技術】
【０００２】
半導体集積回路を設計する場合、まずハードウェア記述言語（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：以下、ＨＤＬ）を用いて論理回路をレジスター・トランスファー・レベル（ＲＴＬ）で記述し、配置対象となるセルライブラリ（論理演算素子群）を用いて論理合成することにより、ネットリストを生成する。
【０００３】
しかし、論理合成後のネットリストに基づいて配置配線を行ってタイミング解析を行った場合、クロック周期、入出力遅れ等に起因して、予期しないクリティカルパスが生じる場合がある。すなわち、特定の論理演算素子がクリティカルパスとなって、全体として演算タイミングにずれが生じ、正しい論理演算を実行することができないおそれがあった。
【０００４】
そこで、従来は、論理合成時に周波数に高いマージンを付与した条件、すなわち周波数を高めに設定して論理合成することにより、ネットリストを生成している。例えば特許文献１には、一般的な論理合成装置として、ＦＦ間の処理速度を基準としてタイミング検証を行う論理合成装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１６３８２２号公報
【特許文献２】特開２００４−０８６７６３号公報
【特許文献３】特開２００３−１８６９３４号公報
【特許文献４】特開２００２−１５７２９２号公報
【特許文献５】特開２００５−３５３０７９号公報
【特許文献６】特開２００７−１９９９５１号公報
【特許文献７】特開２００３−２７３２１９号公報
【特許文献８】特開２００２−１６３３１３号公報
【特許文献９】特開２００５−１２２２９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、論理合成時の周波数設定については明示されていないが、設計時にはクリティカルパスの発生を回避するべく周波数を高めに設定して論理合成することが多い。しかし、高い周波数で論理合成しているので、半導体集積回路のゲートサイズが不必要に大きくなることが想定され、また消費電力が高い論理回路設計となる可能性が高いことから、小型化、省電力化という時代の要請に反するという問題点があった。
【０００７】
また、論理合成することにより生成されたネットリストに基づいて、論理演算素子の配置、論理演算素子間の配線を変更することにより、タイミング遅れを収束させて消費電力を抑制することも可能ではある。しかし、タイミングが収束するまで試行錯誤を繰り返す必要が生じるとともに、場合によっては論理合成を再度実行する手戻り作業が必要となる可能性も残されており、設計時間を短縮することが困難であるという問題点もあった。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、半導体集積回路の論理回路設計に用いるネットリストを最適化することにより設計時間を短縮することができる方法、該方法を用いて論理回路の設計を支援する装置及び該装置で実行することが可能なコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために第１発明に係る方法は、論理回路の設計を支援する装置で実行することが可能な方法において、論理回路記述データを取得する工程と、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する工程と、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する工程と、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う工程と、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する工程と、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出する工程と、抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換する工程とを含み、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、再度タイミングレポートを出力する。
【００１０】
また、第２発明に係る方法は、第１発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。  
【００１１】
また、第３発明に係る方法は、第１又は第２発明において、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する工程を含み、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換することが好ましい。  
【００１２】
次に、上記目的を達成するために第４発明に係る装置は、論理回路の設計を支援する装置において、論理回路記述データを取得する記述データ取得手段と、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段と、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段と、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段と、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段と、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段と、抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段とを備え、前記配置配線手段は、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行い、前記タイミングレポート出力手段は、再度タイミングレポートを出力する。
【００１３】
また、第５発明に係る装置は、第４発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。  
【００１４】
また、第６発明に係る装置は、第４又は第５発明において、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段を備え、前記ネットリスト置換手段は、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換することが好ましい。  
【００１５】
次に、上記目的を達成するために第７発明に係るコンピュータプログラムは、論理回路の設計を支援する装置で実行することが可能なコンピュータプログラムにおいて、前記装置を、論理回路記述データを取得する記述データ取得手段、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する第一のネットリスト生成手段、取得した論理回路記述データに基づいて前記第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する第二のネットリスト生成手段、前記第一のネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う配置配線手段、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力するタイミングレポート出力手段、出力されたタイミングレポートに基づいて、前記ブロックのうち、所望の動作速度を満たしていないブロックを抽出するブロック抽出手段、及び抽出されたブロックについて、前記第一のネットリストを前記第二のネットリストに置換するネットリスト置換手段として機能させ、前記配置配線手段を、一部又は全部が前記第二のネットリストに置換されたネットリストに基づいて論理演算素子の配置及び該論理演算素子間の配線を行う手段として機能させ、前記タイミングレポート出力手段を、再度タイミングレポートを出力する手段として機能させる。
【００１６】
また、第８発明に係るコンピュータプログラムは、第７発明において、前記ブロックは、信号が入力されるフリップフロップ回路と信号を出力するフリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されていることが好ましい。  
【００１７】
また、第９発明に係るコンピュータプログラムは、第７又は第８発明において、前記装置を、前記ブロックごとに前記第一のネットリストと前記第二のネットリストとを対応付けた参照テーブルを生成して記憶する参照テーブル生成手段として機能させ、前記ネットリスト置換手段を、抽出されたブロックをキー情報として前記参照テーブルを参照して、抽出されたブロックに対応する第一のネットリストを、該ブロックに対応する第二のネットリストに置換する手段として機能させることが好ましい。
【発明の効果】
【００１８】
本発明によれば、第一の周波数で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係る論理回路設計支援装置の構成を模式的に示すブロック図である。
【図２】本発明の実施の形態に係る論理回路設計支援装置の機能ブロック図である。
【図３】本発明の実施の形態に係る論理回路設計支援装置のＲＴＬソースコードの例示図である。
【図４】本発明の実施の形態に係る論理回路設計支援装置の第一のネットリスト及び第二のネットリストの例示図である。
【図５】本発明の実施の形態に係る論理回路設計支援装置のタイミングレポートの例示図である。
【図６】本発明の実施の形態に係る論理回路設計支援装置の所定のブロックのタイミングレポートの例示図である。
【図７】本発明の実施の形態に係る論理回路設計支援装置の参照テーブル記憶部に記憶されている参照テーブルの例示図である。
【図８】本発明の実施の形態に係る論理回路設計支援装置の、第二のネットリストに置換された場合のタイミングレポートの例示図である。
【図９】本発明の実施の形態に係る論理回路設計支援装置のＣＰＵの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態に係る、論理回路の設計を支援する論理回路設計支援装置について、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
【００２１】
また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。
【００２２】
以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、論理回路の設計を支援する論理回路設計支援装置というハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、ＤＶＤ、ＣＤ、光記憶装置、磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。
【００２３】
本発明の実施の形態によれば、第一の周波数で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。
【００２４】
図１は、本発明の実施の形態に係る論理回路設計支援装置の構成を模式的に示すブロック図である。本発明の実施の形態に係る論理回路設計支援装置１は、少なくともＣＰＵ（中央演算装置）１１、メモリ１２、記憶装置１３、Ｉ／Ｏインタフェース１４、ビデオインタフェース１５、可搬型ディスクドライブ１６、通信インタフェース１７及び上述したハードウェアを接続する内部バス１８で構成されている。
【００２５】
ＣＰＵ１１は、内部バス１８を介して論理回路設計支援装置１の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置１３に記憶されたコンピュータプログラム１００に従って、種々のソフトウェア的機能を実行する。メモリ１２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム１００の実行時にロードモジュールが展開され、コンピュータプログラム１００の実行時に発生する一時的なデータ等を記憶する。
【００２６】
記憶装置１３は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置１３に記憶されたコンピュータプログラム１００は、プログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体９０から、可搬型ディスクドライブ１６によりダウンロードされ、実行時には記憶装置１３からメモリ１２へ展開して実行される。もちろん、通信インタフェース１７を介して接続されている外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００２７】
記憶装置１３は、論理回路中の同じブロックについて、論理回路を第一の周波数で論理合成して生成された第一のネットリストと、第一の周波数よりも高い第二の周波数で論理合成して生成された第二のネットリストとを、論理演算素子（セル）を識別する識別情報に対応付けた参照テーブルを記憶する参照テーブル記憶部１３１を備えている。なお、ブロックとは、分割された所定の配線単位を意味しており、本実施の形態では、信号が入力される入力側フリップフロップ回路と、信号を出力する出力側フリップフロップ回路とで挟まれた論理演算素子（セル）及び該論理演算素子（セル）間の配線で構成されている。
【００２８】
通信インタフェース１７は内部バス１８に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部コンピュータ等とデータ送受信を行うことが可能となっている。
【００２９】
Ｉ／Ｏインタフェース１４は、キーボード２１、マウス２２等の入力装置と接続され、データの入力を受け付ける。ビデオインタフェース１５は、ＣＲＴディスプレイ、液晶ディスプレイ等の表示装置２３と接続され、所定の画像を表示する。
【００３０】
図２は、本発明の実施の形態に係る論理回路設計支援装置１の機能ブロック図である。図２において、論理回路設計支援装置１の記述データ取得部２０１は、論理合成用のデータとして論理回路記述データを取得する。取得する論理回路記述データは、例えばＲＴＬ（レジスタ転送レベル：Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）ソースコードである。
【００３１】
図３は、本発明の実施の形態に係る論理回路設計支援装置１のＲＴＬソースコードの例示図である。図３において、ＲＴＬソースコードは、基本的な乗算器を構成するソースコードであり、ソースコード３０１は、入力ｘと入力ｙとを乗算した結果をｚ＿ｌｔに出力することを示している。
【００３２】
具体的には、ソースコード３０２は、４ビットの入力ｘと入力ｙとを同期を取りつつ入力側フリップフロップ回路へ入力することを示している。ソースコード３０３は、論理回路を配線した結果として、出力ｚに入力ｘと入力ｙとを乗算した結果を出力することを示している。そして、ソースコード３０４は、６ビットの出力ｚ＿ｌｔを出力側フリップフロップ回路へ出力することを示している。
【００３３】
図２に戻って、第一のネットリスト生成部２０２は、取得したＲＴＬソースコード（論理回路記述データ）に基づいて第一の周波数で論理合成を行い、第一のネットリストを生成する。同様に第二のネットリスト生成部２０３は、取得した論理回路記述データに基づいて第一の周波数よりも高い第二の周波数で論理合成を行い、第二のネットリストを生成する。図４は、本発明の実施の形態に係る論理回路設計支援装置１の第一のネットリスト及び第二のネットリストの例示図である。
【００３４】
図４（ａ）は比較的低い周波数で論理合成して生成された第一のネットリストを、図４（ｂ）は比較的高い周波数で論理合成して生成された第二のネットリストを、それぞれ示している。図４（ａ）と図４（ｂ）とを比較すればわかるように、入力側フリップフロップ回路を識別する第一の識別情報４１、及び出力側フリップフロップ回路を識別する第二の識別情報４２は、第一のネットリストと第二のネットリストとで一致している。つまり、同一のブロックにおけるネットリストであることを示している。そして、入力側フリップフロップ回路と出力側フリップフロップ回路との間、すなわち第一の識別情報４１と第二の識別情報４２との間では、論理演算素子（セル）の配置も数も異なっている。
【００３５】
図２に戻って、配置配線部２０４は、生成された第一のネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行う。具体的には、制約条件に沿って配置ツールにより自動配置・自動配線を実行する。タイミングレポート出力部２０５は、所定の配線単位に分割されたブロックごとに実行タイミングに関するタイミングレポートを出力する。
【００３６】
タイミングレポートとは、ブロックごとに、論理演算素子ごとの演算処理に要する時間を累積したレポートである。図５は、本発明の実施の形態に係る論理回路設計支援装置１のタイミングレポートの例示図である。図５では、１つのブロックに関して出力されたタイミングレポートを例示している。
【００３７】
図５に示すように、入力側フリップフロップ回路を識別する第一の識別情報５１からタイムカウントを開始し、出力側フリップフロップ回路を識別する第二の識別情報５２でタイムカウントを終了するまで、論理演算素子ごとの演算処理に要する時間を累積している。累積した演算処理時間が、事前に見積もっていた経過時間と大きく乖離した場合（超えてしまった場合）には、タイミングレポートを出力した該ブロックについては、第一のネットリストでは事前に見積もっていた経過時間内に処理を完了させることができない、タイミングがクリティカルなブロックであると判断することができる。本発明では、タイミングがクリティカルなブロックについては、第一のネットリストを、比較的高い周波数で論理合成した第二のネットリストに置換することにより、タイミング調整を行う。具体的には、事前に見積もっていた経過時間と累積した演算処理時間との差分を算出し、算出した差分が負の値になった場合に、タイミングがクリティカルなブロックであると判断する。
【００３８】
図２に戻って、ブロック抽出部２０６は、出力されたタイミングレポートに基づいて、所望の動作速度を満たしていないブロックを抽出する。そして、ネットリスト置換部２０７は、抽出されたブロックについて、第一のネットリストを第二のネットリストに置換する。
【００３９】
図６は、本発明の実施の形態に係る論理回路設計支援装置１の所定のブロックのタイミングレポートの例示図である。図６に示すブロックでは、累積した演算処理時間と、事前に見積もっていた経過時間との差分６３が負の値（マイナス）で表示されており、事前に見積もっていた経過時間よりも演算処理に時間がかかることを示している。したがって、事前に見積もっていた経過時間内に処理が完了せず、全体として演算タイミングにずれ（遅れ等）が生じ、正しい論理演算を実行することができないおそれがある。
【００４０】
そこで、差分６３が負の値で表示されているブロックについては、第一のネットリストを第二のネットリストに置換する。具体的には、入力側フリップフロップ回路を識別する第一の識別情報５１及び出力側フリップフロップ回路を識別する第二の識別情報５２をキー情報として、抽出されたブロックに対応する第一のネットリスト及び第二のネットリストを検索する。そして、抽出されたブロックに対応する第一のネットリストを、抽出されたブロックに対応する第二のネットリストに置換する。
【００４１】
もちろん、少しでも演算処理時間を早くするために、ブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して、記憶装置１３の参照テーブル記憶部１３１に記憶しておいても良い。図２に示す参照テーブル生成部２０８は、ブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して、記憶装置１３の参照テーブル記憶部１３１に記憶する。
【００４２】
参照テーブルを用いる場合、ネットリスト置換部２０７は、抽出されたブロックをキー情報として参照テーブルを参照し、抽出されたブロックに対応する第一のネットリストを、抽出されたブロックに対応する第二のネットリストに置換する。  
【００４３】
図７は、本発明の実施の形態に係る論理回路設計支援装置１の参照テーブル記憶部１３１に記憶されている参照テーブルの例示図である。図７（ａ）に示す参照テーブルでは、ブロック（図７では「Ｐａｔｈ」と記載）ごとに、第一の周波数（低周波数）で論理合成して生成した第一のネットリスト７１と、第二の周波数（高周波数）で論理合成して生成した第二のネットリスト７２とを対応付けている。
【００４４】
図７（ｂ）に示すように、低周波数で論理合成した場合には、論理演算素子の数が比較的少なく、配線も複雑にはならない。一方、図７（ｃ）に示すように、高周波数で論理合成した場合には、論理演算素子の数が比較的多く、配線も複雑になる。ブロックごとに双方のネットリストを対応付けた参照テーブルを生成し、事前に記憶しておくことにより、生成されたネットリスト全体を検索する処理が不要となるので、演算処理負荷が過大になることなく、抽出されたブロックの第一のネットリスト７１を第二のネットリスト７２に置換することが可能となる。
【００４５】
図８は、本発明の実施の形態に係る論理回路設計支援装置１の、第二のネットリストに置換された場合のタイミングレポートの例示図である。図６とは異なり、累積した演算処理時間と、事前に見積もっていた経過時間との差分８３は負の値（マイナス）で表示されておらず、事前に見積もっていた経過時間内に処理が完了すると判断することができる。
【００４６】
図９は、本発明の実施の形態に係る論理回路設計支援装置１のＣＰＵ１１の処理手順を示すフローチャートである。論理回路設計支援装置１のＣＰＵ１１は、論理合成用のデータとして論理回路記述データを取得する（ステップＳ９０１）。取得する論理回路記述データは、例えばＲＴＬ（レジスタ転送レベル：Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）ソースコードである。
【００４７】
ＣＰＵ１１は、取得した論理回路記述データに基づいて第一の周波数で論理合成を行い（ステップＳ９０２）、第一のネットリストを生成する（ステップＳ９０３）。同様に、ＣＰＵ１１は、取得した論理回路記述データに基づいて第一の周波数よりも高い第二の周波数で論理合成を行い（ステップＳ９０４）、第二のネットリストを生成する（ステップＳ９０５）。ＣＰＵ１１は、入力側フリップフロップ回路と出力側フリップフロップ回路とで挟まれた論理演算素子及び該論理演算素子間の配線で構成されているブロックごとに第一のネットリストと第二のネットリストとを対応付けた参照テーブルを生成して記憶する（ステップＳ９０６）。
【００４８】
ＣＰＵ１１は、生成された第一のネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行う（ステップＳ９０７）。具体的には、制約条件に沿って配置ツールにより自動配置・自動配線を実行する。ＣＰＵ１１は、ブロックごとに実行タイミングに関するタイミングレポートを出力する（ステップＳ９０８）。
【００４９】
ＣＰＵ１１は、ブロックを選択し（ステップＳ９０９）、選択したブロックについて出力されたタイミングレポートで累積した演算処理時間と事前に見積もっていた経過時間との差分が負の値であるか否かを判断する（ステップＳ９１０）。ＣＰＵ１１が、負の値であると判断した場合（ステップＳ９１０：ＹＥＳ）、ＣＰＵ１１は、第一のネットリストを第二のネットリストに置換する（ステップＳ９１１）。
【００５０】
ＣＰＵ１１が、負の値でないと判断した場合（ステップＳ９１０：ＮＯ）、ＣＰＵ１１は、ステップＳ９１１をスキップし、全てのブロックを選択したか否かを判断する（ステップＳ９１２）。ＣＰＵ１１が、まだ選択していないブロックが存在すると判断した場合（ステップＳ９１２：ＮＯ）、ＣＰＵ１１は、次のブロックを選択し（ステップＳ９１３）、処理をステップＳ９１０に戻して、上述した処理を繰り返す。
【００５１】
ＣＰＵ１１が、全てのブロックを選択したと判断した場合（ステップＳ９１２：ＹＥＳ）、ＣＰＵ１１は、一部又は全部が第二のネットリストに置換されたネットリストに基づいて、論理演算素子の配置及び該論理演算素子間の配線を行い（ステップＳ９１４）、タイミングレポートを再度出力する（ステップＳ９１５）。
【００５２】
以上のように本実施の形態によれば、第一の周波数（低周波数）で論理合成を行い、第一のネットリストを生成するとともに、第一の周波数よりも高い第二の周波数（高周波数）でも論理合成を行い、第二のネットリストを生成しておく。論理演算素子の配置配線工程において、原則として第一のネットリストに基づいて配置及び配線を行い、タイミングがクリティカルなブロックについては高周波数で生成された第二のネットリストに置換することにより、論理合成工程まで手戻りすることなくネットリストを最適化することができ、全体として論理回路の設計時間を短縮することが可能となる。また、必要以上に高速な論理演算素子が配置されることにより、全体として半導体集積回路のゲートサイズが大きくなること、消費電力が過大となること等を、未然に回避することが可能となる。
【００５３】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。
【符号の説明】
【００５４】
１  論理回路設計支援装置
１１  ＣＰＵ
１２  メモリ
１３  記憶装置
１４  Ｉ／Ｏインタフェース
１５  ビデオインタフェース
１６  可搬型ディスクドライブ
１７  通信インタフェース
１８  内部バス
９０  可搬型記録媒体
１００  コンピュータプログラム
【図１】
2014021573.tif 000003
【図２】
2014021573.tif 000004
【図３】
2014021573.tif 000005
【図９】
2014021573.tif 000006
【図４】
2014021573.tif 000007
【図５】
2014021573.tif 000008
【図６】
2014021573.tif 000009
【図７】
2014021573.tif 000010
【図８】
2014021573.tif 000011