(57)【要約】【課題】既存のＲＴＬ記述を時代や世の中に合わせて適宜変更し、最適なＲＴＬ記述を得る。【解決手段】設計対象回路の原ＲＴＬ記述１０を投入すると、コントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段１１と、生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、ステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段１２と、前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段１３と、前記ビヘイビア記述に基づき高位合成を行って最適化されたＲＴＬ記述を得る高位合成手段１４とを具備する。【選択図】図１
2018041301.tif 000002
【特許請求の範囲】
【請求項１】
設計対象回路の原ＲＴＬ記述を投入すると、このＲＴＬ記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段と、
コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段と、
前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段と、
前記ビヘイビア記述に基づき高位合成を行って最適化されたＲＴＬ記述を得る高位合成手段と
を具備することを特徴とするＲＴＬ最適化システム。
【請求項２】
前記ステート解析・除去手段は、各ステートにおける動作種別を、リセットステート、入力ステート、出力ステート、演算ステートに分類することを特徴とする請求項１に記載のＲＴＬ最適化システム。
【請求項３】
前記ステート解析・除去手段は、各ステートにおける動作種別に、メモリアクセスのメモリ入力と、メモリアクセスのメモリ出力を加えて解析を行うことを特徴とする請求項２に記載のＲＴＬ最適化システム。
【請求項４】
前記ステート解析・除去手段は、演算ステートの除去を行うことを特徴とする請求項２または３に記載のＲＴＬ最適化システム。
【請求項５】
前記高位合成手段は、設計対象回路のレイテンシと回路規模の少なくとも１つに関する制約情報により構成される制約ファイルの前記制約情報に基づき高位合成を行うことを特徴とする請求項１乃至４のいずれか１項に記載のＲＴＬ最適化システム。
【請求項６】
前記高位合成手段は、設計対象回路内に設けられるロジックセルの遅延量及び／または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部の前記テクノロジ情報に基づき高位合成を行うことを特徴とする請求項１乃至５のいずれか１項に記載のＲＴＬ最適化システム。
【請求項７】
前記高位合成手段により合成されたＲＴＬ記述と原ＲＴＬ記述とに関して、少なくとも資源使用量とレイテンシを比較した比較結果情報を生成出力する比較結果情報出力手段を具備したことを特徴とする請求項１乃至６のいずれか１項に記載のＲＴＬ最適化システム。
【請求項８】
コンピュータを、
設計対象回路の原ＲＴＬ記述を投入すると、このＲＴＬ記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段、
コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段、
前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段、
前記ビヘイビア記述に基づき高位合成を行って最適化されたＲＴＬ記述を得る高位合成手段
として機能させることを特徴とするＲＴＬ最適化プログラム。
【請求項９】
コンピュータを、前記ステート解析・除去手段として、各ステートにおける動作種別を、リセットステート、入力ステート、出力ステート、演算ステートに分類するように機能させることを特徴とする請求項８に記載のＲＴＬ最適化プログラム。
【請求項１０】
コンピュータを、前記ステート解析・除去手段として、各ステートにおける動作種別に、メモリアクセスのメモリ入力と、メモリアクセスのメモリ出力を加えて解析を行うように機能させることを特徴とする請求項９に記載のＲＴＬ最適化プログラム。
【請求項１１】
コンピュータを、前記ステート解析・除去手段として、演算ステートの除去を行わせることを特徴とする請求項９または１０に記載のＲＴＬ最適化プログラム。
【請求項１２】
コンピュータを、前記高位合成手段として、設計対象回路のレイテンシと回路規模の少なくとも１つに関する制約情報により構成される制約ファイルの前記制約情報に基づき高位合成を行わせることを特徴とする請求項８乃至１１のいずれか１項に記載のＲＴＬ最適化プログラム。
【請求項１３】
コンピュータを、前記高位合成手段として、設計対象回路内に設けられるロジックセルの遅延量及び／または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部の前記テクノロジ情報に基づき高位合成を行わせることを特徴とする請求項８乃至１２のいずれか１項に記載のＲＴＬ最適化プログラム。
【請求項１４】
コンピュータを、前記高位合成手段により合成されたＲＴＬ記述と原ＲＴＬ記述とに関して、少なくとも資源使用量とレイテンシを比較した比較結果情報を生成出力する比較結果情報出力手段として機能させることを特徴とする請求項８乃至１３のいずれか１項に記載のＲＴＬ最適化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、既存のＲＴＬ記述を最適化することが可能なＲＴＬ最適化システム及びＲＴＬ最適化プログラムに関するものである。
【背景技術】
【０００２】
従来、ＲＴＬ最適化は手修正により行われている。しかしながら、手修正によるＲＴＬ最適化は、多くの時間を要する上に修正による人為ミスが起り易く、そのため手戻りが発生しやすいという問題がある。
【０００３】
また、論理合成レベルでのＲＴＬ最適化も行われている。しかしながら、従来の論理合成レベルでのＲＴＬ最適化は、ＦＦ（Ｆｌｉｐ−Ｆｌｏｐ）間ロジックの最適化、ＦＦを跨いだリタイミングによる最適化といった手法である。しかしながら、論理合成レベルでのＲＴＬ最適化は、処理レイテンシの変更を行う最適化までは踏み込むものではない。また、動作周波数が大きく未達の場合には、論理合成レベルでの最適化では不十分であり、場合によっては設計見直しの可能性が生じるという問題があった。
【０００４】
他方、ＲＴＬ記述から、例えばＳｙｓｔｅｍＣへの変換は従来から存在する。具体例として、特許文献１には、状態レジスタと組み合わせ回路とを備えた制御部と、この制御部からの信号により制御されるレジスタと組み合わせ回路とを備えたデータパス部とを用いて、ハードウェア動作記述を、構成要素解析手段、データフロー解析手段、制御構造再構築手段、データフロー再構築手段、制御構造とデータフローの併合手段及び目的コード生成手段として機能するコンピュータを使用して計算機上で実行可能なプログラム言語に変換する方法が開示されている。
【０００５】
この方法では、上記構成要素解析手段において、上記ハードウェア動作記述の構成要素解析をするステップと、上記データフロー解析手段において、上記状態レジスタからのデータフローと、前記データパス部のレジスタからのデータフローを生成するデータフロー解析ステップと、上記制御構造再構築手段において、生成された状態レジスタからのデータフローが再構築されることにより、制御構造を再構築するステップと、上記データフロー再構築手段において、データパス部のレジスタからのデータフローを、制御構造の各状態で動作する回路で構成されるように再構築するステップと、上記制御構造とデータフローの併合手段において制御構造の各状態に、それぞれの再構築されたデータフローをマッピングし、ビヘイビアレベルの中間語を出力するステップと、上記目的コード生成手段において、ビヘイビアレベルの中間語を、計算機上で実行可能なプログラム言語に変換するステップとを有している。
【０００６】
即ち、この特許文献１の発明は、従来からあるＲＴＬ記述を計算機上で実行可能なプログラム言語に変換するものであり、この発明ではあくまでも計算機上で実行可能なように最適化するものである。この発明において開示されている変換は、高位合成を行う目的を持たないために、そのままでは高位合成によってＲＴＬ記述に変換することはできないばかりか高位合成に不向きである。また、この特許文献１には、データパス上の冗長なＦＦを削除する記載があるが、演算を含んだ複数サイクルに跨がったデータパスのステート除去を行って最適化するものではない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２１８４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記のように、従来においては、既存のＲＴＬ記述に対し適当な変更を行った最適化したＲＴＬ記述を得るものはなく、既存のＲＴＬ記述を時代や世の中に合わせて変更したいという要求に応えることはできなかった。
【０００９】
本発明は、上記のような回路設計の現状に鑑みなされたもので、その目的は、既存のＲＴＬ記述を時代や世の中に合わせて適宜変更し、最適なＲＴＬ記述を得ることが可能なＲＴＬ最適化システム及びＲＴＬ最適化プログラム得ることである。
【課題を解決するための手段】
【００１０】
本発明に係るＲＴＬ最適化システムは、設計対象回路の原ＲＴＬ記述を投入すると、このＲＴＬ記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段と、コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段と、前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段と、前記ビヘイビア記述に基づき高位合成を行って最適化されたＲＴＬ記述を得る高位合成手段とを具備することを特徴とする。
【００１１】
本発明に係るＲＴＬ最適化システムでは、前記ステート解析・除去手段は、各ステートにおける動作種別を、リセットステート、入力ステート、出力ステート、演算ステートに分類することを特徴とする。
【００１２】
本発明に係るＲＴＬ最適化システムでは、前記ステート解析・除去手段は、各ステートにおける動作種別に、メモリアクセスのメモリ入力と、メモリアクセスのメモリ出力を加えて解析を行うことを特徴とする。
【００１３】
本発明に係るＲＴＬ最適化システムでは、前記ステート解析・除去手段は、演算ステートの除去を行うことを特徴とする。
【００１４】
本発明に係るＲＴＬ最適化システムでは、前記高位合成手段は、設計対象回路のレイテンシと回路規模の少なくとも１つに関する制約情報により構成される制約ファイルの前記制約情報に基づき高位合成を行うことを特徴とする。
【００１５】
本発明に係るＲＴＬ最適化システムでは、前記高位合成手段は、設計対象回路内に設けられるロジックセルの遅延量及び／または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部の前記テクノロジ情報に基づき高位合成を行うことを特徴とする。
【００１６】
本発明に係るＲＴＬ最適化システムでは、前記高位合成手段により合成されたＲＴＬ記述と原ＲＴＬ記述とに関して、少なくとも資源使用量とレイテンシを比較した比較結果情報を生成出力する比較結果情報出力手段を具備したことを特徴とする。
【００１７】
本発明に係るＲＴＬ最適化プログラムは、コンピュータを、設計対象回路の原ＲＴＬ記述を投入すると、このＲＴＬ記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段、コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段、前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段、前記ビヘイビア記述に基づき高位合成を行って最適化されたＲＴＬ記述を得る高位合成手段として機能させることを特徴とする。
【００１８】
本発明に係るＲＴＬ最適化プログラムでは、コンピュータを、前記ステート解析・除去手段として、各ステートにおける動作種別を、リセットステート、入力ステート、出力ステート、演算ステートに分類するように機能させることを特徴とする。
【００１９】
本発明に係るＲＴＬ最適化プログラムでは、コンピュータを、前記ステート解析・除去手段として、各ステートにおける動作種別に、メモリアクセスのメモリ入力と、メモリアクセスのメモリ出力を加えて解析を行うように機能させることを特徴とする。
【００２０】
本発明に係るＲＴＬ最適化プログラムでは、コンピュータを、前記ステート解析・除去手段として、演算ステートの除去を行わせることを特徴とする。
【００２１】
本発明に係るＲＴＬ最適化プログラムでは、コンピュータを、前記高位合成手段として、設計対象回路のレイテンシと回路規模の少なくとも１つに関する制約情報により構成される制約ファイルの前記制約情報に基づき高位合成を行わせることを特徴とする。
【００２２】
本発明に係るＲＴＬ最適化プログラムでは、コンピュータを、前記高位合成手段として、設計対象回路内に設けられるロジックセルの遅延量及び／または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部の前記テクノロジ情報に基づき高位合成を行わせることを特徴とする。
【００２３】
本発明に係るＲＴＬ最適化プログラムでは、コンピュータを、前記高位合成手段により合成されたＲＴＬ記述と原ＲＴＬ記述とに関して、少なくとも資源使用量とレイテンシを比較した比較結果情報を生成出力する比較結果情報出力手段として機能させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、設計対象回路の原ＲＴＬ記述を投入すると、このＲＴＬ記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段、コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段、前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段、前記ビヘイビア記述に基づき高位合成を行って最適化されたＲＴＬ記述を得る高位合成手段を備えるので、ステート除去により、既存のＲＴＬ記述を時代や世の中に合わせて適宜変更し、最適なＲＴＬ記述を得ることが可能である。
【図面の簡単な説明】
【００２５】
【図１】本発明に係るＲＴＬ最適化システムの実施形態の構成図。
【図２】本発明に係るＲＴＬ最適化システムの実施形態の動作を示すフローチャート。
【図３】本発明に係るＲＴＬ最適化システムの実施形態に入力するＲＴＬ記述の一具体例を示す図。
【図４】図３のＲＴＬ記述のコントロールデータフロー解析であるコントロールデータフロー情報を示す図。
【図５】本発明に係るＲＴＬ最適化システムの実施形態のステート解析・除去のステップにおいて得られる解析結果情報の一例を示す図。
【図６】本発明に係るＲＴＬ最適化システムの実施形態において、ステートを除去した改定コントロールデータフロー情報を示す図。
【図７】図６に示した改定コントロールデータフロー情報に基づき生成した高位合成可能なビヘイビア記述を示す図。
【図８】本発明に係るＲＴＬ最適化システムの実施形態によりレイテンシ優先の制約を与えて、高位合成を行って得られるＲＴＬ記述を示す図。
【図９】図８に示すＲＴＬ記述をコントロールデータフロー解析して得たコントロールデータフロー情報を示す図。
【図１０】本発明に係るＲＴＬ最適化システムの実施形態により回路シェアリング優先の制約を与えて、高位合成を行って得られるＲＴＬ記述を示す図。
【図１１】図１０に示すＲＴＬ記述をコントロールデータフロー解析して得たコントロールデータフロー情報を示す図。
【図１２】入力された原ＲＴＬ記述と、高位合成を行って得られるＲＴＬ記述との比較結果情報の出力例を示す図。
【発明を実施するための形態】
【００２６】
以下本発明に係るＲＴＬ最適化システム及びＲＴＬ最適化プログラムの実施形態を説明する。本実施形態により得られるＲＴＬ記述では、ＦＦ数、処理レイテンシは固定であるが、高位合成可能なビヘイビア記述に変換する際に同等の機能を保持したまま（機能等価で）固定サイクル処理を制約設定可能なサイクル処理を必要としないフリーサイクル処理に変更する。これにより、高位合成で動作周波数の最適化、レイテンシ最適化、回路規模最適化を行うことが可能となる。
【００２７】
本発明の実施形態では、バスサイクルアキュレートでの動作が一致することを機能等価と定義する。例えば、本実施形態のシステムに入力するＲＴＬ記述に対して出力された（生成された）ＲＴＬ記述の処理サイクルが変化したとしても、出力するデータの一致が確保されていれば、入力ＲＴＬと出力ＲＴＬが等価であるとする。
【００２８】
以下添付図面を参照して実施形態を説明する。各図において、同一構成要素には同一の符号を付して重複する説明を省略する。図１に、本発明に係るＲＴＬ最適化システムの実施形態の構成図を示す。このＲＴＬ最適化システムは、コントロールデータフロー解析手段１１、ステート解析・除去手段１２、ビヘイビア記述生成手段１３、高位合成手段１４及び比較結果情報出力手段１５を有する。
【００２９】
コントロールデータフロー解析手段１１は、設計対象回路の原ＲＴＬ記述を投入すると、このＲＴＬ記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するものである。生成されたコントロールデータフロー情報は、ファイル記憶部２１へ記憶される。
【００３０】
ステート解析・除去手段１２は、コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、上記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するものである。改定コントロールデータフロー情報は、ファイル記憶部２２へ記憶される。
【００３１】
ビヘイビア記述生成手段１３は、上記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するものである。生成されたビヘイビア記述は、高位合成手段１４は、上記ビヘイビア記述に基づき高位合成を行って最適化されたＲＴＬ記述（最適化ＲＴＬ記述）を得るものである。この高位合成手段１４は、設計対象回路の回路規模の少なくとも１つに関する制約情報（プログラムを含む）により構成される制約ファイル３１の上記制約情報に基づき高位合成を行うものである。制約ファイル３１は、ファイル記憶部に記憶されている。上記高位合成手段１４により高位合成された結果である最適化ＲＴＬ記述は、この実施形態ではファイル記憶部２４へ出力される。勿論、出力の形態は、これに限定されず、ディスプレイに可視表示しても良く、また、プリンタ等で出力するようにしても良い。
【００３２】
制約ファイル３１の制約情報は、高位合成をする際に必ず必要になる情報である。制約ファイル３１の制約情報を変更することで、レイテンシ優先の最適化ＲＴＬ記述を得るようにすることができ、また、回路規模最小を優先にした最適化ＲＴＬ記述を得るようにすることもできる。この制約ファイル３１の制約情報として、予めレイテンシ優先の制約情報と回路規模優先の制約情報のいずれかを制約ファイル３１に用意しておくことで、それぞれに対応した最適化ＲＴＬ記述を生成することが可能である。なお、レイテンシと回路規模は概ねトレードオフの関係にある。制約ファイル３１の制約情報を調整することで、レイテンシ優先と回路規模優先の中間に位置するレイテンシと回路規模を有するように最適化ＲＴＬ記述を生成するように制御を行うことも可能である。
【００３３】
また、高位合成手段１４は、設計対象回路内に設けられるロジックセルの遅延量及び／または回路面積に関するテクノロジ情報（プログラム部品）を少なくとも含むテクノロジライブラリ記憶部３２の上記テクノロジ情報に基づき高位合成を行う。
【００３４】
高位合成用のテクノロジライブラリ記憶部３２には、ロジックセルの遅延量や回路面積などのテクノロジ情報（プログラム部品）が記載されている。高位合成用のテクノロジライブラリ記憶部３２のテクノロジ情報は、論理合成用のテクノロジライブラリ（プログラム部品）の内容とほぼ同じであり、違いはファイルフォーマットが異なる程度である。このテクノロジライブラリ記憶部３２のテクノロジ情報は、高位合成ツール（高位合成手段１４）で必ず必要なものである。高位合成ツールは、ビヘイビア記述を最適化ＲＴＬ記述に変換する際に、テクノロジライブラリ記憶部３２に登録されているロジックセル（ＡＮＤやＯＲ回路）の遅延量や回路面積などにより構成されるテクノロジ情報を参照して、ターゲットとするプロセスに合わせてスケジューリングを行って最適化ＲＴＬ記述を生成し出力する。
【００３５】
本実施形態においては比較結果情報出力手段１５が備えられており、この比較結果情報出力手段１５は、上記高位合成手段により合成された最適化ＲＴＬ記述と原ＲＴＬ記述とに関して、少くとも資源使用量とレイテンシを比較した比較結果情報を生成出力するものである。比較結果情報はファイル記憶部２５に出力され保持される。出力の形態は、これに限定されず、ディスプレイに可視表示しても良く、また、プリンタ等で出力するようにしても良い。
【００３６】
上記のシステムにおける各手段は、コンピュータのＣＰＵが本実施形態のＲＴＬ最適化プログラムを実行することにより実現され、図２のフローチャートに示すように動作を行うので、このフローチャートに沿って動作を説明する。設計対象回路の原ＲＴＬ記述１０を投入する（Ｓ１１）と、この原ＲＴＬ記述１０に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成する（Ｓ１２）。
【００３７】
図３に、原ＲＴＬ記述１０の一具体例を示す。この図３の原ＲＴＬ記述１０のコントロールデータフロー解析であるコントロールデータフロー情報を図４に示す。このコントロールデータフロー情報は、元のＲＴＬ記述の機能を再現できるだけの情報を有するものである。具体的には、モジュール名、ＦＳＭ（Finite State Machine（有限ステートマシン））の構成、入出力ポートの構成、ＦＦ（フリップフロップ）の構成、入力から出力までの演算およびＦＦの構成である。図４の例では、目で見て判り易く示しているが、実際の情報はＸＭＬやバイナリ形式を用いる。この実施形態では、生成したコントロールデータフロー情報は、ファイル記憶部２１へ記憶される。
【００３８】
次に、生成したコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、上記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成する（Ｓ１３）。
【００３９】
このステート解析・除去のステップでは、図５の表に示すようにステート毎に、リセット動作を行うリセットステート、入力動作を行う入力ステート、出力動作を行う出力ステート、演算動作を行う演算ステートであるか否かを確認する情報を得る。図５では、リセットステート、入力ステート、出力ステート、演算ステートについて、「実行」を○印で示している。本実施形態では、演算のみで構成された演算ステートをステート除去候補として選択し、この演算のみで構成された演算ステートを除去する。ステートを除去した改定コントロールデータフロー情報を図６に示す。この実施形態では、改定コントロールデータフロー情報は、ファイル記憶部２２へ記憶される。
【００４０】
なお、本実施形態では挙げていないが、設計対象回路の原ＲＴＬ記述１０によっては、メモリアクセスの“メモリ入力”やメモリアクセスの“メモリ出力”をステート解析による解析結果として出力する場合もある。また、ステート解析による解析結果として“演算＋出力”というステートが得られるケースもあるが、この場合は、ステート除去の対象としないものとする。本実施形態において、ステート除去が可能なステートは演算のみを含むステートとする。
【００４１】
次に、上記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成する（Ｓ１４）。図６に示した改定コントロールデータフロー情報に基づき生成した高位合成可能なビヘイビア記述を、図７に示す。
【００４２】
本実施形態では、ＳｙｓｔｅｍＣ記述に変換しているが、Ｃ、Ｃ＋＋などによるビヘイビア記述を用いても良い。ＳｙｓｔｅｍＣ記述のＳＣ＿ＭＯＤＵＬＥがモジュール名を示し、ｓｃ＿ｉｎ＜＞，ｓｃ＿ｏｕｔがモジュールの入出力信号を示す。コントロールデータフローは、１つのＣＴＨＲＥＡＤ関数ｔｈｒｅａｄに変換される。このとき、図６に示すステートＳ０、Ｓ１、Ｓ４はＳｙｓｔｅｍＣ記述上でｗａｉｔ（）に変換される。各ステートのデータフローは各ステートを示すｗａｉｔ（）を境界として配置される。
【００４３】
次に、上記ビヘイビア記述に基づき高位合成を行って最適化されたＲＴＬ記述を得る（Ｓ１５）。このとき、設計対象回路のレイテンシと回路規模の少なくとも１つに関する制約情報が記憶された制約ファイル３１の上記制約情報に基づき高位合成を行う。また、設計対象回路内に設けられるロジックセルの遅延量及び／または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部３２の上記テクノロジ情報に基づき高位合成を行う。
【００４４】
制約ファイル３１の上記制約情報により、レイテンシ優先の制約を与えた場合には図８に示す最適化ＲＴＬ記述４０が得られる。また、図９は、図８に示す最適化ＲＴＬ記述４０をコントロールデータフロー解析して得たコントロールデータフロー情報を示す。コントロールデータフロー情報は、コントロールデータフロー解析手段１１を用いて生成するものとする。
【００４５】
制約ファイル３１の上記制約情報により、回路シェアリング優先の制約を与えた場合には図１０に示す最適化ＲＴＬ記述５０が得られる。また、図１１は、図１０に示す最適化ＲＴＬ記述５０をコントロールデータフロー解析して得たコントロールデータフロー情報を示す。コントロールデータフロー情報は、コントロールデータフロー解析手段１１を用いて生成するものとする。
【００４６】
本実施例では、ステップＳ１５に続いて、上記高位合成された最適化ＲＴＬ記述４０、５０と原ＲＴＬ記述１０とに関して、資源使用量とレイテンシを比較した比較結果情報を生成出力する（Ｓ１６）。ここでは、最適化ＲＴＬ記述４０、５０と原ＲＴＬ記述１０とに関する比較結果情報を生成出力しているが、高位合成される最適化ＲＴＬ記述のセット数（ここでは、最適化ＲＴＬ記述４０、５０の２セット）に応じて出力される比較結果情報が変更される。つまり、少なくとも高位合成された１セットの最適化ＲＴＬ記述と原ＲＴＬ記述との比較結果情報が出力される。また、資源使用量とレイテンシとは、一例であり、その他の情報を出力するようにしても良い。即ち、比較結果情報の種類は、ユーザが適宜設定することができる。
【００４７】
図１２に、最適化ＲＴＬ記述４０、５０と原ＲＴＬ記述１０とに関する比較結果情報の出力例を示す。入力された原ＲＴＬ記述１０に対して出力された最適化ＲＴＬ記述４０は、処理レイテンシが２サイクル縮小し、ＦＦ数が４８個削減されていることが判る。また、出力された最適化ＲＴＬ記述５０は、原ＲＴＬ記述１０と比較して処理が１サイクル多くかかるが１ステートあたりの乗算数が１個となり乗算器のリソースを削減した回路構成となっていることが判る。
【００４８】
以上のように、本発明の実施形態によれば、最適化ＲＴＬ記述の自動生成が可能であり、動作周波数の最適化が可能であり、処理サイクル（レイテンシ）の最適化が可能であり、スループットの最適化が可能であり、回路規模の最適化が可能であり、設計対象回路がＦＰＧＡ（Field Programmable Gate Array）の場合、ＤＳＰ（ディジタルシグナルプロセッサ）リソース使用率の最適化が可能である。
【００４９】
更に、上記のような最適化ＲＴＬ記述の生成が可能となるため、例えば低速かつ小規模なデバイスに特化したＲＴＬ記述を高速かつ大規模なデバイスのＲＴＬ記述に調整することが可能である。また、逆の調整、即ち、高速かつ大規模なデバイスのＲＴＬ記述を低速かつ小規模なデバイスに特化したＲＴＬ記述へ変更することも可能である。また、本実施形態を利用することで、設計を行ったものの、これまで使われなかった設計資産（設計対象回路の原ＲＴＬ記述）や古くなってしまった設計資産などを再利用することが可能となる。入力（投入）する原ＲＴＬ記述は、既存のものに限定されず、新たに作成したものであっても良いことは勿論である。
【００５０】
上記の実施形態においては、ビヘイビア記述を高位合成してＲＴＬ記述を出力する際に与える必要がある制約ファイル３１の制約情報として、主にレイテンシと回路規模について説明した。ビヘイビア記述を高位合成してＲＴＬ記述を出力する際に与える必要がある情報（プログラムを含む）としては、上記以外にターゲット周波数が知られている。このターゲット周波数の説明が不十分であるので、ここで説明する。ターゲット周波数とはいかなるものかと言えば、上記の通り、ビヘイビア記述を高位合成してＲＴＬ記述を出力する際に与える必要がある。ターゲット周波数は、高位合成のスケジューリングの段階で各演算器（組み合わせ回路）をＦＦ間にどの程度詰め込むことができるかに影響する。例えば、ターゲット周波数が高いとＦＦ間に詰め込める演算器は少なくなり、逆に周波数が低いとＦＦ間に詰め込める演算器は多くなる。演算器の遅延情報はターゲットライブラリから取得する。
【００５１】
具体的には、周波数が例えば１００ＭＨｚ（１０ｎｓ）の設定で、遅延が４ｎｓの加算を２回計算させる場合には、４ｎｓ＋４ｎｓは８ｎｓで１０ｎｓ以内に収まっているため、ＦＦを挟まずに加算することができる。これに対し、周波数を２００ＭＨｚ（５ｎｓ）と設定した場合には、遅延４ｎｓの加算を２回計算させるには加算と加算の間にＦＦを挟む必要がある。
【００５２】
また、ターゲット周波数によりどのような最適化が行われるのかと言えば、次の通りである。既存のＲＴＬでは、ターゲットとなるプロセスや周波数ありきで設計されている場合が多く、例えば２００ＭＨｚで設計されたＲＴＬを４００ＭＨｚのターゲットに持っていきたい場合は、セットアップタイム・ホールドタイム違反を起こしタイミング収束しない。逆に１００ＭＨｚのターゲットとした場合には、２００ＭＨｚに最適化されたＲＴＬは、タイミング収束するが、ＦＦが無駄に挿入されている状態になる。従って、既存ＲＴＬを一度フリースケジューリングであるビヘイビア記述にしてから、再度ターゲット周波数を与えることでタイミングと回路規模（ＦＦ数）の最適なＲＴＬを得ることができる。
【００５３】
更に、レイテンシや回路規模とどのような関係になるのかと言えば、次の通りである。ターゲット周波数の制約のもと、レイテンシや回路規模に関する制約を与えることで、その制約に収まるように回路の共有化（リソースシェアリング）を行うことができる。もしレイテンシを厳しくすれば、回路を並列化してできるだけ少ないレイテンシで済むような構成とすることができる。ただし回路を並列化することで回路規模は大きくなる。逆にレイテンシは気にせず回路共有を優先にすれば、レイテンシは長くなるが回路規模は小さくなるような合成が可能である。
【００５４】
以上のように、設計対象回路のターゲット周波数は、ビヘイビア記述を高位合成してＲＴＬ記述を出力する際に与える必要がある情報（プログラムを含む）ではあるが、設計対象回路のレイテンシと回路規模と異なり、設計者がこれを適宜変更設定することによって、例えば既存のＲＴＬ記述を最適化するために用いる情報として位置付けることはできない。
【符号の説明】
【００５５】
１０  原ＲＴＬ記述
１１  コントロールデータフロー解析手段
１２  ステート解析・除去手段
１３  ビヘイビア記述生成手段
１４  高位合成手段
１５  比較結果情報出力手段
２１  ファイル記憶部
２２  ファイル記憶部
３１  制約ファイル
３２  テクノロジライブラリ記憶部
４０  最適化ＲＴＬ記述
５０  最適化ＲＴＬ記述
【図１】
2018041301.tif 000003
【図２】
2018041301.tif 000004
【図３】
2018041301.tif 000005
【図４】
2018041301.tif 000006
【図５】
2018041301.tif 000007
【図６】
2018041301.tif 000008
【図７】
2018041301.tif 000009
【図８】
2018041301.tif 000010
【図９】
2018041301.tif 000011
【図１０】
2018041301.tif 000012
【図１１】
2018041301.tif 000013
【図１２】
2018041301.tif 000014