(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6776069
(24)【登録日】2020年10月9日
(45)【発行日】2020年10月28日
(54)【発明の名称】RTL最適化システム及びRTL最適化プログラム
(51)【国際特許分類】
G06F 30/32 20200101AFI20201019BHJP
【FI】
G06F17/50 654K
G06F17/50 654M
G06F17/50 654D
【請求項の数】14
【全頁数】14
(21)【出願番号】特願2016-175394(P2016-175394)
(22)【出願日】2016年9月8日
(65)【公開番号】特開2018-41301(P2018-41301A)
(43)【公開日】2018年3月15日
【審査請求日】2019年8月5日
(73)【特許権者】
【識別番号】391016358
【氏名又は名称】東芝情報システム株式会社
(74)【代理人】
【識別番号】100090169
【弁理士】
【氏名又は名称】松浦 孝
(74)【代理人】
【識別番号】100074147
【弁理士】
【氏名又は名称】本田 崇
(72)【発明者】
【氏名】竹花 紳吾
【審査官】
堀井 啓明
(56)【参考文献】
【文献】
特開2004−021841(JP,A)
【文献】
特開2000−242669(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F30/00−30/398
(57)【特許請求の範囲】
【請求項1】
設計対象回路の原RTL記述を投入すると、このRTL記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段と、
コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段と、
前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段と、
前記ビヘイビア記述に基づき高位合成を行って最適化されたRTL記述を得る高位合成手段と
を具備することを特徴とするRTL最適化システム。
【請求項2】
前記ステート解析・除去手段は、各ステートにおける動作種別を、リセットステート、入力ステート、出力ステート、演算ステートに分類することを特徴とする請求項1に記載のRTL最適化システム。
【請求項3】
前記ステート解析・除去手段は、各ステートにおける動作種別に、メモリアクセスのメモリ入力と、メモリアクセスのメモリ出力を加えて解析を行うことを特徴とする請求項2に記載のRTL最適化システム。
【請求項4】
前記ステート解析・除去手段は、演算ステートの除去を行うことを特徴とする請求項2または3に記載のRTL最適化システム。
【請求項5】
前記高位合成手段は、設計対象回路のレイテンシと回路規模の少なくとも1つに関する制約情報により構成される制約ファイルの前記制約情報に基づき高位合成を行うことを特徴とする請求項1乃至4のいずれか1項に記載のRTL最適化システム。
【請求項6】
前記高位合成手段は、設計対象回路内に設けられるロジックセルの遅延量及び/または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部の前記テクノロジ情報に基づき高位合成を行うことを特徴とする請求項1乃至5のいずれか1項に記載のRTL最適化システム。
【請求項7】
前記高位合成手段により合成されたRTL記述と原RTL記述とに関して、少なくとも資源使用量とレイテンシを比較した比較結果情報を生成出力する比較結果情報出力手段を具備したことを特徴とする請求項1乃至6のいずれか1項に記載のRTL最適化システム。
【請求項8】
コンピュータを、
設計対象回路の原RTL記述を投入すると、このRTL記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段、
コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段、
前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段、
前記ビヘイビア記述に基づき高位合成を行って最適化されたRTL記述を得る高位合成手段
として機能させることを特徴とするRTL最適化プログラム。
【請求項9】
コンピュータを、前記ステート解析・除去手段として、各ステートにおける動作種別を、リセットステート、入力ステート、出力ステート、演算ステートに分類するように機能させることを特徴とする請求項8に記載のRTL最適化プログラム。
【請求項10】
コンピュータを、前記ステート解析・除去手段として、各ステートにおける動作種別に、メモリアクセスのメモリ入力と、メモリアクセスのメモリ出力を加えて解析を行うように機能させることを特徴とする請求項9に記載のRTL最適化プログラム。
【請求項11】
コンピュータを、前記ステート解析・除去手段として、演算ステートの除去を行わせることを特徴とする請求項9または10に記載のRTL最適化プログラム。
【請求項12】
コンピュータを、前記高位合成手段として、設計対象回路のレイテンシと回路規模の少なくとも1つに関する制約情報により構成される制約ファイルの前記制約情報に基づき高位合成を行わせることを特徴とする請求項8乃至11のいずれか1項に記載のRTL最適化プログラム。
【請求項13】
コンピュータを、前記高位合成手段として、設計対象回路内に設けられるロジックセルの遅延量及び/または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部の前記テクノロジ情報に基づき高位合成を行わせることを特徴とする請求項8乃至12のいずれか1項に記載のRTL最適化プログラム。
【請求項14】
コンピュータを、前記高位合成手段により合成されたRTL記述と原RTL記述とに関して、少なくとも資源使用量とレイテンシを比較した比較結果情報を生成出力する比較結果情報出力手段として機能させることを特徴とする請求項8乃至13のいずれか1項に記載のRTL最適化プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、既存のRTL記述を最適化することが可能なRTL最適化システム及びRTL最適化プログラムに関するものである。
【背景技術】
【0002】
従来、RTL最適化は手修正により行われている。しかしながら、手修正によるRTL最適化は、多くの時間を要する上に修正による人為ミスが起り易く、そのため手戻りが発生しやすいという問題がある。
【0003】
また、論理合成レベルでのRTL最適化も行われている。しかしながら、従来の論理合成レベルでのRTL最適化は、FF(Flip−Flop)間ロジックの最適化、FFを跨いだリタイミングによる最適化といった手法である。しかしながら、論理合成レベルでのRTL最適化は、処理レイテンシの変更を行う最適化までは踏み込むものではない。また、動作周波数が大きく未達の場合には、論理合成レベルでの最適化では不十分であり、場合によっては設計見直しの可能性が生じるという問題があった。
【0004】
他方、RTL記述から、例えばSystemCへの変換は従来から存在する。具体例として、特許文献1には、状態レジスタと組み合わせ回路とを備えた制御部と、この制御部からの信号により制御されるレジスタと組み合わせ回路とを備えたデータパス部とを用いて、ハードウェア動作記述を、構成要素解析手段、データフロー解析手段、制御構造再構築手段、データフロー再構築手段、制御構造とデータフローの併合手段及び目的コード生成手段として機能するコンピュータを使用して計算機上で実行可能なプログラム言語に変換する方法が開示されている。
【0005】
この方法では、上記構成要素解析手段において、上記ハードウェア動作記述の構成要素解析をするステップと、上記データフロー解析手段において、上記状態レジスタからのデータフローと、前記データパス部のレジスタからのデータフローを生成するデータフロー解析ステップと、上記制御構造再構築手段において、生成された状態レジスタからのデータフローが再構築されることにより、制御構造を再構築するステップと、上記データフロー再構築手段において、データパス部のレジスタからのデータフローを、制御構造の各状態で動作する回路で構成されるように再構築するステップと、上記制御構造とデータフローの併合手段において制御構造の各状態に、それぞれの再構築されたデータフローをマッピングし、ビヘイビアレベルの中間語を出力するステップと、上記目的コード生成手段において、ビヘイビアレベルの中間語を、計算機上で実行可能なプログラム言語に変換するステップとを有している。
【0006】
即ち、この特許文献1の発明は、従来からあるRTL記述を計算機上で実行可能なプログラム言語に変換するものであり、この発明ではあくまでも計算機上で実行可能なように最適化するものである。この発明において開示されている変換は、高位合成を行う目的を持たないために、そのままでは高位合成によってRTL記述に変換することはできないばかりか高位合成に不向きである。また、この特許文献1には、データパス上の冗長なFFを削除する記載があるが、演算を含んだ複数サイクルに跨がったデータパスのステート除去を行って最適化するものではない。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2004−21841号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上記のように、従来においては、既存のRTL記述に対し適当な変更を行った最適化したRTL記述を得るものはなく、既存のRTL記述を時代や世の中に合わせて変更したいという要求に応えることはできなかった。
【0009】
本発明は、上記のような回路設計の現状に鑑みなされたもので、その目的は、既存のRTL記述を時代や世の中に合わせて適宜変更し、最適なRTL記述を得ることが可能なRTL最適化システム及びRTL最適化プログラム得ることである。
【課題を解決するための手段】
【0010】
本発明に係るRTL最適化システムは、設計対象回路の原RTL記述を投入すると、このRTL記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段と、コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段と、前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段と、前記ビヘイビア記述に基づき高位合成を行って最適化されたRTL記述を得る高位合成手段とを具備することを特徴とする。
【0011】
本発明に係るRTL最適化システムでは、前記ステート解析・除去手段は、各ステートにおける動作種別を、リセットステート、入力ステート、出力ステート、演算ステートに分類することを特徴とする。
【0012】
本発明に係るRTL最適化システムでは、前記ステート解析・除去手段は、各ステートにおける動作種別に、メモリアクセスのメモリ入力と、メモリアクセスのメモリ出力を加えて解析を行うことを特徴とする。
【0013】
本発明に係るRTL最適化システムでは、前記ステート解析・除去手段は、演算ステートの除去を行うことを特徴とする。
【0014】
本発明に係るRTL最適化システムでは、前記高位合成手段は、設計対象回路のレイテンシと回路規模の少なくとも1つに関する制約情報により構成される制約ファイルの前記制約情報に基づき高位合成を行うことを特徴とする。
【0015】
本発明に係るRTL最適化システムでは、前記高位合成手段は、設計対象回路内に設けられるロジックセルの遅延量及び/または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部の前記テクノロジ情報に基づき高位合成を行うことを特徴とする。
【0016】
本発明に係るRTL最適化システムでは、前記高位合成手段により合成されたRTL記述と原RTL記述とに関して、少なくとも資源使用量とレイテンシを比較した比較結果情報を生成出力する比較結果情報出力手段を具備したことを特徴とする。
【0017】
本発明に係るRTL最適化プログラムは、コンピュータを、設計対象回路の原RTL記述を投入すると、このRTL記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段、コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段、前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段、前記ビヘイビア記述に基づき高位合成を行って最適化されたRTL記述を得る高位合成手段として機能させることを特徴とする。
【0018】
本発明に係るRTL最適化プログラムでは、コンピュータを、前記ステート解析・除去手段として、各ステートにおける動作種別を、リセットステート、入力ステート、出力ステート、演算ステートに分類するように機能させることを特徴とする。
【0019】
本発明に係るRTL最適化プログラムでは、コンピュータを、前記ステート解析・除去手段として、各ステートにおける動作種別に、メモリアクセスのメモリ入力と、メモリアクセスのメモリ出力を加えて解析を行うように機能させることを特徴とする。
【0020】
本発明に係るRTL最適化プログラムでは、コンピュータを、前記ステート解析・除去手段として、演算ステートの除去を行わせることを特徴とする。
【0021】
本発明に係るRTL最適化プログラムでは、コンピュータを、前記高位合成手段として、設計対象回路のレイテンシと回路規模の少なくとも1つに関する制約情報により構成される制約ファイルの前記制約情報に基づき高位合成を行わせることを特徴とする。
【0022】
本発明に係るRTL最適化プログラムでは、コンピュータを、前記高位合成手段として、設計対象回路内に設けられるロジックセルの遅延量及び/または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部の前記テクノロジ情報に基づき高位合成を行わせることを特徴とする。
【0023】
本発明に係るRTL最適化プログラムでは、コンピュータを、前記高位合成手段により合成されたRTL記述と原RTL記述とに関して、少なくとも資源使用量とレイテンシを比較した比較結果情報を生成出力する比較結果情報出力手段として機能させることを特徴とする。
【発明の効果】
【0024】
本発明によれば、設計対象回路の原RTL記述を投入すると、このRTL記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するコントロールデータフロー解析手段、コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、前記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するステート解析・除去手段、前記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するビヘイビア記述生成手段、前記ビヘイビア記述に基づき高位合成を行って最適化されたRTL記述を得る高位合成手段を備えるので、ステート除去により、既存のRTL記述を時代や世の中に合わせて適宜変更し、最適なRTL記述を得ることが可能である。
【図面の簡単な説明】
【0025】
【
図1】本発明に係るRTL最適化システムの実施形態の構成図。
【
図2】本発明に係るRTL最適化システムの実施形態の動作を示すフローチャート。
【
図3】本発明に係るRTL最適化システムの実施形態に入力するRTL記述の一具体例を示す図。
【
図4】
図3のRTL記述のコントロールデータフロー解析であるコントロールデータフロー情報を示す図。
【
図5】本発明に係るRTL最適化システムの実施形態のステート解析・除去のステップにおいて得られる解析結果情報の一例を示す図。
【
図6】本発明に係るRTL最適化システムの実施形態において、ステートを除去した改定コントロールデータフロー情報を示す図。
【
図7】
図6に示した改定コントロールデータフロー情報に基づき生成した高位合成可能なビヘイビア記述を示す図。
【
図8】本発明に係るRTL最適化システムの実施形態によりレイテンシ優先の制約を与えて、高位合成を行って得られるRTL記述を示す図。
【
図9】
図8に示すRTL記述をコントロールデータフロー解析して得たコントロールデータフロー情報を示す図。
【
図10】本発明に係るRTL最適化システムの実施形態により回路シェアリング優先の制約を与えて、高位合成を行って得られるRTL記述を示す図。
【
図11】
図10に示すRTL記述をコントロールデータフロー解析して得たコントロールデータフロー情報を示す図。
【
図12】入力された原RTL記述と、高位合成を行って得られるRTL記述との比較結果情報の出力例を示す図。
【発明を実施するための形態】
【0026】
以下本発明に係るRTL最適化システム及びRTL最適化プログラムの実施形態を説明する。本実施形態により得られるRTL記述では、FF数、処理レイテンシは固定であるが、高位合成可能なビヘイビア記述に変換する際に同等の機能を保持したまま(機能等価で)固定サイクル処理を制約設定可能なサイクル処理を必要としないフリーサイクル処理に変更する。これにより、高位合成で動作周波数の最適化、レイテンシ最適化、回路規模最適化を行うことが可能となる。
【0027】
本発明の実施形態では、バスサイクルアキュレートでの動作が一致することを機能等価と定義する。例えば、本実施形態のシステムに入力するRTL記述に対して出力された(生成された)RTL記述の処理サイクルが変化したとしても、出力するデータの一致が確保されていれば、入力RTLと出力RTLが等価であるとする。
【0028】
以下添付図面を参照して実施形態を説明する。各図において、同一構成要素には同一の符号を付して重複する説明を省略する。
図1に、本発明に係るRTL最適化システムの実施形態の構成図を示す。このRTL最適化システムは、コントロールデータフロー解析手段11、ステート解析・除去手段12、ビヘイビア記述生成手段13、高位合成手段14及び比較結果情報出力手段15を有する。
【0029】
コントロールデータフロー解析手段11は、設計対象回路の原RTL記述を投入すると、このRTL記述に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成するものである。生成されたコントロールデータフロー情報は、ファイル記憶部21へ記憶される。
【0030】
ステート解析・除去手段12は、コントロールデータフロー解析によって生成されたコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、上記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成するものである。改定コントロールデータフロー情報は、ファイル記憶部22へ記憶される。
【0031】
ビヘイビア記述生成手段13は、上記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成するものである。生成されたビヘイビア記述は、高位合成手段14は、上記ビヘイビア記述に基づき高位合成を行って最適化されたRTL記述(最適化RTL記述)を得るものである。この高位合成手段14は、設計対象回路の回路規模の少なくとも1つに関する制約情報(プログラムを含む)により構成される制約ファイル31の上記制約情報に基づき高位合成を行うものである。制約ファイル31は、ファイル記憶部に記憶されている。上記高位合成手段14により高位合成された結果である最適化RTL記述は、この実施形態ではファイル記憶部24へ出力される。勿論、出力の形態は、これに限定されず、ディスプレイに可視表示しても良く、また、プリンタ等で出力するようにしても良い。
【0032】
制約ファイル31の制約情報は、高位合成をする際に必ず必要になる情報である。制約ファイル31の制約情報を変更することで、レイテンシ優先の最適化RTL記述を得るようにすることができ、また、回路規模最小を優先にした最適化RTL記述を得るようにすることもできる。この制約ファイル31の制約情報として、予めレイテンシ優先の制約情報と回路規模優先の制約情報のいずれかを制約ファイル31に用意しておくことで、それぞれに対応した最適化RTL記述を生成することが可能である。なお、レイテンシと回路規模は概ねトレードオフの関係にある。制約ファイル31の制約情報を調整することで、レイテンシ優先と回路規模優先の中間に位置するレイテンシと回路規模を有するように最適化RTL記述を生成するように制御を行うことも可能である。
【0033】
また、高位合成手段14は、設計対象回路内に設けられるロジックセルの遅延量及び/または回路面積に関するテクノロジ情報(プログラム部品)を少なくとも含むテクノロジライブラリ記憶部32の上記テクノロジ情報に基づき高位合成を行う。
【0034】
高位合成用のテクノロジライブラリ記憶部32には、ロジックセルの遅延量や回路面積などのテクノロジ情報(プログラム部品)が記載されている。高位合成用のテクノロジライブラリ記憶部32のテクノロジ情報は、論理合成用のテクノロジライブラリ(プログラム部品)の内容とほぼ同じであり、違いはファイルフォーマットが異なる程度である。このテクノロジライブラリ記憶部32のテクノロジ情報は、高位合成ツール(高位合成手段14)で必ず必要なものである。高位合成ツールは、ビヘイビア記述を最適化RTL記述に変換する際に、テクノロジライブラリ記憶部32に登録されているロジックセル(ANDやOR回路)の遅延量や回路面積などにより構成されるテクノロジ情報を参照して、ターゲットとするプロセスに合わせてスケジューリングを行って最適化RTL記述を生成し出力する。
【0035】
本実施形態においては比較結果情報出力手段15が備えられており、この比較結果情報出力手段15は、上記高位合成手段により合成された最適化RTL記述と原RTL記述とに関して、少くとも資源使用量とレイテンシを比較した比較結果情報を生成出力するものである。比較結果情報はファイル記憶部25に出力され保持される。出力の形態は、これに限定されず、ディスプレイに可視表示しても良く、また、プリンタ等で出力するようにしても良い。
【0036】
上記のシステムにおける各手段は、コンピュータのCPUが本実施形態のRTL最適化プログラムを実行することにより実現され、
図2のフローチャートに示すように動作を行うので、このフローチャートに沿って動作を説明する。設計対象回路の原RTL記述10を投入する(S11)と、この原RTL記述10に基づいてコントロールデータフロー解析を行い、コントロールデータフロー情報を生成する(S12)。
【0037】
図3に、原RTL記述10の一具体例を示す。この
図3の原RTL記述10のコントロールデータフロー解析であるコントロールデータフロー情報を
図4に示す。このコントロールデータフロー情報は、元のRTL記述の機能を再現できるだけの情報を有するものである。具体的には、モジュール名、FSM(Finite State Machine(有限ステートマシン))の構成、入出力ポートの構成、FF(フリップフロップ)の構成、入力から出力までの演算およびFFの構成である。
図4の例では、目で見て判り易く示しているが、実際の情報はXMLやバイナリ形式を用いる。この実施形態では、生成したコントロールデータフロー情報は、ファイル記憶部21へ記憶される。
【0038】
次に、生成したコントロールデータフロー情報に対して各ステートにおける動作種別の解析を行うことからなるステート解析を行い、上記コントロールデータフロー情報除去可能なステートの除去を行って改定コントロールデータフロー情報を生成する(S13)。
【0039】
このステート解析・除去のステップでは、
図5の表に示すようにステート毎に、リセット動作を行うリセットステート、入力動作を行う入力ステート、出力動作を行う出力ステート、演算動作を行う演算ステートであるか否かを確認する情報を得る。
図5では、リセットステート、入力ステート、出力ステート、演算ステートについて、「実行」を○印で示している。本実施形態では、演算のみで構成された演算ステートをステート除去候補として選択し、この演算のみで構成された演算ステートを除去する。ステートを除去した改定コントロールデータフロー情報を
図6に示す。この実施形態では、改定コントロールデータフロー情報は、ファイル記憶部22へ記憶される。
【0040】
なお、本実施形態では挙げていないが、設計対象回路の原RTL記述10によっては、メモリアクセスの“メモリ入力”やメモリアクセスの“メモリ出力”をステート解析による解析結果として出力する場合もある。また、ステート解析による解析結果として“演算+出力”というステートが得られるケースもあるが、この場合は、ステート除去の対象としないものとする。本実施形態において、ステート除去が可能なステートは演算のみを含むステートとする。
【0041】
次に、上記改定コントロールデータフロー情報に基づき高位合成可能なビヘイビア記述を生成する(S14)。
図6に示した改定コントロールデータフロー情報に基づき生成した高位合成可能なビヘイビア記述を、
図7に示す。
【0042】
本実施形態では、SystemC記述に変換しているが、C、C++などによるビヘイビア記述を用いても良い。SystemC記述のSC_MODULEがモジュール名を示し、sc_in<>,sc_outがモジュールの入出力信号を示す。コントロールデータフローは、1つのCTHREAD関数threadに変換される。このとき、
図6に示すステートS0、S1、S4はSystemC記述上でwait()に変換される。各ステートのデータフローは各ステートを示すwait()を境界として配置される。
【0043】
次に、上記ビヘイビア記述に基づき高位合成を行って最適化されたRTL記述を得る(S15)。このとき、設計対象回路のレイテンシと回路規模の少なくとも1つに関する制約情報が記憶された制約ファイル31の上記制約情報に基づき高位合成を行う。また、設計対象回路内に設けられるロジックセルの遅延量及び/または回路面積に関するテクノロジ情報を少なくとも含むテクノロジライブラリ記憶部32の上記テクノロジ情報に基づき高位合成を行う。
【0044】
制約ファイル31の上記制約情報により、レイテンシ優先の制約を与えた場合には
図8に示す最適化RTL記述40が得られる。また、
図9は、
図8に示す最適化RTL記述40をコントロールデータフロー解析して得たコントロールデータフロー情報を示す。コントロールデータフロー情報は、コントロールデータフロー解析手段11を用いて生成するものとする。
【0045】
制約ファイル31の上記制約情報により、回路シェアリング優先の制約を与えた場合には
図10に示す最適化RTL記述50が得られる。また、
図11は、
図10に示す最適化RTL記述50をコントロールデータフロー解析して得たコントロールデータフロー情報を示す。コントロールデータフロー情報は、コントロールデータフロー解析手段11を用いて生成するものとする。
【0046】
本実施例では、ステップS15に続いて、上記高位合成された最適化RTL記述40、50と原RTL記述10とに関して、資源使用量とレイテンシを比較した比較結果情報を生成出力する(S16)。ここでは、最適化RTL記述40、50と原RTL記述10とに関する比較結果情報を生成出力しているが、高位合成される最適化RTL記述のセット数(ここでは、最適化RTL記述40、50の2セット)に応じて出力される比較結果情報が変更される。つまり、少なくとも高位合成された1セットの最適化RTL記述と原RTL記述との比較結果情報が出力される。また、資源使用量とレイテンシとは、一例であり、その他の情報を出力するようにしても良い。即ち、比較結果情報の種類は、ユーザが適宜設定することができる。
【0047】
図12に、最適化RTL記述40、50と原RTL記述10とに関する比較結果情報の出力例を示す。入力された原RTL記述10に対して出力された最適化RTL記述40は、処理レイテンシが2サイクル縮小し、FF数が48個削減されていることが判る。また、出力された最適化RTL記述50は、原RTL記述10と比較して処理が1サイクル多くかかるが1ステートあたりの乗算数が1個となり乗算器のリソースを削減した回路構成となっていることが判る。
【0048】
以上のように、本発明の実施形態によれば、最適化RTL記述の自動生成が可能であり、動作周波数の最適化が可能であり、処理サイクル(レイテンシ)の最適化が可能であり、スループットの最適化が可能であり、回路規模の最適化が可能であり、設計対象回路がFPGA(Field Programmable Gate Array)の場合、DSP(ディジタルシグナルプロセッサ)リソース使用率の最適化が可能である。
【0049】
更に、上記のような最適化RTL記述の生成が可能となるため、例えば低速かつ小規模なデバイスに特化したRTL記述を高速かつ大規模なデバイスのRTL記述に調整することが可能である。また、逆の調整、即ち、高速かつ大規模なデバイスのRTL記述を低速かつ小規模なデバイスに特化したRTL記述へ変更することも可能である。また、本実施形態を利用することで、設計を行ったものの、これまで使われなかった設計資産(設計対象回路の原RTL記述)や古くなってしまった設計資産などを再利用することが可能となる。入力(投入)する原RTL記述は、既存のものに限定されず、新たに作成したものであっても良いことは勿論である。
【0050】
上記の実施形態においては、ビヘイビア記述を高位合成してRTL記述を出力する際に与える必要がある制約ファイル31の制約情報として、主にレイテンシと回路規模について説明した。ビヘイビア記述を高位合成してRTL記述を出力する際に与える必要がある情報(プログラムを含む)としては、上記以外にターゲット周波数が知られている。このターゲット周波数の説明が不十分であるので、ここで説明する。ターゲット周波数とはいかなるものかと言えば、上記の通り、ビヘイビア記述を高位合成してRTL記述を出力する際に与える必要がある。ターゲット周波数は、高位合成のスケジューリングの段階で各演算器(組み合わせ回路)をFF間にどの程度詰め込むことができるかに影響する。例えば、ターゲット周波数が高いとFF間に詰め込める演算器は少なくなり、逆に周波数が低いとFF間に詰め込める演算器は多くなる。演算器の遅延情報はターゲットライブラリから取得する。
【0051】
具体的には、周波数が例えば100MHz(10ns)の設定で、遅延が4nsの加算を2回計算させる場合には、4ns+4nsは8nsで10ns以内に収まっているため、FFを挟まずに加算することができる。これに対し、周波数を200MHz(5ns)と設定した場合には、遅延4nsの加算を2回計算させるには加算と加算の間にFFを挟む必要がある。
【0052】
また、ターゲット周波数によりどのような最適化が行われるのかと言えば、次の通りである。既存のRTLでは、ターゲットとなるプロセスや周波数ありきで設計されている場合が多く、例えば200MHzで設計されたRTLを400MHzのターゲットに持っていきたい場合は、セットアップタイム・ホールドタイム違反を起こしタイミング収束しない。逆に100MHzのターゲットとした場合には、200MHzに最適化されたRTLは、タイミング収束するが、FFが無駄に挿入されている状態になる。従って、既存RTLを一度フリースケジューリングであるビヘイビア記述にしてから、再度ターゲット周波数を与えることでタイミングと回路規模(FF数)の最適なRTLを得ることができる。
【0053】
更に、レイテンシや回路規模とどのような関係になるのかと言えば、次の通りである。ターゲット周波数の制約のもと、レイテンシや回路規模に関する制約を与えることで、その制約に収まるように回路の共有化(リソースシェアリング)を行うことができる。もしレイテンシを厳しくすれば、回路を並列化してできるだけ少ないレイテンシで済むような構成とすることができる。ただし回路を並列化することで回路規模は大きくなる。逆にレイテンシは気にせず回路共有を優先にすれば、レイテンシは長くなるが回路規模は小さくなるような合成が可能である。
【0054】
以上のように、設計対象回路のターゲット周波数は、ビヘイビア記述を高位合成してRTL記述を出力する際に与える必要がある情報(プログラムを含む)ではあるが、設計対象回路のレイテンシと回路規模と異なり、設計者がこれを適宜変更設定することによって、例えば既存のRTL記述を最適化するために用いる情報として位置付けることはできない。
【符号の説明】
【0055】
10 原RTL記述
11 コントロールデータフロー解析手段
12 ステート解析・除去手段
13 ビヘイビア記述生成手段
14 高位合成手段
15 比較結果情報出力手段
21 ファイル記憶部
22 ファイル記憶部
31 制約ファイル
32 テクノロジライブラリ記憶部
40 最適化RTL記述
50 最適化RTL記述