(57)【特許請求の範囲】
【請求項１】
第１のプログラミング言語で回路の動作を記述した第１の記述を入力する設計情報入力手段と、
前記第１の記述から前記第１のプログラミング言語より抽象度の低い第２のプログラミング言語で記述される第２の記述に変換処理する変換処理手段と、
前記変換処理によって決まる状態と、対応する前記第１の記述とを並べて情報出力すると共に、「状態の遷移」を符号表記して出力し、かつ、所定の「状態の遷移」に対応するループの制御記述を強調表示して出力する情報出力手段とを備えてなることを特徴とする動作合成システム。
【請求項２】
第１のプログラミング言語で回路の動作を記述した第１の記述を入力する設計情報入力手段と、
前記第１の記述から前記第１のプログラミング言語より抽象度の低い第２のプログラミング言語で記述される第２の記述に変換処理する変換処理手段と、
前記変換処理によって決まる、演算器、メモリ及びポートの各使用数を含む回路構成要素数と、対応する前記第１の記述とを並べて情報出力する情報出力手段とを備えてなることを特徴とする動作合成システム。
【請求項３】
前記情報出力手段は、前記変換処理によって決まる状態と、対応する前記第１の記述とを表示装置に並べて同時に表示させる表示制御手段であることを特徴とする請求項１記載の動作合成システム。
【請求項４】
前記情報出力手段は、前記変換処理によって決まる回路構成要素数と、対応する前記第１の記述とを表示装置に並べて同時に表示させる表示制御手段であることを特徴とする請求項２記載の動作合成システム。
【請求項５】
前記情報出力される情報は、前記第1の記述と前記状態及び該状態の遷移を指定したときの、当該指定に対応する前記設計記述内の制御記述であることを特徴とする請求項１又は３記載の動作合成システム。
【請求項６】
前記情報出力される情報は、前記第1の記述と前記状態及び該状態の遷移を符号表記で示す状態遷移グラフ、および、これに対応する状態遷移回数情報であると共に、前記状態遷移グラフ中に状態遷移回数の程度を所定の視覚的符号を用いて強弱表示することを特徴とする請求項１、３又は５記載の動作合成システム。
【請求項７】
前記情報出力される情報は、前記第1の記述と前記状態及び当該状態に対応する前記状態毎のステージ番号であることを特徴とする請求項１、３、５又は６記載の動作合成システム。
【請求項８】
コンピュータを、請求項１乃至７のうちのいずれか一に記載の動作合成システムとして機能させることを特徴とする動作合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動作合成システム及び動作合成プログラムに係り、詳しくは、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ(Field Programmable Gate Array)などのＬＳＩ（Large Scale Integrated Circuit）の設計を最適化するための設計環境を設計者に提供するのに有用な動作合成システム及び動作合成プログラムに関する。
【背景技術】
【０００２】
近年、ＬＳＩの設計が、回路設計の専用言語を用いて行われるようになって来ている。
設計対象のＬＳＩの微細化に伴う回路規模の増大に伴って、ＬＳＩの設計は、回路設計の専用言語であるＲＴＬ言語（ＲＴＬ；Register Transfer Level）からＣ言語など主にＣＰＵ向けの動作を記述できる言語で記述した動作レベル記述（以下、設計記述ともいう）を用いて行う技術に移り変わりつつある。
その１つの関連技術として、設計記述について動作合成を行う技術があるが、その動作合成は、上述のＣ言語などからＲＴＬ言語に変換する設計ツールである。この動作合成では、データフローグラフによる解析などによって設計記述中にある並列性を可能な限り抽出して、データパスとＦＳＭ（有限状態遷移機械）（Finite State Machine）に分解する。
【０００３】
また、実際のＬＳＩを使ってオンチップでデバッグするＣＰＵと異なり、ＡＳＩＣやリコンフィギュラブルデバイスの設計時のデバッグではＬＳＩの実物をすぐに入手して試すことが難しいため、ＲＴＬの回路シミュレータが広く使われている。
【０００４】
回路設計の関連技術として、特許文献１に記載されるものがある。この関連技術は、動作合成の過程で生成された情報を利用してＲＴＬ記述に対応する動作記述の箇所の特定を可能にする、換言すれば、ＲＴＬ記述上のパスを動作記述上で特定する技術である。この特定は、次のように行われる。
特許文献１の記載によれば、動作合成装置で第１の対応表及び第２の対応表を生成する。第１の対応表は、コントロールフローグラフのノードと動作記述の行番号、状態及び条件の対応表であり、第２の対応表は、ＲＴＬ記述のノードとコントロールフローグラフのノードとの対応表である。そして、動作合成装置において生成された第１及び第２の対応表をパス反映装置で結合してＲＴＬ記述のノードと、コントロールフローグラフのノードと、動作記述の行番号と、状態と条件との対応関係を示す第３の対応表を生成する。
【０００５】
一方、動作合成装置から出力されるＲＴＬ記述を受け取る論理合成装置において論理合成してタイミングレポートを生成してパス反映装置に渡す。パス反映装置は、タイミングレポートに基づいてＲＴＬ記述のパスを求め、ＲＴＬ記述のパスに基づいて、そのパスの動作記述上の特定を上記第３の対応表を用いて行う。そして、上記特定において、或るパス上の演算器などのノードは、すべて同じ状態に属していなければならないことを利用している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２８５８６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した関連技術において、例えば、回路設計に用いる設計記述の段階において、その回路に性能が要求される場合には、動作合成によって生成された回路が並列化できるように設計記述を変更する作業を行う。また、設計対象の回路に小面積が要求される場合には、回路が直列化されるように設計記述を変更する作業を行う。これらの作業は二律背反ではなく、回路の一部分を並列化して、別の部分を直列化するということもある。通常は、性能要求を満たす範囲で並列化を行い、要求以上に性能がでる部分は直列化して小面積化することが多い。
【０００８】
上述のような作業を回路設計の最適化と呼び、性能と面積、さらに消費電力などのトレードオフを考慮する必要があり、このような考慮を払って設計を進める関係上、回路設計の最適化に要する期間は、ＡＳＩＣやＦＰＧＡをはじめとするリコンフィギュラブルデバイスを含むＬＳＩ設計期間全体において占める割合が大きくなって来ている。しかし、動作合成に用いられる設計記述について回路設計の最適化支援を設計者に与えるツールはあまり存在しない。また、これらの作業を自動化することは動作合成では難しい場合が多く、設計者の経験と勘に依存している。
これに対して、ＣＰＵ向けの設計環境は充実しており、アルゴリズム上の最適化を支援するプロファイリングツールなどが数多く存在する。このようなＣＰＵ向けの設計支援ツールは大局的な最適化には使えても、ＬＳＩ向けの局所的な最適化にそのまま適用することは難しい。ＬＳＩ設計者はより細かい回路のレベルで最適化を行う必要がある。
【０００９】
次に、この発明の理解を助ける技術的背景について説明する。
ＣＰＵではプログラム設計規模が大きく、その半面演算命令の粒度が小さいため、手動で機械語を最適化することは困難になっている。このため、機械語レベルでの最適化はあまり行われなくなって来ている。また、ＣＰＵではコンパイラだけでなくＣＰＵ内部で機械語の命令を動的に解釈して並列化することによって実行効率を高めているため実行時でないと並列化状況がわからないことが多い。
【００１０】
これに対して、ＬＳＩではＣＰＵ向けの回路と比べると設計規模は小さく動的に性能が決まる部分は少ない。このため、設計者が設計記述を変えながら合成ツールを駆使して演算・メモリ・ポートを並列化して動作させることによって実行サイクルを減らして性能面で回路を最適化する。
動作合成によって回路が並列化されたかを簡易的に調べる時に、合成された状態数に着目する方法がある。例えば、加算を繰り返す設計記述でカスケードに加算を接続する回路では遅延が延びてしまうため、動作合成では与えられる遅延制約に応じて状態数（または実行サイクル数）が増える。この加算をバランスツリーによって並列化すると遅延が短くなるため状態数は減る。その一方、並列化によって加算演算器の使用量が増えるため面積は増大する。
従来において、設計記述から合成された回路が並列化又は直列化されたか否かを設計者が知る方法として、設計者が合成された回路を逐一調べることによって、回路が並列化又は直列化されたか否かを知ることも可能であるが、この方法は時間がかかるため設計効率が悪い。
上述したような技術的課題が、従来知られている技法には存在する。
【００１１】
また、特許文献１で知られる関連技術も、ＲＴＬ記述上のパスに対応する動作記述内の行を特定して回路設計に役立てている。その際に、動作記述の行及び状態をその特定に活用してはいる。
しかし、その活用は、ＲＴＬ記述上のパスが動作記述内のいずれの行に当るかの特定に留まり、上述した技術的課題には、必ずしも、応え切れておらず、未解決のままである。
【００１２】
この発明は、上述の問題に鑑みてなされたもので、設計記述の動作合成において当該設計記述の設計最適化の有無を判定するための判定情報を設計者に提供する動作合成システム及び動作合成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、この発明の第１の構成に係る動作合成システムは、第１のプログラミング言語で回路の動作を記述した第１の記述を入力する設計情報入力手段と、上記第１の記述から上記第１のプログラミング言語より抽象度の低い第２のプログラミング言語で記述される第２の記述に変換処理する変換処理手段と、上記変換処理によって決まる状態と、対応する上記第１の記述とを並べて情報出力すると共に、「状態の遷移」を符号表記して出力し、かつ、所定の「状態の遷移」に対応するループの制御記述を強調表示して出力する情報出力手段とを備えてなることを特徴としている。
【００１４】
この発明の第２の構成に係る動作合成システムは、第１のプログラミング言語で回路の動作を記述した第１の記述を入力する設計情報入力手段と、前記第１の記述から前記第１のプログラミング言語より抽象度の低い第２のプログラミング言語で記述される第２の記述に変換処理する変換処理手段と、前記変換処理によって決まる、演算器、メモリ及びポートの各使用数を含む回路構成要素数と、対応する前記第１の記述とを並べて情報出力する情報出力手段とを備えてなることを特徴としている。
【発明の効果】
【００１７】
この発明の構成によれば、回路の設計記述が最適化しているか否かの判定のための情報を出力するように構成しているから、設計者が設計している設計記述が最適化しているか否かの判定支援に有用な情報を提供することができる。したがって、高性能かつ小面積なＬＳＩの設計期間の短縮化に大いに寄与する。
【図面の簡単な説明】
【００１８】
【図１】この発明の実施形態１である動作合成システムの電気的構成を示すブロック図である。
【図２】この発明の実施形態２である動作合成システムの表示方法を示す図である。
【図３】この発明の実施形態３である動作合成システムの電気的構成を示すブロック図である。
【図４】この発明の実施形態３である動作合成システムの表示方法を示す図である。
【図５】この発明の実施形態４である動作合成システムの表示方法を示す図である。
【図６】この発明の実施形態５である動作合成システムの表示方法を示す図である。
【図７】この発明の実施形態６である動作合成システムの表示方法を示す図である。
【図８】この発明の実施形態７である動作合成システムの表示方法を示す図である。
【図９】上記各実施形態における演算の並列化と直列化との効果を説明する図である。
【発明を実施するための形態】
【実施形態１】
【００１９】
図１は、この発明の実施形態１である動作合成システムの電気的構成を示すブロック図である。
これらの実施形態の動作合成システム１０は、設計記述について動作合成を行って当該設計記述の設計最適化の有無を判定するための判定情報（以下、回路情報ともいう）、例えば、状態及び設計記述の対応関係を設計者に可視的に提供する装置に係り、図１に示すように、文字入力部１１、位置入力部１２、設計環境ツール１３、動作合成部１４、ＲＴＬシミュレータ１５、論理合成部１６、配置配線部１７及び出力部１８から概略構成されている。動作合成部１４、ＲＴＬシミュレータ１５、論理合成部１６及び配置配線部１７は、設計環境ツール１３の一部又は別の処理部として、図１には示さない計算機と当該計算機に所定の処理（上述の回路情報のための生成処理）を行わせるソフトウェア上に構築されている。
【００２０】
文字入力部１１は、キーボード等で構成され、半導体集積回路装置の動作を記述した動作レベルの設計記述２１（回路記述）（Behavioral Description）及び制約条件２２を設計環境ツール１３に入力する。設計記述２１の例は、図２、図５乃至図８の設計記述表示部に示す。設計記述２１は、プログラミング言語、例えば、Ｃ言語で記述される。また、制約条件２２の例は、遅延や演算器数・メモリ数・ポート数・レジスタ数など回路規模に関する条件である。
位置入力部１２は、マウス、タッチパッド等から構成され、表示画面の所定の位置を指示したとき、表示画面に表示中の当該指示対応の情報（後述）を設計環境ツール１３に入力する。
設計環境ツール１３は、文字入力部１１からの設計記述２１及び制約条件２２を動作合成部１３に渡し、設計記述２１及び制約条件２２に基づいて動作合成部１４で動作合成されて出力される回路情報２４，２５及びデータフローグラフ２６（後述）と、動作合成部１４で動作合成されて出力されるＲＴＬ回路データ２３に基づいてＲＴＬシミュレータ１５で生成される状態遷移回数２７（後述）と、ＲＴＬ回路情報に基づいて論理合成部１６及び配置配線部１７で生成されて出力される回路図２８（後述）を出力部１８へ渡す。
【００２１】
動作合成部１４は、上述の設計記述２１及び制約条件２２を入力として動作合成を行う。動作合成は、Ｃ言語で記述された設計記述（第１の記述）から抽象度の低いＲＴＬ言語で記述されるＲＴＬ回路データ（第２の記述）への変換を行う処理である。ここで、抽象度とは、処理装置での処理を記述するプログラミング言語で記述される内容が、記述対象のハードウェアに近い、すなわち、機械語に近い低水準言語を用いて記述されているか、ハードウェアから離れた、すなわち、高水準言語を用いて記述されているかを示す言葉であり、前者であるとき、そのプログラミング言語は「抽象度が低い」と呼ばれ、後者であるとき、そのプログラミング言語は「抽象度が高い」と呼ばれる。
【００２２】
上記の動作合成において、ＲＴＬ回路データ（ＲＴＬ回路情報）２３を出力すると共に、動作合成された状態（State）と設計記述の対応関係２４やパイプラインステージと設計記述の対応関係２５を判定情報（回路情報）として設計環境ツール１３に出力する。また、動作合成部１４は上述の動作合成で得られるデータフローグラフ２６を判定情報（回路情報）へ付加される情報として設計環境ツール１３に出力する。データフローグラフ２６は、出力部１８の画面上の所定の状態を位置入力部１２で指示したとき、その指示対応の関連部分を判定情報（回路情報）へ付加される情報として表示するのに用いられる。
【００２３】
ＲＴＬシミュレータ１５は、動作合成部１４から出力されるＲＴＬ回路データに基づいて状態遷移回数を求めて設計環境ツール１３に回路情報へ付加される情報として出力する。この状態遷移回数は、位置入力部１２による出力手１８の画面上での所定の状態遷移回数の区別した表示のための判定情報（回路情報）へ付加される情報として用いられる。
論理合成部１６は、動作合成部１４から出力されるＲＴＬ回路データに基づいて論理合成し、その論理合成情報を配置配線部１７に出力する。論理合成部１６で論理合成される論理合成情報及び配置配線部１７で生成される配置配線情報は、回路図として設計環境ツール１３に入力される。この回路図は、出力部１８の画面上の所定の状態を位置入力部１２で指示したとき、その指示対応の関連部分が判定情報（回路情報）へ付加される情報として表示するのに用いられる。
論理合成部１６及び配置配線部１７を通して出力されるデータとしては、回路記述がＦＰＧＡ等のリコンフィギュレーションデバイスを対象としたものであれば、コンフィギュレーションデータ２９が配置配線部１７から出力され、ＡＳＩＣ等の書き換えができないＬＳＩを対象としたものであれば、回路を製造するための配置配線後の情報がコンフィギュレーションデータ２９として配置配線部１７から出力される。
【００２４】
次に、図１を参照して、この実施形態の動作について説明する。
この実施形態の動作合成システム１０において、設計記述で表される設計対象回路についての回路情報を得んとする場合、当該回路の設計記述２１（設計記述情報）が文字入力部１１から入力される。
この入力と併せて、制約条件２２（制約条件情報）が文字入力部１１から入力される。
設計記述２１及び制約条件２２を受け取る設計環境ツール１３は、それらを動作合成部１４に渡す。
【００２５】
動作合成部１４は、動作合成を行ってＲＴＬ回路データ２３を出力すると共に、設計記述２１及び制約条件２２に応じた判定情報（回路情報）、例えば、動作合成で得られる状態と設計記述の対応関係２４、パイプラインステージと設計記述の対応関係２５を設計環境ツール１３に出力すると共に、データフローグラフ２６を設計環境ツール１３に出力する。
動作合成部１４からＲＴＬ回路データ２３を受け取るＲＴＬシミュレータ１５は、状態遷移回数２７（回路情報へ付加される情報）を求めて設計環境ツール１３に出力する。
ＲＴＬ回路データを受け取る論理合成部１６は、そのＲＴＬ回路データに基づく論理合成を行い、そして論理合成の結果情報を受け取る配置配線部１７は、論理合成に対する配置配線を行い、それぞれから各別に出力される論理合成情報及び配置配線情報は、回路図２８（回路情報へ付加される情報）として設計環境ツール１３に出力される。
【００２６】
上述のようにして出力される各回路情報を受け取る設計環境ツール１３は、回路情報を記憶し、回路情報を出力部１８の画面に表示すると共に、出力部１８の画面に表示される状態等を位置入力部１２で指示し、その指示対応の回路情報を出力部１８へ出力する。出力部１８は、指示されて選択された回路情報の表示をその画面に表示し、入力された設計記述に対する設計の最適化判定を設計者に行わせる。
【００２７】
このように、この実施形態の構成によれば、ＬＳＩの動作を記述した動作レベルの設計記述から具体的な機能（回路）を記述したＲＴＬ回路記述を生成する際に、当該設計記述の回路設計の最適化を判定するための回路情報を可視的に表示するように構成しているから、設計者に設計の最適化支援のための設計環境を提供することができる。したがって、高性能かつ小面積なＬＳＩの設計期間の短縮化に大いに寄与する。
【実施形態２】
【００２８】
図２は、この発明の実施形態２のための出力手段における表示例を示す図で、より具体的には、上記実施形態１において設計環境ツールが回路情報を出力手段に表示する方法を示す図である。
この実施形態の実施形態１と異なるところは、実施形態１において設計記述と該設計記述についての状態とを設計記述の行毎に状態を区別して可視的に設計者に提供するようにしたことにある。
この実施形態の動作合成システムでは実施形態１で説明した動作合成システム１０のうちの、文字入力部１１、設計環境ツール１３、動作合成部１４及び出力部１８を主として用い、動作合成部１４における回路情報として状態と設計記述の対応関係２４（状態を区別するための状態番号（回路情報へ付加される情報）を含む）を設計環境ツール１３に出力するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態１と略同じであるので、それらについての逐一の説明は省略する。
【００２９】
次に、図２を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態１のそれと異なる点は、動作合成部１４における動作合成で得られる回路情報が、状態と設計記述の対応関係であり、その回路情報が設計環境ツール１３を介して出力部１８に出力されることである。
動作合成部１４から出力された状態と設計記述との対応関係が設計環境ツール１３を介して出力部１８に出力表示されることを図２を用いて説明すると次の通りである。
【００３０】
図２に示すように、出力部１８の画面左側の設計記述表示部に設計記述を表示する一方、画面右側の状態対応表示部に状態を表示している。左側の設計記述の行に対応する状態に回路が存在する場合に、その状態は、右側の状態番号を示す位置に■を付して表示してある。
動作合成部１４では、１サイクルで複数の演算を行うため、一つの状態に対して複数の行が対応することがある。例えば、図２の設計記述表示部に示す設計記述の例では、状態１は行番号１および２に対応することを示している。また、その反対に、一つの行が複数の状態に分かれる可能性もある。例えば、行番号２は状態１〜４に対応することを示している。
このように、設計記述に対する状態を可視的に表示し、その表示を設計者が設計中の状態を視認して設計が意図しているものとなっているか否か、すなわち、設計が最適化しているか否かの判定に役立たせることができる。
【００３１】
このように、この実施形態の構成によれば、設計者は、上述の表示を見て、当該設計記述の並列化状況を視覚的に知ることができる。このため、設計者は設計記述の中から並列化されている部分、または設計されていない部分を短期間に見付け出すことができるようになる。これらの情報を基に設計者は設計記述を変更することによって高性能かつ小面積なＬＳＩを短期間に設計することができる。
【実施形態３】
【００３２】
図３は、この発明の実施形態３である動作合成システムの構成を示すブロック図、また、図４は、実施形態３において設計環境ツールが回路情報を出力手段に出力して表示させる可視表示方法を示す図である。
である。
この実施形態の動作合成システム１０Ａは、次の点について実施形態１の動作合成システム１０と異なる。その相違点は、文字入力部１１Ａから入力される制約条件２２Ａを遅延や演算器数・メモリ数・ポート数・レジスタ数など回路規模に関する条件とし、動作合成部１４Ａでの設計記述２１及び制約条件２２Ａに基づく動作合成において、演算器・メモリ・ポートと設計記述との対応関係３０（判定情報（回路情報））（演算器・メモリ・ポートの数を表す情報を含む）を設計環境ツール１３Ａに出力するように構成したことに主たる点がある。そして、設計環境ツール１３Ａは、出力部１８の画面上の設計記述表示部に設計記述を、そして使用リソース表示部に演算器使用数・メモリ使用数・ポート使用数を表示させる。
この実施形態の構成を示す図３中のその他の構成は、実施形態１と略同じであるので、それらについての逐一の説明は省略する。
【００３３】
次に、図３及び４を参照して、この実施形態の動作を説明する。
この実施形態の動作合成システム１０Ａの動作は、次の相違点を除いて、実施形態１と略同じである。その相違点は、文字入力部１１Ａから遅延や演算器数・メモリ数・ポート数・レジスタ数など回路規模に関する制約条件が、設計環境ツール１３Ａを介して動作合成部１４Ａに入力され、動作合成部１４Ａにおける動作合成において、演算器・メモリ・ポートと設計記述との対応関係３０が生成されて設計環境ツール１３Ａへ出力され、設計環境ツール１３Ａの制御の下に出力部１８の画面上の設計記述表示部に設計記述が表示されると共に、使用リソース表示部に演算器使用数・メモリ使用数・ポート使用数が表示される（図４）という点である。
上述のようにして設計記述と当該設計記述の各行に属する演算器数・メモリ数・ポート数とが表示されるから、その表示から、設計者は、動作合成された回路の内訳を把握することができる。例えば、行番号２では、演算器を５個、メモリを１個、ポートを０個使っていることを示している。
【００３４】
このように、この実施形態の構成によれば、設計記述と当該設計記述の行毎の演算器・メモリ・ポートの数とを表示するようにしているから、設計者は、該当する部分の回路で使われている回路規模を知ることができる。これにより、設計者は、設計記述で必要以上に大きなビット幅の演算器を使っていないか、冗長な演算やメモリアクセス、ポートアクセスが行われていないかを確認することができる。これらの情報を基に設計者は設計記述を変更することによって高性能かつ小面積なＬＳＩを短期間に設計することができる。
【実施形態４】
【００３５】
図５は、上記実施形態１において設計環境ツールがもう１つの回路情報を出力手段に出力して表示させる、この発明の実施形態４のための可視表示方法を示す図である。
この実施形態の実施形態１と異なるところは、実施形態１において設計記述と該設計記述についての状態との可視表示に加えて、データフローグラフ又は回路図の可視表示を設計者に提供するようにした点にある。
この実施形態の動作合成システムでは実施形態１で説明した動作合成システム１０のうちの、文字入力部１１、位置入力部１２、設計環境ツール１３、動作合成部１４、論理合成部１６、配置配線部１７及び出力部１８を主として用い、動作合成部１４における判定情報（回路情報）として、状態と設計記述の対応関係を設計環境ツール１３を介して出力部１８に出力して表示すると共に表示されている所定の状態を位置入力部１２で指示し、指示された状態に対応する関連部分、例えば、データフローグラフ２６や回路図２８内の指示対応の関連部分（回路情報へ付加される情報）をも表示するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態１と略同じであるので、それらについての逐一の説明は省略する。
【００３６】
次に、図５を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態１のそれと異なる点は、動作合成部１４から出力されて表示される回路情報、例えば、状態と設計記述の対応関係内の所定の状態を位置入力部１２で指示してデータフローグラフ２６や回路図２８内の指示対応の関連部分を設計環境ツール１３を介して出力部１８に出力させるようにしたことにある。
この動作上の相違点について図５を用いて具体的に説明すると次の通りである。
【００３７】
設計者が図２の状態又は図４の演算器・メモリ・ポートの数よりも詳細に回路を調べたいとき、動作合成途中に動作合成部１４から出力されるデータフローグラフ２６や、論理合成部１６及び配置配線部１７から出力される合成結果の回路図２８を参照する。この参照は、図５に示すように、これらデータフローグラフ又は回路図と状態番号との間を位置入力部１２で情報リンクさせることによって行われ、これによって情報間の対応関係を設計者が把握し易くなる。例えば、設計者がマウスやタッチパッドなどの位置入力部１２によって或る状態を指示してクリックした場合に、データフローグラフ又はデータパスが示された回路図の中から指示対応の状態に関連する部分を出力部１８の画面上に表示する。
上述のようにして、出力部１８の画面上に表示されている状態の中の所定の状態の指示・クリックによる情報リンクを用いれば、さらに詳細な回路の把握ができる。
【００３８】
このように、この実施形態の構成によれば、設計記述に関係する状態や演算器・メモリ・ポートの数だけでは判らない回路についての詳細な情報との情報リンクを生じさせているから、設計者は複雑な回路であっても短期間に設計記述に関連する回路についての詳細な情報に辿りつくことができる。これらの情報に基づいて設計者は設計記述を変更することにより、高性能かつ小面積なＬＳＩを短期間に設計することができる。
【実施形態５】
【００３９】
図６は、上記実施形態１において設計環境ツールがさらにもう１つの回路情報を出力手段に出力して表示させる、この発明の実施形態５のための可視表示方法を示す図である。
この実施形態の実施形態１と異なるところは、実施形態１において設計記述と該設計記述についての状態との可視表示に加えて、状態の遷移並びにループ及びそのループの制御記述の可視表示を設計者に提供するようにした点にある。
この実施形態の動作合成システムでは実施形態１で説明した動作合成システム１０のうちの、文字入力部１１、位置入力部１２、設計環境ツール１３、動作合成部１４及び可視出力部１８を主として用い、動作合成部１４における判定情報（回路情報）として状態と設計記述の対応関係（状態間に表示する遷移の表示情報を含む）を設計環境ツール１３を介して出力部１８に出力して状態及びその遷移を表示すると共に、表示されている所定の状態の遷移を位置入力部１２で指示してクリックすると、指示対応の状態の遷移に対応するループやその制御記述（回路情報へ付加される情報）をも表示するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態１と略同じであるので、それらについての逐一の説明は省略する。
【００４０】
次に、図６を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態１のそれと異なる点は、動作合成部１４から出力されて表示される回路情報、例えば、状態と設計記述の対応関係に状態の遷移を示す矢印（→又は←等）を設計環境ツール１３を介して出力部１８の画面に表示すると共に、その表示中の所定の矢印を位置入力部１２で指示してクリックする、すなわち、矢印とループや条件分岐等の制御記述との情報リンクを生じさせて指示対応の制御記述を設計環境ツール１３を介して出力部１８に強調表示させるようにしたことにある。
【００４１】
上述の動作上の相違点について図６を用いて具体的に説明すると次の通りである。
状態の遷移を示す矢印（→又は←等）が出力部１８の画面の状態番号間に表示される。
そして、設計者が図６に示すような画面の状態対応表示部内の状態遷移を位置入力部１２によって指示してクリックする、例えば、状態番号４を白抜きの太い矢印で指示してクリックすると、設計記述表示部内の制御記述を囲繞線（制御記述がループであることを示す閉じた線）で囲んで表示されると共に、白抜きの太い矢印と囲繞線との間に中太の黒矢印が表示されてループやそのループの制御記述を強調表示させる。
【００４２】
出力部１８の画面の状態番号間に表示される状態遷移表示（上述の矢印（→又は←等）によって、設計者は、動作合成された状態の遷移と設計記述とを見比べることができる。
また、上述の情報リンクによって、設計者はどの制御記述が状態遷移を引き起こしているかを、上述の強調表示から容易に知ることができる。
【００４３】
このように、この実施形態の構成によれば、設計記述と関連する状態遷移との間を情報リンクさせているから、設計者は、ループなどの設計記述中の制御記述と動作合成された結果の状態遷移の関係を知ることができる。これにより、どの制御記述によって状態数を多く使っているかを短期間で知ることができる。これらの情報を基に設計者は設計記述を変更することによって高性能かつ小面積なＬＳＩを短期に設計することができる。
【実施形態６】
【００４４】
図７は、上記実施形態１において設計環境ツールがさらにもう１つの回路情報を出力手段に出力して表示させる、この発明の実施形態６のための可視表示方法を示す図である。
この実施形態の実施形態１と異なるところは、実施形態１において設計記述と該設計記述についての状態との可視表示に加えて、状態遷移回数の可視表示を設計者に提供するようにした点にある。
【００４５】
この実施形態の動作合成システムでは実施形態１で説明した動作合成システム１０のうちの、文字入力部１１、設計環境ツール１３、動作合成部１４、ＲＴＬシミュレータ１５及び出力部１８を主として用い、動作合成部１４における判定情報（回路情報）として状態と設計記述の対応関係２４及びＲＴＬシミュレータ１５から出力される状態遷移回数２７（回路シミュレーションで得られる回数表示の制御情報を含む）を設計環境ツール１３を介して出力部１８に出力して状態を表示すると同時に、その状態の遷移表示に併せてその回数（回路情報へ付加される情報）を識別可能に表示するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態１と略同じであるので、それらについての逐一の説明は省略する。
【００４６】
次に、図７を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態１のそれと異なる点は、動作合成部１４から出力されて表示される回路情報、例えば、状態と設計記述の対応関係に状態遷移を示す矢印（→又は←等）を設計環境ツール１３を介して出力部１８の画面上に表示するに際し、図７に示すように、矢印の線の線幅を状態遷移の回数に応じて変えるようにしたことにある。
【００４７】
上述の動作上の相違点について図７を用いて具体的に説明すると次の通りである。
回路シミュレーション後に、状態の遷移を示す矢印（→又は←等）の、出力部１８の画面の状態番号間への表示において、状態遷移回数が多いとき、矢印の線を太くして表示する。例えば、図７では、状態番号１から状態番号２への遷移（太線）は、状態番号０から状態番号１への遷移（細線）と比べて回数が多いことを示しており、状態遷移回数を強調して表示されていることの可視的表示を提供する。
【００４８】
このように、この実施形態の構成によれば、設計者は、状態遷移回数の強調表示によって制御記述によるループの回数を視覚的に知ることができる。したがって、設計記述中のどこを重点的に最適化すればよいかの判断の容易化に役立つ。これらの情報に基づいて設計者は設計記述を変更することによって高性能かつ小面積なＬＳＩを短期間に設計することができる。
【実施形態７】
【００４９】
図８は、上記実施形態１において設計環境ツールがさらにもう１つの他の回路情報を出力手段に出力して表示させる、この発明の実施形態７のための可視表示方法を示す図である。
この実施形態の実施形態１と異なるところは、実施形態１において設計記述と該設計記述についての状態との可視表示に加えて、パイプライン回路についてのステージ情報の可視表示を設計者に提供するようにした点にある。
【００５０】
この実施形態の動作合成システムでは実施形態１で説明した動作合成システム１０のうちの、文字入力部１１、設計環境ツール１３、動作合成部１４及び出力部１８を主として用い、動作合成部１４における判定情報（回路情報）として、状態と設計記述の対応関係（状態番号及びステージ情報を含む）を設計環境ツール１３を介して出力部１８に出力して状態を表示する際に、状態番号にステージ番号（ステージ情報）（回路情報へ付加される情報）をも付加して表示するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態１と略同じであるので、それについての逐一の説明は省略する。
【００５１】
次に、図８を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態１のそれと異なる点は、動作合成部１４から出力されて表示される回路情報、例えば、状態と設計記述の対応関係に状態番号を出力手段１２の画面上に表示する際、図８に示すように、その状態番号に添え字としてステージ番号を付加して表示するようにしたことにある。
【００５２】
上述の動作上の相違点について図８を用いて具体的に説明すると次の通りである。
図２と同様の方法で、状態対応表示部に状態番号にパイプラインステージのステージ番号を添え字として（下付きで）表示する。これにより、ＬＳＩ設計における性能の要となるパイプライン回路と設計記述の対応する行との関係を設計者に視認させることができる。
【００５３】
このように、この実施形態の構成によれば、状態とパイプラインステージの情報との対応関係を可視的に表示しているから、設計者は、回路最適化のみならず、ＲＴＬシミュレータを使ったデバッグ時にも、設計記述と状態およびパイプラインステージとの対応関係を把握し易くなる。
これは、複数の状態が折り畳まれて一つの状態に纏められるパイプライン回路合成において、状態だけの情報ではどのように回路が合成されたのかを把握するのが難しくなるのを大幅に緩和するのに役立つし、また、一つの状態当たりの回路規模が大きくなって来た場合のデバッグの容易化にも役立つ。
そして、把握が容易となった、設計記述と状態およびパイプラインステージとの対応関係に基づいて、設計者は、設計記述の変更をして高性能かつ小面積なＬＳＩの確実な設計を短期間に達成することができる。
【実施形態８】
【００５４】
この実施形態の実施形態１乃至実施形態７と異なるところは、これらの実施形態においては設計記述の行毎でなく、当該行内の所定の一部（記述部）について回路情報を生成してその可視表示を設計者に提供するようにした点にある。
すなわち、この実施形態においては、上述の実施形態１乃至実施形態７の動作合成システム１０又は１０Ａの動作合成部１４又は１４Ａにおける動作合成において行内の所定の記述部、例えば、演算子について上述した判定情報（回路情報）と同等の判定情報（回路情報）を生成して設計環境ツール１３又は１３Ａに出力し、出力部１８の画面上にそれを可視的に表示するように構成したことにその特徴部分がある。
したがって、その動作においても、動作合成部１４又は１４Ａにおいて生成される回路情報が、設計記述の行内の所定の記述部に対応するものとなることを除いて、上述の各実施形態と略同じとなる。
この実施形態の効果も、設計記述の行内の所定の記述部について回路設計の最適化判定のための回路情報が設計者に提供されることにその大きな特長があるほか、上述の各実施形態と同等のものが得られる。
【００５５】
上述の各実施形態で得られる効果のうち、並列化と直列化との効果について説明する。
図９は、演算の並列化による状態数の減少と回路規模の増大との関係及び演算の直列化による状態数の増大と回路規模の縮小との関係を説明する図である。
加算を３回繰り返す設計記述と遅延制約を図１又は図３の動作合成部１４又は１４Ａに入力すると、遅延制約に応じて状態数が決まる。例えば、遅延制約が加算１段分と同じ遅延であると仮定すると、カスケード（直列）に加算器を接続する回路で実現すると左側に示す３状態の回路が合成される。この時に、各状態で必要な加算器は最大で１個となる。これに対して右側に示すように、加算器をバランスツリーで接続して並列化すると状態数は２状態に減る。カスケード接続の場合と比べて、所要サイクルは１サイクル分減るため、性能が高くなる。その一方、並列化によって加算器の使用量が増えるため必要な加算器は最大で２個に増える。必要な加算が増えると回路面積は増大する。この図では演算を例として並列化の効果と影響を示したが、メモリやポートに関しても同様な効果や影響がある。
【００５６】
以上、この発明の実施形態を、図面を参照して詳述してきたが、この発明の具体的な構成は、これらの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもそれらはこの発明に含まれる。
例えば、実施形態２での状態番号、実施形態３での演算器、メモリ、ポートの数、実施形態５での遷移の表示情報、実施形態６での回数表示の制御情報及び実施形態７でのステージ情報（回路情報へ付加される情報）を回路情報に含めて動作合成部１４、１４Ａから設計環境ツール１３、１３Ａへ出力されることを説明したが、回路情報（例えば、状態と設計記述の対応関係）を設計環境ツール１３、１３Ａ等で受け取り、その情報に基づいて回路情報へ付加される情報を生成するようにしてもよい。
また、上述の実施形態では、単一の出力部１８（単一のディスプレイの画面内）に、設計記述と状態等とを並べて同時に表示させる例を説明したが、これに代えて、２つのディスプレイを並べ、設計記述を一方のディスプレイの画面に、また、状態等を他方のディスプレイの画面内に同時に表示させるようにしてもよい。
また、動作合成部１４、ＲＴＬシミュレータ１５、論理合成部１６及び配置配線部１７は、設計環境ツール１３とは別の計算機及びこれを制御するプログラムの上に構築されてもよい。
【産業上の利用可能性】
【００５７】
ここに開示している動作合成システム及び動作合成方法並びに動作合成プログラムは、電子回路以外の技術分野において設計支援を必要とする場合にも適用し得る。
【符号の説明】
【００５８】
１０、１０Ａ      動作合成システム
１１      文字入力手段（設計情報入力手段）
１２      位置入力手段（判定情報出力制御手段の一部）
１３      設計環境ツール（判定情報出力制御手段の一部）
１４      動作合成部（判定情報出力制御手段の一部）
１５      ＲＴＬシミュレータ（判定情報出力制御手段の一部）
１６      論理合成部（判定情報出力制御手段の一部）
１７      配置配線部（判定情報出力制御手段の残部）
１８      出力部
【図１】
0005622257.tif 000002
【図２】
0005622257.tif 000003
【図３】
0005622257.tif 000004
【図４】
0005622257.tif 000005
【図５】
0005622257.tif 000006
【図６】
0005622257.tif 000007
【図７】
0005622257.tif 000008
【図８】
0005622257.tif 000009
【図９】
0005622257.tif 000010