(57)【要約】      （修正有）【課題】ハイレベル言語のメソッドをハードウエア構成図に転換する方法を提供する。【解決手段】オブジェクト指向プログラミングコードを分析し、暫時ハードウエア構成図を形成（Ｓ１０３）する。同時に暫時ハードウエア構成図に対応し、且つパブリックのメソッド、パラメータ及びリターンバリューを獲得（Ｓ１０５）し、それをクラススタートポイントへ連接（Ｓ１０７）する。クラス情報オブジェクト及び暫時ハードウエア構成図を分析し、メソッドコールポイントから出力/入力した連接線及びクラス情報オブジェクト内のメソッド情報から、メソッドコールテーブルが形成（Ｓ１０９）される。メソッドコールテーブルによって、メソッドコールポイントに連接した連接線を、メソッドスタートポイントへ連接しなおし（Ｓ１１１）、暫時ハードウエア構成図をハードウエアエレメントに対応したハードウエア構成図に転換する。【選択図】図１
2007183896.tif 000002
【特許請求の範囲】
【請求項１】
ハイレベル言語は、少なくともひとつのクラスを含むハイレベル言語のメソッドをハードウエア構成図に転換する方法において、その方法は、
（Ａ）ハイレベル言語プログラミングコードを読み取り、
（Ｂ）ハイレベル言語プログラミングコードを分析し、そのハイレベル言語プログラミングコードのクラス情報を収集し、これをクラス情報オブジェクト内に保存し、暫時ハードウエア構成図を形成し、そのうち、このクラス情報はメソッドオブジェクト、パラメータオブジェクト及びリターンバリューオブジェクトを含み、
（Ｃ）クラス情報オブジェクトを分析し、暫時ハードウエア構成図内から暫時ハードウエア構成図内に対応するすべてのパブリックとプライベートを含むメソッド、パラメータ及びリターンバリューを獲得し、
（Ｄ）ステップ（Ｃ）で獲得したパブリックメソッド、パラメータ及びリターンバリューを、暫時ハードウエア構成図のクラススタートポイントに連接し、プライベートメソッド、パラメータ及びリターンバリューはクラススタートポイントに接続せず、
（Ｅ）クラス情報オブジェクト及び暫時ハードウエア構成図を分析し、この暫時ハードウエア構成図内のメソッドコールポイントの少なくとも一つの出力/入力連接線、及びクラス情報オブジェクト内のメソッド情報オブジェクトからメソッドコールテーブルを呼び出し、
（Ｆ）メソッドコールテーブルを使って、暫時ハードウエア構成図内のメソッドコールポイントに連接した連接線をメソッドスタートポイントへ連接し直し、ハイレベル言語プログラミングコード内メソッドコールを表示し、また暫時ハードウエア構成図をハードウエアエレメントに対応するハードウエア構成図に転換するというステップを含むことを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法。
【請求項２】
請求項１記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記ステップ（Ｄ）は、パブリックのメソッド、パラメータ及びリターンバリューをクラススタートポイントへ連接した時、マルチプレクサとマルチプレクサ解除器を使用してクラススタートポイントの連接線に制御連接することを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法。
【請求項３】
請求項１記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記ステップ（Ｆ）は、マルチプレクサ及びマルチプレクサ解除器を使用してメソッドコールポイントの連接線へ連接することを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法。
【請求項４】
請求項１記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記ハードウエア構成図は、ハードウエアエレメントとハードウエアエレメント間の連接関係を表示することを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法。
【請求項５】
請求項１記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記ハイレベル言語は、ジャバ(JAVA（登録商標）)プログラミング言語であることを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法。
【請求項６】
請求項５記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記少なくともひとつのクラスは、パブリックメソッド、プライベートメソッド、プロテクトメソッド、フレンドメソッドの内のひとつのメソッドを含むことを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハイレベル言語のメソッドの転換に関するもので、特にハイレベル言語のメソッドをハードウエア構成図（Hardware Component Graphic,HCG）に転換する方法を指す。
【背景技術】
【０００２】
公知のハードウエア記述言語（例として：ＶＨＤＬ、Verilog）は、ハイレベル言語のプログラムロジックと実行プロセスを直接記述して用いることができない。このため、先ずハイレベル言語をＵＭＬ(Unified Modeling Language)内に定義したアクティブダイアグラム(Activity Diagram,AD)に転換する。ＡＤは一種のプロセスの記述図であることから、ハイレベル言語のプログラムロジックと実行プロセスを表示して用いることができる。しかし、ＡＤは実際のハードウエアとの間に何も関連がないため、直接ＡＤをハードウエア記述言語に転換することができない。そのため、先ずアクティブダイアグラム（ＡＤ）をハードウエア構成図(Hardware Component Graph,HCG)に転換しなければならない。
【０００３】
しかしながら、ハードウエア構成図（ＨＣＧ）に転換過程中、ハイレベル言語内に対応するメソッドコール(Method calls)は、有効に表示できない。即ち公知のハイレベル言語のメソッドをハードウエア構成図（ＨＣＧ）に転換する方法は、ハイレベル言語のメソッドを正確にハードウエア構成図（ＨＣＧ）のエレメントに転換できない。故にハードウエア構成図（ＨＣＧ）から通常のハードウエア記述言語に転換することもできない。このため、公知のハイレベル言語のメソッドをハードウエア構成図（ＨＣＧ）に転換する方法には数々の問題があり、改善が必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、ハイレベル言語のメソッドをハードウエア構成図に転換する方法を提供し、ハイレベル言語のメソッドをハードウエアエレメント対応のハードウエア構成図に転換することである。
【０００５】
本発明の特徴は、ハイレベル言語のメソッドをハードウエア構成図に転換する方法を提出することで、このハイレベル言語は、少なくともひとつのクラスを含み、その方法は以下のステップを含む。（Ａ）ハイレベル言語プログラミングコードを読み取る。（Ｂ）ハイレベル言語プログラミングコードを分析し、そのハイレベル言語プログラミングコードのクラス情報を収集し、これをクラス情報オブジェクト内に保存し、暫時ハードウエア構成図（ＨＣＧ）を形成する。そのうち、このクラス情報はメソッドオブジェクト、パラメータオブジェクト及びリターンバリューオブジェクトを含む。（Ｃ）クラス情報オブジェクトを分析し、暫時ハードウエア構成図（ＨＣＧ）内から暫時ハードウエア構成図（ＨＣＧ）内に対応するすべての（パブリックとプライベートを含む）メソッド、パラメータ及びリターンバリューを獲得する。（Ｄ）ステップ（Ｃ）で獲得したパブリックメソッド、パラメータ及びリターンバリューを暫時ハードウエア構成図（ＨＣＧ）のクラススタートポイントに連接し、プライベートメソッド、パラメータ及びリターンバリューはクラススタートポイントに接続しない。（Ｅ）クラス情報オブジェクト及び暫時ハードウエア構成図（ＨＣＧ）を分析し、この暫時ハードウエア構成図（ＨＣＧ）内のメソッドコールポイントの少なくとも一つの出力/入力連接線、及びクラス情報オブジェクト内のメソッド情報オブジェクトからメソッドコールテーブルを呼び出す。（Ｆ）メソッドコールテーブルを使って、暫時ハードウエア構成図（ＨＣＧ）内のメソッドコールポイントに連接した連接線をメソッドスタートポイントへ連接し直し、ハイレベル言語プログラミングコード内メソッドコールを表示する。また暫時ハードウエア構成図（ＨＣＧ）をハードウエアに対応するハードウエア構成図（ＨＣＧ）に転換する。
【課題を解決するための手段】
【０００６】
請求項１の発明は、ハイレベル言語は、少なくともひとつのクラスを含むハイレベル言語のメソッドをハードウエア構成図に転換する方法において、その方法は、
（Ａ）ハイレベル言語プログラミングコードを読み取り、
（Ｂ）ハイレベル言語プログラミングコードを分析し、そのハイレベル言語プログラミングコードのクラス情報を収集し、これをクラス情報オブジェクト内に保存し、暫時ハードウエア構成図を形成し、そのうち、このクラス情報はメソッドオブジェクト、パラメータオブジェクト及びリターンバリューオブジェクトを含み、
（Ｃ）クラス情報オブジェクトを分析し、暫時ハードウエア構成図内から暫時ハードウエア構成図内に対応するすべてのパブリックとプライベートを含むメソッド、パラメータ及びリターンバリューを獲得し、
（Ｄ）ステップ（Ｃ）で獲得したパブリックメソッド、パラメータ及びリターンバリューを、暫時ハードウエア構成図のクラススタートポイントに連接し、プライベートメソッド、パラメータ及びリターンバリューはクラススタートポイントに接続せず、
（Ｅ）クラス情報オブジェクト及び暫時ハードウエア構成図を分析し、この暫時ハードウエア構成図内のメソッドコールポイントの少なくとも一つの出力/入力連接線、及びクラス情報オブジェクト内のメソッド情報オブジェクトからメソッドコールテーブルを呼び出し、
（Ｆ）メソッドコールテーブルを使って、暫時ハードウエア構成図内のメソッドコールポイントに連接した連接線をメソッドスタートポイントへ連接し直し、ハイレベル言語プログラミングコード内メソッドコールを表示し、また暫時ハードウエア構成図をハードウエアエレメントに対応するハードウエア構成図に転換するというステップを含むことを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法としている。
請求項２の発明は、請求項１記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記ステップ（Ｄ）は、パブリックのメソッド、パラメータ及びリターンバリューをクラススタートポイントへ連接した時、マルチプレクサとマルチプレクサ解除器を使用してクラススタートポイントの連接線に制御連接することを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法としている。
請求項３の発明は、請求項１記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記ステップ（Ｆ）は、マルチプレクサ及びマルチプレクサ解除器を使用してメソッドコールポイントの連接線へ連接することを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法としている。
請求項４の発明は、請求項１記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記ハードウエア構成図は、ハードウエアエレメントとハードウエアエレメント間の連接関係を表示することを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法としている。
請求項５の発明は、請求項１記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記ハイレベル言語は、ジャバ(JAVA（登録商標）)プログラミング言語であることを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法としている。
請求項６の発明は、請求項５記載のハイレベル言語のメソッドをハードウエア構成図に転換する方法において、前記少なくともひとつのクラスは、パブリックメソッド、プライベートメソッド、プロテクトメソッド、フレンドメソッドの内のひとつのメソッドを含むことを特徴とするハイレベル言語のメソッドをハードウエア構成図に転換する方法としている。
【発明の効果】
【０００７】
本発明は、ジャバ(JAVA（登録商標）)プログラミング言語内のメソッドコール(method call)をハードウエアエレメントに対応できるハードウエア構成図に転換する。このハードウエア構成図（ＨＣＧ）とＶＨＤＬがひとつひとつ対応し、簡単に変換できる。公知のハイレベル言語内のメソッドコールがハードウエアエレメントを有効に表示できない問題を解決し、更に公知の技術では、ハードウエア構成図（ＨＣＧ）を従来のハードウエア記述言語に正確に転換できなかった問題を解決した。
【発明を実施するための最良の形態】
【０００８】
本発明のハイレベル言語のメソッドをハードウエア構造図に転換する方法は、ハイレベル言語のメソッドをハードウエアエレメント対応のハードウエア構成図に転換することができるものである。図１はハイレベル言語のメソッドをハードウエア構造図に転換する方法のフローチャートである。先ず、ステップＳ１０１内で、ハイレベル言語プログラムコードを読み取る。そのうち、このハイレベル言語は少なくともひとつのクラスを含む。本実施例では、このハイレベル言語はＪＡＢＡプログラム言語である。このハイレベル言語のメソッドは、パブリックメソッド(pubic Method)、プライベートメソッド(Private Method)、プロテクトメソッド(Protected Method)、フレンドメソッド(Friend Method)に分けられる。このメソッドがパブリックであると宣告された時、如何なるメソッドもアクセスされる。またメソッドがプライベートであると宣告されると、メンバーだけがアクセスでき、プロテクトメソッドであると、宣告された時には、同一パッケージもしくはそのメソッドに続くサブクラス内のメソッドだけがアクセスできる。またフレンドメソッドと宣告された時には、同一パッケージ内のメソッドだけがアクセスでき、これにより、プロテクトメソッドとフレンドメソッドはすべてプライベートクラスに類別される。
【０００９】
図２はジャバ（JAVA（登録商標））プログラム言語のプログラミングコードで、そのうち、公開クラスMathを含む。この公開クラスMathは、プライベートメソッドadd及びパブリックメソッドtestが含まれる。
【００１０】
ステップＳ１０３では、このハイレベル言語プログラミングコードを分析し、このハイレベル言語プログラミングコードのクラス情報を収集することによって、これをクラス情報オブジェクト(classinfo object)内に保存し、暫時ハードウエア構成図（ＨＣＧ）を形成する。このクラス情報オブジェクト(classinfo object)には、クラス名称(class name)オブジェクト、メソッド( method)オブジェクト、パラメータ(parameter)オブジェクト及びリターンバリュー(return value)オブジェクトを含む。図３は図２に基づくジャバ(JAVA（登録商標）)プログラミングコードが形成する暫時ハードウエア構成図（ＨＣＧ）である。図３に示すとおり、暫時ハードウエア構成図（ＨＣＧ）内に於いて、マーキングした‘Math’の丸囲み３１０がジャバ(JAVA（登録商標）)プログラミングコードのパブリッククラスMATHに対応し、且つマーキングしたMATHの丸囲み３１０はクラススタートポイント(class start node)を表示する。
【００１１】
マーキングした”add”の丸囲みは、ジャバ(JAVA（登録商標）)プログラミングコードのプライベートメソッドaddに対応し、且つマーキングしたaddの囲み３２０はメソッドスタートポイント(method start node)を表示する。”test”をマーキングした丸囲み３３０は、ジャバ(JAVA（登録商標）)プログラミングコードのパブリックメソッドtestに対応し、且つこのマーキングしたtestの丸囲みは、メソッドスタートポイント(method start node)を表示する。ジャバ(JAVA（登録商標）)プログラミングコードに於いて、パブリックメソッドtestがプライベートメソッドaddを呼び出すため、暫時ハードウエア構成図（ＨＣＧ）において”Call this add”のポイント３４０がマーキングされる。
【００１２】
図２からわかるように、パブリックメソッドtest内で、プライベートメソッドaddを呼び出し、パラメータｃ、ｄをプライベートメソッドaddのパラメータa,bへ送り、そのため図３の方形囲み１に囲った部分がパラメータ転送部分となる。また方形囲み２で囲った部分はプライベートメソッドaddのメソッドコール(method call)を分ける。
【００１３】
この暫時ハードウエア構成図（ＨＣＧ）に形成する過程に於いて、暫時ハードウエア構成図（ＨＣＧ）を形成するだけでなく、同時にジャバ(JAVA（登録商標）)プログラミングコード内のクラス情報(class info)を収集する。このクラス情報には、クラス名称(class name)、メソッド名称(method name)、パラメータ(parameter)及びリターンバリュー(return value)等の情報が含まれる。またクラス情報をクラス情報オブジェクト内で保存する。
【００１４】
ステップＳ１０５内に於いて、このクラス情報オブジェクト及び暫時ハードウエア構成図（ＨＣＧ）を分析し、暫時ハードウエア構成図（ＨＣＧ）に対応し、パブリックのメソッド(method)、パラメータ(parameter)及びリターンバリュー(return value)を獲得する。
【００１５】
ステップＳ１０７に於いて、ステップＳ１０５で取得したパブリックメソッド(method)、パラメータ(parameter)及びリターンバリュー(return value)を暫時ハードウエア構成図（ＨＣＧ）のクラススタートポイント(class start node)に連接する。クラス情報オブジェクト及び暫時ハードウエア構成図（ＨＣＧ）を通じ、暫時ハードウエア構成図（ＨＣＧ）に対応するいずれのメソッド(method)、パラメータ(parameter)及びリターンバリュー(return value)がパブリックであることがわかる。このパブリックメソッド(method)、パラメータ(parameter)及びリターンバリュー(return value)をマーキングしたMathの丸囲み３１０のクラススタートポイント(class start node)に連接する。これらのパブリックメソッド(method)、パラメータ(parameter)及びリターンバリュー(return value)の最後には対応するハードウエアインターフェイスがあり、外部の信号出力/入力に対応する。処理のために接続する時に、もしもリーディングもしくはライティングが多い場合、マルチプレクサ(multiplexer)及びマルチプレクサ解除器(De- multiplexer)を設置してクラススタートポイント(class start node)の連接線に繋ぐ。
【００１６】
図３に示すとおり、マーキングした”test”の丸囲み３３０は、ジャバ(JAVA（登録商標）)プログラミングコードのパブリックメソッド(method)に対応するため、パブリックメソッドtestのメソッドスタートポイント(method start node)とパラメータｃとｄ、及びリターンポイント(return node)はすべてマーキングしたMath囲み３１０のクラススタートポイント(class start node)にすべて連接する。図４の太線に示すとおりである。マーキングした”add”の囲み３２０は、ジャバ(JAVA（登録商標）)プログラミングコードのプライベートメソッドaddに対応するため、プライベートメソッドaddのメソッドスタートポイント(method start node)とパラメータｃとｄ、及びリターンポイント(return node)はすべてマーキングしたMathの囲み３１０のクラススタートポイント(class start node)に連接する必要がない。
【００１７】
ステップＳ１０９に於いて、クラス情報オブジェクト(classinfo object)、及び暫時ハードウエア構成図（ＨＣＧ）を分析し、この暫時ハードウエア構成図（ＨＣＧ）内のメソッドコールポイント(method call node)の少なくともひとつの出力/入力連接線(in/out edges)、及びクラス情報オブジェクト(classinfo object)内のメソッド情報(method info)オブジェクトから、メソッドコールテーブル(method call table)を出す。図４及びクラス情報オブジェクト(classinfo object)内の情報は、メソッドコール(method call)の情報、例として何処にメソッドコール(method call)があるか、コールする必要があるメソッドはどのメソッドか、どのメソッドコールポイント(method call node)をコールするのかのコールを収集することができる。関連情報をメソッドコールテーブル(method call table)に記録する。
【００１８】
ステップＳ１１１に於いて、メソッドコールテーブル(method call table)を使い、暫時ハードウエア構成図（ＨＣＧ）内のメソッドコールポイント(method call node)に連接した連接線を、メソッドスタートポイント(method start node)に連接し直し、ハイレベル言語プログラミングコード内のメソッドコール(method call)を表示し、暫時ハードウエア構成図（ＨＣＧ）をハードウエア対応のハードウエア構成図に転換する。処理接続する時、もしも多数のメソッドコールポイント(method call node)がひとつのメソッドを呼び出す場合、マルチプレクサ(multiplexer)及びマルチプレクサ解除器(De- multiplexer)を設置する必要がある。
【００１９】
図４に於いて、マーキングした”Call this add”のポイント３４０へ連接したreq4p_read連接線を、マーキングしたadd丸囲み３２０のメソッドスタートポイント(method start node)へ連接し、addメソッドのコールを表示する。またこのaddメソッドリターンバリューを代表するRxN_retaddziziポイントを、testメソッドのRxN_retaddziziに連接し、addメソッド演算の結果をtestメソッドへ伝送する。図５の太線は、ステップＳ１１１に於いて処理したメソッドコールの一部である。図５のハードウエア構成図を取得した後、ジャバ(JAVA（登録商標）)ハイレベル言語プログラミングコード内のメソッドコール(method call)の処理が完了したことを表示する。図５のハードウエア構成図（ＨＣＧ）とＶＨＤＬプログラミング言語のハードウエアが相互に対応する。図５のハードウエア構成図（ＨＣＧ）を相互に対応できるメソッドコール(method call)のＶＨＤＬプログラミングコードに転換する。図６は、対応するＶＨＤＬプログラミングコード構成(synthesis)後の回路図である。
【００２０】
図７，８，９は、本発明の別の実施例である。これらはパブリックのtestメソッドコールを使用して別のパブリックのsubメソッドを呼び出す。図１０は、対応するＶＨＤＬプログラミングコード合成(synthesis)後の回路図である。図８，９，１０のマーキングしたＦ囲みは、ハードウエア内で対応する並列式事項(fork element)である。マーキングしたＯＲ囲みは、ハードウエア内もしくはゲート(OR gate)に対応する。マーキングしたＱ楕円囲みはシーケンス制御回路で、二相(2-Phase)の制御信号を四相(4-Phase)の信号アクセスデータに転換する。マーキングしたsub囲みは、ハードウエア内の減法器に対応する。RxN_a,RxN_b等は、ＲｘＮから始まる事項がハードウエア内のｎビット暫時保存器(n-bit Register)に対応する。またマーキングしたReqMuxDemux,writeMuxDemux及びreadMuxDemuxの楕円形ポイントは、それぞれマルチプレクサと反マルチプレクサで、これは暫時保存器に対するリーディング、ライティング及び回路を制御する要求を組み立てるハードウエアである。
【００２１】
総括すると、本発明は、メソッドコールテーブル(method call table)を使い、暫時ハードウエア構成図（ＨＣＧ）内のメソッドコールポイント(method call node)へ連接した連接線を、メソッドスタートポイント(method start node)へ連接し、ハイレベル言語プログラミングコード内のメソッドコール(method call)を表示する。また暫時ハードウエア構成図（ＨＣＧ）をハードウエアエレメント対応のハードウエア構成図に転換する。
【図面の簡単な説明】
【００２２】
【図１】本発明のハイレベル言語のメソッドをハードウエア構造図に転換するフローチャートである。
【図２】本発明の加法のジャバ(JAVA（登録商標）)プログラミングコードの表示図である。
【図３】図２のジャバ(JAVA（登録商標）)プログラミングコードが形成した暫時ハードウエア構成図（ＨＣＧ）の表示図である。
【図４】本発明の連接線を修正した表示図である。
【図５】本発明のコールポイントを修正した表示図である。
【図６】図２対応のＶＨＤＬプログラミングコード合成後の回路図の表示図である。
【図７】本発明別のジャバ(JAVA（登録商標）)減法器のプログラミングコード表示図である。
【図８】本発明のハードウエア構成図（ＨＣＧ）修正過程の表示図である。
【図９】本発明のハードウエア構成図（ＨＣＧ）修正過程の表示図である。
【図１０】図７対応のＶＨＤＬプログラミングコード合成後の回路図の表示図である。
【符号の説明】
【００２３】
３１０        パブリッククラスMath
３２０        addメソッドスタートポイント
３３０        testメソッドスタートポイント
３４０        “Call this add”ポイント
８１０        パブリッククラスMath
８２０        subメソッドスタートポイント
８３０        testメソッドスタートポイント
８４０        “Call this add”ポイント
【図１】
2007183896.tif 000003
【図２】
2007183896.tif 000004
【図３】
2007183896.tif 000005
【図４】
2007183896.tif 000006
【図５】
2007183896.tif 000007
【図６】
2007183896.tif 000008
【図７】
2007183896.tif 000009
【図８】
2007183896.tif 000010
【図９】
2007183896.tif 000011
【図１０】
2007183896.tif 000012