JP5223639B2 - 回路設計補助方法、プログラム、及び記録媒体 - Google Patents
回路設計補助方法、プログラム、及び記録媒体 Download PDFInfo
- Publication number
- JP5223639B2 JP5223639B2 JP2008314112A JP2008314112A JP5223639B2 JP 5223639 B2 JP5223639 B2 JP 5223639B2 JP 2008314112 A JP2008314112 A JP 2008314112A JP 2008314112 A JP2008314112 A JP 2008314112A JP 5223639 B2 JP5223639 B2 JP 5223639B2
- Authority
- JP
- Japan
- Prior art keywords
- algorithm
- information
- register
- circuit design
- loop
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
このため、関数の引数情報や外部から与えた接続情報をもとにC++のクラス定義の自動生成が行われている(例えば特許文献1参照。)。
図1は、高位言語、特にC++で作成されたアルゴリズムに、レジスタ情報及びインターフェース情報を付加し、高位言語で書かれた動作合成可能なアルゴリズムを生成するシステムのフローの一例を示す図である。
本発明に係る回路設計補助方法は、コンピュータに、外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、パラメータがレジスタであることを示すレジスタ情報を追加する追加ステップと、追加されたレジスタ情報を抽出する抽出ステップと、ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従いレジスタ情報を用いて画像処理アルゴリズムの記述変換を行なう記述変換ステップと、を実行させるものである。
「追加されたレジスタ情報を抽出する抽出ステップ」は、後述するレジスタ情報抽出12及びステップ71である。
記述変換13は記述変換ステップである。
「記述変換ルール」は、レジスタ情報抽出12及び記述変換13であり、ルールの内容は、後述する図12〜図14の説明部分である。
レジスタ情報抽出12は、C++アルゴリズム11のレジスタ情報が付加されたアルゴリズムからレジスタに係る情報を抽出するものである。
記述変換13は、アルゴリズムを動作合成可能なフォーマットへ変換する部分である。詳細の変換フローを図12〜図14に示す。
利用I/F情報14は、ハードウェアに必要な利用するI/F情報であり、少なくとも端子情報とプロトコル情報とを持ち、アルゴリズムへは、データの入出力を行なう関数を公開している。関数の一例を図7に示す。
アルゴリズムは、利用パラメータの宣言、データ入出力用のバッファ、及びアルゴリズム本体を持っている。
211は、アルゴリズムで利用するパラメータである。パラメータは外部から変更が可能なパラメータと内部のみで利用するパラメータがある。
212は、外部から入力されたデータを保持(入力バッファ)または外部へ出力するためのデータを保持するバッファ(出力バッファ)である。
213は、アルゴリズム本体である。
アルゴリズム本体は、外部から設定されるパラメータを読み込む部分(311)と、実際のアルゴリズムを実行する部分(312)とで構成される。画像処理の流れは、データ取得部で図2の入力バッファにデータが入力され、画像処理A及び画像処理Bで画像処理が行われ、結果が図2の出力バッファ(213)に格納される。
312では、外部から入力バッファ(212)へ画像の1ライン分のデータを入力し、アルゴリズムを実行し、出力バッファ(213)を通して外部へ出力する例が示されている。
313は、アルゴリズムの一例である。
この例では主走査方向に1画素ずつ処理を行なうためにループ処理があり、ループ処理内でさらにアルゴリズムを呼び出す構成となっている。
314は、313のメインアルゴリズムから呼ばれるアルゴリズムの一例である。
通常、アルゴリズムでは外部から設定するパラメータとアルゴリズム本体で利用する一時変数とを区別して記述することはしない。このため、アルゴリズムをハードウェア化した場合にパラメータをソフトウェアから設定できるレジスタとするか、内部で利用する一時変数とするかを切り分ける必要がある。
図4〜図6ではレジスタとして利用するパラメータに対し、レジスタであることを示すコメントを追加することでレジスタと一時パラメータとの区別を行なうようにした。
コメントには「レジスタであることを示す文字列」、及び「ビット幅」を記述する。さらに、「アドレス」、「レジスタ内のビット位置」、及び「リードライト情報」を付加することでレジスタ制御回路を生成させることもできる。
図1の利用I/F情報14は、I/F情報を持っているデータベースである。
I/F情報は、ハードウェアに対しては、そのI/Fの端子情報及びプロトコル情報を、アルゴリズムに対しては、入出力用の関数を持っているものとする。
図4に示す411は、パラメータのコメントとしてレジスタ情報を付加する場合の例である。
図5に示す42は、レジスタパラメータを構造体(422)として扱った場合である。このように構造体とすることでレジスタであることを示すTAGが必要はなくなるが、ビット幅としては必要となる(421)。
42は、レジスタ構造体を利用した場合のアルゴリズムのレジスタパラメータの一例である。
また、レジスタ対象となるパラメータを設定する関数を設けてもよい。その一例を図6の43に示す。
端子情報部には端子情報が書かれている。
51は、端子情報を示す一例である。動作合成記述を行なうためには、信号の入出力情報やデータ幅を指定する必要がある。この記述は記述言語に依存するため、ここでは入力信号であることを示す“in”、出力信号であることを示す“out”を利用する(511)。また、バス幅を指定するために“<数字/変数>”という書き方を利用する。これ以降の説明もこの記述にしたがう。
513は、アルゴリズム用入出力関数内にはI/Fのプロトコル情報が書かれている。ここで用意される関数の名前は、I/Fによらず共通の名前にしておく。このようにすることで、アルゴリズムの記述変更時にI/Fのプロトコルを意識せずに記述を修正できる。
図8に示す61は、レジスタ構造体の例である。
図1のレジスタ情報抽出12で抽出されたレジスタは、この図8に示すレジスタ構造体に宣言される。また、抽出されたバス幅をもとに宣言が行われる。
621は、選択されたインターフェースとは別にモジュールに常に必要な信号を追加できることを意味している。622は、選択されたインターフェース情報をもとに生成したインターフェース記述である。623は、61で生成されたレジスタ構造体を実体化している。624は、回路のメイン制御部分であり、この中でアルゴリズムの実行を行なう。625は、変換前アルゴリズムから抽出されたアルゴリズムの宣言記述である。63では、62で宣言された関数の実装記述を行なっている。
図12のステップ71では、図3で追加されたレジスタ情報を抽出し、レジスタ情報データとして保持する。
図12のステップ72では、外部から指定されたI/F情報を図1の利用I/F情報14から取得する。また、アルゴリズム中の入出力バッファの記述及びアルゴリズム本体内のバッファへの入出力記述から入出力のバスがそれぞれ幾つずつあるかが一意に決定できる。
図12のステップ73では、アルゴリズム本体から関連する関数名とその定義を抽出する。また、関数間の呼び出し関係を抽出することで、呼び出し元の関数でループ処理を持つものをアルゴリズムのメイン関数として認識する(図19参照。)。尚、図19は、メイン関数の一例である。
図12のステップ75では、アルゴリズムTOPの生成を行なう。続いてステップ76では、アルゴリズムの定義部分の生成を行う。これはC++でいうところのクラス定義である。クラス名については、元のアルゴリズムの名前を利用してもよいし、任意の名前を与えられるようにしてもよい。
ここで、図9に示す621では例として、clkやresetを宣言している。端子情報には入出力の方向を宣言する必要があるが、これらは利用する言語に依存するため、ここでは言及しない。
図13に示すステップ752では、入力されたI/F情報と、図12に示すステップ72で抽出された情報とからI/F記述を生成する。
この例では入出力それぞれ1つずつのバスがある場合の一例である。図13に示すステップ753ではレジスタI/Fの記述を行なっている。一例を図9の623に示す。ここでは信号線としてパラメータを入力する一例を示す。レジスタに関して、図9の622のようにI/Fの種類を指定して記述できるようにしてもよい。
図9に示す625では、ハードウェア上の本体になる関数の宣言を行なう。625には図12に示すステップ73で抽出されたアルゴリズムが入力される。続いて624のアルゴリズムの宣言を行う。625にはハードウェア上の本体になる関数の宣言を行う。
図14に示すステップ761では、図9に示す624で宣言したハードウェア本体になる関数の記述を行なう。
図10に示す631では各I/F毎の入出力を保持する一時バッファを生成する。
図10に示す632は、データを入力して、アルゴリズムを通し、データを出力するメインルーチンとなる。
図12〜図14のステップ73で抽出されたアルゴリズムのメイン処理を変換して生成するために少なくとも次の処理を行なう(図20参照)。
図20に示す1101において、パラメータ処理に関しては、前述で取得したレジスタ情報をもとにレジスタ設定の場合は削除、パラメータ設定の場合はそのまま残す。
1102でラインバッファを生成している場合は、削除する。
1103で対象画像のライン数分ループ処理を実行している部分を無限ループに置き変えを行なう。
1104で、ラインバッファへの入出力を実行している部分を入出力I/F宣言で公開されている関数に置き換える。
図20では簡略化されて書かれているが、実際はリセット処理やその他の処理が入ることになる。
しかしながら、この簡略化された部分は実装に依存するためここでは言及しない。ここでは入出力I/F宣言で公開されている関数内にプロトコル情報が隠ぺいされているため、アルゴリズム本体ではプロトコルに依存した変換を行わずにすみ、また、元のアルゴリズムをほぼそのまま利用できるようになっている。
アルゴリズムが画素単位で実行可能な場合を考える。アルゴリズムはライン単位でデータを持つため、一つ一つの関数で主走査方向にループ処理で画像処理を行なう手法がとられる。
図21は、ループ記述およびループのインデックスの削除を説明するための説明図である。
変換例を図16〜図18に示す。
図18に示す93は、ラインバッファの構成例である。
図16に示す914でラインバッファを生成している。アルゴリズムは、このラインバッファからデータを受け取るように変換が行なわれる。図16に示す917で入力I/Fを与えることでラインバッファは独自にデータの取得を行なう。また、ラインバッファはデータが設定したサイズ分溜まる間でデータ取得関数による返答を返さない。
1ラインからnラインまで主走査方向に配列されている。
以上で説明した本発明にかかる回路設計補助方法は、コンピュータで処理を実行させるプログラムによって実現されている。コンピュータとしては、例えばパーソナルコンピュータやワークステーションなどの汎用的なものが挙げられるが、本発明はこれに限定されるものではない。よって、一例として、プログラムにより本発明を実現する場合の説明を以下で行う。
(1)外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、前記パラメータがレジスタであることを示す情報を追加する手段、
(2)追加されたレジスタ情報を抽出する手段、
(3)ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い前記画像処理アルゴリズムの記述変換を行なう手段、
として機能させるためのプログラムが挙げられる。
これにより、プログラムが実行可能なコンピュータ環境さえあれば、どこにおいても本発明にかかる方法を実現することができる。
このようなプログラムは、コンピュータに読み取り可能な記録媒体に記録されていてもよい。
ここで、記録媒体としては、例えば、CD−ROM(Compact Disc Read Only Memory)、フレキシブルディスク(FD)、CD−R(CD Recordable)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体、フラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)、FeRAM(強誘電体メモリ)等の半導体メモリやHDD(Hard Disc Drive)が挙げられる。
本実施形態によれば、アルゴリズムにレジスタ情報を付加し、レジスタ情報とアルゴリズムの構成から必要な情報を抽出し、動作合成可能なアルゴリズムに変換するので、動作合成可能な記述を意識することなくアルゴリズムを記述でき、かつ、自動で動作合成可能な記述へ変換可能となる。
12 レジスタ情報抽出
13 記述変換
14 利用I/F情報
15 C++回路
Claims (9)
- コンピュータに、外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、前記パラメータがレジスタであることを示すレジスタ情報を追加する追加ステップと、前記追加されたレジスタ情報を抽出する抽出ステップと、ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い前記レジスタ情報を用いて前記画像処理アルゴリズムの記述変換を行なう記述変換ステップと、を実行させることを特徴とする回路設計補助方法。
- 請求項1記載の回路設計補助方法において、前記コンピュータに、レジスタ情報としてレジスタであることを示すタグとビット幅をコメントとして記述するステップを更に実行させることを特徴とする回路設計補助方法。
- 請求項1記載の回路設計補助方法において、前記コンピュータに、前記レジスタ情報となるパラメータを構造体として有し、そのビット幅をコメントで設定するステップを更に実行させることを特徴とする回路設計補助方法。
- 請求項1記載の回路設計補助方法において、前記コンピュータに、前記レジスタ情報となるパラメータの設定を行なう関数を用意し、レジスタ情報の設定時に必要なビット幅でマスクを取る記述を行なうステップを更に実行させることを特徴とする回路設計補助方法。
- 請求項1記載の回路設計補助方法において、前記コンピュータに、記述変換部分に前記画像処理アルゴリズムの情報を入力するステップを更に実行させることを特徴とする回路設計補助方法。
- 請求項5記載の回路設計補助方法において、前記コンピュータに、前記画像処理アルゴリズムの特徴として、データを画素単位で扱うことを選択でき、変換時に副走査処理ループ、及び主走査処理ループを削除するステップを更に実行させることを特徴とする回路設計補助方法。
- 請求項5記載の回路設計補助方法において、前記コンピュータに、前記画像処理アルゴリズムの特徴として、データをライン単位で扱うことを選択でき、変換時にラインバッファの生成と前記画像処理アルゴリズムがそのバッファからデータを取得する記述に変換するステップを更に実行させることを特徴とする回路設計補助方法。
- アルゴリズムの記述変換を行うためにコンピュータを、
外部から設定可能なパラメータと、画像を走査するための副走査方向への処理ループと、主走査方向への処理ループと、を有する画像処理アルゴリズムについて、前記パラメータがレジスタであることを示すレジスタ情報を追加する手段、
前記追加されたレジスタ情報を抽出する手段、
ハードウェア化時に利用するインターフェース情報を入力する利用インターフェース情報、アルゴリズムの主走査ループ処理及び副走査ループ処理を検出し、記述変換ルールに従い前記レジスタ情報を用いて前記画像処理アルゴリズムの記述変換を行なう手段、
として機能させるためのプログラム。 - 請求項8記載のプログラムを記録したことを特徴とするコンピュータが読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008314112A JP5223639B2 (ja) | 2008-12-10 | 2008-12-10 | 回路設計補助方法、プログラム、及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008314112A JP5223639B2 (ja) | 2008-12-10 | 2008-12-10 | 回路設計補助方法、プログラム、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010140139A JP2010140139A (ja) | 2010-06-24 |
JP5223639B2 true JP5223639B2 (ja) | 2013-06-26 |
Family
ID=42350247
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008314112A Expired - Fee Related JP5223639B2 (ja) | 2008-12-10 | 2008-12-10 | 回路設計補助方法、プログラム、及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5223639B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5310397B2 (ja) * | 2009-08-31 | 2013-10-09 | 株式会社リコー | 動作合成検証補助装置、動作合成検証補助方法、プログラム、及び記録媒体 |
JP6053590B2 (ja) * | 2013-03-22 | 2016-12-27 | 三菱電機株式会社 | 高位合成用記述生成装置、高位合成用記述生成方法および高位合成用記述生成プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3852741B2 (ja) * | 2000-10-31 | 2006-12-06 | シャープ株式会社 | 高位合成方法および高位合成装置 |
-
2008
- 2008-12-10 JP JP2008314112A patent/JP5223639B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010140139A (ja) | 2010-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5312151B2 (ja) | 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム | |
WO2006059456A1 (ja) | 記憶装置および記録媒体 | |
JPWO2009098739A1 (ja) | プログラム最適化装置およびプログラム最適化方法 | |
JP5223639B2 (ja) | 回路設計補助方法、プログラム、及び記録媒体 | |
JP2009020696A (ja) | 情報処理装置及びシステム | |
US10902057B2 (en) | Image processing apparatus and method of controlling the same | |
JP5702265B2 (ja) | プログラム自動生成装置およびプログラム自動生成方法 | |
JP2007011467A (ja) | アサーション記述自動生成方法および装置 | |
JP2009187099A (ja) | 情報処理装置およびプログラム | |
JP5125385B2 (ja) | 検証シナリオ作成プログラム、該プログラムを記録した記録媒体、検証シナリオ作成装置、および検証シナリオ作成方法 | |
US11222068B2 (en) | Information processing device, information processing method, and data structure | |
JP2008299423A (ja) | 情報処理装置および情報処理プログラム | |
JP5702382B2 (ja) | データ管理装置およびデータ管理方法 | |
JP2008204341A (ja) | インタフェース合成装置 | |
JP7370264B2 (ja) | トレーサビリティ管理装置、トレーサビリティ管理方法、及び、トレーサビリティ管理プログラム | |
JP2006171913A (ja) | 情報処理装置、情報処理方法、ならびにプログラム、記憶媒体 | |
TWI297855B (ja) | ||
JP2010026968A (ja) | 回路生成支援プログラム及び回路生成支援方法 | |
JP7008780B2 (ja) | 状態遷移編集装置および状態遷移編集プログラム | |
JP6003677B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP5262678B2 (ja) | 動作合成システム、動作合成方法、及び動作合成用プログラム | |
JP6888336B2 (ja) | スタブ生成装置、方法、及びプログラム | |
JP4992820B2 (ja) | データ処理装置、そのコンピュータプログラムおよびデータ処理方法 | |
JP4770588B2 (ja) | スケルトン生成装置およびその方法 | |
US20150169241A1 (en) | Data processing apparatus, data processing method and program recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111014 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130115 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130124 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130225 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160322 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |