(57)【要約】【課題】動作レベル回路記述とＲＴレベル回路記述とで表される演算回路の動作合成を的確に行なう。【解決手段】ＲＴレベル回路記述から、演算回路全体に対する合成制約に関連する予め設定した合成制約関連情報を抽出し（ステップＳ２）、合成制約関連情報と演算回路全体に対する合成制約とから変換用合成制約を設定する（ステップＳ３）。このとき、ＲＴレベル回路記述と、動作レベル回路記述を変換して得られる変換ＲＴレベル回路記述とからなる演算回路全体のＲＴレベル回路記述が、合成制約を満足するように変換用合成制約を設定する。動作レベル回路記述をＲＴレベルの回路記述に変換する際には、演算回路全体に対する合成制約ではなく、合成制約とＲＴレベル回路記述から抽出した合成制約関連情報とに基づいて設定した変換用合成制約を用いて変換する（ステップＳ４）。【選択図】          図３
2011013762.tif 000002
【特許請求の範囲】
【請求項１】
１つの演算回路が動作レベル回路記述とＲＴレベル回路記述とで表される場合、
前記動作レベル回路記述を記憶する動作レベル回路記述記憶手段と、
前記ＲＴレベル回路記述を記憶するＲＴレベル回路記述記憶手段と、
前記演算回路の合成制約を記憶する合成制約記憶手段と、
前記動作レベル回路記述記憶手段に記憶されている動作レベル回路記述からＲＴレベルの変換ＲＴレベル回路記述を生成する変換手段と、
前記ＲＴレベル回路記述記憶手段に記憶されているＲＴレベル回路記述から前記演算回路に対する合成制約に関連する合成制約関連情報を抽出する合成制約関連情報抽出手段と、
前記ＲＴレベル回路記述と前記変換ＲＴレベル回路記述とからなる前記演算回路全体を表す全体ＲＴレベル回路記述が前記合成制約を満足するための変換用合成制約を、前記合成制約記憶手段に記憶されている合成制約と前記合成制約関連情報抽出手段で抽出した前記合成制約関連情報とに基づき設定する変換用合成制約設定手段と、を備え、
前記変換手段は、前記変換用合成制約を用いて前記動作レベル回路記述から前記変換ＲＴレベル回路記述を生成することを特徴とする動作合成装置。
【請求項２】
前記ＲＴレベル回路記述は、当該ＲＴレベル回路記述で表される前記演算回路の部分回路の入出力信号を信号線毎に宣言する記述を含んで記述され、
前記合成制約関連情報抽出手段は、前記入出力信号を宣言する記述を、前記部分回路の入出力端子数に関連する前記合成制約関連情報として抽出することを特徴とする請求項１記載の動作合成装置。
【請求項３】
前記ＲＴレベル回路記述は、当該ＲＴレベル回路記述で表される前記演算回路の部分回路の構成要素がデータ値を保持する機能を有するタイプであることを構成要素毎に宣言する記述を含んで記述され、
前記合成制約関連情報抽出手段は、前記構成要素のタイプを宣言する記述を、前記部分回路に含まれる、前記データ値を保持するタイプの構成要素の数に関連する前記合成制約関連情報として抽出することを特徴とする請求項１又は請求項２記載の動作合成装置。
【請求項４】
前記ＲＴレベル回路記述は、前記ＲＴレベル回路記述で表される前記演算回路の部分回路の構成要素が算術演算を行なう算術演算子を表す記述を含んで記述され、
前記合成制約関連情報抽出手段は、前記算術演算子を表す記述を、前記部分回路に含まれる演算器の数に関連する前記合成制約関連情報として抽出することを特徴とする請求項１から請求項３の何れか１項に記載の動作合成装置。
【請求項５】
１つの演算回路が動作レベル回路記述とＲＴレベル回路記述とで表される場合、
前記動作レベル回路記述、前記ＲＴレベル回路記述及び前記演算回路全体の合成制約を入力する入力処理と、
入力された前記ＲＴレベル回路記述から、前記演算回路に対する合成制約に関連する合成制約関連情報を抽出する合成制約関連情報抽出処理と、
入力された前記合成制約と前記合成制約関連情報とに基づき、入力された前記動作レベル回路記述をＲＴレベルの回路記述に変換するための変換用合成制約を設定する変換用合成制約設定処理と、
前記変換用合成制約を用いて前記動作レベル回路記述からＲＴレベルの変換ＲＴレベル回路記述を生成する変換処理と、を行い、
前記変換用合成制約設定処理は、前記ＲＴレベル回路記述と前記変換ＲＴレベル回路記述とからなる前記演算回路全体を表すＲＴレベル回路記述が前記合成制約を満足するように前記変換用合成制約を設定することを特徴とする動作合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の動作を記述した動作レベル回路記述から、ＲＴレベル回路記述を生成する動作合成装置及び動作合成方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路の設計は、レジスタやクロックによる同期等、ハードウェアに特有の概念を意識したＲＴＬ（Register transfer Level;レジスタ転送レベル）という回路記述レベルで設計を行なっている。しかしながら、半導体集積回路の集積度は年々増加してきており、設計規模の増大に設計者の設計能力が追いついていかないという状況が生じている。
【０００３】
このため、回路記述レベルをこれまでのＲＴＬから、抽象度を高めた動作レベルでの回路記述で設計する手法がある。この動作レベルでの回路記述は、レジスタやクロック等の概念をなくし、設計者が半導体集積回路で実現させたい動作を設計するもの（動作レベル回路記述）であり、この動作レベル回路記述で設計した後に、ＲＴＬ回路記述に変換する装置が動作合成装置である。
動作合成装置は、動作レベル回路記述と、半導体集積回路のリソース（レジスタ、乗算器、加減算器等の数等）の制約条件とに基づいて、ＲＴＬ回路記述に変換することになる。
【０００４】
図６は、半導体集積回路の設計工程を示すフローチャートである。
半導体集積回路を設計する場合、まず、設計者が仕様書に基づいて、半導体集積回路を動作させるための回路を記述する（ステップＳ２１）。この記述は、Ｃ言語や、Ｃ＋＋言語、ＳｙｓｔｅｍＣ言語といった言語で行なう。
この後、動作合成装置によって、クロック毎の動作まで具体化した回路記述としてＲＴＬ回路記述を生成させる（ステップＳ２２）。そして、このＲＴＬ回路記述から論理合成装置によって、半導体集積回のネットリストを出力させる（ステップＳ２３）。このネットリストを半導体集積回路に書き込むことによって、所望の演算回路を構築できることになる。
つまり、仕様書に基づいて動作レベルの回路記述を設計者が作成すると、動作合成装置及び論理合成装置に入力することで、半導体集積回路のネットリストまで自動生成することができることになる。
【０００５】
図７は、動作合成装置の合成工程の一例を示すフローチャートである。
動作合成装置は、まず前処理工程（ステップＳ３１）を行い、前処理として、動作レベル回路記述で記載された記述データの中から、後工程に不要なコードの削除や回路記述の最適化などの変形処理を行なう。
次に、スケジューリング工程（ステップＳ３２）を行い、変形処理されたデータから、どの状態でどのような演算を行なうべきかのスケジューリングを行なう。そして、スケジューリング結果から、半導体集積回路のリソース（レジスタ、乗算器、加減算器など）の制約に基づき、レジスタバインディング（ステップＳ３３）及び演算器バインディング（ステップＳ３４）を行なって、半導体集積回路で使用されるリソースが最適となるように割り当てを行なう。そして最後に後処理工程としてＲＴＬ回路記述に変換する（ステップＳ３５）。
【０００６】
以上の処理によって、動作レベルの回路記述を、ＲＴＬ回路記述に変換するようになっている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２８５３３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
動作合成装置では、前記図７に示すような手順で自動合成を行なうが、この自動合成を行なう際には、図８に示すように、動作合成装置１００は、合成制約１０１と動作レベル回路記述１０２とを入力し、動作合成部１０３において、合成制約１０１をもとに、動作レベル回路記述１０２から半導体集積回路のリソースを合成し、ＲＴＬ回路記述１０４を生成することになる。
ここで、合成制約１０１は、半導体集積回路の回路記述設計を、全て動作レベル回路記述で設計する場合には、半導体集積回路を構成するリソースに対する条件を合成制約として設定すればよい。
【０００９】
しかしながら、動作レベル回路記述のみでは半導体集積回路を設計することができない場合、例えば、レジスタやクロック、また、タイミング等を意識して回路記述を行なわなければならない回路が半導体集積回路に含まれる場合には、ＲＴＬ回路記述と動作レベル回路記述とを併用して半導体集積回路の設計を行なうことになる。
この場合、図９に示すように、動作合成装置１００では、動作レベル回路記述１１１とＲＴＬ回路記述１１２とを用いて一つの半導体集積回路の設計を行い、動作レベル回路記述１１１を動作合成部１０３においてＲＴＬ回路記述１１１ａに変換し、変換したＲＴＬ回路記述１１１ａと、設計したＲＴＬ回路記述１１２とを合わせて、最終的なＲＴＬ回路記述１１３を得ることになる。
【００１０】
このとき、動作合成装置１００では、動作レベル回路記述１１１と合成制約１０１とを用いて動作合成を行なうが、このとき用いる合成制約１０１は、半導体集積回路全体に対する合成制約である。つまり、合成制約１０１には、ＲＴＬ回路記述１１２で使用したリソースは反映されていないため、動作合成装置１００は、ＲＴＬ回路記述１１２のリソースを無視して動作レベル回路記述１１１を動作合成してＲＴＬ回路記述１１１ａに変換することになり、すなわち、半導体集積回路全体に対する合成制約を用いて、半導体集積回路の一部の回路を表す動作レベル回路記述１１１に対して動作合成を行なうことになる。
【００１１】
その結果、動作レベル回路記述１１１を変換して得たＲＴＬ回路記述１１１ａと設計したＲＴＬ回路記述１１２とからなる最終的なＲＴＬ回路記述１１３は、半導体集積回路のリソース以上の演算能力が必要となり、演算を行なうことができなくなる可能性があるという問題がある。
そこで、この発明は、上記従来の未解決の問題点に着目してなされたものであり、ＲＴＬ回路記述と動作レベル回路記述とを用いて演算回路を設計し、動作レベル回路記述を動作合成して演算回路全体を表すＲＴＬ回路記述を得る場合であっても、演算回路全体に対する合成制約を満足する、前記演算回路全体を表すＲＴＬ回路記述を得ることの可能な動作合成装置及び動作合成方法を提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の請求項１に係る動作合成装置は、１つの演算回路が動作レベル回路記述とＲＴレベル回路記述とで表される場合、前記動作レベル回路記述を記憶する動作レベル回路記述記憶手段と、前記ＲＴレベル回路記述を記憶するＲＴレベル回路記述記憶手段と、前記演算回路の合成制約を記憶する合成制約記憶手段と、前記動作レベル回路記述記憶手段に記憶されている動作レベル回路記述からＲＴレベルの変換ＲＴレベル回路記述を生成する変換手段と、前記ＲＴレベル回路記述記憶手段に記憶されているＲＴレベル回路記述から前記演算回路に対する合成制約に関連する合成制約関連情報を抽出する合成制約関連情報抽出手段と、前記ＲＴレベル回路記述と前記変換ＲＴレベル回路記述とからなる前記演算回路全体を表す全体ＲＴレベル回路記述が前記合成制約を満足するための変換用合成制約を、前記合成制約記憶手段に記憶されている合成制約と前記合成制約関連情報抽出手段で抽出した前記合成制約関連情報とに基づき設定する変換用合成制約設定手段と、を備え、前記変換手段は、前記変換用合成制約を用いて前記動作レベル回路記述から前記変換ＲＴレベル回路記述を生成することを特徴としている。
【００１３】
また、請求項２に係る動作合成装置は、前記ＲＴレベル回路記述は、当該ＲＴレベル回路記述で表される前記演算回路の部分回路の入出力信号を信号線毎に宣言する記述を含んで記述され、前記合成制約関連情報抽出手段は、前記入出力信号を宣言する記述を、前記部分回路の入出力端子数に関連する前記合成制約関連情報として抽出することを特徴としている。
【００１４】
また、請求項３に係る動作合成装置は、前記ＲＴレベル回路記述は、当該ＲＴレベル回路記述で表される前記演算回路の部分回路の構成要素がデータ値を保持する機能を有するタイプであることを構成要素毎に宣言する記述を含んで記述され、前記合成制約関連情報抽出手段は、前記構成要素のタイプを宣言する記述を、前記部分回路に含まれる、前記データ値を保持するタイプの構成要素の数に関連する前記合成制約関連情報として抽出することを特徴としている。
【００１５】
さらに、請求項４に係る動作合成装置は、前記ＲＴレベル回路記述は、前記ＲＴレベル回路記述で表される前記演算回路の部分回路の構成要素が算術演算を行なう算術演算子を表す記述を含んで記述され、前記合成制約関連情報抽出手段は、前記算術演算子を表す記述を、前記部分回路に含まれる演算器の数に関連する前記合成制約関連情報として抽出することを特徴としている。
【００１６】
また、本発明の請求項５に係る動作合成方法は、１つの演算回路が動作レベル回路記述とＲＴレベル回路記述とで表される場合、前記動作レベル回路記述、前記ＲＴレベル回路記述及び前記演算回路全体の合成制約を入力する入力処理と、入力された前記ＲＴレベル回路記述から、前記演算回路に対する合成制約に関連する合成制約関連情報を抽出する合成制約関連情報抽出処理と、入力された前記合成制約と前記合成制約関連情報とに基づき、入力された前記動作レベル回路記述をＲＴレベルの回路記述に変換するための変換用合成制約を設定する変換用合成制約設定処理と、前記変換用合成制約を用いて前記動作レベル回路記述からＲＴレベルの変換ＲＴレベル回路記述を生成する変換処理と、を行い、前記変換用合成制約設定処理は、前記ＲＴレベル回路記述と前記変換ＲＴレベル回路記述とからなる前記演算回路全体を表すＲＴレベル回路記述が前記合成制約を満足するように前記変換用合成制約を設定することを特徴としている。
【発明の効果】
【００１７】
本発明によれば、ＲＴレベル回路記述から合成制約に関連する合成制約関連情報を抽出し、これに基づき、ＲＴレベル回路記述で表される回路の構成要素を考慮した変換用合成制約を設定し、動作レベル回路記述をＲＴレベルの回路記述に変換するときには、動作レベル回路記述とＲＴレベル回路記述とで表される演算回路全体に対する合成制約ではなく、変換用合成制約を用いて変換を行なうため、ＲＴレベル回路記述と動作レベル回路記述を変換して得た変換ＲＴレベル回路記述とで表される演算回路全体を表す全体ＲＴＬ回路記述は、演算回路全体に対する合成制約を満足することになる。このとき、ＲＴレベル回路記述から、合成制約関連情報を自動的に抽出しこれに基づき変換用合成制約を自動的に設定しているため、１つの演算回路を表すＲＴレベル回路記述と動作レベル回路記述とを動作合成装置に入力するだけで、演算回路全体に対する合成制約を満足する、演算回路全体を表す全体ＲＴレベル回路記述を容易に得ることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明を適用した動作合成装置の概略構成図である。
【図２】動作合成装置の機能構成を示す機能構成図である。
【図３】演算処理装置での演算処理の処理手順の一例を示すフローチャートである。
【図４】本発明の動作説明に用いた演算回路の一例である。
【図５】図４の回路３１に対応するＲＴＬ回路記述の一例である。
【図６】半導体集積回路の設計工程を示すフローチャートである。
【図７】動作合成装置の合成工程を示すフローチャートである。
【図８】従来の動作合成装置の機能構成を示す機能構成図である。
【図９】動作レベル回路記述とＲＴＬ回路記述で表される演算回路を動作合成する場合の従来の合成方法を表す説明図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態を説明する。
図１は、本発明を適用した動作合成装置１の一例を示す概略構成図である。
この動作合成装置１は、入力装置１ａと、演算処理部１ｂと、記憶装置１ｃと、出力装置１ｄとを備える。
設計者は、入力装置１ａを操作し、設計対象の演算回路の設計を行い、この１つの演算回路を表す、動作レベル回路記述とＲＴＬ回路記述とを作成すると共に、これら動作レベル回路記述とＲＴＬ回路記述とで表される演算回路全体に対する合成制約等を入力する。
【００２０】
この合成制約としては、所望の演算回路を動作合成するにあたり、各種リソース（レジスタ、乗算器、加減算器等）の、例えば、動作周波数の制約、演算器、レジスタ等のハードウェア資源の種類や数等の制約、或いは入出力端子数の制約等といった、所望の演算回路に対して制約すべき事項からなる。
なお、ここでいうレジスタとは、データを保持する機能を有する構成要素を表し、すなわち、“ｒｅｇ”宣言を行なう必要のある信号を出力する構成要素を表す。このデータを保持する機能を有する構成要素としては、フリップフロップ、ラッチ、シフトレジスタ、等があり、これらを“レジスタ”と呼んでいる。
【００２１】
入力装置１ａから入力された動作レベル回路記述及びＲＴＬ回路記述、また合成制約はそれぞれ例えば、記憶装置１ｃに形成した動作レベル回路記述記憶手段としての動作レベル回路記述記憶領域Ｍ１、ＲＴＬ回路記述記憶手段としてのＲＴＬ回路記述記憶領域Ｍ２及び合成制約記憶手段としての合成制約記憶領域Ｍ３に格納される。また、この記憶装置１ｃには、動作合成を行なうために必要な処理プログラム等が格納されている。
演算処理部１ｂは、入力された１つの演算回路を表す動作レベル回路記述及びＲＴＬ回路記述と、合成制約と、に基づき、動作レベル回路記述をＲＴレベルの回路記述に変換し、変換して得たＲＴレベルの回路記述と、前記動作レベル回路記述と共に前記演算回路を表す前記ＲＴレベル回路記述とから、演算回路全体に対するＲＴＬ回路記述を獲得し、これを出力装置１ｄに出力する。
【００２２】
図２は、動作合成装置１の機能構成を示したブロック図である。
動作合成装置１は、動作合成部１１と、合成制約関連情報抽出部１２とを備える。
合成制約関連情報抽出部１２は、ＲＴＬ回路記述記憶領域Ｍ２に記憶されている設計者が記述したＲＴＬ回路記述（以後、設計ＲＴＬ回路記述ともいう）２１から、後述の合成制約２５に関連する記述である合成制約関連情報を抽出する。
【００２３】
動作合成部１１は、合成制約関連情報抽出部１２で抽出された合成制約関連情報と、合成制約記憶領域Ｍ３に記憶されている設計者が設定した合成制約２５とから、変換用合成制約を生成する。そして、生成した変換用合成制約を、設計者が記述した動作レベル回路記述（以後、設計動作レベル回路記述ともいう）２２に対する制約として、動作レベル回路記述記憶領域Ｍ１に記憶されている設計動作レベル回路記述２２を動作合成し、ＲＴレベルの回路記述（以後、変換ＲＴＬ回路記述ともいう）２２ａに変換する。
そして動作レベル回路記述２２を変換して得た変換ＲＴＬ回路記述２２ａと、ＲＴＬ回路記述記憶領域Ｍ２に記憶されている設計ＲＴＬ回路記述２１とをもとに、動作レベル回路記述２２とＲＴＬ回路記述２１とで表される設計対象の演算回路全体のＲＴＬ回路記述２３を生成する。
【００２４】
次に、上記実施の形態の動作を、図３を伴って説明する。
この図３は、演算処理部１ｂで実行される処理手順の一例を示すフローチャートである。
設計者は、入力装置１ａを操作し、所望の演算回路の設計を行い、動作レベル回路記述で設計すると共に、レジスタやクロック、また、タイミング等を意識して記載する必要のある回路についてはＲＴＬ回路記述で記載する。また、所望の演算回路を実現するにあたり、各種リソース（レジスタ、乗算器、加減算器等）の、例えば、動作周波数、演算器、レジスタ等のハードウェア資源の種類や数等の制約、或いは入出力端子数の制約等といった、合成制約を設定する（ステップＳ１）。
【００２５】
例えば、図４で表される演算回路３０を設計するものとすると、演算回路３０全体の乗算器のリソースが２個の場合、回路３１では、常にクロックＣＬＫの周期に合わせて、“Ｂ＝Ｂ×Ａ（式１）”の演算を行なう必要があり、また、回路３２では、“Ｆ＝Ｃ×Ｄ×Ｅ（式２）”の演算を、設計対象の演算回路のリソースの制約に合わせて演算すればよいものとした場合、式（１）は、クロックの周期に合わせているため、ＲＴＬ回路記述として記述し、式（２）は、動作レベル回路記述で設計することになる。
【００２６】
なお、図４は、ＲＴＬ回路記述及び動作レベル回路記述で表される回路３１及び回路３２を、ＲＴレベルの回路で表したものである。
これによって、設計者は、回路３１を表す、図２に示すＲＴＬ回路記述２１と、回路３２を表す動作レベル回路記述２２と、合成制約２５とを入力することになる。
このようにして、図２に示すように、回路３１を表すＲＴＬ回路記述２１と、回路３２を表す動作レベル回路記述２２、及び合成制約２５が入力されると、演算処理部１ｃでは、入力されたＲＴＬ回路記述２１、動作レベル回路記述２２及び合成制約２５をそれぞれ記憶装置１ｃのＲＴＬ回路記述記憶領域Ｍ２、動作レベル回路記述記憶領域Ｍ１及び合成制約記憶領域Ｍ３に記憶してからステップＳ２に移行し、まず、ＲＴＬ回路記述記憶領域Ｍ２に記憶されている設計者により記述された設計ＲＴＬ回路記述２１から、予め設定された合成制約関連情報を抽出する。
【００２７】
ここで、回路３１を表す設計ＲＴＬ回路記述２１は、図５に示すように記述される。なお、図５は、ハードウェア記述言語Verilog-HDLを用いて記述したものである。
図５において、“ｒｅｇ”４１は、値を保持する信号線を定義している。つまり、“ｒｅｇ宣言”４１では、値を保持する信号線として“Ａ１”と“Ａ３”とがあることを表す。すなわち、回路３１の構成要素には、レジスタが２つ含まれることを表すことになる。
【００２８】
また、図５において、“ａｓｓｉｇｎ”４２は、１ステートメントで記述することのできる簡単な組み合わせ論理の記述に使用されるものである。つまり、“ａｓｓｉｇｎ”４２において、“Ａ２＝Ａ１＊Ａ３”（＊は乗算）は、回路３１の構成要素には、乗算器が１つ含まれることを表すことになる。
したがって、設計ＲＴＬ回路記述２１において、“ｒｅｇ”が記述されている数から、回路３１の構成要素に含まれるレジスタの数を特定することができる。また、設計ＲＴＬ回路記述２１において、“ａｓｓｉｇｎ”中の演算子の種類及び数から、回路３１の構成要素に含まれる演算器の種類とその数とを特定することができる。
【００２９】
なお、“ａｓｓｉｇｎ”中の演算子としては、乗算器に対応する“＊”の他、加算器に対応する“＋”、減算器に対応する“−”、除算器に対応する“／”等がある。
そこで、“ｒｅｇ”及び、“ａｓｓｉｇｎ”文中の演算子を、合成制約関連情報として設定し、設計ＲＴＬ回路記述２１内の“ｒｅｇ”及び“ａｓｓｉｇｎ”文中の演算子を抽出する。
【００３０】
図５の場合、“ｒｅｇ”として、“ｒｅｇ  Ａ１；”、“ｒｅｇ  Ａ３；”が抽出される。また、“ａｓｓｉｇｎ”文中の演算子として、“＊”が抽出される。
このようにして、設計ＲＴＬ回路記述２１から合成制約関連情報を抽出したならば、ステップＳ３に移行し、抽出した合成制約関連情報と、合成制約記憶領域Ｍ３に記憶されている設計者が設定した演算回路全体の合成制約２５とから、変換用合成制約を設定する。
【００３１】
ここで、上述のように、ステップＳ２の処理で、合成制約関連情報として抽出した “ｒｅｇ  Ａ１；”、“ｒｅｇ  Ａ３；”から、回路３１に含まれるレジスタの数は“２”と特定することができ、“ａｓｓｉｇｎ”文中の演算子“＊”から、回路３１には演算器として乗算器が含まれ、その数は“１”であることがわかる。
例えば、合成制約記憶領域Ｍ３に記憶されている合成制約２５として、乗算器の数が“２”、レジスタの数が“５”として設定されているものとする。
上述のように、設計ＲＴＬ回路記述２１から、回路３１には、２つのレジスタと１つの乗算器とが含まれることがわかる。
【００３２】
したがって、合成制約２５において設定されたレジスタの数“５”から回路３１に含まれるレジスタの数“２”を減算し、これをレジスタに関する新たな制約とする。また、合成制約２５において設定された乗算器の数“２”から、回路３１に含まれる乗算器の数“１”を減算し、これを乗算器に関する新たな制約とする。そして、合成制約２５において規定されているレジスタ及び乗算器に関する制約を、上述のようにして設定したレジスタ及び乗算器に関する新たな制約に変更し、レジスタ及び乗算器に関する制約が変更された合成制約を、変換用合成制約とする。
【００３３】
次いで、ステップＳ４に移行し、ステップＳ３で設定した変換用合成制約を制約条件として、回路３２を表す設計動作レベル回路記述２２を、ＲＴレベルの回路記述に変換し、変換ＲＴＬ回路記述２２ａを得る。
そして、ステップＳ４で変換された回路３２を表す変換ＲＴＬ回路記述２２ａと、回路３１を表す設計ＲＴＬ回路記述２１とから、回路３１及び回路３２から構成される演算回路３０を表すＲＴＬ回路記述２３を得る。そして、演算回路３０全体を表すＲＴＬ回路記述２３を出力装置１ｄに出力する。
【００３４】
ここで、ステップＳ４において、動作レベル回路記述をＲＴレベルの回路記述に変換する際には、設計者により設定された演算回路全体に対する合成制約２５ではなく、ステップＳ３で設定した変換用合成制約を用いてＲＴレベルへの変換を行なっている。
また、変換用合成制約は、回路３１を表すＲＴＬ回路記述２１から、回路３１の構成要素である、１つの乗算器と２つのレジスタとを、合成制約で規定されるレジスタ及び乗算器に関する制約から差し引いたものであり、合成制約で規定される条件から、既にＲＴＬ回路記述に含まれる条件を除いたものである。
【００３５】
このため、変換用合成制約を用いて動作レベル回路記述を変換した変換ＲＴＬ回路記述２２ａと、設計者が設計した設計ＲＴＬ回路記述２１とからなる演算回路全体のＲＴＬ回路記述２３は、演算回路全体に対する合成制約２５を満足することになる。
したがって、１つの演算回路３０が、動作レベル回路記述２２とＲＴＬ回路記述２１とを用いて表されており、この動作レベル回路記述２２をＲＴレベルの回路記述に変換して、演算回路全体を表すＲＴＬ回路記述２３を得る場合であっても、演算回路全体に対する合成制約２５を満足する、ＲＴＬ回路記述２３を得ることができる。
【００３６】
このため、例えば、回路３２を表す動作レベル回路記述２２をＲＴレベルの回路記述に変換する際に、演算回路全体に対する合成制約２５を用いることによって、演算回路３０の一部である回路３２が合成制約２５を満足するように変換が行なわれることを回避することができる。
また、変換用合成制約の設定は、ＲＴＬ回路記述２３から合成制約関連情報を抽出することにより、自動的に設定するようにしている。したがって、人手を介することなく変換用合成制約を設定することができる。
【００３７】
特に、ＲＴＬ回路記述２１が比較的長い記述である場合等には、人手による合成制約関連情報の抽出は、抽出漏れなどが生じる可能性がある。しかしながら、上述のように、ＲＴＬ回路記述２１から、“ｒｅｇ”及び“ａｓｓｉｇｎ”等の記述を検索して該当する情報を自動的に抽出しているため、抽出漏れが生じることを回避することができ、より的確な変換用合成制約を得ることができる。そのため、この変換用合成制約を用いて動作レベル回路記述２２を変換することにより、最終的に得られる演算回路全体を表すＲＴＬ回路記述２３として、より確実に合成制約２５を満足するＲＴＬ回路記述を得ることができる。
【００３８】
なお、上記実施の形態においては、合成制約関連情報として、“ｒｅｇ”と“ａｓｓｉｇｎ”で規定される論理回路の演算子とを抽出する場合について説明したが、これに限るものではない。
図３のＲＴＬ回路記述の記述５１に示すように、ポート宣言である“ｉｎｐｕｔ”及び“ｏｕｔｐｕｔ”は、それぞれ入力端子及び出力端子を定義している。また、図３には記載されていないが、ポート宣言として、双方向入出力を表す“ｉｎｏｕｔ”という記述も用いられている。
このため、“ｉｎｐｕｔ”及び“ｏｕｔｐｕｔ”や、“ｉｎｏｕｔ”というポート宣言の記述を抽出し、それぞれの記述の数から、入力端子数及び出力端子数を特定することができることになる。
【００３９】
したがって、合成制約関連情報として、上述のレジスタ数及び演算器数と共に、 “ｉｎｐｕｔ”及び“ｏｕｔｐｕｔ”というポート宣言の記述も設定し、回路３２を表す設計ＲＴＬ回路記述２１から入力端子数及び出力端子数を獲得し、設計対象の演算回路全体に対する合成制約２５における入力端子数及び出力端子数に関する制約において、設計ＲＴＬ回路記述２１における入力端子数及び出力端子数を差し引き、これを入出力端子数に関する制約として、回路３１を表す動作レベル回路記述２２をＲＴレベルの回路記述に変換するようにしてもよい。
【００４０】
また、上記実施の形態においては、ハードウェア記述言語Ｖｅｒｉｌｏｇ−ＨＤＬにおいてＲＴＬ回路記述を用いた場合について説明したが、動作レベル回路記述とＲＴＬ回路記述とを用いて１つの演算回路を表す場合であれば、これら回路記述がどのようなハードウェア記述言語で記述されている場合であっても適用することができる。
この場合、用いるハードウェア記述言語によって、ＲＴＬ回路記述から合成制約関連情報として抽出できる情報が異なるため、ハードウェア記述言語ごとに、ＲＴＬ回路記述から抽出可能な情報を合成制約関連情報として設定し、抽出可能な情報のみを合成制約に反映させて変換用合成制約を設定すればよい。
【００４１】
例えば、ハードウェア記述言語としてＶＨＤＬを用いることも可能である。ＶＨＤＬでは、“ｐｏｒｔ”宣言において、“ｉｎ”、“ｏｕｔ”、“ｉｎｏｕｔ”により入出力信号を定義している。したがって、この“ｐｏｒｔ”宣言における信号を合成制約関連情報として抽出することにより、信号の数及び“ｉｎ”、“ｏｕｔ”、“ｉｎｏｕｔ”の種別により入出力端子数を検出することができる。また、算術演算子として、“＋”、“−”、“＊”、“／”等を用いており、これらは、“加算器”、“減算器”、“乗算器”、“除算器”に対応するため、これらを算術演算子を、合成制約関連情報として抽出することにより、これら演算器の数を検出することができる。
【００４２】
また、上記実施の形態においては、レジスタの個数、演算器の種類及びその個数を合成制約関連情報として抽出し、これを合成制約に反映させる場合について説明したが、合成制約のうち、合成制約関連情報として抽出することのできない制約項目については、例えば、合成制約関連情報として自動的に抽出することのできない制約項目を設計者が入力するための関連情報入力手段を設ける。そして、設計者が、自動的に抽出することのできない制約項目をＲＴＬ回路記述２１から抽出し、これを、関連情報入力手段を操作することにより入力し、動作合成部１１では、合成制約関連情報だけでなく、関連情報入力手段で入力された関連情報も考慮して変換用合成制約を設定するように構成することも可能である。
【００４３】
このようにすることによって、設計ＲＴＬ回路記述の記述内容からは抽出することができない制約項目についても、設計ＲＴＬ回路記述の構成を考慮して変換用合成制約を設定することができる。
なお、上記実施の形態において、図３のステップＳ１の処理が入力処理に対応し、ステップＳ２の処理が合成制約関連情報抽出手段及び合成制約関連情報抽出処理に対応し、ステップＳ３の処理が変換用合成制約設定手段及び変換用合成制約設定処理に対応し、ステップＳ４の処理が変換手段及び変換処理に対応している。
【符号の説明】
【００４４】
１  動作合成装置
１ａ  入力装置
１ｂ  演算処理部
１ｃ  記憶装置
１ｄ  出力装置
１１  動作合成部
１２  合成制約関連情報抽出部
【図１】
2011013762.tif 000003
【図２】
2011013762.tif 000004
【図３】
2011013762.tif 000005
【図４】
2011013762.tif 000006
【図５】
2011013762.tif 000007
【図６】
2011013762.tif 000008
【図７】
2011013762.tif 000009
【図８】
2011013762.tif 000010
【図９】
2011013762.tif 000011