説明

動作合成システム及び動作合成方法並びに動作合成プログラム

【課題】設計記述の最適化判定のための判定情報を提供する。
【解決手段】半導体集積回路の動作を記述した動作レベルの設計記述を文字入力手段11から入力する。設計記述に対する制約条件を文字入力手段11から入力する。文字入力手段11から出力される設計記述及び制約条件を設計環境ツール13を介して動作合成部14に入力して設計記述についての動作合成を行って設計記述の最適化判定のための判定情報を動作合成部14から出力する。出力される判定情報を出力部18の画面に表示する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、動作合成システム及び動作合成方法並びに動作合成プログラムに係り、詳しくは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのLSI(Large Scale Integrated Circuit)の設計を最適化するための設計環境を設計者に提供するのに有用な動作合成システム及び動作合成方法並びに動作合成プログラムに関する。
【背景技術】
【0002】
近年、LSIの設計が、回路設計の専用言語を用いて行われるようになって来ている。
設計対象のLSIの微細化に伴う回路規模の増大に伴って、LSIの設計は、回路設計の専用言語であるRTL言語(RTL;Register Transfer Level)からC言語など主にCPU向けの動作を記述できる言語で記述した動作レベル記述(以下、設計記述ともいう)を用いて行う技術に移り変わりつつある。
その1つの関連技術として、設計記述について動作合成を行う技術があるが、その動作合成は、上述のC言語などからRTL言語に変換する設計ツールである。この動作合成では、データフローグラフによる解析などによって設計記述中にある並列性を可能な限り抽出して、データパスとFSM(有限状態遷移機械)(Finite State Machine)に分解する。
【0003】
また、実際のLSIを使ってオンチップでデバッグするCPUと異なり、ASICやリコンフィギュラブルデバイスの設計時のデバッグではLSIの実物をすぐに入手して試すことが難しいため、RTLの回路シミュレータが広く使われている。
【0004】
回路設計の関連技術として、特許文献1に記載されるものがある。この関連技術は、動作合成の過程で生成された情報を利用してRTL記述に対応する動作記述の箇所の特定を可能にする、換言すれば、RTL記述上のパスを動作記述上で特定する技術である。この特定は、次のように行われる。
特許文献1の記載によれば、動作合成装置で第1の対応表及び第2の対応表を生成する。第1の対応表は、コントロールフローグラフのノードと動作記述の行番号、状態及び条件の対応表であり、第2の対応表は、RTL記述のノードとコントロールフローグラフのノードとの対応表である。そして、動作合成装置において生成された第1及び第2の対応表をパス反映装置で結合してRTL記述のノードと、コントロールフローグラフのノードと、動作記述の行番号と、状態と条件との対応関係を示す第3の対応表を生成する。
【0005】
一方、動作合成装置から出力されるRTL記述を受け取る論理合成装置において論理合成してタイミングレポートを生成してパス反映装置に渡す。パス反映装置は、タイミングレポートに基づいてRTL記述のパスを求め、RTL記述のパスに基づいて、そのパスの動作記述上の特定を上記第3の対応表を用いて行う。そして、上記特定において、或るパス上の演算器などのノードは、すべて同じ状態に属していなければならないことを利用している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−285865号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述した関連技術において、例えば、回路設計に用いる設計記述の段階において、その回路に性能が要求される場合には、動作合成によって生成された回路が並列化できるように設計記述を変更する作業を行う。また、設計対象の回路に小面積が要求される場合には、回路が直列化されるように設計記述を変更する作業を行う。これらの作業は二律背反ではなく、回路の一部分を並列化して、別の部分を直列化するということもある。通常は、性能要求を満たす範囲で並列化を行い、要求以上に性能がでる部分は直列化して小面積化することが多い。
【0008】
上述のような作業を回路設計の最適化と呼び、性能と面積、さらに消費電力などのトレードオフを考慮する必要があり、このような考慮を払って設計を進める関係上、回路設計の最適化に要する期間は、ASICやFPGAをはじめとするリコンフィギュラブルデバイスを含むLSI設計期間全体において占める割合が大きくなって来ている。しかし、動作合成に用いられる設計記述について回路設計の最適化支援を設計者に与えるツールはあまり存在しない。また、これらの作業を自動化することは動作合成では難しい場合が多く、設計者の経験と勘に依存している。
これに対して、CPU向けの設計環境は充実しており、アルゴリズム上の最適化を支援するプロファイリングツールなどが数多く存在する。このようなCPU向けの設計支援ツールは大局的な最適化には使えても、LSI向けの局所的な最適化にそのまま適用することは難しい。LSI設計者はより細かい回路のレベルで最適化を行う必要がある。
【0009】
次に、この発明の理解を助ける技術的背景について説明する。
CPUではプログラム設計規模が大きく、その半面演算命令の粒度が小さいため、手動で機械語を最適化することは困難になっている。このため、機械語レベルでの最適化はあまり行われなくなって来ている。また、CPUではコンパイラだけでなくCPU内部で機械語の命令を動的に解釈して並列化することによって実行効率を高めているため実行時でないと並列化状況がわからないことが多い。
【0010】
これに対して、LSIではCPU向けの回路と比べると設計規模は小さく動的に性能が決まる部分は少ない。このため、設計者が設計記述を変えながら合成ツールを駆使して演算・メモリ・ポートを並列化して動作させることによって実行サイクルを減らして性能面で回路を最適化する。
動作合成によって回路が並列化されたかを簡易的に調べる時に、合成された状態数に着目する方法がある。例えば、加算を繰り返す設計記述でカスケードに加算を接続する回路では遅延が延びてしまうため、動作合成では与えられる遅延制約に応じて状態数(または実行サイクル数)が増える。この加算をバランスツリーによって並列化すると遅延が短くなるため状態数は減る。その一方、並列化によって加算演算器の使用量が増えるため面積は増大する。
従来において、設計記述から合成された回路が並列化又は直列化されたか否かを設計者が知る方法として、設計者が合成された回路を逐一調べることによって、回路が並列化又は直列化されたか否かを知ることも可能であるが、この方法は時間がかかるため設計効率が悪い。
上述したような技術的課題が、従来知られている技法には存在する。
【0011】
また、特許文献1で知られる関連技術も、RTL記述上のパスに対応する動作記述内の行を特定して回路設計に役立てている。その際に、動作記述の行及び状態をその特定に活用してはいる。
しかし、その活用は、RTL記述上のパスが動作記述内のいずれの行に当るかの特定に留まり、上述した技術的課題には、必ずしも、応え切れておらず、未解決のままである。
【0012】
この発明は、上述の問題に鑑みてなされたもので、設計記述の動作合成において当該設計記述の設計最適化の有無を判定するための判定情報を設計者に提供する動作合成システム及び動作合成方法並びに動作合成プログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
上記課題を解決するために、この発明の第1の構成は、設計記述の最適化判定のための判定情報を出力する動作合成システムに係り、第1のプログラミング言語で回路の動作を記述した第1の記述を入力する設計情報入力手段と、該設計情報入力手段から受け取る上記第1の記述に基づいて、上記第1の記述から上記第1のプログラミング言語より抽象度の低い第2のプログラミング言語で記述される第2の記述への変換処理を行って上記第1の記述が最適となっているか否かの判定情報を出力する判定情報出力手段とを備えることを特徴としている。
【0014】
この発明の第2の構成は、設計記述の最適化判定のための判定情報を出力する動作合成方法に係り、第1のプログラミング言語で回路の動作を記述した第1の記述を入力し、入力される上記第1の記述に基づいて、上記第1の記述から上記第1のプログラミング言語より抽象度の低い第2のプログラミング言語で記述される第2の記述への変換処理を行って上記第1の記述が最適となっているか否かの判定情報を出力することを特徴としている。
【0015】
この発明の第3の構成は、設計記述の最適化判定のための判定情報を出力する動作合成プログラムに係り、コンピュータを第1の構成に係る動作合成システムとして機能させることを特徴としている。
【0016】
この発明の第4の構成は、設計記述の最適化判定のための判定情報を出力する動作合成プログラムに係り、コンピュータに第2の構成に係る動作合成方法を実行させることを特徴としている。
【発明の効果】
【0017】
この発明の構成によれば、回路の設計記述が最適化しているか否かの判定のための判定情報を出力するように構成しているから、設計者が設計している設計記述が最適化しているか否かの判定支援に有用な判定情報を提供することができる。したがって、高性能かつ小面積なLSIの設計期間の短縮化に大いに寄与する。
【図面の簡単な説明】
【0018】
【図1】この発明の実施形態1である動作合成システムの電気的構成を示すブロック図である。
【図2】この発明の実施形態2である動作合成システムの表示方法を示す図である。
【図3】この発明の実施形態3である動作合成システムの電気的構成を示すブロック図である。
【図4】この発明の実施形態3である動作合成システムの表示方法を示す図である。
【図5】この発明の実施形態4である動作合成システムの表示方法を示す図である。
【図6】この発明の実施形態5である動作合成システムの表示方法を示す図である。
【図7】この発明の実施形態6である動作合成システムの表示方法を示す図である。
【図8】この発明の実施形態7である動作合成システムの表示方法を示す図である。
【図9】上記各実施形態における演算の並列化と直列化との効果を説明する図である。
【発明を実施するための形態】
【実施形態1】
【0019】
図1は、この発明の実施形態1である動作合成システムの電気的構成を示すブロック図である。
これらの実施形態の動作合成システム10は、設計記述について動作合成を行って当該設計記述の設計最適化の有無を判定するための判定情報(以下、回路情報ともいう)、例えば、状態及び設計記述の対応関係を設計者に可視的に提供する装置に係り、図1に示すように、文字入力部11、位置入力部12、設計環境ツール13、動作合成部14、RTLシミュレータ15、論理合成部16、配置配線部17及び出力部18から概略構成されている。動作合成部14、RTLシミュレータ15、論理合成部16及び配置配線部17は、設計環境ツール13の一部又は別の処理部として、図1には示さない計算機と当該計算機に所定の処理(上述の回路情報のための生成処理)を行わせるソフトウェア上に構築されている。
【0020】
文字入力部11は、キーボード等で構成され、半導体集積回路装置の動作を記述した動作レベルの設計記述21(回路記述)(Behavioral Description)及び制約条件22を設計環境ツール13に入力する。設計記述21の例は、図2、図5乃至図8の設計記述表示部に示す。設計記述21は、プログラミング言語、例えば、C言語で記述される。また、制約条件22の例は、遅延や演算器数・メモリ数・ポート数・レジスタ数など回路規模に関する条件である。
位置入力部12は、マウス、タッチパッド等から構成され、表示画面の所定の位置を指示したとき、表示画面に表示中の当該指示対応の情報(後述)を設計環境ツール13に入力する。
設計環境ツール13は、文字入力部11からの設計記述21及び制約条件22を動作合成部13に渡し、設計記述21及び制約条件22に基づいて動作合成部14で動作合成されて出力される回路情報24,25及びデータフローグラフ26(後述)と、動作合成部14で動作合成されて出力されるRTL回路データ23に基づいてRTLシミュレータ15で生成される状態遷移回数27(後述)と、RTL回路情報に基づいて論理合成部16及び配置配線部17で生成されて出力される回路図28(後述)を出力部18へ渡す。
【0021】
動作合成部14は、上述の設計記述21及び制約条件22を入力として動作合成を行う。動作合成は、C言語で記述された設計記述(第1の記述)から抽象度の低いRTL言語で記述されるRTL回路データ(第2の記述)への変換を行う処理である。ここで、抽象度とは、処理装置での処理を記述するプログラミング言語で記述される内容が、記述対象のハードウェアに近い、すなわち、機械語に近い低水準言語を用いて記述されているか、ハードウェアから離れた、すなわち、高水準言語を用いて記述されているかを示す言葉であり、前者であるとき、そのプログラミング言語は「抽象度が低い」と呼ばれ、後者であるとき、そのプログラミング言語は「抽象度が高い」と呼ばれる。
【0022】
上記の動作合成において、RTL回路データ(RTL回路情報)23を出力すると共に、動作合成された状態(State)と設計記述の対応関係24やパイプラインステージと設計記述の対応関係25を判定情報(回路情報)として設計環境ツール13に出力する。また、動作合成部14は上述の動作合成で得られるデータフローグラフ26を判定情報(回路情報)へ付加される情報として設計環境ツール13に出力する。データフローグラフ26は、出力部18の画面上の所定の状態を位置入力部12で指示したとき、その指示対応の関連部分を判定情報(回路情報)へ付加される情報として表示するのに用いられる。
【0023】
RTLシミュレータ15は、動作合成部14から出力されるRTL回路データに基づいて状態遷移回数を求めて設計環境ツール13に回路情報へ付加される情報として出力する。この状態遷移回数は、位置入力部12による出力手18の画面上での所定の状態遷移回数の区別した表示のための判定情報(回路情報)へ付加される情報として用いられる。
論理合成部16は、動作合成部14から出力されるRTL回路データに基づいて論理合成し、その論理合成情報を配置配線部17に出力する。論理合成部16で論理合成される論理合成情報及び配置配線部17で生成される配置配線情報は、回路図として設計環境ツール13に入力される。この回路図は、出力部18の画面上の所定の状態を位置入力部12で指示したとき、その指示対応の関連部分が判定情報(回路情報)へ付加される情報として表示するのに用いられる。
論理合成部16及び配置配線部17を通して出力されるデータとしては、回路記述がFPGA等のリコンフィギュレーションデバイスを対象としたものであれば、コンフィギュレーションデータ29が配置配線部17から出力され、ASIC等の書き換えができないLSIを対象としたものであれば、回路を製造するための配置配線後の情報がコンフィギュレーションデータ29として配置配線部17から出力される。
【0024】
次に、図1を参照して、この実施形態の動作について説明する。
この実施形態の動作合成システム10において、設計記述で表される設計対象回路についての回路情報を得んとする場合、当該回路の設計記述21(設計記述情報)が文字入力部11から入力される。
この入力と併せて、制約条件22(制約条件情報)が文字入力部11から入力される。
設計記述21及び制約条件22を受け取る設計環境ツール13は、それらを動作合成部14に渡す。
【0025】
動作合成部14は、動作合成を行ってRTL回路データ23を出力すると共に、設計記述21及び制約条件22に応じた判定情報(回路情報)、例えば、動作合成で得られる状態と設計記述の対応関係24、パイプラインステージと設計記述の対応関係25を設計環境ツール13に出力すると共に、データフローグラフ26を設計環境ツール13に出力する。
動作合成部14からRTL回路データ23を受け取るRTLシミュレータ15は、状態遷移回数27(回路情報へ付加される情報)を求めて設計環境ツール13に出力する。
RTL回路データを受け取る論理合成部16は、そのRTL回路データに基づく論理合成を行い、そして論理合成の結果情報を受け取る配置配線部17は、論理合成に対する配置配線を行い、それぞれから各別に出力される論理合成情報及び配置配線情報は、回路図28(回路情報へ付加される情報)として設計環境ツール13に出力される。
【0026】
上述のようにして出力される各回路情報を受け取る設計環境ツール13は、回路情報を記憶し、回路情報を出力部18の画面に表示すると共に、出力部18の画面に表示される状態等を位置入力部12で指示し、その指示対応の回路情報を出力部18へ出力する。出力部18は、指示されて選択された回路情報の表示をその画面に表示し、入力された設計記述に対する設計の最適化判定を設計者に行わせる。
【0027】
このように、この実施形態の構成によれば、LSIの動作を記述した動作レベルの設計記述から具体的な機能(回路)を記述したRTL回路記述を生成する際に、当該設計記述の回路設計の最適化を判定するための回路情報を可視的に表示するように構成しているから、設計者に設計の最適化支援のための設計環境を提供することができる。したがって、高性能かつ小面積なLSIの設計期間の短縮化に大いに寄与する。
【実施形態2】
【0028】
図2は、この発明の実施形態2のための出力手段における表示例を示す図で、より具体的には、上記実施形態1において設計環境ツールが回路情報を出力手段に表示する方法を示す図である。
この実施形態の実施形態1と異なるところは、実施形態1において設計記述と該設計記述についての状態とを設計記述の行毎に状態を区別して可視的に設計者に提供するようにしたことにある。
この実施形態の動作合成システムでは実施形態1で説明した動作合成システム10のうちの、文字入力部11、設計環境ツール13、動作合成部14及び出力部18を主として用い、動作合成部14における回路情報として状態と設計記述の対応関係24(状態を区別するための状態番号(回路情報へ付加される情報)を含む)を設計環境ツール13に出力するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態1と略同じであるので、それらについての逐一の説明は省略する。
【0029】
次に、図2を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態1のそれと異なる点は、動作合成部14における動作合成で得られる回路情報が、状態と設計記述の対応関係であり、その回路情報が設計環境ツール13を介して出力部18に出力されることである。
動作合成部14から出力された状態と設計記述との対応関係が設計環境ツール13を介して出力部18に出力表示されることを図2を用いて説明すると次の通りである。
【0030】
図2に示すように、出力部18の画面左側の設計記述表示部に設計記述を表示する一方、画面右側の状態対応表示部に状態を表示している。左側の設計記述の行に対応する状態に回路が存在する場合に、その状態は、右側の状態番号を示す位置に■を付して表示してある。
動作合成部14では、1サイクルで複数の演算を行うため、一つの状態に対して複数の行が対応することがある。例えば、図2の設計記述表示部に示す設計記述の例では、状態1は行番号1および2に対応することを示している。また、その反対に、一つの行が複数の状態に分かれる可能性もある。例えば、行番号2は状態1〜4に対応することを示している。
このように、設計記述に対する状態を可視的に表示し、その表示を設計者が設計中の状態を視認して設計が意図しているものとなっているか否か、すなわち、設計が最適化しているか否かの判定に役立たせることができる。
【0031】
このように、この実施形態の構成によれば、設計者は、上述の表示を見て、当該設計記述の並列化状況を視覚的に知ることができる。このため、設計者は設計記述の中から並列化されている部分、または設計されていない部分を短期間に見付け出すことができるようになる。これらの情報を基に設計者は設計記述を変更することによって高性能かつ小面積なLSIを短期間に設計することができる。
【実施形態3】
【0032】
図3は、この発明の実施形態3である動作合成システムの構成を示すブロック図、また、図4は、実施形態3において設計環境ツールが回路情報を出力手段に出力して表示させる可視表示方法を示す図である。
である。
この実施形態の動作合成システム10Aは、次の点について実施形態1の動作合成システム10と異なる。その相違点は、文字入力部11Aから入力される制約条件22Aを遅延や演算器数・メモリ数・ポート数・レジスタ数など回路規模に関する条件とし、動作合成部14Aでの設計記述21及び制約条件22Aに基づく動作合成において、演算器・メモリ・ポートと設計記述との対応関係30(判定情報(回路情報))(演算器・メモリ・ポートの数を表す情報を含む)を設計環境ツール13Aに出力するように構成したことに主たる点がある。そして、設計環境ツール13Aは、出力部18の画面上の設計記述表示部に設計記述を、そして使用リソース表示部に演算器使用数・メモリ使用数・ポート使用数を表示させる。
この実施形態の構成を示す図3中のその他の構成は、実施形態1と略同じであるので、それらについての逐一の説明は省略する。
【0033】
次に、図3及び4を参照して、この実施形態の動作を説明する。
この実施形態の動作合成システム10Aの動作は、次の相違点を除いて、実施形態1と略同じである。その相違点は、文字入力部11Aから遅延や演算器数・メモリ数・ポート数・レジスタ数など回路規模に関する制約条件が、設計環境ツール13Aを介して動作合成部14Aに入力され、動作合成部14Aにおける動作合成において、演算器・メモリ・ポートと設計記述との対応関係30が生成されて設計環境ツール13Aへ出力され、設計環境ツール13Aの制御の下に出力部18の画面上の設計記述表示部に設計記述が表示されると共に、使用リソース表示部に演算器使用数・メモリ使用数・ポート使用数が表示される(図4)という点である。
上述のようにして設計記述と当該設計記述の各行に属する演算器数・メモリ数・ポート数とが表示されるから、その表示から、設計者は、動作合成された回路の内訳を把握することができる。例えば、行番号2では、演算器を5個、メモリを1個、ポートを0個使っていることを示している。
【0034】
このように、この実施形態の構成によれば、設計記述と当該設計記述の行毎の演算器・メモリ・ポートの数とを表示するようにしているから、設計者は、該当する部分の回路で使われている回路規模を知ることができる。これにより、設計者は、設計記述で必要以上に大きなビット幅の演算器を使っていないか、冗長な演算やメモリアクセス、ポートアクセスが行われていないかを確認することができる。これらの情報を基に設計者は設計記述を変更することによって高性能かつ小面積なLSIを短期間に設計することができる。
【実施形態4】
【0035】
図5は、上記実施形態1において設計環境ツールがもう1つの回路情報を出力手段に出力して表示させる、この発明の実施形態4のための可視表示方法を示す図である。
この実施形態の実施形態1と異なるところは、実施形態1において設計記述と該設計記述についての状態との可視表示に加えて、データフローグラフ又は回路図の可視表示を設計者に提供するようにした点にある。
この実施形態の動作合成システムでは実施形態1で説明した動作合成システム10のうちの、文字入力部11、位置入力部12、設計環境ツール13、動作合成部14、論理合成部16、配置配線部17及び出力部18を主として用い、動作合成部14における判定情報(回路情報)として、状態と設計記述の対応関係を設計環境ツール13を介して出力部18に出力して表示すると共に表示されている所定の状態を位置入力部12で指示し、指示された状態に対応する関連部分、例えば、データフローグラフ26や回路図28内の指示対応の関連部分(回路情報へ付加される情報)をも表示するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態1と略同じであるので、それらについての逐一の説明は省略する。
【0036】
次に、図5を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態1のそれと異なる点は、動作合成部14から出力されて表示される回路情報、例えば、状態と設計記述の対応関係内の所定の状態を位置入力部12で指示してデータフローグラフ26や回路図28内の指示対応の関連部分を設計環境ツール13を介して出力部18に出力させるようにしたことにある。
この動作上の相違点について図5を用いて具体的に説明すると次の通りである。
【0037】
設計者が図2の状態又は図4の演算器・メモリ・ポートの数よりも詳細に回路を調べたいとき、動作合成途中に動作合成部14から出力されるデータフローグラフ26や、論理合成部16及び配置配線部17から出力される合成結果の回路図28を参照する。この参照は、図5に示すように、これらデータフローグラフ又は回路図と状態番号との間を位置入力部12で情報リンクさせることによって行われ、これによって情報間の対応関係を設計者が把握し易くなる。例えば、設計者がマウスやタッチパッドなどの位置入力部12によって或る状態を指示してクリックした場合に、データフローグラフ又はデータパスが示された回路図の中から指示対応の状態に関連する部分を出力部18の画面上に表示する。
上述のようにして、出力部18の画面上に表示されている状態の中の所定の状態の指示・クリックによる情報リンクを用いれば、さらに詳細な回路の把握ができる。
【0038】
このように、この実施形態の構成によれば、設計記述に関係する状態や演算器・メモリ・ポートの数だけでは判らない回路についての詳細な情報との情報リンクを生じさせているから、設計者は複雑な回路であっても短期間に設計記述に関連する回路についての詳細な情報に辿りつくことができる。これらの情報に基づいて設計者は設計記述を変更することにより、高性能かつ小面積なLSIを短期間に設計することができる。
【実施形態5】
【0039】
図6は、上記実施形態1において設計環境ツールがさらにもう1つの回路情報を出力手段に出力して表示させる、この発明の実施形態5のための可視表示方法を示す図である。
この実施形態の実施形態1と異なるところは、実施形態1において設計記述と該設計記述についての状態との可視表示に加えて、状態の遷移並びにループ及びそのループの制御記述の可視表示を設計者に提供するようにした点にある。
この実施形態の動作合成システムでは実施形態1で説明した動作合成システム10のうちの、文字入力部11、位置入力部12、設計環境ツール13、動作合成部14及び可視出力部18を主として用い、動作合成部14における判定情報(回路情報)として状態と設計記述の対応関係(状態間に表示する遷移の表示情報を含む)を設計環境ツール13を介して出力部18に出力して状態及びその遷移を表示すると共に、表示されている所定の状態の遷移を位置入力部12で指示してクリックすると、指示対応の状態の遷移に対応するループやその制御記述(回路情報へ付加される情報)をも表示するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態1と略同じであるので、それらについての逐一の説明は省略する。
【0040】
次に、図6を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態1のそれと異なる点は、動作合成部14から出力されて表示される回路情報、例えば、状態と設計記述の対応関係に状態の遷移を示す矢印(→又は←等)を設計環境ツール13を介して出力部18の画面に表示すると共に、その表示中の所定の矢印を位置入力部12で指示してクリックする、すなわち、矢印とループや条件分岐等の制御記述との情報リンクを生じさせて指示対応の制御記述を設計環境ツール13を介して出力部18に強調表示させるようにしたことにある。
【0041】
上述の動作上の相違点について図6を用いて具体的に説明すると次の通りである。
状態の遷移を示す矢印(→又は←等)が出力部18の画面の状態番号間に表示される。
そして、設計者が図6に示すような画面の状態対応表示部内の状態遷移を位置入力部12によって指示してクリックする、例えば、状態番号4を白抜きの太い矢印で指示してクリックすると、設計記述表示部内の制御記述を囲繞線(制御記述がループであることを示す閉じた線)で囲んで表示されると共に、白抜きの太い矢印と囲繞線との間に中太の黒矢印が表示されてループやそのループの制御記述を強調表示させる。
【0042】
出力部18の画面の状態番号間に表示される状態遷移表示(上述の矢印(→又は←等)によって、設計者は、動作合成された状態の遷移と設計記述とを見比べることができる。
また、上述の情報リンクによって、設計者はどの制御記述が状態遷移を引き起こしているかを、上述の強調表示から容易に知ることができる。
【0043】
このように、この実施形態の構成によれば、設計記述と関連する状態遷移との間を情報リンクさせているから、設計者は、ループなどの設計記述中の制御記述と動作合成された結果の状態遷移の関係を知ることができる。これにより、どの制御記述によって状態数を多く使っているかを短期間で知ることができる。これらの情報を基に設計者は設計記述を変更することによって高性能かつ小面積なLSIを短期に設計することができる。
【実施形態6】
【0044】
図7は、上記実施形態1において設計環境ツールがさらにもう1つの回路情報を出力手段に出力して表示させる、この発明の実施形態6のための可視表示方法を示す図である。
この実施形態の実施形態1と異なるところは、実施形態1において設計記述と該設計記述についての状態との可視表示に加えて、状態遷移回数の可視表示を設計者に提供するようにした点にある。
【0045】
この実施形態の動作合成システムでは実施形態1で説明した動作合成システム10のうちの、文字入力部11、設計環境ツール13、動作合成部14、RTLシミュレータ15及び出力部18を主として用い、動作合成部14における判定情報(回路情報)として状態と設計記述の対応関係24及びRTLシミュレータ15から出力される状態遷移回数27(回路シミュレーションで得られる回数表示の制御情報を含む)を設計環境ツール13を介して出力部18に出力して状態を表示すると同時に、その状態の遷移表示に併せてその回数(回路情報へ付加される情報)を識別可能に表示するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態1と略同じであるので、それらについての逐一の説明は省略する。
【0046】
次に、図7を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態1のそれと異なる点は、動作合成部14から出力されて表示される回路情報、例えば、状態と設計記述の対応関係に状態遷移を示す矢印(→又は←等)を設計環境ツール13を介して出力部18の画面上に表示するに際し、図7に示すように、矢印の線の線幅を状態遷移の回数に応じて変えるようにしたことにある。
【0047】
上述の動作上の相違点について図7を用いて具体的に説明すると次の通りである。
回路シミュレーション後に、状態の遷移を示す矢印(→又は←等)の、出力部18の画面の状態番号間への表示において、状態遷移回数が多いとき、矢印の線を太くして表示する。例えば、図7では、状態番号1から状態番号2への遷移(太線)は、状態番号0から状態番号1への遷移(細線)と比べて回数が多いことを示しており、状態遷移回数を強調して表示されていることの可視的表示を提供する。
【0048】
このように、この実施形態の構成によれば、設計者は、状態遷移回数の強調表示によって制御記述によるループの回数を視覚的に知ることができる。したがって、設計記述中のどこを重点的に最適化すればよいかの判断の容易化に役立つ。これらの情報に基づいて設計者は設計記述を変更することによって高性能かつ小面積なLSIを短期間に設計することができる。
【実施形態7】
【0049】
図8は、上記実施形態1において設計環境ツールがさらにもう1つの他の回路情報を出力手段に出力して表示させる、この発明の実施形態7のための可視表示方法を示す図である。
この実施形態の実施形態1と異なるところは、実施形態1において設計記述と該設計記述についての状態との可視表示に加えて、パイプライン回路についてのステージ情報の可視表示を設計者に提供するようにした点にある。
【0050】
この実施形態の動作合成システムでは実施形態1で説明した動作合成システム10のうちの、文字入力部11、設計環境ツール13、動作合成部14及び出力部18を主として用い、動作合成部14における判定情報(回路情報)として、状態と設計記述の対応関係(状態番号及びステージ情報を含む)を設計環境ツール13を介して出力部18に出力して状態を表示する際に、状態番号にステージ番号(ステージ情報)(回路情報へ付加される情報)をも付加して表示するように構成したことにその特徴がある。
この実施形態で必要とする他の構成は、実施形態1と略同じであるので、それについての逐一の説明は省略する。
【0051】
次に、図8を参照して、この実施形態の動作を説明する。
この実施形態の動作が、実施形態1のそれと異なる点は、動作合成部14から出力されて表示される回路情報、例えば、状態と設計記述の対応関係に状態番号を出力手段12の画面上に表示する際、図8に示すように、その状態番号に添え字としてステージ番号を付加して表示するようにしたことにある。
【0052】
上述の動作上の相違点について図8を用いて具体的に説明すると次の通りである。
図2と同様の方法で、状態対応表示部に状態番号にパイプラインステージのステージ番号を添え字として(下付きで)表示する。これにより、LSI設計における性能の要となるパイプライン回路と設計記述の対応する行との関係を設計者に視認させることができる。
【0053】
このように、この実施形態の構成によれば、状態とパイプラインステージの情報との対応関係を可視的に表示しているから、設計者は、回路最適化のみならず、RTLシミュレータを使ったデバッグ時にも、設計記述と状態およびパイプラインステージとの対応関係を把握し易くなる。
これは、複数の状態が折り畳まれて一つの状態に纏められるパイプライン回路合成において、状態だけの情報ではどのように回路が合成されたのかを把握するのが難しくなるのを大幅に緩和するのに役立つし、また、一つの状態当たりの回路規模が大きくなって来た場合のデバッグの容易化にも役立つ。
そして、把握が容易となった、設計記述と状態およびパイプラインステージとの対応関係に基づいて、設計者は、設計記述の変更をして高性能かつ小面積なLSIの確実な設計を短期間に達成することができる。
【実施形態8】
【0054】
この実施形態の実施形態1乃至実施形態7と異なるところは、これらの実施形態においては設計記述の行毎でなく、当該行内の所定の一部(記述部)について回路情報を生成してその可視表示を設計者に提供するようにした点にある。
すなわち、この実施形態においては、上述の実施形態1乃至実施形態7の動作合成システム10又は10Aの動作合成部14又は14Aにおける動作合成において行内の所定の記述部、例えば、演算子について上述した判定情報(回路情報)と同等の判定情報(回路情報)を生成して設計環境ツール13又は13Aに出力し、出力部18の画面上にそれを可視的に表示するように構成したことにその特徴部分がある。
したがって、その動作においても、動作合成部14又は14Aにおいて生成される回路情報が、設計記述の行内の所定の記述部に対応するものとなることを除いて、上述の各実施形態と略同じとなる。
この実施形態の効果も、設計記述の行内の所定の記述部について回路設計の最適化判定のための回路情報が設計者に提供されることにその大きな特長があるほか、上述の各実施形態と同等のものが得られる。
【0055】
上述の各実施形態で得られる効果のうち、並列化と直列化との効果について説明する。
図9は、演算の並列化による状態数の減少と回路規模の増大との関係及び演算の直列化による状態数の増大と回路規模の縮小との関係を説明する図である。
加算を3回繰り返す設計記述と遅延制約を図1又は図3の動作合成部14又は14Aに入力すると、遅延制約に応じて状態数が決まる。例えば、遅延制約が加算1段分と同じ遅延であると仮定すると、カスケード(直列)に加算器を接続する回路で実現すると左側に示す3状態の回路が合成される。この時に、各状態で必要な加算器は最大で1個となる。これに対して右側に示すように、加算器をバランスツリーで接続して並列化すると状態数は2状態に減る。カスケード接続の場合と比べて、所要サイクルは1サイクル分減るため、性能が高くなる。その一方、並列化によって加算器の使用量が増えるため必要な加算器は最大で2個に増える。必要な加算が増えると回路面積は増大する。この図では演算を例として並列化の効果と影響を示したが、メモリやポートに関しても同様な効果や影響がある。
【0056】
以上、この発明の実施形態を、図面を参照して詳述してきたが、この発明の具体的な構成は、これらの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもそれらはこの発明に含まれる。
例えば、実施形態2での状態番号、実施形態3での演算器、メモリ、ポートの数、実施形態5での遷移の表示情報、実施形態6での回数表示の制御情報及び実施形態7でのステージ情報(回路情報へ付加される情報)を回路情報に含めて動作合成部14、14Aから設計環境ツール13、13Aへ出力されることを説明したが、回路情報(例えば、状態と設計記述の対応関係)を設計環境ツール13、13A等で受け取り、その情報に基づいて回路情報へ付加される情報を生成するようにしてもよい。
また、上述の実施形態では、単一の出力部18(単一のディスプレイの画面内)に、設計記述と状態等とを並べて同時に表示させる例を説明したが、これに代えて、2つのディスプレイを並べ、設計記述を一方のディスプレイの画面に、また、状態等を他方のディスプレイの画面内に同時に表示させるようにしてもよい。
また、動作合成部14、RTLシミュレータ15、論理合成部16及び配置配線部17は、設計環境ツール13とは別の計算機及びこれを制御するプログラムの上に構築されてもよい。
【産業上の利用可能性】
【0057】
ここに開示している動作合成システム及び動作合成方法並びに動作合成プログラムは、電子回路以外の技術分野において設計支援を必要とする場合にも適用し得る。
【符号の説明】
【0058】
10、10A 動作合成システム
11 文字入力手段(設計情報入力手段)
12 位置入力手段(判定情報出力制御手段の一部)
13 設計環境ツール(判定情報出力制御手段の一部)
14 動作合成部(判定情報出力制御手段の一部)
15 RTLシミュレータ(判定情報出力制御手段の一部)
16 論理合成部(判定情報出力制御手段の一部)
17 配置配線部(判定情報出力制御手段の残部)
18 出力部

【特許請求の範囲】
【請求項1】
第1のプログラミング言語で回路の動作を記述した第1の記述を入力する設計情報入力手段と、
該設計情報入力手段から受け取る前記第1の記述に基づく、前記第1の記述から前記第1のプログラミング言語より抽象度の低い第2のプログラミング言語で記述される第2の記述への変換処理によって生成される、前記第1の記述が最適となっているか否かの判定情報の出力を制御する判定情報出力制御手段とを備えることを特徴とする動作合成システム。
【請求項2】
前記設計情報入力手段は、前記第1の記述と共に、前記第1の記述に対する制約条件を入力し、前記判定情報出力制御手段は、前記第1の記述及び制約条件に基づく前記変換処理によって生成される前記判定情報の出力を制御することを特徴とする請求項1記載の動作合成システム。
【請求項3】
前記判定情報は、前記第1の記述と該第1の記述で決まる状態又は回路構成要素数であることを特徴とする請求項1又は2記載の動作合成システム。
【請求項4】
前記判定情報出力制御手段は、前記第1の記述と該第1の記述で決まる前記状態又は前記回路構成要素数を表示装置に並べて同時に表示させる表示制御手段であることを特徴とする請求項3記載の動作合成システム。
【請求項5】
前記判定情報は、前記第1の記述と前記状態及び該状態を指定したときの、当該指定に対応するデータフローグラフ又は回路図であることを特徴とする請求項3又は4記載の動作合成システム。
【請求項6】
前記判定情報は、前記第1の記述と前記状態及び該状態の遷移を指定したときの、当該指定に対応する前記設計記述内の制御記述であることを特徴とする請求項3又は4記載の動作合成システム。
【請求項7】
前記判定情報は、前記第1の記述と前記状態及び該状態の遷移に対応する状態遷移回数情報であることを特徴とする請求項3又は4記載の動作合成システム。
【請求項8】
前記判定情報は、前記第1の記述と前記状態及び当該状態に対応する前記状態毎のステージ番号であることを特徴とする請求項3又は4記載の動作合成システム。
【請求項9】
第1のプログラミング言語で回路の動作を記述した第1の記述を入力し、
入力される前記第1の記述に基づく、前記第1の記述から前記第1のプログラミング言語より抽象度の低い第2のプログラミング言語で記述される第2の記述への変換処理によって生成される、前記第1の記述が最適となっているか否かの判定情報の出力を制御することを特徴とする動作合成方法。
【請求項10】
前記第1の記述を前記第1の記述に対する制約条件と共に入力し、入力される前記第1の記述及び前記制約条件に基づく前記変換処理によって生成される前記判定情報の出力を制御することを特徴とする請求項9記載の動作合成方法。
【請求項11】
前記判定情報は、前記第1の記述と該第1の記述で決まる状態又は回路構成要素数であることを特徴とする請求項9又は10記載の動作合成方法。
【請求項12】
前記判定情報の出力制御は、前記第1の記述と該第1の記述で決まる状態又は回路構成要素数を表示装置に並べて同時に表示させることを特徴とする請求項11記載の動作合成方法。
【請求項13】
前記判定情報は、前記第1の記述と前記状態及び該状態を指定したときの、当該指定に対応するデータフローグラフ又は回路図であることを特徴とする請求項11又は12記載の動作合成方法。
【請求項14】
前記判定情報は、前記第1の記述と前記状態及び該状態の遷移を指定したときの、当該指定に対応する前記設計記述内の制御記述であることを特徴とする請求項11又は12記載の動作合成方法。
【請求項15】
前記判定情報は、前記第1の記述と前記状態及び該状態の遷移に対応する状態遷移回数情報であることを特徴とする請求項11又は12記載の動作合成方法。
【請求項16】
前記判定情報は、前記第1の記述と前記状態及び当該状態に対応する前記状態毎のステージ番号であることを特徴とする請求項11又は12記載の動作合成方法。
【請求項17】
コンピュータを、請求項1乃至8のうちのいずれか一に記載の動作合成システムとして機能させることを特徴とする動作合成プログラム。
【請求項18】
コンピュータに、請求項9乃至16のうちのいずれか一に記載の動作合成方法

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−108164(P2011−108164A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−265132(P2009−265132)
【出願日】平成21年11月20日(2009.11.20)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(303013763)NECエンジニアリング株式会社 (651)
【Fターム(参考)】