JP2014106639A - 高位合成装置、高位合成方法、及び高位合成プログラム - Google Patents
高位合成装置、高位合成方法、及び高位合成プログラム Download PDFInfo
- Publication number
- JP2014106639A JP2014106639A JP2012257879A JP2012257879A JP2014106639A JP 2014106639 A JP2014106639 A JP 2014106639A JP 2012257879 A JP2012257879 A JP 2012257879A JP 2012257879 A JP2012257879 A JP 2012257879A JP 2014106639 A JP2014106639 A JP 2014106639A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- description
- circuit
- ram
- level synthesis
- 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.)
- Pending
Links
Images
Abstract
【課題】複数の機能モジュールが使用するメモリのメモリ構成が異なる場合でも、各機能モジュールがメモリを共有出来るように、メモリの接続記述を自動的に生成する。
【解決手段】処理動作の記述を解析し、全機能モジュールが使用するメモリのメモリ構成の情報のリストを作成する(S1、S2)。排他動作する機能モジュールを識別し、メモリ構成の各容量を算出する(S3)。排他動作する機能モジュール毎に共有可能なメモリ構成の組み合わせの対応付けを探索する(S4〜S11)。探索結果を基に、メモリ記述の修正及び変更を行う(S12)。
【選択図】図8
【解決手段】処理動作の記述を解析し、全機能モジュールが使用するメモリのメモリ構成の情報のリストを作成する(S1、S2)。排他動作する機能モジュールを識別し、メモリ構成の各容量を算出する(S3)。排他動作する機能モジュール毎に共有可能なメモリ構成の組み合わせの対応付けを探索する(S4〜S11)。探索結果を基に、メモリ記述の修正及び変更を行う(S12)。
【選択図】図8
Description
本発明は、処理動作記述からレジスタトランスファレベル(RTL)の論理回路を自動生成する、高位合成装置、高位合成方法、及び高位合成プログラムに関する。
LSIの集積度は年々指数関数的に増加しているが、設計者一人一人の能力には限界があるため、設計規模の増大に設計能力が追いつかないという状況が生じる。この設計生産性の危機を打開するための有効なアプローチの一つに、設計の抽象度を上げる方法が知られている。
例えば、ある処理を実行するハードウェアを設計する際に、対象となる処理のアルゴリズムを動作レベルで記述した「処理動作記述」から、レジスタやクロックによる同期などハードウェアに特有の概念を意識した「レジスタ転送レベル記述」(以下、「RTL記述」と言う)を自動的に合成する「高位合成」(「動作合成」、「機能合成」とも言われている)がある。
ここで、「処理動作記述」はC言語のようなプログラミング言語を用いて、回路の動作を逐次処理として記述したものであり、「RTL記述」はVerilog-HDLのようなハードウェア記述言語(Hardware Description Language:HDL)により記述したものである。
高位合成では、C、C++言語などで記述されたアルゴリズムからRTLへの変換を行えるが、ハード特有の部分の生成が困難な場合には記述の修正が必要となる。例えば、メモリ部分などは処理動作記述にはないため、ハード化のための記述をする必要がある。
特に、図1に示すような、回路A 100と回路B 102の両回路がメモリ(RAM)101を共有している場合などでは記述の修正を行っている。その記述は、図2に示すようになる。ここで、図2(1)はトップ記述、図2(2)はメモリ記述、図2(3)は回路A記述、図2(4)は回路B記述である。
図2(1)に示すように、トップ記述200は、回路A 100、回路B 102のそれぞれがRAM101の接続記述として、記述204及び205を有する。記述204は回路A 100の接続信号ポートとRAM101の接続信号ポートの記述であり、記述205は回路B 102の接続信号ポートとRAM101の接続信号ポートの記述である。
図2(2)に示すように、メモリ記述201は、回路A 100と回路B 102への接続記述として、記述206乃至210を有する。記述206と207は、回路A 100と回路B 102への接続のためのポートの記述である。記述208は、このポートがメモリを共有とするための記述である。記述209及び210は、このポートとメモリ(メモリマクロ)との接続記述である。メモリ(メモリマクロ)との接続は、回路A 100及び回路B 102からの信号をメモリ(メモリマクロ)のインタフェースへセレクタを介して接続されるようになる。
図2(3)に示すように、回路A記述202は、RAM101との接続のためのポートの記述211を有し、図2(4)に示すように、回路B記述203は、RAM101との接続のためのポートの記述212を有する。
RTLに変換される回路としてのイメージ図は図3に示すようになる。図2に示す記述例では、RAM部分を1つのモジュール(RAMトップ)301として作成し、メモリマクロ(RAM302)を回路A 100と回路B 102から共有制御するための制御信号を選択するセレクタ303が作成される。
このように、メモリの接続記述(メモリインタフェースとなる回路記述)は処理動作の記述とは異なり、ハード化のための記述であり、共有であるための記述208乃至210が必要である。また、複数のメモリを共有化させる場合には、どのメモリをどのように共有化させるか(ここでは記載していない)を人手で検討して記述する必要がある。
近年、ASICなどの論理回路は大規模となり、多機能化され、複数の機能モジュールが搭載され、機能モジュール個々にメモリが使用され、多種多数のメモリが使用される。回路規模を削減するためにメモリを共有させることが多々あるが、多数の機能モジュールとメモリとの共有のための組み合せを検討し、記述する手間が大きくなっている。
メモリ共有を可能とした高位合成装置としては、動作合成記述からメモリに変換される部分を検出・抽出する手段と、抽出した記述よりサイズや、接続情報を分析してメモリへの変換及びプロトコルへの変換を行う手段を備え、メモリへの変換として、スケジュールリングのためのCDFG(コントロール・データ・フロー・グラフ)の生成から、主に並列動作する箇所に関しての共有可能なメモリを分析することで、アロケーションを行う高位合成装置がある(特許文献1、2)。
しかしながら、上述のメモリ共有を可能とした高位合成装置は、単一のメモリを並列動作するモジュールから、スケジューリングを基にアロケーション回路を生成してメモリ共有を行うものであるため、共有する回路のそれぞれが使用するメモリ容量としては共有可能であっても、メモリ構成が異なる場合には対応していない。
メモリ容量としては共有可能であっても、メモリ構成が異なる場合とは、例えば、一方の回路で8ビット×128ワードを2個使用しており、他方の回路で16ビット×128ワードを1個使用する場合である。
このような場合、メモリを組み合わせて必要なメモリ構成にするとともに、その組み合わせを示すメモリの接続記述を作成することで共有が可能となる。しかし、人手により組み合わせの検討とその記述を行う必要があり、最適(メモリを最小容量にするなど)とすることが困難である。また、設計途中で各メモリ構成の変更が発生したとき、再度メモリの組み合わせ及び記述の変更が必要となるため、作業が大きくなるという問題や、人手では記述ミスとなる可能性が増えるという問題がある。
本発明は、このような問題を解決するためになされたものであり、その目的は、複数の機能モジュールが使用するメモリのメモリ構成が異なる場合であっても、それらの機能モジュールがメモリを共有出来るように、メモリの接続記述を自動的に生成出来るようにすることである。
本発明は、複数の機能モジュールの処理動作の記述を解析し、排他動作する複数の機能モジュールが使用するメモリのメモリ構成情報を取得するメモリ構成情報取得手段と、該取得したメモリ構成情報を基に、前記排他動作する複数の機能モジュール間で共有可能なメモリ構成の対応付けを行う対応付け手段と、該対応付けの記述を含むメモリの接続記述を生成するメモリ接続記述生成手段と、を有する高位合成装置である。
本発明によれば、複数の機能モジュールが使用するメモリのメモリ構成が異なる場合であっても、それらの機能モジュールがメモリを共有出来るように、メモリの接続記述を自動的に生成することが出来る。
以下、本発明の実施形態について図面を参照して説明する。
[高位合成装置のハードウェア構成]
図4は、本発明の実施形態に係る高位合成装置のハードウェア構成を示すブロック図である。この高位合成装置400はコンピュータシステムにより構成されており、CPU401、ROM402、RAM403、HDD(ハードディスク)404を備えている。また、この高位合成装置400はディスプレイ装置405、キーボード406、マウス407、及び光学ディスクドライブ装置408を備えている。
[高位合成装置のハードウェア構成]
図4は、本発明の実施形態に係る高位合成装置のハードウェア構成を示すブロック図である。この高位合成装置400はコンピュータシステムにより構成されており、CPU401、ROM402、RAM403、HDD(ハードディスク)404を備えている。また、この高位合成装置400はディスプレイ装置405、キーボード406、マウス407、及び光学ディスクドライブ装置408を備えている。
CPU401は、ROM402、RAM403、HDD404、ディスプレイ装置405、キーボード406、マウス407、光学ディスクドライブ装置408、ネットワーク装置(図示せず)との間でデータを入出力しながら処理を行う。
CD−ROMなどの光学ディスクに記録された高位合成プログラムは、CPU401により光学ディスクドライブ装置408を介して一旦HDD404に格納される。CPU401は、HDD404から適宜高位合成プログラムをRAM403にロードして実行することによって、後述する各実施形態に係る高位合成処理を実行し、処理動作の記述からレジスタトランスファレベルの記述の論理回路を生成する。
[第1の実施形態]
図5は、本発明の第1の実施形態における、メモリを共有する2つの機能モジュールとメモリとの接続関係を示すブロック図、及びそのメモリのメモリ構成と2つの機能モジュールが使用するメモリのメモリ構成との関係を示す図である。また、図6は、図5に示す構成を実現するための制御信号選択回路を示す図である。
図5は、本発明の第1の実施形態における、メモリを共有する2つの機能モジュールとメモリとの接続関係を示すブロック図、及びそのメモリのメモリ構成と2つの機能モジュールが使用するメモリのメモリ構成との関係を示す図である。また、図6は、図5に示す構成を実現するための制御信号選択回路を示す図である。
図5(1)において、回路ABC 500は機能モジュールの1つであり、下階層の回路A 501と回路B 502と、回路C 503により構成されている。各回路はRAMトップ508として構成された1つのモジュールのメモリを使用する。即ち、回路A 501はRAM−A 504を使用し、回路B 502はRAM−B1 505とRAM−B2 506を使用し、回路C 503はRAM−C 507を使用する。回路O 510はもう一方の機能モジュールであり、下階層の回路O 509の1つで構成されており、RAMトップ508として構成されたメモリを使用する。
図5(2)に示すように、回路ABC 500の各回路が使用するメモリ構成は、回路A 501が16ビット×512ワード、回路B 502が8ビット×128ワードを2本、回路C 503が16ビット×64ワードである。また、回路O 509が使用するメモリ構成は16ビット×700ワードである。回路O 509が使用するメモリは、回路ABC 500が使用するメモリの全てを結合することで必要なメモリ構成となる。
回路ABC 500と回路O 510が排他動作する回路とすると、メモリを共有可能となる。このようにメモリを共有する場合、図6に示すように、RAMトップ508には、各メモリが2つの機能モジュール(回路ABC 500、回路O 510)からの制御信号を排他動作毎にアクセス制御するための信号を選択する回路600が必要となる。
そのため、RAM−A 504には回路A 501からの信号601と回路O 509からの信号605を選択するためのセレクタ606が生成され、RAM−B1 505には回路B 502からの信号602と回路O 509からの信号605を選択するためのセレクタ607が生成される。また、RAM−B2 506には回路B 502からの信号603と回路O 509からの信号605を選択するためのセレクタ608が生成され、RAM−C 507には回路C 503からの信号604と回路O 509からの信号605を選択するためのセレクタ609が生成される。
また、回路O 509とRAMトップ508との接続はRAM−A 504〜RAM−C 507の組み合わせによる構成のため、メモリアクセスのためのアドレスマッピングが必要となる。図5(2)に示すように、先頭アドレスをRAM−Aとし、RAM−Aの後にRAM−C、RAM−Cの後にRAM−B1とRAM−B2を幅(ビット)方向に結合したマッピングとなるようにする。このマッピングにより、セレクタ606→609→607→608の順にアクセス可能となる。
図7は、図6に示す回路を生成するための記述を高位合成可能な記述を示す図である。ここで、図7(1)、図7(2)、図7(3)、図7(4)は、それぞれトップ記述、メモリ記述、回路ABC記述、回路O記述を示す。
図7(1)に示すように、トップ記述700は、回路ABCと回路Oのそれぞれがメモリとの接続記述として、記述705と記述706を有する。記述705が回路ABCの接続信号ポートとRAMの接続信号ポートの記述であり、記述706が回路Oの接続信号ポートとRAMの接続信号ポートの記述である。
図7(2)に示すように、RAMトップ記述701は、回路ABCと回路Oへの接続記述として、記述707乃至709を有する。記述707は回路ABCと回路Oへの接続ポートの記述であり、記述708はこのポートがメモリを共有とするための記述であり、記述709はこのポートと各メモリとの接続記述である。
図7(3)に示すように、回路ABC記述702は、メモリとの接続のためのポートの記述710を有し、図7(4)に示すように、回路O記述703は、メモリとの接続のためのポートの記述711を有する。
前述のとおり、回路Oは回路ABCとのメモリ共有をメモリの組み合わせにより実現するため、メモリのアドレスマッピングとなる記述が必要となる。そこで、図7(5)の記述704における記述712、713、714に示すように、アドレス値によりデコードされる記述となる。また、データもそれぞれのメモリのデータ(ここでは読み出しの記載のみ例示)との接続となり、記述715、716、717のようになる。ここで、記述717は幅(ビット)方向へのメモリ結合のために2つのメモリ(ram_b1,ram_b2)を結合した記述となる。
図8は、図7に示す記述を作成する処理の手順を示すフローチャートであり、図9は、図7に示す記述に変換される前の記述を示す図である。つまり、図8に示す処理により、図9に示す記述を図7に示す記述に変換する。図8に示す処理の手順が本発明の第1の実施形態に係る高位合成処理における記述変換処理の手順である。
まず図9について説明する。ここで、図9(1)、図9(2)、図9(3)、図9(4)は、それぞれトップ記述、RAMトップ記述、回路ABC記述、回路O記述を、それぞれ示す。
図9(1)に示すように、トップ記述900は、各モジュールとメモリとの接続において、”//groupABC”や”//groupO”などのように、排他動作毎にグループ分けを行う記述904及び905を有する。
図9(2)に示すように、RAMトップ記述901は、排他動作毎の回路に対するポートを表す記述906及び907を有する。また、図9(3)に示すように、回路ABC記述902は、メモリとの接続のためのポートの記述909を有し、図9(4)に示すように、回路O記述903は、メモリとの接続のためのポートの記述910を有する。
次に図8について説明する。
まず、高位合成のための回路記述(処理動作の記述)から全機能モジュールで使用されるメモリの構成の情報を抽出する(ステップS1)。ここでは、回路ABC記述902の記述909、及び回路O記述903の記述910により、全機能モジュール(回路ABC、回路O)の使用するメモリ構成の情報を取得出来る。
まず、高位合成のための回路記述(処理動作の記述)から全機能モジュールで使用されるメモリの構成の情報を抽出する(ステップS1)。ここでは、回路ABC記述902の記述909、及び回路O記述903の記述910により、全機能モジュール(回路ABC、回路O)の使用するメモリ構成の情報を取得出来る。
次に、抽出したメモリ構成の情報のリストを作成して、管理を行えるようにする(ステップS2)。次いで、記述904〜905から排他動作する回路を識別するとともに、排他動作する回路毎のメモリ構成の容量を算出する(ステップS3)。
次に、回路ABCと回路Oとの間で同じメモリ構成同士の対応付けを行う(ステップS4)。この例では、回路ABCと回路Oで同じメモリ構成を使用していないので対応なしとなるが、回路Oが回路ABCのメモリ構成のうちの何れかと同じメモリ構成を使用していれば、ここで対応付けを行う。
次いで、対応付けされていないメモリ構成をピックアップ(抽出)し(ステップS5)、メモリを結合する形で対応付けを行う(ステップS6)。ここで、メモリの結合とは、図5(2)に示すように、必要なメモリ構成(ビット数×ワード数)を複数のメモリの組み合わせにより作成することである。
このとき、ビット数とワード数が使用されるサイズを満たしていれば、完全に一致しなくてもよい。即ち、図5(1)に示すように、回路O側の16ビット×700ワードに対し、RAM−A、RAM−C、RAM−B1、及びRAM−B2の組み合わせは16ビット×704ワードとなり、4ワード多いが、必要なメモリ構成を満たしているため問題ない。
次に、結合したメモリ構成が必要なメモリ構成と対応出来ているか否かを判断するため、未対応部分(未対応容量)を確認する(ステップS7)。回路Oの対応付けを例に説明すると、ステップS5で回路Oの16ビット×700ワードのメモリ構成の対応付けを行うことを識別し、ステップS6でRAM−A(16ビット×512ワード)の対応付けを行う。従って、ステップS7では、対応付けの必要なメモリ容量の16ビット×700ワードに対して、16ビット×188ワードを未対応部分として把握する。
未対応部分があると判断すると(ステップS7:あり)、ステップS8に進み、未対応構成があるか否かを判断する。回路Oの対応付け例として、上記の続きから説明すると、16ビット×188ワードが未対応部分であり、これに対して、RAM−B1とRAM−B2が対応付けを行っていない未対応構成である。このため、未対応構成がある(ステップS8:あり)と判断し、ステップS6に戻る。
ステップS8において、未対応構成がない(ステップS8:ない)と判断した場合、即ち、全メモリ構成での対応確認が済んでいる場合、未対応部分とその対応付けしたメモリ構成の組み合わせを保持・管理し、ステップS9に進む。
ステップS9では、未対応部分が0でない状態、即ち未対応部分が残っている状態である。ステップS9では、ステップS6〜S8において対応付けされた組み合わせと異なる組み合わせがあるか否かを判断する。ある場合は(ステップS9:あり)、ステップS6に戻り、別の組み合わせによる対応付けを行うように、ステップS6〜S9の処理を行う。なお、ステップS9の詳細については第2の実施形態において説明する。
ステップS9において、全ての組み合わせの確認が完了したら(ステップS9:なし)、ステップS11に進む。この段階で未対応部分が0でない場合、ステップS8においてメモリ構成の組み合わせによる対応付けの情報が管理保持されている。未対応容量が0でなく、不足している場合は、ステップS11においてメモリ構成を新規に追加する。
次に、メモリ構成の記述の修正及び変更を行い(ステップS12)、この図に示すフローを終了する。以上により、図9に示す記述から図7に示す記述への変換が完了する。以上の処理手順において、ステップS1〜S3が本発明に係るメモリ構成情報取得手段に、ステップS4〜S11が対応付け手段に、ステップS12がメモリ接続記述生成手段に、それぞれ対応する。
図9及び図7に示すように、トップ記述700に関しては、共有部分の回路とメモリの接続記述706を追加・変更・修正する。また、RAMトップ記述701に関しては、RAMトップと各回路との接続ポートの記述707、共有情報の記述708、及び各信号とメモリの接続記述709を追加・変更・修正する。また、回路O記述703については、共有したメモリとの信号に変換する記述711を追加・変更・修正する。さらに、メモリのアドレスマッピングによるセレクトのための回路の記述が追加される。
このように、本実施形態に係る高位合成処理では、処理動作の記述を解析して、メモリの接続記述を検出し、検出したメモリの接続記述から、メモリ構成の情報の検出と、検出したメモリ構成の排他動作の情報を取得する。次に、これらのメモリ構成の情報及び排他動作の情報をリスト化し、排他動作する機能モジュール間で使用されるメモリ構成を比較し、メモリ構成を結合した場合の構成を比較する。次に、比較結果より、排他動作する回路間で共有するメモリ構成の組み合わせの対応付けを探索する。次に、探索した組み合わせのメモリ構成を基に、処理動作の記述におけるメモリ共有部分を含めたメモリの接続記述に変換する。
これにより、排他動作する回路間でメモリを共有する場合、それぞれのメモリ構成を高位合成するための回路記述として、それぞれの回路で必要となるメモリ構成としての記述を行うことで、共有するための記述を行わずにすむ。このメモリ構成としての記述を基に、メモリを共有するためのメモリ構成の組み合わせの対応付けを自動的に探索し、探索したメモリ構成の組み合わせの対応付けにより、高位合成可能な記述に変更することが出来るからである。
[第2の実施形態]
第1の実施形態(図5)では、2つの機能モジュールの内、一方は複数のメモリを使用し、他方は1つのメモリを使用したが、本実施形態では、2つの機能モジュールの双方が複数のメモリを使用する。
第1の実施形態(図5)では、2つの機能モジュールの内、一方は複数のメモリを使用し、他方は1つのメモリを使用したが、本実施形態では、2つの機能モジュールの双方が複数のメモリを使用する。
図10は、本発明の第2の実施形態における、メモリを共有する2つの機能モジュールとメモリとの接続関係を示すブロック図であり、図11は、図10におけるメモリのメモリ構成と2つの機能モジュールが使用するメモリのメモリ構成との関係を示す図である。図10、図11において、図5と同一の部分には図5と同じ参照符号を付した。
図10に示すブロックは、図5に示すブロックにおける回路O側の下階層のモジュールが2つとなり、共有させるメモリ構成が2つとなったものである。ここでは、回路OP 1000の下階層の回路O 1001と、回路P 1002がそれぞれ1つのメモリを使用する。各回路が使用するメモリを順番に対応させることで、第1の実施形態に係る高位合成処理(図8)と同様に処理することが出来る。
図11に示すように、回路ABC 500の各回路が使用するメモリ構成は、第1の実施形態と同じであり、回路A 501が16ビット×512ワード、回路B 502が8ビット×128ワードを2本、回路C 503が16ビット×64ワードである。一方、回路OP 1000の各回路の内、回路O 1001が使用するメモリ構成は16ビット×576ワードであり、回路P 1002が使用するメモリ構成は8ビット×256ワードである。図11(1)に示すように、回路O 1001は、RAM−AとRAM−Cの組み合わせにより、また図11(2)に示すように、回路P 1002はRAM−B1とRAM−B2の組み合わせにより、使用するメモリ構成を得る。
本実施形態に係る高位合成処理における記述修正処理では、このメモリ構成の組み合わせ探索することになる。図12は、本実施形態に係る高位合成処理における記述変換処理の内、メモリ構成の組み合わせの対応付けを探索する処理の手順を示すフローチャートであり、図13は図12に示す処理を実行する過程で作成され、保持される情報を示す図である。
図12において、図8におけるステップと対応するステップには図8と同じ参照符号(ステップ番号)を付した。本実施形態に係る高位合成処理における記述変換処理の全体の流れは図8と同じであり、更に複数のメモリ(図10の場合は回路O 1001と回路P 1002で使用するメモリ)の対応付けを行う順番を加味したものである。ステップS1〜S4、S11、S12は図示を省略した。
まず、ステップS1、S2において、全機能モジュールが使用するメモリのメモリ構成の情報を抽出し、メモリ構成の情報のリストを作成する。ここでは、図13における欄1300示すように、メモリを共有していない状態での全ての回路である回路ABCと回路OPが使用するメモリのメモリ構成が抽出され、リストが作成される。
次に、ステップS3において、排他動作する回路を記述から識別するとともに、排他動作する回路毎のメモリ構成の容量を算出する。算出した情報は、図13における欄1301に示すように、「ビット数×ワード数」の情報である。
次いで、ステップS4において、同じメモリ構成の対応付けを行い、ステップS5により、対応付けされていないメモリ構成をピックアップする。ここでは、全てが対応付けされていないため、全メモリ構成がピックアップされる。
次に、ステップS51において、ステップS5でピックアップされた未対応構成の内、メモリ構成が大きいものから順に対応付けを行う。ここで、メモリ構成の大小はステップS2で算出した情報を基に判定する。図10に示す回路の場合、回路O 1001が使用するメモリ(以下、RAM−O)のメモリ容量(16ビット×576ワード)が最大であるため、RAM−Oを対応させるメモリを最初に決めることになる。従って、ステップS6において、図13の欄1303に示すように、RAM−O(*が対応付けを決める対象のメモリを示す)に対して、RAM−A(16ビット×512ワード)との対応付けを行う(番号1)。
次のステップS7においては、RAM−Oの未対応部分(未対応容量)がある状態となり(ステップS7:あり)、ステップS8に進み、未対応構成の有無を判定する。ここでは、別の対応確認していないメモリ構成があるため(ステップS8:あり)、ステップS6に戻る。
ステップS6では、RAM−Oの未対応部分(未対応容量:16ビット×64ワード)に対する対応を確認する。そして、欄1304に示すように、未対応部分に対してRAM−B1(8ビット×128ワード)、RAM−B2(8ビット×128ワード)の対応付けを行う(番号2、番号3)。ここで、RAM−B1、RAM−B2との対応付けは、2回のステップS6により行われる。即ち、ステップS6(RAM−B1との対応付け)→ステップS7:あり→ステップS8:あり→ステップS6(RAM−B2との対応付け)の処理となる。
メモリ容量が最大のメモリ構成(ここではRAM−O)に対する1つの組み合わせの対応付けが完了したら(ステップS8:なし)、ステップS9に進んで、他の組み合わせの確認が完了しているか否かを判断する。
ここでは、他の組み合わせとしてRAM−Cを用いる組み合わせが完了していないため(ステップS9:あり)、ステップS6に戻り、組み合わせの確認を行っていないものの確認を繰り返す。この繰り返しにより、欄1306の組み合わせが探索される。
他の組み合わせの確認が完了したら(ステップS9:なし)、ステップS91において、全てのメモリ構成の対応付けが出来ているか否かを判断する。ここでは、RAM−Oの対応付けのみ完了であり、RAM−Pの対応付けが未了のため(ステップS91:NO)、ステップS51に戻る。
このとき、ステップS6〜S9における組み合わせ(欄1303及び1304、欄1306の情報)を加味して、RAM−Pのメモリの組み合わせの探索を行う。即ち、欄1303及び1304のメモリの組み合わせに対する残りのメモリ組み合わせ、欄1306のメモリの組み合わせに対する残りのメモリ組み合わせの探索を順次に行う。これにより、全メモリ構成の対応付けが完了となる(ステップS91:YES)。
以上の処理により組み合わせ情報を収集し、ステップS10において、最小容量となる組み合わせの対応付けを選択する。ここでは、回路Oと回路Pの組み合わせとして、下記(i)、(ii)のような選択候補を算出して、追加するメモリの容量が最小となる組み合わせを選択する。
(i)回路O側のメモリ構成の対応付けが欄1303,1304に示すものとなる場合は、回路P側のメモリ構成の対応付けは欄1308に示すものとなり、回路P側の不足分として16ビット×64ワードを追加する対応付けとなる。
(ii)回路O側のメモリ構成の対応付けが欄1306に示すものとなった場合は、回路P側のメモリ構成の対応付けは欄1307に示すものとなり、回路P側の不足分は0となる。
これらの(i)、(ii)のうち、追加するメモリの容量が最小となる(ii)を選択する。ステップS11以降の処理(ステップS11、S12)は図8と同じである。
[第3の実施形態]
第1の実施形態及び第2の実施形態は、図9(3)、(4)における記述909、910に示すように、記述に基づいたメモリ構成として、共有するメモリの組み合わせを探索するものであった。
第1の実施形態及び第2の実施形態は、図9(3)、(4)における記述909、910に示すように、記述に基づいたメモリ構成として、共有するメモリの組み合わせを探索するものであった。
これに対し、本実施形態では、共有化するために一方の回路で使用するメモリ構成が他方と異なる場合、図14(1)に示すように、2つのメモリ(RAM−1、RAM−2)をワード方向に結合して1つのメモリ1400とする。また、図14(2)に示すように、2つのメモリ(RAM−1、RAM−2)をビット方向に結合して1つのメモリ1401とすることも行う。
また、図15に示すように、メモリ1500、1501をそれぞれワード方向、ビット方向に分割して、2つのメモリ1502とすることも出来る。また、図16に示すように、メモリ1600、1601の各々をワード方向に分割したものをビット方向に組み合わせて、1つのメモリ1603とすることも出来る。また、メモリ1601を分割したものとメモリ1602とをワード方向に組み合わせて、1つのメモリ1604としたりすることも出来る。以下、このように、記述にあるメモリ構成から分割したメモリ構成をも考慮した場合について説明する。
図17は、本発明の第3の実施形態におけるメモリを共有する2つの機能モジュールとメモリとの接続関係を示すブロック図である。また、図18、図19は、それぞれ図17における回路ABCが使用するメモリ、メモリ構成を示す図であり、図20、図21は、それぞれ図17における回路OPQが使用するメモリ、メモリ構成を示す図である。
図17に示すように、メモリ(RAM−トップ)1701を共有する機能モジュールとして、回路ABC 1700と回路OPQ 1702からなる回路構成がある。回路ABC 1700には、下階層モジュールとして回路A 1703 、回路B 1704、回路C 1705があり、回路OPQ 1702には、下階層モジュールとして回路O 1706 、回路P 1707、回路Q 1708がある。
図18、図19に示すように、回路ABC 1700の各回路が使用するメモリとそのメモリ構成は、以下のようになる。即ち、回路A 1703がRAM−A 1801として16ビット×512ワードである。また、回路B 1704がRAM−B1 1802として8ビット×128ワード、RAM−B2 1803として7ビット×128ワードである。また、回路C 1705がRAM−C 1804として16ビット×64ワードである。
図20、図21に示すように、回路OPQ 1702の各回路が使用するメモリとそのメモリ構成は、以下のようになる。即ち、回路O 1706がRAM−O 2001として23ビット×128ワード、回路P 1707がRAM−P 2002として8ビット×128ワード、回路Q 1708がRAM−Q 2003として8ビット×128ワードである。
図22は、回路ABC 1700の各回路が使用するメモリのメモリ構成と、回路OPQ 1702の各回路が使用するメモリのメモリ構成との最適な対応付けを示す図である。図示のように、RAM−AとRAM−B2とをビット方向に結合した組み合わせがRAM−Oに対応し、RAM−B1がRAM−Pに対応し、RAM−Cをビット方向に分割し、ワード方向に結合してメモリ構成を変えた形がRAM−Qに対応する。
本実施形態に係る高位合成処理における記述変換処理では、このメモリ構成の組み合わせを探索する。図23は、本実施形態に係る高位合成処理における記述変換処理の内、メモリ構成の組み合わせの対応付けを探索する処理の手順を示すフローチャートであり、図24は図23に示す処理を実行する過程で作成され、保持される情報を示す図である。
図23において、図8(第1の実施形態)、図12(第2の実施形態)におけるステップと対応するステップには図8、図12と同じ参照符号を付した。本実施形態に係る高位合成処理における記述変換処理の全体の流れは図12と同じであり、図22に示すRAM−C 1804とRAM−Qを対応させ、共有するための処理を追加したものである。なお、ステップS1〜S4は図示を省略した。
まず、ステップS1、S2において、全機能モジュールが使用するメモリのメモリ構成の情報を抽出し、メモリ構成の情報のリストを作成する。ここでは、メモリを共有していない状態での全ての回路である回路ABCと回路OPQのメモリ構成が抽出され、リストが作成される。従って、図24における欄2400に示すように、RAM−A、RAM−B1、RAM−B2、RAM−C、RAM−O、RAM−P,RAM−Qが抽出され、リストが作成される。
次に、ステップS3において、排他動作する回路を記述から識別するとともに、排他動作する回路毎のメモリ構成の容量を算出し、算出した「ビット数×ワード数」の情報を保持する。
次いで、ステップS4において、メモリの構成が同じもの同士の対応付けを行う。ここで、図22に示すように、RAM−B1とRAM−Pの対応付けが行われる。この対応付けの結果は、図24の欄2403に示すように保持される。
次に、ステップS41において、記述されているメモリ構成から分割を行い、対応付けを行う。この構成の分割は、分割することによりメモリ構成が同じとなるもののみを対応付けるための分割である。ここでは、図22に示すように、RAM−Cをビット方向に分割し、ワード方向に結合することで、RAM−Qとの対応付けが出来る。この対応付けの結果は、図24の欄2402、2403に示すように保持される。
次いで、ステップS5において、対応付けされていないメモリ構成をピックアップし、ステップS51において、ステップS5でピックアップされた未対応構成の内、メモリ構成が大きいものから順に対応付けを行う。
以後のステップS6〜S9では第2の実施形態と同じ処理行う。ステップS9において、他の組み合わせの確認が全て完了したら(ステップS9:なし)、ステップS92〜S97からなる分割・結合組み合わせによる対応付けの探索を行う。
まず、ステップS92において、メモリ構成の分割及び結合による対応付けを行い、次に、ステップS93において、未対応部分があるか否かを判断する。未対応部分がない場合、その状態(未対応部分が0となった状態)での情報を保持する(ステップS94)。この情報(図24の欄2403)は、メモリの組み合わせ、及び結合,分割・結合の情報となる。ステップS94で情報を保持したら、ステップS96に進み、他の組み合わせの有無を判断する。
ステップS93において未対応部分があると判断した場合は(ステップS93:あり)、ステップS95に進み、未対応構成の有無を判断する。未対応構成がある(ステップS95:あり)場合は、ステップS92に戻り、未対応部分がなくなるまで、メモリ構成の分割及び結合による対応付けを繰り返す。
ステップS96において、他の組み合わせがあると判断した場合は、ステップS92に戻り、未対応部分がなくなるまで、メモリ構成の分割及び結合による対応付けを繰り返す。
ステップS96において、他の組み合わせがない、即ち全ての組み合わせが完了したと判断したら(ステップS96:なし)、ステップS97に進む。このステップでは、ステップS94で保持した情報によるメモリ構成の組み合わせで分割・結合した組み合わせに関して、分割数が最小となる情報を取得し、後処理の情報とする。
以後のステップS91、S10〜S12では第1の実施形態と同様に処理する。これにより、図17〜図21に示すメモリ構成の回路は、図22に示すようにメモリを共有することが可能となる。
なお、図17〜図21に示す構成に対して、第2の実施形態に係る高位合成処理における記述変換処理(図12)を適用した場合は、図24の欄2401に示す組み合わせとなる。即ち、RAM−A及びRAM−B1がRAM−Oに対応し、RAM−B2がRAM−Pに対応して共有となり、RAM−CとRAM−Qが共有のないメモリとして回路が構成される。
[第4の実施形態]
第3の実施形態において、メモリの分割の度合に制限が無い場合、分割される最小のメモリ構成は1ビット×1ワードとなる。この場合、分割数が多く、メモリ数が多くなることで、メモリ部分の回路構成の増加となる。
第3の実施形態において、メモリの分割の度合に制限が無い場合、分割される最小のメモリ構成は1ビット×1ワードとなる。この場合、分割数が多く、メモリ数が多くなることで、メモリ部分の回路構成の増加となる。
図25、図26は、それぞれメモリの分割の度合に制限がある場合、無い場合のメモリ分割を示す図である。図25(1)に示すメモリ(RAM−1)2500のメモリ構成(20ビット×128ワード)と、図25(2)に示すメモリ(RAM−3)2501のメモリ構成(13ビット×140ワード)との共有を考える。
この場合、メモリ(RAM−1)2500のメモリ構成を、メモリ2503(13ビット×128ワード)と、メモリ2504(7ビット×64ワード)と、メモリ2505(7ビット×64ワード)とに分割する。そして、図25(3)に示すように、メモリ2503、2504、2505を、それぞれメモリ2506、2507、2508として結合する。これにより、共有するメモリ構成のメモリ2502を作成することが出来る。この組み合わせが最適に近い分割・結合による共有である。
しかし、メモリ2502の容量はメモリ2501の容量より多い。容量を合わせた無駄のない分割・結合の組み合わせは、共有させるメモリ構成間での最大公約数のサイズ構成のメモリによる分割・結合となる。
従って、メモリ(RAM−1)2500のメモリ構成(20ビット×128ワード)と、メモリ(RAM−3)2501のメモリ構成(13ビット×140ワード)の場合、1ビット×4ワードのメモリ構成が最大公約数のメモリ構成となる。
この1ビット×4ワードを最小のメモリ構成として組み合わせると、図26(1)、図26(2)に示すように、メモリ2500は20×32個、メモリ2501は13×35個の組み合わせによる構成で、容量の不足や余りのない組合せとすることが出来る。しかし、メモリ回路や、制御信号のセレクト、アドレスマッピングなどの部分の回路が増加することになる。また、組み合わせ探索のための時間が膨大となる。
そこで、本実施形態に係る高位合成処理における記述変換処理では、回路規模増加や処理時間の増加を抑えるため、メモリ分割に関する制限を設けることで、最適なメモリ構成の組み合わせ対応によるメモリの共有を可能にする。図27は、本実施形態に係る高位合成処理の内、メモリ構成の組み合わせの対応付けを探索する処理の手順を示すフローチャートである。
この図において、図23(第3の実施形態)と同一のステップには、図23と同じ参照符号を付した。本実施形態は、図23におけるステップS92(分割・結合して対応付け)を、分割制限を有するステップS92aに置き換えたものである。
ここで、分割制限としては、例えば、「ワード方向の分割を制限する」、「ビット方向の分割を制限する」、「ワード方向及びビット方向の分割を制限する」、「分割数を制限する」などが挙げられる。このような制限を設けることで、図25のような最適な分割結合による共有のためのメモリ構成が行うことが出来る。
[第5の実施形態]
本実施形態に係る高位合成処理における記述変換処理では、機能モジュールが使用するメモリの内、共有するメモリと共有しないメモリを判断し、共有するメモリのみを共有のための組み合わせの探索として対象とする。このとき、メモリの接続記述に予め記述されているメモリ共有に関する箇所を識別し、その結果を基に共有するメモリの対象とするか否かを判断する。
本実施形態に係る高位合成処理における記述変換処理では、機能モジュールが使用するメモリの内、共有するメモリと共有しないメモリを判断し、共有するメモリのみを共有のための組み合わせの探索として対象とする。このとき、メモリの接続記述に予め記述されているメモリ共有に関する箇所を識別し、その結果を基に共有するメモリの対象とするか否かを判断する。
ここでは、図5(第1の実施形態)におけるRAM−B2を共有しないものとした場合の指定方法と処理について説明する。
図28はこの場合の記述例を示す図である。ここで、図28(1)、図28(2)、図28(3)、図28(4)は、それぞれ、トップ記述、RAMトップ記述、回路ABC記述、回路O記述である。
図28はこの場合の記述例を示す図である。ここで、図28(1)、図28(2)、図28(3)、図28(4)は、それぞれ、トップ記述、RAMトップ記述、回路ABC記述、回路O記述である。
図28(1)に示すように、トップ記述900内にメモリと回路ABCとの接続関係の記述箇所に対して、“//group-o ABC”という記述2800を設けている。また、図28(3)に示すように、回路ABC記述 902内に、回路Bで使用されるRAM−B2のメモリ構成について、“//group-o”という記述2801を設けている。なお、RAMトップ記述901、及び回路O記述903は、第1の実施形態の記述(図9)と同じである。
これらの記述2800及び2801が、RAM−B2のメモリ構成を共有しないことを指定した記述であり、この部分を識別して、メモリ構成が8ビット×128ワードのRAM−B2を共有対象外のメモリであることを認識する。
本実施形態に係る高位合成処理における記述変換処理の流れは図8(第1の実施形態)と基本的に同じである。ただし、ステップS1(全機能モジュールが使用するメモリ構成の情報の抽出)を行った後、ステップS2(メモリ構成の情報のリストを作成)を行う際に、RAM−B2を共有対象外とし、その情報を保持する点が異なる。
図29は、本実施形態に係る高位合成処理における記述変換処理を実行する過程で作成され、保持される情報を示す図である。図の欄2900に示すRAM−B2を共有対象外とすること(×印)をメモリ構成リストの欄2901に登録する。これを基に、共有するための組み合わせを探索すると、欄2902に示すように、RAM−Oは、RAM−Aと、RAM−B1と、RAM−Cとの組み合わせによる共有となり、8ビット×128ワードの不足として処理される。
この組み合わせの結果を基に変換された記述を図30に示す。ここで、図30(1)図30(2)、図30(3)、図30(4)は、それぞれトップ記述、RAMトップ記述、回路ABC記述、回路O記述を示す。
図30(1)に示すように、トップ記述3000には、回路Oのメモリ接続に関して、不足分を示す記述3004がある。図30(2)に示すように、RAMトップ記述3001では、メモリとの接続に関する記述3005において、RAM−B2への接続は共有されず、回路Oのメモリ不足分の記述3006が追加されている。共有のための記述3007ではRAM−B2は対象外となっている。
図30(3)、図30(4)に示すように、回路ABC記述3002、回路O記述3003には、それぞれRAM−B2が共有されていない記述3008、不足分が追加された記述3009がある。
[第6の実施形態]
本実施形態に係る高位合成処理における記述変換処理では、メモリを共有とするための記述と、予め記述されたメモリを共有しない記述とが混在した記述でも、メモリ共有のための組み合わせの探索が可能である。即ち、メモリの接続記述として、図30のような最終的に変換される記述の一部を行う箇所(後述する記述3100、3101、3102、3103)が存在する場合にこれを識別して処理することが出来る。
本実施形態に係る高位合成処理における記述変換処理では、メモリを共有とするための記述と、予め記述されたメモリを共有しない記述とが混在した記述でも、メモリ共有のための組み合わせの探索が可能である。即ち、メモリの接続記述として、図30のような最終的に変換される記述の一部を行う箇所(後述する記述3100、3101、3102、3103)が存在する場合にこれを識別して処理することが出来る。
図31は、本実施形態に係る高位合成処理における記述を示す図である。ここで、図31(1)、図31(2)、図31(3)、図31(4)は、それぞれトップ記述、RAMトップ記述、回路ABC記述、回路O記述を示す。
図31(1)に示すトップ記述における記述3100、3101から、回路ABC(kairo_abc)へメモリのram_a_o信号が接続され、回路O(kairo_o)へメモリのram_o信号が接続されることを認識する。また、図31(2)に示すRAMトップ記述における記述3102と3103から、ram_aとram_a_o信号が共有メモリとすることが記述されていることを認識する。また、図31(3)に示す回路ABC記述における記述3104から、ram_a(RAM−A)の構成を認識し、図31(4)に示す回路O記述における記述3105から、ram_o(RAM−O)の構成を認識する。このとき、メモリ構成からRAM−AとRAM−Oの共有が容量として不足していることも認識する。
そして、これらの情報を優先的に採用して、RAM−AをRAM−Oと共有させ、残りのRAM−B1、RAM−B2、RAM−CとRAM−Oの不足容量分を、上述のようにメモリ構成の組み合わせの対応付けによる共有の探索を行う。これにより、図7と同じ記述に変換することが出来る。
[第7の実施形態]
本発明の実施形態に係る高位合成処理における記述変換処理は、共有化の再対応が指示された場合に、元の記述から全メモリのメモリ構成と共有化メモリ、排他動作関係の情報を収集し、再度共有化対応を行い、最適なメモリ共有構成の組み合わせ(最適化)を行う。ここで、元の記述は、図30のように全てのメモリ共有に関する記述がなされているものでも、図31のように一部のメモリ共有に関する記述がなされているものでもよい。
本発明の実施形態に係る高位合成処理における記述変換処理は、共有化の再対応が指示された場合に、元の記述から全メモリのメモリ構成と共有化メモリ、排他動作関係の情報を収集し、再度共有化対応を行い、最適なメモリ共有構成の組み合わせ(最適化)を行う。ここで、元の記述は、図30のように全てのメモリ共有に関する記述がなされているものでも、図31のように一部のメモリ共有に関する記述がなされているものでもよい。
図32は、本実施形態に係る高位合成処理における記述変換処理の要部の処理の流れを示すフローチャートである。
まず、ステップS101において、全機能モジュールが使用するメモリのメモリ構成の情報を抽出する。例えば図30に示す記述であれば、図30(3)に示す回路ABC記述3002における記述3008より、16ビット×512ワード、8ビット×128ワード、8ビット×128ワード、16ビット×64ワードのメモリ構成を抽出可能である。また、図30(4)に示す回路O記述3003における記述3009より、16ビット×512ワード、8ビット×128ワード、8ビット×128ワード、16ビット×64ワードのメモリ構成を抽出することが出来る。
まず、ステップS101において、全機能モジュールが使用するメモリのメモリ構成の情報を抽出する。例えば図30に示す記述であれば、図30(3)に示す回路ABC記述3002における記述3008より、16ビット×512ワード、8ビット×128ワード、8ビット×128ワード、16ビット×64ワードのメモリ構成を抽出可能である。また、図30(4)に示す回路O記述3003における記述3009より、16ビット×512ワード、8ビット×128ワード、8ビット×128ワード、16ビット×64ワードのメモリ構成を抽出することが出来る。
次に、ステップS102において、共有情報の抽出を行う。図30に示す記述であれば、共有情報としては、図30(2)に示すRAMトップ記述3001における記述3005、3007が得られる。記述3007から、ram_a(RAM−A)とram_o(RAM−O)が共有であり、記述3005から、これらのメモリは16ビット×512ワードのメモリ構成であることが判る。同様に全てのメモリ構成の共有情報を抽出することが出来る。
次に、ステップS103において、分割メモリの抽出を行う。分割に関しては、メモリへのアドレスデコードの記述部分から判断することが出来る。図30では示していないが、図7における記述704にアドレスデコード部分の記述例の一部がある。これより、同じデータ“D”に対して、メモリとなるram_a[]、ram_c[]、ram_b1[]、ram_b2[]のデータがアサインされている記述715〜717より分割されていることが判る。
次に、ステップS104において、分割されているメモリを結合し、元のメモリ構成とし、ステップS105において、ステップS104までの情報を基にメモリ構成の情報のリストを作成する。次いで、ステップS106において、メモリ共有の組み合わせの対応付けの処理を行う。即ち、図8、図23、図27におけるステップS3以降の処理を行う。
以上のように処理をすることで、メモリ共有を含むメモリの接続記述がなされている記述に対して再度、メモリ共有のためのメモリ構成の組み合わせの最適化を行い、元の記述を改良することが出来る。
400…高位合成装置、401…CPU、402…ROM、403…RAM、404…HDD、500…回路ABC、508…RAMトップ、510…回路O、606〜609…セレクタ、700…トップ記述、701…RAMトップ記述、702…回路ABC記述、703…回路O記述、706…共有部分の回路とメモリの接続記述、707…RAMトップと各回路との接続ポートの記述、708…共有情報の記述、709…各信号とメモリの接続記述、711…共有としたメモリとの信号に変換する記述、S1〜S3…メモリ構成情報取得ステップ、S4〜S11…対応付けステップ、S12…メモリ接続記述生成ステップ。
Claims (10)
- 複数の機能モジュールの処理動作の記述を解析し、排他動作する複数の機能モジュールが使用するメモリのメモリ構成情報を取得するメモリ構成情報取得手段と、
該取得したメモリ構成情報を基に、前記排他動作する複数の機能モジュール間で共有可能なメモリ構成の対応付けを行う対応付け手段と、
該対応付けの記述を含むメモリの接続記述を生成するメモリ接続記述生成手段と、
を有する高位合成装置。 - 請求項1に記載された高位合成装置において、
前記対応付け手段は、前記排他動作する複数の機能モジュールが使用するメモリのメモリ構成情報を比較し、該複数の機能モジュール間で共有可能なメモリ構成を対応付ける高位合成装置。 - 請求項2に記載された高位合成装置において、
前記排他動作する複数の機能モジュール内に、使用するメモリのメモリ構成が異なる複数の下階層モジュールがある場合、前記対応付け手段は、容量の大きいメモリ構成から順に対応付ける高位合成装置。 - 請求項2に記載された高位合成装置において、
前記排他動作する複数の機能モジュール間にメモリ構成が同じメモリがある場合には、前記対応付け手段は、最初に当該メモリ構成同士を対応付ける高位合成装置。 - 請求項2に記載された高位合成装置において、
前記対応付け手段は、前記メモリ構成をビット方向又はワード方向の少なくとも一方に分割して対応付ける高位合成装置。 - 請求項5に記載された高位合成装置において、
分割される最小のメモリ構成、又は分割数に制限を有する高位合成装置。 - 請求項1に記載された高位合成装置において、
メモリ構成を共有しないメモリを指定した記述が前記処理動作の記述に含まれていた場合、前記対応付け手段は、前記メモリ構成を共有しないメモリを共有可能なメモリの組み合わせの対象外とする高位合成装置。 - 請求項1に記載された高位合成装置において、
前記処理動作の記述に、メモリを共有とするための記述が含まれていた場合、前記対応付け手段は、前記メモリを共有とするための記述を優先的に採用する高位合成装置。 - コンピュータにより処理動作の記述からレジスタトランスファレベルの論理回路を生成する高位合成方法であって、
複数の機能モジュールの処理動作の記述を解析し、排他動作する複数の機能モジュールが使用するメモリのメモリ構成情報を取得するメモリ構成情報取得ステップと、
該取得したメモリ構成情報を基に、前記排他動作する複数の機能モジュール間で共有可能なメモリ構成の対応付けを行う対応付けステップと、
該対応付けの記述を含むメモリの接続記述を生成するメモリ接続記述生成ステップと、
を有する高位合成方法。 - 請求項9に記載された高位合成方法の各ステップをコンピュータに実行させる高位合成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012257879A JP2014106639A (ja) | 2012-11-26 | 2012-11-26 | 高位合成装置、高位合成方法、及び高位合成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012257879A JP2014106639A (ja) | 2012-11-26 | 2012-11-26 | 高位合成装置、高位合成方法、及び高位合成プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014106639A true JP2014106639A (ja) | 2014-06-09 |
Family
ID=51028092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012257879A Pending JP2014106639A (ja) | 2012-11-26 | 2012-11-26 | 高位合成装置、高位合成方法、及び高位合成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014106639A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016194850A (ja) * | 2015-04-01 | 2016-11-17 | 富士通株式会社 | 設計装置、プログラム、及びfpga設計方法 |
WO2017046941A1 (ja) * | 2015-09-18 | 2017-03-23 | 三菱電機株式会社 | アーキテクチャ生成装置およびアーキテクチャ生成プログラム |
WO2020255576A1 (ja) * | 2019-06-21 | 2020-12-24 | 株式会社日立製作所 | 高位合成装置及び高位合成方法 |
US10909021B2 (en) | 2016-02-01 | 2021-02-02 | Nec Corporation | Assistance device, design assistance method, and recording medium storing design assistance program |
-
2012
- 2012-11-26 JP JP2012257879A patent/JP2014106639A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016194850A (ja) * | 2015-04-01 | 2016-11-17 | 富士通株式会社 | 設計装置、プログラム、及びfpga設計方法 |
WO2017046941A1 (ja) * | 2015-09-18 | 2017-03-23 | 三菱電機株式会社 | アーキテクチャ生成装置およびアーキテクチャ生成プログラム |
JPWO2017046941A1 (ja) * | 2015-09-18 | 2017-09-14 | 三菱電機株式会社 | アーキテクチャ生成装置およびアーキテクチャ生成プログラム |
US10303832B2 (en) | 2015-09-18 | 2019-05-28 | Mitsubishi Electric Corporation | Architecture generating device |
US10909021B2 (en) | 2016-02-01 | 2021-02-02 | Nec Corporation | Assistance device, design assistance method, and recording medium storing design assistance program |
WO2020255576A1 (ja) * | 2019-06-21 | 2020-12-24 | 株式会社日立製作所 | 高位合成装置及び高位合成方法 |
JP2021002185A (ja) * | 2019-06-21 | 2021-01-07 | 株式会社日立製作所 | 高位合成装置及び高位合成方法 |
JP7150668B2 (ja) | 2019-06-21 | 2022-10-11 | 株式会社日立製作所 | 高位合成装置及び高位合成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8117583B2 (en) | Determining macro blocks terminal for integrated circuit layout | |
JP2006285865A (ja) | レジスタ転送レベル記述と動作記述間の対応関係特定方法、装置及びプログラム | |
JP5312151B2 (ja) | 半導体設計支援装置、高位合成方法及び半導体設計支援プログラム | |
JPH08101861A (ja) | 論理回路合成装置 | |
JP2014106639A (ja) | 高位合成装置、高位合成方法、及び高位合成プログラム | |
JP2013257738A (ja) | コンピューティングシステム、コンピューティングシステムの実行制御方法及び実行制御プログラム | |
US20150088861A1 (en) | Comparison And Merging Of IC Design Data | |
CN105446952A (zh) | 用于处理语义片段的方法和系统 | |
JP2007102631A (ja) | 論理回路設計支援装置およびこれを用いた論理回路設計支援方法 | |
JP5157534B2 (ja) | 動作合成装置、および、プログラム | |
US8510693B2 (en) | Changing abstraction level of portion of circuit design during verification | |
Fang et al. | Redundant-wires-aware eco timing and mask cost optimization | |
CN103559574A (zh) | 一种工作流操作方法及系统 | |
US10310823B2 (en) | Program development support system and program development support software | |
US8607175B1 (en) | Identifying logic blocks in a synthesized logic design that have specified inputs | |
JP6091140B2 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
JP2005242812A (ja) | 回路設計支援システム、回路設計支援方法及びプログラム | |
JP4469870B2 (ja) | 設計装置、設計方法およびプログラム | |
US8701062B2 (en) | Apparatus and method for generating a netlist using non-uniquified module during logic synthesis stage | |
CN103885819A (zh) | 一种针对fpga面积优化的优先级资源共享方法 | |
JP6993573B2 (ja) | プログラム解析方法、プログラム解析装置およびプログラム解析プログラム | |
JP2017168957A (ja) | 情報処理装置、情報処理システム、情報処理プログラム及び情報処理方法 | |
JP2007287088A (ja) | 高位合成方法および高位合成システム | |
US8938700B1 (en) | Data-driven pattern matching in synthesis of circuit designs | |
JP2018041129A (ja) | 高位合成用記述変換装置及び高位合成用記述変換プログラム |