(57)【要約】【課題】ハードウェア固有の情報に依存しないアルゴリズムからハードウェア固有の情報を与えるだけで動作合成可能なアルゴリズムを自動で生成する。【解決手段】外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、パラメータがレジスタであることを示す情報を追加する追加手段と、設定されたレジスタ情報を抽出する抽出手段と、ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い画像処理アルゴリズムの記述変換を行なう記述変換手段と、を備えた。【選択図】図１
2010140139.tif 000002
【特許請求の範囲】
【請求項１】
外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、前記パラメータがレジスタであることを示す情報を追加する追加手段と、
設定されたレジスタ情報を抽出する抽出手段と、
ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い前記画像処理アルゴリズムの記述変換を行なう記述変換手段と、
を備えたことを特徴とする回路設計補助方法。
【請求項２】
請求項１記載の回路設計補助方法において、レジスタ情報としてレジスタであることを示すタグとビット幅をコメントとして記述することを特徴とする回路設計補助方法。
【請求項３】
請求項１記載の回路設計補助方法において、前記レジスタとなるパラメータを構造体として有し、そのビット幅をコメントで設定することを特徴とする回路設計補助方法。
【請求項４】
請求項１記載の回路設計補助方法において、前記レジスタとなるパラメータの設定を行なう関数を用意し、レジスタ設定時に必要なビット幅でマスクを取る記述を行なうことを特徴とする回路設計補助方法。
【請求項５】
請求項１記載の回路設計補助方法において、記述変換部分に前記画像処理アルゴリズムの情報を入力することができることを特徴とする回路設計補助方法。
【請求項６】
請求項５記載の回路設計補助方法において、前記画像処理アルゴリズムの特徴として、データを画素単位で扱うことを選択でき、変換時に副走査処理ループ、及び主走査処理ループを削除することを特徴とする回路設計補助方法。
【請求項７】
請求項５記載の回路設計補助方法において、前記画像処理アルゴリズムの特徴として、データをライン単位で扱うことを選択でき、変換時にラインバッファの生成と前記画像処理アルゴリズムがそのバッファからデータを取得する記述に変換することを特徴とする回路設計補助方法。
【請求項８】
アルゴリズムの記述変換を行うためにコンピュータを、
外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、前記パラメータがレジスタであることを示す情報を追加する手段、
設定されたレジスタ情報を抽出する手段、
ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い前記画像処理アルゴリズムの記述変換を行なう手段、
として機能させるためのプログラム。
【請求項９】
請求項８記載のプログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計補助方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
従来、画像処理アルゴリズムを動作合成可能な記述へ変換する際は、ハードウェア固有の記述を行なう必要があった。ハードウェアの固有情報としては、インターフェース情報、モジュール間の接続情報がある。モジュール間の接続やインターフェース情報に変更がある場合、ハードウェア固有の記述を行なった部分すべてに変更を加えなければならず、手間がかかっている。
このため、関数の引数情報や外部から与えた接続情報をもとにC++のクラス定義の自動生成が行われている（例えば特許文献１参照。）。
【０００３】
特許文献１に記載の発明は、「C++言語による電子回路設計補助方法」に関するものである。すなわち、特許文献１に記載のC++言語による電子回路設計補助方法は、「計算機で実行することにより電子回路の設計を補助する方法において、C++言語により回路モジュールの機能を関数名として記述したリストに基いて、各モジュール毎に内部出力を特定して抽出するモジュールのクラス定義生成ステップと、上記モジュール間の接続状況を記述した接続記述ファイルとに基いて、モジュール間接続点を上位階層内部出力として抽出し、かつソートして機能が共通する関数を引用しているモジュールを結合記述して、上位階層のクラス定義ファイルを得るモジュール接続情報検出・上位階層のクラス定義ファイル生成ステップと、上記モジュールのクラス定義生成ステップで得られたモジュールのクラス定義ファイルを必要な数だけ抽出し、上記モジュール接続情報・上位階層のクラス定義ファイル生成ステップで得られた上位階層のクラス定義とを合成して、合成クラス定義ファイルを得るクラス定義合成ステップ、とを備え、計算機で上記各ステップを実行する」ものである。
【０００４】
特許文献１に記載の発明によれば、C++言語によるハードウェア回路設計において必要となるクラス定義ファイルを回路動作記述アルゴリズムから作成するので、設計者の回路設計の負荷が減る効果があるとしている。
【特許文献１】特開２００３−１９６３３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の発明では、アルゴリズム自体の関数はインターフェースを意識した記述を行なわなければならず、高位言語を用いてアルゴリズムを作成する優位性が失われる。
【０００６】
そこで、本発明の目的は、ハードウェア固有の情報に依存しないアルゴリズムからハードウェア固有の情報を与えるだけで動作合成可能なアルゴリズムを自動で生成することができる回路設計補助方法、プログラム、及び記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、請求項１記載の発明は、外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、前記パラメータがレジスタであることを示す情報を追加する追加手段と、設定されたレジスタ情報を抽出する抽出手段と、ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い前記画像処理アルゴリズムの記述変換を行なう記述変換手段と、を備えたことを特徴とする。
【０００８】
請求項２記載の発明は、請求項１記載の回路設計補助方法において、レジスタ情報としてレジスタであることを示すタグとビット幅をコメントとして記述することを特徴とする。
【０００９】
請求項３記載の発明は、請求項１記載の回路設計補助方法において、前記レジスタとなるパラメータを構造体として有し、そのビット幅をコメントで設定することを特徴とする。
【００１０】
請求項４記載の発明は、請求項１記載の回路設計補助方法において、前記レジスタとなるパラメータの設定を行なう関数を用意し、レジスタ設定時に必要なビット幅でマスクを取る記述を行なうことを特徴とする。
【００１１】
請求項５記載の発明は、請求項１記載の回路設計補助方法において、記述変換部分に前記画像処理アルゴリズムの情報を入力することができることを特徴とする。
【００１２】
請求項６記載の発明は、請求項５記載の回路設計補助方法において、前記画像処理アルゴリズムの特徴として、データを画素単位で扱うことを選択でき、変換時に副走査処理ループ、及び主走査処理ループを削除することを特徴とする。
【００１３】
請求項７記載の発明は、請求項５記載の回路設計補助方法において、前記画像処理アルゴリズムの特徴として、データをライン単位で扱うことを選択でき、変換時にラインバッファの生成と前記画像処理アルゴリズムがそのバッファからデータを取得する記述に変換することを特徴とする。
【００１４】
請求項８記載の発明は、アルゴリズムの記述変換を行うためにコンピュータを、外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、前記パラメータがレジスタであることを示す情報を追加する手段、設定されたレジスタ情報を抽出する手段、ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い前記画像処理アルゴリズムの記述変換を行なう手段、として機能させるためのプログラムであることを特徴とする。
【００１５】
請求項９記載の発明は、請求項８記載のプログラムを記録したコンピュータが読み取り可能な記録媒体であることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、アルゴリズムにレジスタ情報を付加し、レジスタ情報とアルゴリズムの構成から必要な情報を抽出し、動作合成可能なアルゴリズムに変換するので、動作合成可能な記述を意識することなくアルゴリズムを記述でき、かつ、自動で動作合成可能な記述へ変換可能となる。
【発明を実施するための最良の形態】
【００１７】
本発明に係る回路設計補助方法の実施の形態について述べる。
図１は、高位言語、特にC++で作成されたアルゴリズムに、レジスタ情報及びインターフェース情報を付加し、高位言語で書かれた動作合成可能なアルゴリズムを生成するシステムのフローの一例を示す図である。
本発明に係る回路設計補助方法は、外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、パラメータがレジスタであることを示す情報を追加する追加手段と、設定されたレジスタ情報を抽出する抽出手段と、ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い画像処理アルゴリズムの記述変換を行なう記述変換手段と、を備えたものである。
【００１８】
ここで、「パラメータがレジスタであることを示す情報を追加する追加手段」は、後述するステップ411である。
「設定されたレジスタ情報を抽出する抽出手段」は、後述するレジスタ情報抽出12及びステップ71である。
記述変換13は記述変換手段である。
「記述変換ルール」は、レジスタ情報抽出12及び記述変換13であり、ルールの内容は、後述する図１２〜図１４の説明部分である。
【００１９】
C++アルゴリズム11は、C++で書かれたアルゴリズムである。アルゴリズムの構成については図２で説明するアルゴリズムにレジスタ情報を付加したものである。付加される情報としては、レジスタであることを示すタグと、そのレジスタのビット幅を持つものとする。
レジスタ情報抽出12は、C++アルゴリズム11のレジスタ情報が付加されたアルゴリズムからレジスタに係る情報を抽出するものである。
記述変換13は、アルゴリズムを動作合成可能なフォーマットへ変換する部分である。詳細の変換フローを図１２〜図１４に示す。
利用I/F情報14は、ハードウェアに必要な利用するI/F情報であり、少なくとも端子情報とプロトコル情報とを持ち、アルゴリズムへは、データの入出力を行なう関数を公開している。関数の一例を図７に示す。
【００２０】
C++回路15は、変換された後の動作合成可能なアルゴリズムである。
【００２１】
図２は、変換対象となるアルゴリズムのフォーマットの一例である。
アルゴリズムは、利用パラメータの宣言、データ入出力用のバッファ、及びアルゴリズム本体を持っている。
211は、アルゴリズムで利用するパラメータである。パラメータは外部から変更が可能なパラメータと内部のみで利用するパラメータがある。
212は、外部から入力されたデータを保持（入力バッファ）または外部へ出力するためのデータを保持するバッファ（出力バッファ）である。
213は、アルゴリズム本体である。
【００２２】
図３は、変換対象となるアルゴリズムの本体の構成の一例である。
アルゴリズム本体は、外部から設定されるパラメータを読み込む部分（311）と、実際のアルゴリズムを実行する部分（312）とで構成される。画像処理の流れは、データ取得部で図２の入力バッファにデータが入力され、画像処理A及び画像処理Bで画像処理が行われ、結果が図２の出力バッファ(213)に格納される。
312では、外部から入力バッファ(212)へ画像の１ライン分のデータを入力し、アルゴリズムを実行し、出力バッファ(213)を通して外部へ出力する例が示されている。
313は、アルゴリズムの一例である。
この例では主走査方向に１画素ずつ処理を行なうためにループ処理があり、ループ処理内でさらにアルゴリズムを呼び出す構成となっている。
314は、313のメインアルゴリズムから呼ばれるアルゴリズムの一例である。
【００２３】
図４〜図６は、図２及び図３に示したアルゴリズムにレジスタ情報を追加した一例である。
通常、アルゴリズムでは外部から設定するパラメータとアルゴリズム本体で利用する一時変数とを区別して記述することはしない。このため、アルゴリズムをハードウェア化した場合にパラメータをソフトウェアから設定できるレジスタとするか、内部で利用する一時変数とするかを切り分ける必要がある。
図４〜図６ではレジスタとして利用するパラメータに対し、レジスタであることを示すコメントを追加することでレジスタと一時パラメータとの区別を行なうようにした。
コメントには「レジスタであることを示す文字列」、及び「ビット幅」を記述する。さらに、「アドレス」、「レジスタ内のビット位置」、及び「リードライト情報」を付加することでレジスタ制御回路を生成させることもできる。
【００２４】
次にレジスタ情報が付加されたアルゴリズムファイルをI/F情報を与えることでアルゴリズムを動作合成用記述に変換を行なう。
図１の利用I/F情報14は、I/F情報を持っているデータベースである。
I/F情報は、ハードウェアに対しては、そのI/Fの端子情報及びプロトコル情報を、アルゴリズムに対しては、入出力用の関数を持っているものとする。
図４に示す411は、パラメータのコメントとしてレジスタ情報を付加する場合の例である。
図５に示す42は、レジスタパラメータを構造体(422)として扱った場合である。このように構造体とすることでレジスタであることを示すTAGが必要はなくなるが、ビット幅としては必要となる（421）。
42は、レジスタ構造体を利用した場合のアルゴリズムのレジスタパラメータの一例である。
また、レジスタ対象となるパラメータを設定する関数を設けてもよい。その一例を図６の43に示す。
【００２５】
図６の431ではパラメータをロードする関数を宣言している。432はパラメータをロードする関数の定義である。この関数で設定されるパラメータをレジスタと認識し、また、ビット幅はデータをロードした際に利用するイネーブル値（fread()で読み込んだ値とアンド&を取っている値）のビット幅とする。たとえば、register2は0x3とアンド&とを取っているが、0x3(2進数で0011)は2bitの1が立っているのでビット幅を2とする。0xf(2進数で1111)の場合は4である。
【００２６】
図７は、I/F情報の一例である。
端子情報部には端子情報が書かれている。
51は、端子情報を示す一例である。動作合成記述を行なうためには、信号の入出力情報やデータ幅を指定する必要がある。この記述は記述言語に依存するため、ここでは入力信号であることを示す“in”、出力信号であることを示す“out”を利用する(511)。また、バス幅を指定するために“<数字/変数>”という書き方を利用する。これ以降の説明もこの記述にしたがう。
【００２７】
512は、アルゴリズムに公開されるデータ入出力用の関数である。
513は、アルゴリズム用入出力関数内にはI/Fのプロトコル情報が書かれている。ここで用意される関数の名前は、I/Fによらず共通の名前にしておく。このようにすることで、アルゴリズムの記述変更時にI/Fのプロトコルを意識せずに記述を修正できる。
【００２８】
図８〜図１１は、動作合成用ファイルに変換された結果である。
図８に示す61は、レジスタ構造体の例である。
図１のレジスタ情報抽出12で抽出されたレジスタは、この図８に示すレジスタ構造体に宣言される。また、抽出されたバス幅をもとに宣言が行われる。
【００２９】
図９に示す62は、ハードウェア化されたアルゴリズムの一例である。
621は、選択されたインターフェースとは別にモジュールに常に必要な信号を追加できることを意味している。622は、選択されたインターフェース情報をもとに生成したインターフェース記述である。623は、61で生成されたレジスタ構造体を実体化している。624は、回路のメイン制御部分であり、この中でアルゴリズムの実行を行なう。625は、変換前アルゴリズムから抽出されたアルゴリズムの宣言記述である。63では、62で宣言された関数の実装記述を行なっている。
【００３０】
図１０に示す631は、入出力するデータを保持するための一時変数である。632で631の一時変数を利用して、インターフェースからデータを取得、アルゴリズムを実行し、その結果を、一時変数を通して出力インターフェースへ渡している。633は、変換前アルゴリズムから抽出されたアルゴリズムである。
【００３１】
図１１に示す64は、利用I/F情報から取得したI/F情報を元に、共通I/Fから利用I/Fへ変換を行うモジュールの一例である。
【００３２】
図１２〜図１４は、回路記述変換用の詳細フローの一例である。
図１２のステップ71では、図３で追加されたレジスタ情報を抽出し、レジスタ情報データとして保持する。
図１２のステップ72では、外部から指定されたI/F情報を図１の利用I/F情報14から取得する。また、アルゴリズム中の入出力バッファの記述及びアルゴリズム本体内のバッファへの入出力記述から入出力のバスがそれぞれ幾つずつあるかが一意に決定できる。
図１２のステップ73では、アルゴリズム本体から関連する関数名とその定義を抽出する。また、関数間の呼び出し関係を抽出することで、呼び出し元の関数でループ処理を持つものをアルゴリズムのメイン関数として認識する（図１９参照。）。尚、図１９は、メイン関数の一例である。
【００３３】
図１２のステップ74では、解析結果から図８に示した61のレジスタ構造体を生成する。
図１２のステップ75では、アルゴリズムTOPの生成を行なう。続いてステップ76では、アルゴリズムの定義部分の生成を行う。これはC++でいうところのクラス定義である。クラス名については、元のアルゴリズムの名前を利用してもよいし、任意の名前を与えられるようにしてもよい。
【００３４】
図１３に示すステップ751では、アルゴリズムによらず共通で利用する端子を宣言する。
ここで、図９に示す621では例として、clkやresetを宣言している。端子情報には入出力の方向を宣言する必要があるが、これらは利用する言語に依存するため、ここでは言及しない。
図１３に示すステップ752では、入力されたI/F情報と、図１２に示すステップ72で抽出された情報とからI/F記述を生成する。
【００３５】
生成例を図９の622に示す。
この例では入出力それぞれ1つずつのバスがある場合の一例である。図１３に示すステップ753ではレジスタI/Fの記述を行なっている。一例を図９の623に示す。ここでは信号線としてパラメータを入力する一例を示す。レジスタに関して、図９の622のようにI/Fの種類を指定して記述できるようにしてもよい。
図９に示す625では、ハードウェア上の本体になる関数の宣言を行なう。625には図１２に示すステップ73で抽出されたアルゴリズムが入力される。続いて624のアルゴリズムの宣言を行う。625にはハードウェア上の本体になる関数の宣言を行う。
【００３６】
続いてアルゴリズムの定義部分の生成を行なう。
図１４に示すステップ761では、図９に示す624で宣言したハードウェア本体になる関数の記述を行なう。
図１０に示す631では各I/F毎の入出力を保持する一時バッファを生成する。
図１０に示す632は、データを入力して、アルゴリズムを通し、データを出力するメインルーチンとなる。
図１２〜図１４のステップ73で抽出されたアルゴリズムのメイン処理を変換して生成するために少なくとも次の処理を行なう（図２０参照）。
【００３７】
図２０は、パラメータ処理の一例を示す図である。
図２０に示す1101において、パラメータ処理に関しては、前述で取得したレジスタ情報をもとにレジスタ設定の場合は削除、パラメータ設定の場合はそのまま残す。
1102でラインバッファを生成している場合は、削除する。
1103で対象画像のライン数分ループ処理を実行している部分を無限ループに置き変えを行なう。
1104で、ラインバッファへの入出力を実行している部分を入出力I/F宣言で公開されている関数に置き換える。
図２０では簡略化されて書かれているが、実際はリセット処理やその他の処理が入ることになる。
しかしながら、この簡略化された部分は実装に依存するためここでは言及しない。ここでは入出力I/F宣言で公開されている関数内にプロトコル情報が隠ぺいされているため、アルゴリズム本体ではプロトコルに依存した変換を行わずにすみ、また、元のアルゴリズムをほぼそのまま利用できるようになっている。
【００３８】
図１４に示すステップ762では、図１２に示すステップ73で抽出されたアルゴリズムをそのまま利用している。
アルゴリズムが画素単位で実行可能な場合を考える。アルゴリズムはライン単位でデータを持つため、一つ一つの関数で主走査方向にループ処理で画像処理を行なう手法がとられる。
【００３９】
しかし、動作合成用アルゴリズムでは画素単位にデータが入力されるため、この主走査方向のループ処理は不要となる。この場合、図１４に示すステップ762でアルゴリズムをコピーする際に抽出された各アルゴリズムのループ記述およびループのインデックスを削除する（図２１参照。）。
図２１は、ループ記述およびループのインデックスの削除を説明するための説明図である。
【００４０】
アルゴリズムがライン単位で実行可能な場合を考える。
変換例を図１６〜図１８に示す。
図１８に示す93は、ラインバッファの構成例である。
図１６に示す914でラインバッファを生成している。アルゴリズムは、このラインバッファからデータを受け取るように変換が行なわれる。図１６に示す917で入力I/Fを与えることでラインバッファは独自にデータの取得を行なう。また、ラインバッファはデータが設定したサイズ分溜まる間でデータ取得関数による返答を返さない。
【００４１】
図１７に示す922でアルゴリズム本体ではバッファからデータを取得するようにすることで、必要なデータがそろってからデータが取得できるようにする。このような仕組みを利用することでラインデータを利用するアルゴリズムに対応する。
【００４２】
図１５は、主走査、及び副走査についての説明図である。
１ラインからｎラインまで主走査方向に配列されている。
【００４３】
＜プログラム＞
以上で説明した本発明にかかる回路設計補助方法は、コンピュータで処理を実行させるプログラムによって実現されている。コンピュータとしては、例えばパーソナルコンピュータやワークステーションなどの汎用的なものが挙げられるが、本発明はこれに限定されるものではない。よって、一例として、プログラムにより本発明を実現する場合の説明を以下で行う。
【００４４】
アルゴリズムの記述変換を行うためにコンピュータを、
(1)外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、前記パラメータがレジスタであることを示す情報を追加する手段、
(2)設定されたレジスタ情報を抽出する手段、
(3)ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い前記画像処理アルゴリズムの記述変換を行なう手段、
として機能させるためのプログラムが挙げられる。
【００４５】
＜記録媒体＞
これにより、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明にかかる方法を実現することができる。
このようなプログラムは、コンピュータに読み取り可能な記録媒体に記録されていてもよい。
ここで、記録媒体としては、例えば、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記録媒体、フラッシュメモリ、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＦｅＲＡＭ（強誘電体メモリ）等の半導体メモリやＨＤＤ（Hard Disc Drive）が挙げられる。
【００４６】
なお、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【００４７】
＜効  果＞
本実施形態によれば、アルゴリズムにレジスタ情報を付加し、レジスタ情報とアルゴリズムの構成から必要な情報を抽出し、動作合成可能なアルゴリズムに変換するので、動作合成可能な記述を意識することなくアルゴリズムを記述でき、かつ、自動で動作合成可能な記述へ変換可能となる。
【００４８】
本実施形態によれば、レジスタ情報として必要な情報のみを記述するだけで、動作合成可能なアルゴリズムへ変換可能となる。
【００４９】
本実施形態によれば、アルゴリズムのデータ処理単位を指定して変換ルールを変更しているため、アルゴリズムのデータ処理単位に応じた動作合成用のアルゴリズムを容易に生成可能となる。
【産業上の利用可能性】
【００５０】
本発明は、回路設計に利用することができる。
【図面の簡単な説明】
【００５１】
【図１】高位言語、特にC++で作成されたアルゴリズムに、レジスタ情報及びインターフェース情報を付加し、高位言語で書かれた動作合成可能なアルゴリズムを生成するシステムのフローの一例を示す図である。
【図２】変換対象となるアルゴリズムのフォーマットの一例である。
【図３】変換対象となるアルゴリズムの本体の構成の一例である。
【図４】図２及び図３に示したアルゴリズムにレジスタ情報を追加した一例である。
【図５】図２及び図３に示したアルゴリズムにレジスタ情報を追加した他の一例である。
【図６】図２及び図３に示したアルゴリズムにレジスタ情報を追加した他の一例である。
【図７】I/F情報の一例である。
【図８】動作合成用ファイルに変換された結果の一例である。
【図９】動作合成用ファイルに変換された結果の一例である。
【図１０】動作合成用ファイルに変換された結果の一例である。
【図１１】動作合成用ファイルに変換された結果の一例である。
【図１２】回路記述変換用の詳細フローの一例である。
【図１３】回路記述変換用の詳細フローの他の一例である。
【図１４】回路記述変換用の詳細フローの他の一例である。
【図１５】主走査、及び副走査についての説明図である。
【図１６】アルゴリズムの変形例のトップを示す図である。
【図１７】アルゴリズムの変形例の本体を示す図である。
【図１８】ラインバッファを示す図である。
【図１９】メイン関数の一例である。
【図２０】パラメータ処理の一例を示す図である。
【図２１】ループ記述およびループのインデックスの削除を説明するための説明図である。
【符号の説明】
【００５２】
１１    Ｃ＋＋アルゴリズム
１２    レジスタ情報抽出
１３    記述変換
１４    利用Ｉ/Ｆ情報
１５    Ｃ＋＋回路
【図１】
2010140139.tif 000003
【図２】
2010140139.tif 000004
【図３】
2010140139.tif 000005
【図４】
2010140139.tif 000006
【図５】
2010140139.tif 000007
【図６】
2010140139.tif 000008
【図７】
2010140139.tif 000009
【図８】
2010140139.tif 000010
【図９】
2010140139.tif 000011
【図１０】
2010140139.tif 000012
【図１１】
2010140139.tif 000013
【図１２】
2010140139.tif 000014
【図１３】
2010140139.tif 000015
【図１４】
2010140139.tif 000016
【図１５】
2010140139.tif 000017
【図１６】
2010140139.tif 000018
【図１７】
2010140139.tif 000019
【図１８】
2010140139.tif 000020
【図１９】
2010140139.tif 000021
【図２０】
2010140139.tif 000022
【図２１】
2010140139.tif 000023