(57)【要約】【課題】一つのモジュールでは動作合成出来ないサイズのモジュール同士のメモリの共有や、排他に動作する異なる機能のモジュール同士のメモリの共有が可能になる高位合成装置等を提供することを提供すること。【解決手段】動作記述を入力して高位合成処理を行いＨＤＬ記述を出力する高位合成装置は、メモリに変換される動作記述を検出する手段と、検出された動作記述を抽出する手段と、抽出された動作記述のサイズおよび接続情報を分析する手段と、分析した結果に基づいて、動作記述をメモリへ変換し、接続情報を元にプロトコルに変換する手段を備える。【選択図】図２
2011044073.tif 000002
【特許請求の範囲】
【請求項１】
処理の動作を記述した動作記述から、レジスタトランスファレベルの論理回路に変換する高位合成装置において、
メモリに変換される動作記述を検出する検出手段と、
前記検出手段により検出された前記動作記述を抽出する抽出手段と、
前記抽出手段により抽出された前記動作記述のサイズおよび接続情報を分析する分析手段と、
前記分析手段により分析した結果に基づいて、前記動作記述をメモリへ変換し、前記接続情報を元にプロトコルに変換する変換手段とを具備し、
配列記述をメモリに変換し、配列にアクセスしている部分にインターフェース回路を生成し、生成されたインターフェース回路を介して回路とメモリを接続する論理回路を生成することを特徴とする高位合成装置。
【請求項２】
メモリに繋がる複数のモジュールをアービトレーションすることが可能な論理回路を生成することを特徴とする請求項１記載の高位合成装置。
【請求項３】
アービトレーションする順番を指定することが可能な論理回路を生成することを特徴とする請求項２記載の高位合成装置。
【請求項４】
メモリを配置する場所を指定可能なことを特徴とする請求項１から３のいずれか１項に記載の高位合成装置。
【請求項５】
動作記述を入力して高位合成処理を行いＨＤＬ記述を出力するコンピュータを用いた高位合成方法であって、
メモリに変換される動作記述を検出する検出工程と、
検出された前記動作記述を抽出する抽出工程と、
抽出された前記動作記述のサイズおよび接続情報を分析する分析工程と、
分析した結果に基づいて、前記動作記述をメモリへ変換し、前記接続情報を元にプロトコルに変換する変換工程とを含むことを特徴とする高位合成方法。
【請求項６】
コンピュータを、
メモリに変換される動作記述を検出する検出手段と、
前記検出手段により検出された前記動作記述を抽出する抽出手段と、
前記抽出手段により抽出された前記動作記述のサイズおよび接続情報を分析する分析手段と、
前記分析手段により分析した結果に基づいて、前記動作記述をメモリへ変換し、前記接続情報を元にプロトコルに変換する変換手段として機能させ、
動作記述を入力して高位合成処理を行いＨＤＬ記述を出力する高位合成装置として機能させることを特徴とする高位合成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高位言語で記述したアルゴリズムの仕様から、ハードウエア記述言語への変換を行う動作合成技術に関する。
【背景技術】
【０００２】
動作レベル回路を動作合成する方法において、動作レベル回路に記述される大きな配列変数はメモリとして扱う必要があり、メモリを意識した配列変数の扱い方がある。小さな範囲でメモリを使用する場合などは、特許文献１で述べられるとおり同一区間（サイクル）あるいは、他の区間に記述された変数をメモリとして自動でスケジューリングが可能になっている。
【０００３】
しかし他のスレッド、あるいはモジュールで同じ配列変数をメモリとして使用することができないので、自分でタイミングを保証し、メモリインターフェース回路を人手で記述する必要がある。これではリファレンスソースが大きく変わり、ときにはスケジューリングができる様に全く違う処理を行わなければいけなくなる場合がある。
【０００４】
また、アプリケーションの拡張により配列のサイズや、構成が変わってしまう場合があり、変わるたびに複雑な修正を行わなくてはならない。
【０００５】
上記の様な理由で書き換えが必要となってしまい、書き換えた部分が処理に影響を与え、不具合が混入し、かえって設計に時間がかかってしまう場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の関連技術では、一つのモジュールでは動作合成出来ないサイズのモジュール同士のメモリの共有や、排他に動作する異なる機能のモジュール同士のメモリの共有は困難であった。
【０００７】
本発明の目的は、上記した従来技術の問題点を解決し、一つのモジュールでは動作合成出来ないサイズのモジュール同士のメモリの共有や、排他に動作する異なる機能のモジュール同士のメモリの共有が可能になる高位合成装置、高位合成方法および高位合成プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
請求項１記載の発明は、処理の動作を記述した動作記述から、レジスタトランスファレベルの論理回路に変換する高位合成装置において、メモリに変換される動作記述を検出する検出手段と、検出手段により検出された動作記述を抽出する抽出手段と、抽出手段により抽出された動作記述のサイズおよび接続情報を分析する分析手段と、分析手段により分析した結果に基づいて、動作記述をメモリへ変換し、接続情報を元にプロトコルに変換する変換手段とを具備し、配列記述をメモリに変換し、配列にアクセスしている部分にインターフェース回路を生成し、生成されたインターフェース回路を介して回路とメモリを接続する論理回路を生成することを特徴とする高位合成装置である。
【０００９】
請求項２記載の発明は、請求項１記載の高位合成装置において、メモリに繋がる複数のモジュールをアービトレーションすることが可能な論理回路を生成することを特徴とする。
【００１０】
請求項３記載の発明は、請求項２記載の高位合成装置において、アービトレーションする順番を指定することが可能な論理回路を生成することを特徴とする。
【００１１】
請求項４記載の発明は、請求項１から３のいずれか１項に記載の高位合成装置において、メモリを配置する場所を指定可能なことを特徴とする。
【００１２】
請求項５記載の発明は、動作記述を入力して高位合成処理を行いＨＤＬ記述を出力するコンピュータを用いた高位合成方法であって、メモリに変換される動作記述を検出する検出工程と、検出された動作記述を抽出する抽出工程と、抽出された動作記述のサイズおよび接続情報を分析する分析工程と、分析した結果に基づいて、動作記述をメモリへ変換し、接続情報を元にプロトコルに変換する変換工程とを含むことを特徴とする高位合成方法である。
【００１３】
請求項６記載の発明は、コンピュータを、メモリに変換される動作記述を検出する検出手段と、検出手段により検出された動作記述を抽出する抽出手段と、抽出手段により抽出された動作記述のサイズおよび接続情報を分析する分析手段と、分析手段により分析した結果に基づいて、動作記述をメモリへ変換し、接続情報を元にプロトコルに変換する変換手段として機能させ、動作記述を入力して高位合成処理を行いＨＤＬ記述を出力する高位合成装置として機能させることを特徴とする高位合成プログラムである。
【発明の効果】
【００１４】
本発明によれば、一つのモジュールでは動作合成出来ないサイズのモジュール同士のメモリの共有や、排他に動作する異なる機能のモジュール同士のメモリの共有が可能になる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態に係る高位合成装置の構成例を示すブロック図である。
【図２】本実施の形態に係る高位合成装置の機能構成を示すブロック図である。
【図３】本実施の形態に係る動作記述の一例を示す図である。
【図４】本実施の形態に係る動作合成制約記述を示す図である。
【図５】本実施の形態に係るメモリリソースに合ったインターフェース記述を示す図である。
【図６】本実施の形態に係る動作記述のブロック図のイメージを示す図である。
【図７】本実施の形態に係る動作記述のブロック図のイメージを示す図である。
【図８】本実施の形態に係るハードウェア回路記述を示す図である。
【図９】本実施の形態に係る動作記述のブロック図のイメージを示す図である。
【図１０】本実施の形態に係るＨＤＬ回路記述を示す図である。
【図１１】本実施の形態に係る動作記述のブロック図のイメージを示す図である。
【図１２】本実施の形態に係る動作合成制約記述を示す図である。
【図１３】本実施の形態に係る動作記述のブロック図のイメージを示す図である。
【図１４】本実施の形態に係る動作合成制約記述を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態の高位合成装置及び、それを用いた高位合成方法について図面を参照しながら説明する。
【００１７】
図１は、本発明の実施形態の高位合成装置の構成例を示すブロック図である。図１に示すコンピュータ本体としての高位合成装置１１０は、ＣＰＵ（Central Processing Unit ）１１１、ＲＯＭ(Read Only Memory)１１２、ＲＡＭ（Random Access Memory）１１３およびハードディスク（ＨＤＤ）１１４を含む。ＣＰＵ１１１は、グラフィックディスプレイ装置１１５、キーボード１１６、マウス１１７、ＣＤ−ＲＯＭ装置１１８、図示しないネットワーク装置、ＲＯＭ１１２、ＲＡＭ１１３またはハードディスク１１４との間でデータを入出力しながら処理を行う。ＣＤ−ＲＯＭ装置１１８に記録された高位合成プログラムは、ＣＰＵ１１１によりＣＤ−ＲＯＭ装置１１８を介して一旦ハードディスク１１４に格納される。ＣＰＵ１１１は、ハードディスク１１４から適宜高位合成プログラムをＲＡＭ１１３にロードして実行することによって高位合成を行う。
【００１８】
以下に各変形例を含む本実施の形態における高位合成装置について説明するが、図１に示す高位合成装置の構成は各変形例において共通である。
【００１９】
図２は本発明の一実施形態における高位合成装置の機能構成を示すブロック図である。図２において、高位合成装置はメモリリソース検出部３と、メモリリソース抽出部４と、メモリリソース分析部５と、メモリ変換部６と、ＣＤＦＧ変換処理部７０１とスケジューリング処理部７０２とアロケーション処理部７０３で構成された動作合成部７と、メモリ生成部８と、メモリインターフェース生成部９とを有し、動作記述１と動作合成制約記述２とを入力として、動作記述から生成される演算器、レジスタ、データパスおよびコントローラ回路などに、メモリ生成部８と、メモリインターフェース生成部９により自動生成されたＨＤＬ記述１０によるメモリ及びメモリインターフェース回路を付加して、ＨＤＬ回路を合成するものである。
【００２０】
動作記述１は処理の動作のみを記述した動作記述であり、動作記述を記述できる言語なら何でもよい。その動作記述の一例を図３に示している。
【００２１】
図３において、動作記述はメモリのように扱われる配列の記述を含み、図３の（２）の一行目と二行目で８ｂｉｔのデータを２５６個分格納出来る配列を宣言している。三行目よりモジュールsystemを宣言しているモジュールsystemは図３の（２）のモジュールmod1と図３の（３）のモジュールmod2をインスタンスしており、モジュールmod1はグローバル宣言された配列arrayへデータを書き込む処理を行っている。モジュールmod2はグローバル宣言された配列arrayに格納されたデータを読み出す処理を行っている。また図３の（１）の二行目に記述してあるarrayxは宣言されているがmod1、mod2では使用されていない。
【００２２】
動作合成制約記述２を図４に示す。一行目から三行目まで、高位合成の対象となるモジュールを定義している。四行目より対象のモジュールをどの様に高位合成するかを示している。図４の例ではクロックのサイクルを5、オプションではエリアを小さくなるように合成をするとか、パイプライン回路になるように高位合成するなどがある。
【００２３】
図２のメモリリソース分析部５で解析されたメモリリソースに合ったインターフェース記述例を図５に示す。
【００２４】
メモリリソース検出部３は、処理の動作のみを記述した動作記述から、メモリとなり得る記述を動作記述１と動作合成制約記述２より検出するものである。具体的には図３の（１）の一行目と二行目が検出されることになる。
【００２５】
メモリリソース抽出部４は、処理の動作のみを記述した動作記述から、複数のモジュールから使用されるメモリとなる配列を抽出する。具体的には図３の（１）の一行目のarrayがメモリとなる。二行目のarrayxは複数モジュールから使用される配列変数ではないためこの工程で除外される。
【００２６】
メモリリソース分析部５は、メモリリソース抽出部４で抽出されたメモリリソースを分析する。具体的にはarrayのデータサイズや、データが格納出来る量から、使用するインターフェースを求める。分析された情報を基に具体的には図５の様にライトデータ、リードデータ、アドレス、ライトイネーブルなどのビット幅を決定する。
【００２７】
メモリ変換部６は、メモリリソース分析部５で分析されたメモリリソースをメモリの形式に変換を行う。
【００２８】
ＣＤＦＧ変換処理部７０１はコントロールデータフローグラフに変換処理を行う。スケジューリング処理部７０２は、入力されたデータがどれだけ時間をかけて出力されるか、内部の各信号を調整し、最適なスケジュールを行う。アロケーション処理部７０３は、演算器などのリソースの共通化して最適な回路を生成する。メモリやインターフェースが解析された高位合成対象の３つのモジュールを入力として高位合成が行われる。
【００２９】
メモリ生成部８は、高位合成で使ったメモリ変数をＨＤＬに生成するための工程をになう。
【００３０】
メモリインターフェース生成部９はメモリ生成部８で生成されたメモリとメモリにアクセスするモジュールmod1とモジュールmod2を接続するためのインターフェースを生成する。生成されたインターフェースが付加された例を図８に示す。配列変数arrayにアクセスしていた記述は、それぞれ生成されたインターフェースへのアクセスに変換されている。
【００３１】
ＨＤＬ記述１０は、動作記述１が図２のメモリリソース検出部３と、メモリリソース抽出部４と、メモリリソース分析部５と、メモリ変換部６と、ＣＤＦＧ変換処理部７０１とスケジューリング処理部７０２とアロケーション処理部７０３で構成された動作合成部７と、メモリ生成部８と、メモリインターフェース生成部９とによる処理がなされることによって出力されるＨＤＬ回路記述である。メモリのインターフェースが付加されたＨＤＬ回路が生成される。ＨＤＬ回路記述の例を図１０に示す。
【００３２】
次に本発明の特徴部分であるメモリとメモリにつながる回路とのインターフェースの生成処理について説明をする。メモリの生成、メモリインターフェースの生成処理とは、インターフェースを介して外部とデータ転送を行うためのインターフェース回路を生成する処理である。以下に詳細な説明を図６、図７、図９を使って説明をする。
【００３３】
図６は図３の（１）のイメージをブロック図化したものである。systemモジュールには図３の（２）のmod1モジュールと図３の（３）のmod2モジュールがインスタンス化され、グローバルで宣言された配列arrayをアクセスする。図２の動作合成制約記述２に高位合成となる前述のモジュールの情報や、どの様に高位合成をするか等、高位合成をするための情報が格納される。
【００３４】
図２のメモリリソース検出部３に入力された図２の動作記述１からメモリになり得る配列記述である配列arrayと配列arrayxを検出する。図２のメモリリソース抽出部４でメモリリソース検出部３で検出された配列に対して複数モジュールから使用されている配列変数を抽出する。ここでは配列arrayのみが抽出されることとなる。
抽出された配列arrayは図２のメモリリソース分析部５によって分析される。この例では配列arrayはデータ幅が8bitでデータの深さが256個であることが分析の結果わかることになる。ここでの情報によってインターフェースで必要な情報が求められ、図５のインターフェースを作成する。
高位合成を行うために図２のメモリリソース分析部５で分析されたメモリへの変換を図２のメモリ変換部６で行う。メモリ変換部６ではデータ8bitでアドレスが8bitのメモリへ変換される。メモリへ変換されたものと動作記述１と動作合成制約記述２が図２の高位合成に関するＣＤＦＧ変換処理部７０１とスケジューリング処理部７０２とアロケーション処理部７０３に入力される。この時入力される動作記述１は図７の様にmod2２０３の中に配列array２０１が実装され、mod2２０３にはmod1２０２から配列array２０１へアクセスするためにインターフェースが用意された形に認識される様になっている。
ＣＤＦＧ変換処理部７０１とスケジューリング処理部７０２とアロケーション処理部７０３で高位合成された回路記述を元に図２のメモリ生成部８で配列arrayを分析した結果に基づきメモリのモデルを生成する。
その後、図４のメモリインターフェース生成部９にて前段で生成されたメモリへアクセスするためのメモリーインターフェースを生成し、図９をイメージとした図８の様なハードウェア回路記述を出力する。
【００３５】
図１３の様に図１３の７０２のmod1モジュールと図１３の７０３のmod2モジュールがメモリへ同時アクセスがあった時に予期せぬ動作にならないようにメモリとの間に図１３の７０４のアービタ回路を配置する。図２の動作合成制約記述２内に図１２のアービトレーションに関する制約を与えることでユーザーの任意で設定をすることができる。また、モジュールの強弱を記号などで示すことによりアービトレーション強度を指定することが可能である。
【００３６】
メモリの配置場所の指定は、図２の動作合成制約記述２内に記述する。図３の動作記述を例に上げると、図１３の例のように３箇所に配置することが出来る。図１４の動作合成制約によると、ＲＡＭ１１３の配置場所はsystemモジュールとなり、図１１の１の様なハードウェア記述が生成される事になる。図１４の動作合成制約記述２内でＲＡＭ１１３の配置場所の指定を変えることで、ユーザーの指定通りのハードウェア記述を生成することが可能になる。図１４のメモリの配置場所指定宣言を図１２の動作合成制約記述に追記することでアービトレーションとメモリ配置指定を同時に行うことができる。
【００３７】
上記の本実施の形態によれば、メモリに繋がる複数のモジュールをアービトレーションすることが可能な論理回路を生成することで、異なるモジュールから、メモリへ同時にアクセスした時にメモリ内のデータが壊れたり間違えた値を読み取る様な不具合を回避することが可能になる。
【００３８】
また、アービトレーションする順番を指定する事が可能な論理回路を生成することで、異なるモジュールから、メモリへ同時にアクセスした時に問題なく動作するように全体的な機能を考慮した動作合成が可能になる。
【００３９】
また、メモリを配置する場所を指定することを可能とすることで、メモリの速度が動作速度を左右する場合などに、メモリの配置場所を選択する事で全体の速度性能を考慮した動作合成が可能になる。
【００４０】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々の変更実施が可能である。例えば、高位合成装置の機能を実現するためのプログラムを装置に読込ませて実行することにより装置の機能を実現する処理を行ってもよい。さらに、そのプログラムは、コンピュータ読み取り可能な記録媒体であるＣＤ−ＲＯＭまたは光磁気ディスクなどを介して、または伝送媒体であるインターネット、電話回線などを介して伝送波により他のコンピュータシステムに伝送されてもよい。また、各装置の機能が他の装置によりまとめて実現されたり、追加の装置により機能が分散されて実現される形態も本発明の範囲内である。
【符号の説明】
【００４１】
１    動作記述
２    動作合成制約記述
３    メモリリソース検出部
４    メモリリソース抽出部
５    メモリリソース分析部
６    メモリ変換部
７    動作合成部
７０１    ＣＤＦＧ変換処理部
７０２    スケジューリング処理部
７０３    アロケーション処理部
８    メモリ生成部
９    メモリインターフェース生成部
１０    ＨＤＬ記述
【先行技術文献】
【特許文献】
【００４２】
【特許文献１】特開２００５−１７３６４８号公報
【図１】
2011044073.tif 000003
【図２】
2011044073.tif 000004
【図３】
2011044073.tif 000005
【図４】
2011044073.tif 000006
【図５】
2011044073.tif 000007
【図６】
2011044073.tif 000008
【図７】
2011044073.tif 000009
【図８】
2011044073.tif 000010
【図９】
2011044073.tif 000011
【図１０】
2011044073.tif 000012
【図１１】
2011044073.tif 000013
【図１２】
2011044073.tif 000014
【図１３】
2011044073.tif 000015
【図１４】
2011044073.tif 000016