JP2008123103A - プログラム変換装置 - Google Patents

プログラム変換装置 Download PDF

Info

Publication number
JP2008123103A
JP2008123103A JP2006304196A JP2006304196A JP2008123103A JP 2008123103 A JP2008123103 A JP 2008123103A JP 2006304196 A JP2006304196 A JP 2006304196A JP 2006304196 A JP2006304196 A JP 2006304196A JP 2008123103 A JP2008123103 A JP 2008123103A
Authority
JP
Japan
Prior art keywords
program
conversion
circuit
index
unit
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
Application number
JP2006304196A
Other languages
English (en)
Inventor
Yuichiro Ishikawa
裕一朗 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006304196A priority Critical patent/JP2008123103A/ja
Priority to US11/889,571 priority patent/US20080115101A1/en
Priority to CNA2007101663914A priority patent/CN101178749A/zh
Publication of JP2008123103A publication Critical patent/JP2008123103A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】あるプログラムを、設計者が所望する諸元を有する回路を示すプログラムへと変換することのできるプログラム変換装置を提供する。
【解決手段】プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置は、一連の動作内容が記述された動作記述プログラムを前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換し、前記回路記述プログラムを出力し、前記回路記述プログラムが示す設計内容を1以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成し、生成した前記指標を出力する。
【選択図】図1

Description

本発明は、あるプログラムを別のプログラムへと変換する技術、特に、回路設計において、設計対象の回路の動作内容が記述されたプログラムを、前記動作内容を実現し、使用者が所望する諸元を有する回路を示すプログラムへと変換する技術に関する。
近年のソフトウェア開発においては、あるプログラムを別のプログラムへ変換するプログラム変換装置がある。プログラム変換装置は、例えば、高級言語で記述されたプログラムをマシン固有の言語に変換するコンパイラ装置である。プログラム変換装置に関する文献としては特許文献1がある。
また、大規模化しつつあるシステムLSI設計において、従来はVHDLやVerilog−HDLといったハードウェア記述言語をLSI設計者が記述することでシステムLSIを設計している。しかし近年において、より抽象度の高い高級言語を用いてハードウェアの処理内容を設計し、それをハードウェア記述言語に自動的に変換することでシステムLSIを設計するという高位合成という技術がある。この技術では、抽象度の高い高級言語をハードウェア記述言語へ変換する高位合成装置が用いられる。
高位合成装置について詳細に説明する。高位合成装置は、C言語などの高級言語で記述されたビヘイビア記述を入力とし、入力されたビヘイビア記述の処理内容を実行するハードウェアのRTL(Register Transfer Level)記述を出力する。RTL記述とは、例えば、電気回路といったハードウェアの構成情報をテキスト形式で表現したものである。よって、高位合成装置はビヘイビア記述をハードウェアのRTL記述に変換するプログラム変換装置であると言える。高位合成装置に関する文献としては特許文献2がある。
以降、変換前のプログラムを入力プログラム、変換後のプログラムを目的プログラムという。
特開2005−174045号公報 特開2006−127346号公報
特許文献2では、回路にループが生成されることを回避する技術が開示されている。
従来の高位合成装置を用いて入力プログラムを目的プログラムへと変換する場合、高位合成装置の使用者(回路の設計者)毎に、目的プログラムが示す回路に対して各人が所望する諸元は異なる。所望する回路の諸元とは、例えば、生成されるハードウェアの面積が最小であるということや、ハードウェアの実行時間が最小であるということである。
特許文献2に記載の技術では、諸元がループを回避する構成であるハードウェア(回路)を得ることはできる。しかしながら、設計者が設計対象の回路に対して他の諸元を有することを所望する場合には、特許文献2に記載の技術では、設計者が所望する諸元を有するハードウェア(回路)は得られるとは限らない。
そこで、本発明は、あるプログラムを、設計者が所望する諸元を有する回路を示すプログラムへと変換することのできるプログラム変換装置、プログラム変換方法、コンピュータプログラム、及び記録媒体を提供することを目的とする。
上記目的を達成するために、本発明は、プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置であって、一連の動作内容が記述された動作記述プログラムを、前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する変換手段と、前記回路記述プログラムを出力するプログラム出力手段と、前記回路記述プログラムが示す設計内容を、1以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する生成手段と、生成された前記指標を出力する指標出力手段とを備えることを特徴とする。
上記に示す構成によると、プログラム変換装置は、回路記述プログラムが示す設計内容を実現する回路の指標を出力しているので、使用者は出力された指標を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断し、満たしていないと判断する場合には、より良いプログラム変換方針を容易に考案することができる。使用者は、動作記述プログラムを入力する、及び出力された指標を用いてプログラム変換方針を容易に考案するという動作を繰り返すことにより、自身が所望する諸元を有する回路を示す設計内容が記述された回路記述プログラムを取得することができる。
ここで、前記プログラム変換装置は、さらに、前記変換手段によるプログラム変換に先立って、前記動作内容を実現する回路に対して使用者が所望する諸元を示す方針を受け付ける方針受付手段を備え、前記変換手段は、前記方針に基づいて、前記動作記述プログラムを前記回路記述プログラムへと変換するとしてもよい。
この構成によると、プログラム変換装置は、使用者から受け付けた方針に基づいて動作記述プログラムから回路記述プログラムへと変換するので、使用者は自身が所望する諸元を有する回路を示す設計内容が記述された回路記述プログラムを取得することができる。
ここで、前記生成手段は、受け付けられた前記方針が示す諸元を含む指標を生成するとしてもよい。
この構成によると、プログラム変換装置は、方針が示す諸元と同一の諸元を示す指標を生成するので、使用者は出力された指標を参照することにより、回路記述プログラムが示す設計内容を実現する回路が、所望する諸元を有するか否かの判断を容易に行うことができる。
ここで、前記所望する諸元は、使用者が指定するハードウェアの割り付けであり、前記方針受付手段は、前記方針として、使用者により指定されたハードウェアの回路図と、処理動作を示す動作情報とからなるテンプレートを受け取り、前記変換手段は、動作記述プログラムに対して、受け付けられたテンプレートに含まれる動作情報と同一の処理動作を行う箇所には、前記動作情報に対応する回路図にて示されるハードウェアを割り付ける設計内容を含む前記回路記述プログラムを生成するとしてもよい。
この構成によると、プログラム変換装置は、使用者より受け付けたテンプレートを用いて回路記述プログラムを生成する。これにより、使用者は、テンプレートをプログラム変換装置に入力することにより、回路記述プログラムが示す設計内容を実現する回路に所望するハードウェアが割り付けられるので、使用者は自身が指定したハードウェアが割り付けられた回路を示す設計内容が記述された回路記述プログラムを取得することができる。
ここで、前記方針受付手段は、さらに、前記テンプレートに含まれる前記回路図の割付箇所を指定する割付パターンを受け付け、前記変換手段は、動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う1以上の箇所において、前記割付パターンが示す割付箇所のみに、前記動作情報に対応する回路図にて示されるハードウェアを割り付け、指定されていない箇所に対しては前記前記動作情報に対応する回路図にて示されるハードウェアの割付を除外する設計内容を含む前記回路記述プログラムを生成するとしてもよい。
この構成によると、プログラム変換装置は、割付パターンにより使用者から指定されたハードウェアを割り付ける箇所と割り付けない箇所とを区別することができる。
ここで、前記生成手段は、前記変換手段の動作に先立って、前記設計内容を予測し、予測した設計内容を実現する回路の諸元を示す指標を予測し、前記指標出力手段は、前記変換手段の動作に先立って、予測された前記指標を出力するとしてもよい。
この構成によると、プログラム変換装置は、動作記述プログラムを回路記述プログラムに変換する前に、指標を予測し、予測した指標を出力することができる。これにより、使用者は、回路記述プログラムが出力される前に、予測された指標を知ることができるので、予測結果を用いて、これから出力される回路記述プログラムが示す設計内容を実現する回路が、自身が所望する諸元を有しているか否かを事前に予測することができる。
ここで、前記生成手段は、予測に用いる予測情報を予め記憶しており、前記予測情報と、予測した設計内容とを用いて、前記指標を予測するとしてもよい。
この構成によると、プログラム変換装置は、予め記憶している予測情報を用いて、指標を予測することができる。
ここで、前記予測情報は、過去に生成した回路記述プログラムである生成済プログラムと、前記生成済プログラムが示す設計内容を実現する回路の諸元を示す生成済指標とからなり、前記生成手段は、前記動作記述プログラムと前記生成済プログラムとから処理動作が同一の箇所を検索し、同一箇所に対して、前記生成済指標に基づく生成済部分指標を割り当て、同一でない箇所に対して、予測した予測部分指標を割り当てることにより、前記指標を予測するとしてもよい。
この構成によると、プログラム変換装置は、生成済プログラムと生成済指標とを用いて、指標を予測することができる。
ここで、前記プログラム変換装置は、さらに、使用者により指定されたハードウェアの回路図と、処理動作を示す動作情報とからなるテンプレートを受け取るテンプレート受付手段を備え、前記生成手段は、前記動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う箇所には、前記動作情報に対応する回路図にて示されるハードウェアを割り付けることにより、前記設計内容を予測するとしてもよい。
この構成によると、プログラム変換装置は、使用者より受け付けたテンプレートを用いて回路記述プログラムを生成する。これにより、使用者は、テンプレートをプログラム変換装置に入力することにより、回路記述プログラムが示す設計内容を実現する回路に所望するハードウェアが割り付けられるので、使用者は自身が指定したハードウェアが割り付けられた回路を示す設計内容が記述された回路記述プログラムを取得することができる。
ここで、前記テンプレート受付手段は、さらに、前記テンプレートに含まれる前記回路図の割付箇所を指定する割付パターンを受け付け、前記生成手段は、前記動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う1以上の箇所において、前記割付パターンが示す割付箇所のみに、前記動作情報に対応する回路図にて示されるハードウェアを割り付け、指定されていない箇所に対しては前記前記動作情報に対応する回路図にて示されるハードウェアの割付を除外することにより、前記設計内容を予測するとしてもよい。
この構成によると、プログラム変換装置は、割付パターンにより使用者から指定されたハードウェアを割り付ける箇所と割り付けない箇所とを区別することができる。
ここで、回路の諸元とは、当該回路の面積値であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の面積値であり、前記生成手段は、前記回路を実現する際に割り付けられる1以上のハードウェアのうち異なるハードウェアそれぞれの面積値を取得し、取得した1以上の面積値の総和を算出し、算出した総和を前記指標とするとしてもよい。
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の面積値を指標として出力するので、使用者は、出力された指標(面積値)を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
ここで、回路の諸元とは、当該回路の実行時間であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の実行時間であり、前記生成手段は、前記設計内容に基づいて、割り付けられる1以上のハードウェアそれぞれが属する実行サイクルを決定し、決定結果に基づいて、実行サイクルの数と、1の実行サイクルあたりの単位時間とを取得し、取得した前記実行サイクル数と前記単位時間とを用いて前記回路の実行時間を算出し、算出した実行時間を前記指標とするとしてもよい。
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の実行時間を指標として出力するので、使用者は、出力された指標(実行時間)を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
ここで、回路の諸元とは、当該回路の消費電力であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の消費電力であり、前記生成手段は、前記設計内容が示す各ハードウェア間の接続形態に基づいて前記回路の消費電力を算出し、算出した消費電力を前記指標とするとしてもよい。
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の消費電力を指標として出力するので、使用者は、出力された指標(消費電力)を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
ここで、回路の諸元とは、前記回路記述プログラムのコードサイズであり、前記生成手段は、前記回路記述プログラムのコードサイズを算出し、算出したコードサイズを前記指標とするとしてもよい。
この構成によると、プログラム変換装置は、回路記述プログラムが示すコードのコードサイズを指標として出力するので、使用者は、出力された指標(コードサイズ)を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
ここで、回路の諸元とは、当該回路の面積値と実行時間との相関関係を示す相関関係情報であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路における相関関係情報であり、前記生成手段は、前記設計内容を実現する回路に対する面積値及び実行時間を算出し、算出した面積値及び実行時間に基づいて相関関係情報を取得し、取得した相関関係情報を前記指標とするとしてもよい。
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の面積値と実行時間との相関関係を指標として出力するので、使用者は、出力された指標(相関関係情報)を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
ここで、回路の諸元とは、回路図であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の回路図であり、前記生成手段は、前記設計内容が示す各ハードウェア間の接続形態に基づいて、前記回路図を生成し、生成した前記回路図を前記指標とするとしてもよい。
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の回路図を指標として出力するので、使用者は、出力された指標(回路図)を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
ここで、回路の諸元とは、当該回路の面積値、実行時間、面積値と実行時間との相関関係を示す相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも2以上を含み、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の面積値、実行時間、相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも2以上からなる組合指標であり、前記生成手段は、前記組合指標を生成し、前記指標出力手段は、生成された前記組合指標を出力するとしてもよい。
この構成によると、プログラム変換装置は、指標として、回路記述プログラムが示す回路の面積値、実行時間、面積値と実行時間との相関関係を示す相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも2以上からなる組合指標を出力するので、使用者は、出力された指標(組合指標)を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
1.第1の実施の形態
本発明に係る第1の実施の形態としてのプログラム変換装置1について説明する。
1.1 プログラム変換装置1の構成
プログラム変換装置1は、図1に示すように、入力プログラム受付部10、変換方針受付部11、入力プログラム変換部12、目的プログラム出力部13、及びプログラム変換指標通知部14から構成されている。
プログラム変換装置1は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ROM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサは、前記コンピュータプログラムに従って動作することにより、プログラム変換装置1は、その機能を達成する。
プログラム変換装置1は、高級言語にて記述されたプログラム(以下、入力プログラム)を、他のプログラム(以下、目的プログラム)へと変換する装置である。
プログラム変換装置1は、変換対象である入力プログラムと、その変換の方針を示す情報(以下、プログラム変換方針)とを受け付け、受け付けたプログラム変換方針に基づいて、入力プログラムを目的プログラムへと変換し、変換した目的プログラムと、目的プログラムに対するプログラム変換指標とを出力する。
ここで、プログラム変換方針は、例えば、変換された目的プログラムの実行時間を最小にしたい旨の情報、変換された目的プログラムのコードサイズを最小にしたい旨の情報、目的プログラムの実行時間をある値以下にしたい旨の情報、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積を最小にしたい旨の情報などである。
また、プログラム変換指標は、入力されたプログラム変換方針に対応する情報であり、例えば、変換された目的プログラムの実行時間、コードサイズ、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積などである。
(1)入力プログラム受付部10
入力プログラム受付部10は、入力プログラムD1を受け付け、受け付けた入力プログラムD1を入力プログラム変換部12へ出力する。
(2)変換方針受付部11
変換方針受付部11は、プログラム変換方針D2を受け付け、受け付けたプログラム変換方針D2を入力プログラム変換部12へ出力する。
(3)入力プログラム変換部12
入力プログラム変換部12は、図1に示すように、目的プログラム生成部20と変換指標生成部21とを有している。
(3−1)目的プログラム生成部20
目的プログラム生成部20は、入力プログラムD1を入力プログラム受付部10から受け取り、プログラム変換方針D2を変換方針受付部11から受け取る。
目的プログラム生成部20は、プログラム変換方針D2に基づいて、入力プログラムD1を目的プログラムD3へと変換する。
例えば、プログラム変換装置1が高位合成装置である場合には、目的プログラム生成部20は、入力プログラムD1をRTL記述のプログラムへと変換する。また、プログラム変換装置1がコンパイルを行う装置である場合には、目的プログラム生成部20は、入力プログラムD1を装置固有の言語(例えば、アセンブラ言語)で記述されるプログラムへと変換する。
目的プログラム生成部20は、生成した目的プログラムD3を目的プログラム出力部13へ出力する。
(3−2)変換指標生成部21
変換指標生成部21は、目的プログラム生成部20にて生成された目的プログラムの記述内容に基づいて、プログラム変換指標D4を生成する。
変換指標生成部21は、生成したプログラム変換指標D4をプログラム変換指標通知部14へ出力する。
(4)目的プログラム出力部13
目的プログラム出力部13は、目的プログラムD3を入力プログラム変換部12の目的プログラム生成部20から受け取ると、受け取った目的プログラムD3を、例えば、記憶装置(図示せず)へ出力する。
ここで、記憶装置は、プログラム変換装置1の内部にあってもよいし、外部にあってもよい。
(5)プログラム変換指標通知部14
プログラム変換指標通知部14は、プログラム変換指標D4を入力プログラム変換部12の変換指標生成部21から受け取ると、受け取ったプログラム変換指標D4を使用者へ通知する。
例えば、プログラム変換指標通知部14は、プログラム変換装置1に接続された表示装置(図示せず)に、プログラム変換指標D4を出力する。
表示装置は、プログラム変換指標D4を表示する。これにより、プログラム変換指標通知部14は、表示装置を介して、プログラム変換指標D4を使用者へ通知することができる。
1.2 プログラム変換装置1の具体例
ここでは、プログラム変換装置1の具体例として、高位合成装置100の構成、及び動作について、以下に説明する。
(1)高位合成装置100の構成
高位合成装置100は、図2に示すように、ビヘイビア記述受付部110、ハードウェア割付情報受付部111、変換部112、RTL記述出力部113、及び通知部114から構成されている。
高位合成装置100は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ROM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサは、前記コンピュータプログラムに従って動作することにより、高位合成装置100は、その機能を達成する。
高位合成装置100は、入力プログラムとしてビヘイビア記述により作成されたプログラム(以下、ビヘイビア記述)D11を受け付け、プログラム変換方針としてハードウェア割付情報D12を受け付ける。ここで、ハードウェア割付情報D12は、例えば、目的プログラムが示すハードウェアの面積を最小にしたい旨の情報、ハードウェアによる実行時間を最小にしたい旨の情報などである。
高位合成装置100は、受け付けたハードウェア割付情報D12に基づいて、ビヘイビア記述D11を目的プログラムであるRTL記述によるプログラム(以下、RTL記述)D13へと変換し、変換したRTL記述D13と、RTL記述D13に対するプログラム変換指標の1つである回路図を含む変換指標D14とを出力する。
使用者は、変換指標を参照して、所望する諸元を有する回路を示すRTL記述D13が作成されたか否かを判断することができる。
(1−1)ビヘイビア記述受付部110
ビヘイビア記述受付部110は、上述した入力プログラム受付部10に相当する。
ビヘイビア記述受付部110は、ビヘイビア記述D11を使用者から受け付け、受け付けたビヘイビア記述D11を変換部112へ出力する。
ここで、ビヘイビア記述とは、C言語などの高級言語で記述されたプログラムである。
(1−2)ハードウェア割付情報受付部111
ハードウェア割付情報受付部111は、上述した変換方針受付部11に相当する。
ハードウェア割付情報受付部111は、ハードウェア割付情報D12を使用者から受け付け、受け付けたハードウェア割付情報D12を変換部112へ出力する。
(1−3)変換部112
変換部112は、上述した入力プログラム変換部12に相当する。
変換部112は、図2に示すように、RTL記述生成部120と変換指標生成部121から構成されている。
(1−3−1)RTL記述生成部120
RTL記述生成部120は、上述した目的プログラム生成部20に相当し、変換指標生成部121は、上述した変換指標生成部21に相当する。
RTL記述生成部120は、図2に示すように、DFG変換部130、ハードウェア割付部131、及びRTL記述変換部132から構成されている。
(DFG変換部130)
DFG変換部130は、ビヘイビア記述D11をビヘイビア記述受付部110から受け取る。
DFG変換部130は、受け取ったビヘイビア記述D11をデータフローグラフ(DFG)D20に変換し、変換したデータフローグラフD20をハードウェア割付部131へ出力する。
ここで、データフローグラフとは、演算をノードに見立てることで、ビヘイビア記述上の処理を有向グラフに置き換えたものであり、ビヘイビア記述D11をデータフローグラフD20へ変換した一例を図3に示す。データフローグラフD20は、演算を示すノードとして、ノードD21、D22、D23、D24、及びD25を有している。ノードD21、D22は乗算を示すノードであり、ノードD23、D24、及びD25は加算を示すノードである。
なお、ビヘイビア記述からDFGへの変換方法は公知であるため、ここでの説明は省略する。
(ハードウェア割付部131)
ハードウェア割付部131は、ハードウェア割付情報D12をハードウェア割付情報受付部111から受け取り、データフローグラフD20をDFG変換部130から受け取る。
ハードウェア割付部131は、受け取ったハードウェア割付情報D12に基づいて、データフローグラフD20を用いてハードウェアの割り付けを行う。
ここで、ハードウェア割り付けの一例を以下に説明する。
高位合成装置100が生成する目的プログラムはRTL記述であり、これは回路図であるので単一または複数の演算器を接続したもので構成される。ビヘイビア記述D11をRTL記述へ変換する際に、ビヘイビア記述を変換したデータフローグラフD20の各演算ノードについてどのように演算器を割り付けるかを決定する処理がハードウェア割り付けである。
例えば、図3のデータフローグラフD20では2つの乗算ノードD21、D22がと、3つの加算ノードD23、D24、D25とがある。ハードウェア割付部131は、乗算ノードD21、D22に対して演算器割り付け際に、ハードウェア割付情報がハードウェアの実行時間が最小にしたい旨の情報である場合には、乗算器を2つ用意し、1の乗算器をノードD21を実行するように、他の乗算器をノードD22を実行するように割り付ける。これにより、2つの乗算を並列に実行可能になる。また、加算ノードD23、D24、D25に対しても同様に、ハードウェア割付部131は、個々のノードにそれぞれ加算器を割り付ける。このような割り付けにより、ハードウェアの実行時間を最小にすることができる。なぜなら、通常、1サイクル内では、1つの演算器は、1回の実行のみが許可されている。つまり、上記の場合、割り付けた5つの演算器全てを1サイクル内で実行することができるからである。しかしながら、各演算ノードの異なる演算器を割り付けると、ハードウェアの面積は、当然大きくなる。
一方、ハードウェア割付情報がハードウェアの面積が最小にしたい旨の情報である場合には、上記の割り付けとは異なる割り付けになる。例えば、ハードウェア割付部131は、乗算ノードD21、D22に対して演算器割り付け際に、乗算ノードD21、D22の双方に同一の乗算器を割り付ける。この場合、2つの演算(乗算)を並列に実行できないが、乗算器は1つでよいので、上記に比べてハードウェアの面積は小さくなる。また、加算ノードD23、D24、D25に対しても同様に、ハードウェア割付部131は、同一の加算器を割り付ける。
(RTL記述変換部132)
RTL記述変換部132は、ハードウェア割付部131による演算器の割り付けに基づいてRTL記述D13を生成し、生成したRTL記述D13をRTL記述出力部113へ出力する。
図4は、図3に示すビヘイビア記述に基づいたRTL記述D13の一部を示す。図4に示すRTL記述D13では、wire文にてデータの型を宣言し、その後、記述文P10にて演算tmp0に関する記述がなされる。また、以降においては、演算tmp1及び演算Yに関する記述がなされる。なお、RTL記述の詳細については既知であるため、ここでの説明は省略する。
(1−3−2)変換指標生成部121
変換指標生成部121は、RTL記述変換部132にて生成されたRTL記述D13によるハードウェア情報に基づいて、回路図を生成する。また、変換指標生成部121は、ハードウェア割付情報が示す情報に応じて、生成した回路図からハードウェアの面積、実行時間等の値(以下、算出値)を算出する。変換指標生成部121は、生成した変換指標(回路図及び算出値)D14を通知部114へ出力する。
例えば、ハードウェア割付情報がハードウェアの面積を最小にしたい旨の情報を示す場合には、変換指標生成部121は、RTL記述変換部132にて生成されたRTL記述D13によるハードウェア情報に基づいて、異なる演算器それぞれに対する面積値を取得する。変換指標生成部121は、取得した各面積値の総和を算出する。算出した面積値の総和を算出値として、回路図ともに通知部114へ出力する。
このとき、高位合成装置100は各演算器の面積値を予め記憶していてもよいし、使用者から各演算器の面積値を受け付けてもよい。または、高位合成装置100は、外部装置から各演算器の面積値を取得してもよい。
また、ハードウェア割付情報が実行時間を最小にしたい旨の情報を示す場合には、変換指標生成部121は、RTL記述変換部132にて生成されたRTL記述D13によるハードウェア情報に基づいて、演算式「実行サイクル数 × 1サイクル当たりの時間(単位:秒)」を用いて実行時間を算出する。変換指標生成部121は、算出した実行時間を算出値として、回路図ともに通知部114へ出力する。なお、上記演算のパラメータである「実行サイクル数」、及び「1サイクル当たりの時間」は、生成されたDFGから取得することができる。
(1−4)RTL記述出力部113
RTL記述出力部113は、上述した目的プログラム出力部13に相当する。
RTL記述出力部113は、RTL記述変換部132からRTL記述D13を受け取ると、受け取ったRTL記述D13を記憶装置(例えば、ハードディスクユニット)へ出力する。
なお、RTL記述D13の出力先は、ハードディスクユニットに限定されない。RTL記述D13の出力先は、RTL記述D13を格納する領域を有していればよい。
(1−5)通知部114
通知部114は、上述したプログラム変換指標通知部14に相当する。
通知部114は、変換指標生成部121から回路図及び算出値を受け取ると、受け取った回路図及び算出値を変換指標D14として使用者へ通知する。
例えば、通知部114は、高位合成装置100に接続された表示装置(図示せず)に、変換指標D14を出力する。表示装置は、変換指標D14を表示する。これにより、通知部114は、表示装置を介して、変換指標D14を使用者へ通知することができる。
(2)高位合成装置100の動作
ここでは、高位合成装置100の動作について、図4にて示す流れ図を用いて説明する。
ビヘイビア記述受付部110は、ビヘイビア記述D11を使用者から受け付ける(ステップS5)。
ハードウェア割付情報受付部111は、ハードウェア割付情報D12を使用者から受け付ける(ステップS10)。
DFG変換部130は、受け付けたビヘイビア記述D11をデータフローグラフD20に変換する(ステップS15)。
ハードウェア割付部131は、受け付けたハードウェア割付情報D12に基づいて、データフローグラフD20を用いてハードウェア(演算器)の割り付けを行う(ステップS20)。
RTL記述変換部132は、ハードウェア割付部131による演算器の割り付けに基づいてRTL記述D13を生成する(ステップS25)。
変換指標生成部121は、RTL記述変換部132にて生成されたRTL記述D13によるハードウェア情報に基づいて回路図の生成、及びハードウェア割付情報が示す情報を用いて、生成した回路図から算出値を算出を行うことにより、プログラム変換指標を生成する(ステップS30)。
RTL記述出力部113は、生成されたRTL記述D13を記憶装置へ出力する(ステップS35)。
通知部114は、生成された回路図及び算出された算出値を変換指標D14として、表示装置へ出力することにより、使用者へ通知する(ステップS40)。
(3)プログラム変換指標の生成の一例
ここでは、図5にて示すステップS30における算出値の生成動作の一例について、図6にて示す流れ図を用いて説明する。
なお、算出値は、面積値とする。
変換指標生成部121は、RTL記述変換部132にて生成されたRTL記述D13によるハードウェア情報に基づいて、回路図を生成する(ステップS50)。
変換指標生成部121は、RTL記述変換部132にて生成されたRTL記述D13によるハードウェア情報に基づいて、割り付けられた1以上の演算器それぞれの面積値を取得する(ステップS55)。
変換指標生成部121は、取得した1以上の面積値の総和を算出する(ステップS60)。
変換指標生成部121は、算出した面積値の総和を算出値として、回路図ともに通知部114へ出力する(ステップS65)。
なお、ステップS55においては、変換指標生成部121は、各演算器の面積値を予め記憶された記憶部から取得してもよいし、使用者から各演算器の面積値を受け付けることにより取得してもよい。または、変換指標生成部121は、外部装置から各演算器の面積値を取得してもよい。
(4)具体例のまとめ
上記にて示したように、高位合成装置は、入力プログラム(ビヘイビア記述のプログラム)とプログラム変換方針(ハードウェア割付情報)とを受け付け、目的プログラム(RTL記述のプログラム)とプログラム変換指標(回路図及び算出値)とを出力する。
高位合成装置によって出力されるRTL記述において、使用者が所望する諸元、例えば、面積が最小という諸元や、処理時間が最小という諸元によって演算器の最善の割り付け方が異なる。
上記の具体例にて示すように、入力として、ハードウェア割付情報を受け付け、プログラム変換指標を出力することにより、装置の使用者はDFG上の各演算に割り付けるべき演算器を容易に指定、または、出力された回路図を参照することにより割り付けられた各演算器、及び個数や回路面積等を把握することができる。
また、上記の高位合成装置はプログラム変換指標(回路図及び算出値)とを使用者に通知しているので、使用者は、高位合成装置100から通知された回路図及び算出値を用いて、自身が所望する諸元を有する回路が得られているか否かを判断することができる。所望する諸元を有していないと判断する場合には、使用者は、ハードウェア割付情報を再度検討し、ビヘイビア記述と、再検討されたハードウェア割付情報とを高位合成装置100へ入力する。上述の操作を繰り返すことにより、使用者は、自身が所望する諸元を有する回路を得ることができる。
また、装置の使用者は、この回路図を見ることで、そのハードウェアのテストのしやすさを容易に判断することが可能となる。この回路図から装置の使用者はよりテストのしやすいハードウェアを考える。そして、考えた結果をプログラム変換方針(ここでは、ハードウェア割付情報)として高位合成装置に再入力する。高位合成装置100は、再度高位合成を行うと、次に出力されたハードウェア情報(RTL記述に基づく情報)は、前回に高位合成したものよりテストがしやすくなっているはずである。これを繰り返すことで、高位合成装置が生成するハードウェア情報はテストのしやすさが精錬される。そして、テストのしやすさが使用者の要求を満たすまで高位合成を繰り返せば、最終的に使用者の要求を満たすハードウェア情報が得られる。
2.第2の実施の形態
本発明に係る第2の実施の形態としてのプログラム変換装置1000について説明する。
2.1 プログラム変換装置1000の構成
プログラム変換装置1000は、図7に示すように、入力プログラム受付部1010、変換方針受付部1011、入力プログラム変換部1012、目的プログラム出力部1013、プログラム変換指標通知部1014、プログラム変換結果記憶部1015、及び入力プログラム変換予測部1016から構成されている。
プログラム変換装置1000は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ROM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサは、前記コンピュータプログラムに従って動作することにより、プログラム変換装置1は、その機能を達成する。
プログラム変換装置1000は、第1の実施の形態のプログラム変換装置1と同様に、入力プログラムを目的プログラムへと変換する装置である。
プログラム変換装置1000は、変換対象である入力プログラムと、プログラム変換方針とを受け付け、受け付けたプログラム変換方針に基づいて、入力プログラムを目的プログラムへの変換結果を予測し、予測結果を使用者へ通知する。
使用者は、通知された予測結果を参照し、入力したプログラム変換方針で問題なければ、入力プログラムの変換を指示する旨の情報(以下、変換指示)を入力する。使用者は、入力したプログラム変換方針を変更したい場合には、再度、プログラム変換方針を入力する。
プログラム変換装置1000は、予測結果を通知した後、変換指示を受け付けると、プログラム変換方針に基づいて、入力プログラムの変換を行い、変換した目的プログラムと、目的プログラムに対するプログラム変換指標とを出力する。
プログラム変換装置1000は、予測結果を通知した後、再度プログラム変換方針を受け付けると、再度受け付けたプログラム変換方針に基づいて、入力プログラムを目的プログラムへの変換結果を予測し、予測結果を使用者へ通知する。
ここで、プログラム変換方針は、第1の実施の形態と同様に、例えば、変換された目的プログラムの実行時間を最小にしたい旨の情報、変換された目的プログラムのコードサイズを最小にしたい旨の情報、目的プログラムの実行時間をある値以下にしたい旨の情報、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積を最小にしたい旨の情報などである。
また、プログラム変換指標は、第1の実施の形態と同様に、入力されたプログラム変換方針に対応する情報であり、例えば、変換された目的プログラムの実行時間、コードサイズ、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積などである。
(1)入力プログラム受付部1010
入力プログラム受付部1010は、入力プログラムD101を受け付け、受け付けた入力プログラムD101を入力プログラム変換予測部1016へ出力する。
(2)変換方針受付部1011
変換方針受付部1011は、プログラム変換方針D102を受け付け、受け付けたプログラム変換方針D102を入力プログラム変換予測部1016へ出力する。
変換方針受付部1011は、使用者から変換指示を受け付けると、受け付けた変換指示を入力プログラム変換予測部1016へ出力する。
(3)プログラム変換結果記憶部1015
プログラム変換結果記憶部1015は、過去に変換された1以上の目的プログラム及び目的プログラムのそれぞれに対応し、且つ変換の予測に利用する利用情報を記憶するための領域を有している。
利用情報は、例えば、目的プログラムの実行時間、コードサイズ、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積などである。
(4)入力プログラム変換予測部1016
入力プログラム変換予測部1016は、入力プログラムD101を入力プログラム受付部1010から受け取り、受け取った入力プログラムD101を一時的に格納する。
入力プログラム変換予測部1016は、変換方針受付部1011から、変換指示又はプログラム変換方針D102を受け取る。
入力プログラム変換予測部1016は、変換方針受付部1011から何れかの指示を受け取ったかを判断し、変換指示を受け取ったと判断する場合には、受け取った変換指示を入力プログラム変換部1012へ出力する。
入力プログラム変換予測部1016は、受け取った指示がプログラム変換方針D102であると判断する場合には、受け取ったプログラム変換方針D102を一時的に記憶し、以下の動作を行う。
入力プログラム変換予測部1016は、受け取ったプログラム変換方針D102に基づいて、プログラム変換結果記憶部1015に記憶している1以上の目的プログラムと、それらに対応する利用情報とを用いて、入力プログラムD101に対応する目的プログラムのプログラム変換指標を予測する。
入力プログラム変換予測部1016は、予測結果を目的プログラム出力部1013へ出力する。
ここで、予測結果は、受け取ったプログラム変換方針に対応する情報である。例えば、プログラム変換方針が目的プログラムの実行時間を最小にしたい旨の情報である場合には、予測結果は目的プログラムの実行時間である。また、プログラム変換方針が目的プログラムのコードサイズを最小にしたい旨の情報である場合には、予測結果は目的プログラムのコードサイズである。また、プログラム変換方針が目的プログラムが示すハードウェアの面積を最小にしたい旨の情報である場合には、予測結果は目的プログラムが示すハードウェアの面積である。
(5)入力プログラム変換部1012
入力プログラム変換部1012は、図7に示すように、目的プログラム生成部1020と変換指標生成部1021とを有している。
(5−1)目的プログラム生成部1020
目的プログラム生成部1020は、変換指示を入力プログラム変換予測部1016から受け取ると、入力プログラム変換予測部1016にて一時的に記憶されている入力プログラムD101を、予測結果に応じた目的プログラムD103へと変換する。
目的プログラム生成部1020は、生成した目的プログラムD103を目的プログラム出力部1013へ出力する。
(5−2)変換指標生成部1021
変換指標生成部1021は、目的プログラム生成部1020にて生成された目的プログラムD103、及び入力プログラム変換予測部1016による予測結果を用いて利用情報を取得する。変換指標生成部1021は、目的プログラムD103及び取得した利用情報をプログラム変換結果記憶部1015へ格納する。
変換指標生成部1021は、目的プログラム生成部1020にて生成された目的プログラムD103の記述内容に基づいて、プログラム変換指標D104を生成し、生成したプログラム変換指標D104をプログラム変換指標通知部1014へ出力する。
(6)目的プログラム出力部1013
目的プログラム出力部1013は、第1の実施の形態にて示す目的プログラム出力部13と同様の動作を行うため、ここでの説明は省略する。
(7)プログラム変換指標通知部1014
プログラム変換指標通知部1014は、入力プログラム変換予測部1016から予測結果を受け取ると、受け取った予測結果を使用者へ通知する。
プログラム変換指標通知部1014は、入力プログラム変換部1012からプログラム変換指標D104を受け取ると、受け取ったプログラム変換指標D104を使用者へ通知する。
例えば、プログラム変換指標通知部1014は、プログラム変換装置1000に接続された表示装置(図示せず)に、プログラム変換指標D104を出力する。
表示装置は、プログラム変換指標D104を表示する。これにより、プログラム変換指標通知部1014は、表示装置を介して、プログラム変換指標D4を使用者へ通知することができる。
2.2 プログラム変換装置1000の具体例
ここでは、プログラム変換装置1000の具体例として、高位合成装置1100の構成、及び動作について、以下に説明する。
(1)高位合成装置1100の構成
高位合成装置1100は、図8に示すように、ビヘイビア記述受付部1110、受付部1111、生成部1112、RTL記述出力部1113、グラフ通知部1114、変換結果記憶部1115、及び変換予測部1116から構成されている。
高位合成装置1100は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ROM又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサは、前記コンピュータプログラムに従って動作することにより、高位合成装置1100は、その機能を達成する。
高位合成装置1100は、入力プログラムとしてビヘイビア記述D111を受け付け、プログラム変換方針として変換方針D112を受け付ける。
高位合成装置1100は、受け付けた変換方針D112に基づいて、ビヘイビア記述D111を目的プログラムであるRTL記述D113へと変換し、変換したRTL記述D113と、RTL記述D113に対するプログラム変換指標であるグラフD114とを出力する。ここで、グラフD114は、例えば、ハードウェアの実行時間と面積との関係を示すグラフである。
使用者は、グラフD114を参照して、所望する諸元を有する回路を示すRTL記述D113が作成されたか否かを判断することができる。
(1−1)ビヘイビア記述受付部1110
ビヘイビア記述受付部1110は、上述した入力プログラム受付部1010に相当する。
ビヘイビア記述受付部1110は、ビヘイビア記述D111を使用者から受け付け、受け付けたビヘイビア記述D111を変換予測部1116へ出力する。
(1−2)受付部1111
受付部1111は、上述した変換方針受付部1011に相当する。
受付部1111は、変換方針D112及び変換指示を使用者から受け付ける。
ここで、変換方針D112は、テンプレートD121とテンプレート割付パターンD122とからなる情報、又はテンプレートD121のみからなる情報である。
テンプレートD121は、データフローグラフ(DFG)及びそのDFGにて示される回路図のRTL記述とからなる組であり、その一例を図9に示す。なお、図9では、便宜上、RTL記述を回路図にて示している。図9に示すテンプレートD121に含まれるデータフローグラフD131は、演算「Y=P×Q+R」を示すグラフである。また回路図(RTL記述)D132は、データフローグラフD131にて示される回路図であり、データフローグラフD131の各演算(乗算及び加算)は、積和演算器を使用することで計算することができる。
テンプレート割付パターンD122は、例えば、入力プログラムにおいて、テンプレートD121を割り付ける箇所と割り付けない箇所を指定する情報である。
受付部1111は、変換指示を受け付けると、受け付けた変換指示を変換予測部1116へ出力する。
受付部1111は、図8に示すように、テンプレート受付部1130及びテンプレート割付パターン受付部1131を有している。
テンプレート受付部1130は、使用者からテンプレートD121を受け付けると、受け付けたテンプレートD121を変換予測部1116へ出力する。
テンプレート割付パターン受付部1131は、使用者からテンプレート割付パターンD122を受け付けると、受け付けたテンプレート割付パターンD122を変換予測部1116へ出力する。
(1−3)変換結果記憶部1115
変換結果記憶部1115は、プログラム変換結果記憶部1015に相当する。
変換結果記憶部1115は、ビヘイビア記述から変換されたRTL記述及びその利用情報を格納する領域を有している。
なお、ここでは、利用情報は、RTL記述にて示されるハードウェアの面積及び実行時間からなる情報である。
(1−4)変換予測部1116
変換予測部1116は、入力プログラム変換予測部1016に相当する。
変換予測部1116は、ビヘイビア記述D111をビヘイビア記述受付部1110から受け取り、受け取ったビヘイビア記述D111を一時的に格納する。
変換予測部1116は、受付部1111から、変換指示又は変換方針D112を受け取る。
変換予測部1116は、受付部1111から何れかの指示を受け取ったかを判断し、変換指示を受け取ったと判断する場合には、受け取った変換指示を生成部1112へ出力する。
変換予測部1116は、受け取った指示が変換方針D112であると判断する場合には、受け取った変換方針D112を一時的に記憶する。
変換予測部1116は、図8に示すように、DFG変換部1120、テンプレートマッチング部1121、ハードウェア割付部1122、及び面積・実行時間予測部1123から構成されている。
(DFG変換部1120)
DFG変換部1120は、ビヘイビア記述D111をビヘイビア記述受付部1110から受け取る。
DFG変換部1120は、受け取ったビヘイビア記述D111をデータフローグラフ(DFG)に変換し、変換したデータフローグラフをテンプレートマッチング部1121へ出力する。
なお、ビヘイビア記述からDFGへの変換方法は公知であるため、ここでの説明は省略する。
(テンプレートマッチング部1121)
テンプレートマッチング部1121は、DFG変換部1120にて変換されたデータフローグラフにおいて、受け付けたテンプレートD112のデータフローグラフD121と形状が同一の箇所を検索する処理を行う。
テンプレートマッチング部1121は、受付部1111から変換方針を受け取り、DFG変換部1120からデータフローグラフを受け取る。
例えば、変換方針D112がテンプレートD121及びテンプレート割付パターンD122を含む場合には、テンプレートマッチング部1121は、テンプレート受付部1130からテンプレートD121を、テンプレート割付パターン受付部1131からテンプレート割付パターンD122をそれぞれ受け取る。変換方針D112がテンプレートD121のみを含む場合には、テンプレートマッチング部1121は、テンプレート受付部1130からテンプレートD121を受け取る。
テンプレートマッチング部1121は、受け取った変換方針D112に基づいて、データフローグラフに対して、テンプレートD121に含まれるデータフローグラフD131と一致し、割り付けることが可能な箇所を検索する。
(ハードウェア割付部1122)
ハードウェア割付部1122は、テンプレートマッチング部1121の検索結果に基づいて、データフローグラフに対してハードウェアの割り付けを行う。
ここでは、ハードウェア割付部1122は、テンプレートD121と一致し、割り付けることが可能な箇所に対してはテンプレートD121を割り付け、テンプレートD121を割り付けられない箇所については、第1の実施の形態と同様の方法にて、演算器の割り付けを行う。
ここで、図3にて示すデータフローグラフD20に対して、図9にて示すデータフローグラフD131を割り付ける場合について、図10を用いて説明する。なお、ここでは、変換方針D112はテンプレートD121のみを含むものとする。
テンプレートマッチング部1121は、データフローグラフD131と一致する箇所して、データフローグラフD20から部分データフローグラフD140及びD141を取得する。
ハードウェア割付部1122は、部分データフローグラフD140及びD141に対してはデータフローグラフD131を割り付け、演算ノードD142に対しては、加算器を割り付ける。
なお、高位合成装置1100はテンプレート割付パターンD122として、部分データフローグラフD140にはデータフローグラフD131を割り付け、他の箇所には割り付けない旨の情報を受け取った場合には、ハードウェア割付部1122は、部分データフローグラフD140に対してはデータフローグラフD131を割り付け、他の演算ノードに対しては、第1の実施の形態と同様の割付方法にて演算器の割付を行う。
(面積・実行時間予測部1123)
面積・実行時間予測部1123は、ハードウェア割付部1122による演算器の割付結果と、変換結果記憶部1115に記憶されている1以上のRTL記述及びそれらに対応する利用情報とを用いて、入力プログラムに対応する目的プログラムのプログラム変換指標を予測する。ここでは、面積・実行時間予測部1123は、プログラム変換指標の予測結果として、目的プログラム(RTL記述)にて示されるハードウェアの実行時間と面積との関係を示すグラフを生成する。
面積・実行時間予測部1123は、生成したグラフをグラフ通知部1114へ出力する。
以下に、グラフの生成方法について説明する。
面積・実行時間予測部1123は、変換結果記憶部1115に記憶されている1以上のRTL記述にて示される演算器の割付パターン(以下、実割付パターン)それぞれに対応する利用情報(面積及び実行時間)を二次元平面にプロットする。ここで、二次元平面は、横軸を面積、縦軸を実行時間とし、プロットされる座標は(面積、実行時間)となる。
面積・実行時間予測部1123は、1以上の実割付パターンと、ハードウェア割付部1122による演算器の割付パターン(以下、仮割付パターン)とを比較する。比較結果により差分がない部分に関しては、面積・実行時間予測部1123は実割付パターンを用いて差分がない部分の面積及び実行時間を算出する。差分のある部分に関しては、面積・実行時間予測部1123は仮割付パターンを用いて面積及び実行時間を算出する。算出された各面積の総和及び各実行時間の総和を取得し、二次元平面にプロットする。
面積・実行時間予測部1123は、プロットされた各座標と最小二乗法とを用いて、入力プログラムに対する目的プログラム(RTL記述)が示すハードウェアの実行時間と面積との関係を示すグラフを生成する。
ここで、面積・実行時間予測部1123にて生成されるグラフG10の一例を図11に示す。図11では、横軸は面積であり、右に進むにつれ面積は増大することを示している。縦軸は実行時間であり、上に進むにつれ実行時間が小さくなることを示している。
面積・実行時間予測部1123は、先ず、1以上の実割付パターンそれぞれに対応する利用情報(面積及び実行時間)を二次元平面上に、座標P100〜P104をプロットする。次に、面積・実行時間予測部1123は、仮割付パターンに対する座標P105をプロットする。プロットされた座標P100〜P105に対して最小二乗法を適用することにより、グラフG10が得られる。
なお、グラフ生成において、最小二乗法を用いるとしたが、これに限定されない。グラフを生成することのできれば、他の方法であってもよい。
(1−5)生成部1112
生成部1112は、上述した入力プログラム変換部1012に相当し、図8に示すように、RTL記述変換部1141及び変換指標生成部1142から構成されている。
RTL記述変換部1141は、上述した目的プログラム生成部1020に相当し、変換指標生成部1142は、上述した変換指標生成部1021に相当する。
(RTL記述変換部1141)
RTL記述変換部1141は、変換指示を変換予測部1116から受け取ると、変換予測部1116にて一時的に記憶されているビヘイビア記述D111を、ハードウェア割付部1122による演算器の割り付けに基づいてRTL記述D113を生成し、生成したRTL記述D113をRTL記述出力部1113へ出力する。
(変換指標生成部1142)
変換指標生成部1142は、RTL記述変換部1141にて生成されたRTL記述D113によるハードウェア情報に基づいて、ハードウェアの面積及び実行時間を算出し、算出した面積と実行時間とを組とする利用情報を、RTL記述D113と対応付けて変換結果記憶部1115へ格納する。
変換指標生成部1142は、変換結果記憶部1115に記憶されている1以上のRTL記述にて示される演算器の割付パターン(以下、実割付パターン)それぞれに対応する利用情報(面積及び実行時間)を用いてグラフD114を生成し、生成したグラフD114をプログラム変換指標としてグラフ通知部1114へ出力する。
なお、面積及び実行時間の算出方法は第1の実施の形態にて示す算出方法と同様であり、グラフD114の生成方法は面積・実行時間予測部1123にて行われるグラフの生成と同様であるので、ここでの説明は省略する。
(1−6)RTL記述出力部1113
RTL記述出力部1113は、上述した目的プログラム出力部1013に相当する。
RTL記述出力部1113は、RTL記述変換部1141からRTL記述D113を受け取ると、受け取ったRTL記述D113を記憶装置(例えば、ハードディスクユニット)へ出力する。
なお、RTL記述D113の出力先は、ハードディスクユニットに限定されない。RTL記述D113の出力先は、RTL記述D113を格納する領域を有していればよい。
(1−7)グラフ通知部1114
グラフ通知部1114は、上述したプログラム変換指標通知部1014に相当する。
グラフ通知部1114は、面積・実行時間予測部1123から予測結果であるグラフを受け取ると、受け取ったグラフを使用者へ通知する。
グラフ通知部1114は、変換指標生成部1142からグラフD114を受け取ると、受け取ったグラフD114を使用者へ通知する。
例えば、グラフ通知部1114は、高位合成装置1100に接続された表示装置(図示せず)に、グラフD114を出力する。表示装置は、グラフD114を表示する。これにより、グラフ通知部1114は、表示装置を介して、グラフD114を使用者へ通知することができる。
(2)高位合成装置1100の動作
ここでは、高位合成装置1100の動作について、図12にて示す流れ図を用いて説明する。
ビヘイビア記述受付部1110は、ビヘイビア記述D111を使用者から受け付ける(ステップS100)。
受付部1111は、使用者から指示(変換方針、又は変換指示)受け付ける(ステップS105)。
変換予測部1116は、受け付けた指示が変換方針であるか、変換指示であるかを判断する(ステップS110)。
変換予測部1116が受け付けた指示が変換方針であると判断する場合には(ステップS110における「変換方針」)、以下の動作を行う。
変換予測部1116のDFG変換部1120は、受け付けたビヘイビア記述D111をデータフローグラフに変換する(ステップS115)。
テンプレートマッチング部1121は、受付部1111から変換方針を受け取り、DFG変換部1120からデータフローグラフを受け取る。テンプレートマッチング部1121は、受け取った変換方針D112に基づいて、テンプレートのマッチングを行う(ステップS120)。ここでは、テンプレートマッチング部1121は、データフローグラフに対して、テンプレートD121に含まれるデータフローグラフD131と一致し、割り付けることが可能な箇所を検索する。
ハードウェア割付部1122は、テンプレートマッチング部1121の検索結果に基づいて、データフローグラフに対してハードウェアの割り付けを行う(ステップS125)。
面積・実行時間予測部1123は、ハードウェア割付部1122による演算器の割付結果と、変換結果記憶部1115に記憶されている1以上のRTL記述及びそれらに対応する利用情報とを用いて、ビヘイビア記述D111に対応する目的プログラム(RTL記述)が示すハードウェアの面積及び実行時間を予測する(ステップS130)。ここでは、面積・実行時間予測部1123は、プログラム変換指標の予測結果として、目的プログラム(RTL記述)にて示されるハードウェアの実行時間と面積との関係を示すグラフを生成する。
グラフ通知部1114は、面積・実行時間予測部1123にて生成されたグラフを予測結果として使用者へ通知する(ステップS135)。
変換予測部1116が受け付けた指示が変換指示であると判断する場合には(ステップS110における「変換指示」)、以下の動作を行う。
RTL記述変換部1141は、ハードウェア割付部1122による演算器の割り付けに基づいてRTL記述D113を生成する(ステップS140)。
変換指標生成部1142は、利用情報(ハードウェアの面積及び実行時間)を生成し(ステップS145)、RTL記述D113及びその利用情報を変換結果記憶部1115へ格納する(ステップS150)。
変換指標生成部1142は、変換結果記憶部1115に記憶されている1以上のRTL記述にて示される演算器の実割付パターンそれぞれに対応する利用情報(面積及び実行時間)を用いてグラフD114を生成する(ステップS155)。
RTL記述出力部1113は、RTL記述変換部1141にて生成されたRTL記述D113を記憶装置へ出力する(ステップS160)。
グラフ通知部1114は、変換指標生成部1142にて生成されたグラフD114をプログラム変換指標として、表示装置へ出力することにより使用者へ通知する(ステップS165)。
(3)予測動作の一例
ここでは、図12にて示すステップS130における予測動作の一例について、図13にて示す流れ図を用いて説明する。
面積・実行時間予測部1123は、変換結果記憶部1115に記憶されている1以上のRTL記述にて示される演算器の割付パターン(以下、実割付パターン)それぞれに対応する利用情報(面積及び実行時間)を取得する(ステップS200)。
面積・実行時間予測部1123は、取得した1以上の利用情報を二次元平面にプロットする(ステップS205)。
面積・実行時間予測部1123は、1以上の実割付パターンと、ハードウェア割付部1122により生成された仮割付パターンとを比較する(ステップS210)。比較結果により差分がない部分に関しては、面積・実行時間予測部1123は実割付パターンを用いて差分がない部分の面積及び実行時間を算出する(ステップS215)。差分のある部分に関しては、面積・実行時間予測部1123は仮割付パターンを用いて面積及び実行時間を算出する(ステップS220)。算出された各面積の総和及び各実行時間の総和を取得し、二次元平面にプロットする(ステップS225)。
面積・実行時間予測部1123は、プロットされた各座標と最小二乗法とを用いて、入力プログラムに対する目的プログラム(RTL記述)が示すハードウェアの実行時間と面積との関係を示すグラフを生成する(ステップS230)。
面積・実行時間予測部1123は、生成したグラフをグラフ通知部1114へ出力する(ステップS235)。
(4)プログラム変換指標の生成動作の一例
ここでは、図12にて示すステップS155におけるプログラム変換指標の生成動作の一例について、図13にて示す流れ図との変更点のみを説明する。
変換指標生成部1142は、図13にて示すステップS200及びステップS205と同様の動作を行う。
変換指標生成部1142は、ステップS210からステップS225を行う代わりに、RTL記述変換部1141にて生成されたRTL記述D113によるハードウェア情報に基づいて、生成される回路全体の面積値及び実行時間を算出し、算出した面積値及び実行時間をプロットする。
変換指標生成部1142は、ステップS230及びステップS235と同様の動作を行う。
(5)具体例のまとめ
上記にて示したように、高位合成装置は、ビヘイビア記述と変換方針を受け付けると、RTL記述と、RTL記述にて示されるハードウェアの面積と実行時間との関係を示すグラフとを出力する。
この二つの要素(面積、実行時間)はトレード・オフの関係にある。面積・実行時間グラフはこの2つの要素をグラフ化したものであり、可視化されているため装置の使用者は、容易に面積と実行時間の関係を把握できる。装置の使用者はこの予測結果を参考にして新しいテンプレートとテンプレート割り付けパターンを考案して再度高位合成することで、より高品質なRTL記述を合成できる。
3.変形例
本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下の場合も本発明に含まれる。
(1)上記第1の実施の形態において、高位合成装置は、プログラム変換指標として、回路図及び算出値を使用者へ通知したが、これに限定されない。
高位合成装置は、回路図のみを通知してもよいし、算出値のみを通知してもよい。例えば、高位合成装置が回路図のみを通知する場合には、使用者は、通知された回路図から割り付けられた1個以上の演算器の面積の総和を算出することにより、通知された回路図が自身が所望する諸元(面積)を有しているか否かを判断することができる。
また、使用者は、通知された回路図から割り付けられた1個以上の演算器の実行時間の総和を算出することにより、通知された回路図が自身が所望する諸元(実行時間)を有しているか否かを判断することができる。
または、上記第1の実施の形態にて示す高位合成装置は、第2の実施の形態における具体例と同様に、面積と実行時間との関係を示すグラフを通知してもよい。
(2)上記第2の実施の形態において、高位合成装置は、グラフを通知する代わりに、回路図及び算出値を通知してもよい。
(3)上記第1の実施の形態において、高位合成装置は、RTL記述を生成する前に、第2の実施の形態と同様に、生成されるRTL記述が示すハードウェアに対するプログラム変換指標(回路図及び算出値)の予測を行い、予測結果を使用者に通知してもよい。
(4)上記第1の実施の形態において、プログラム変換方針(ハードウェア割付情報)は、ハードウェアの実行時間が最小にしたい旨の情報、又はハードウェアの面積を最小にしたい旨の情報としたが、これに限定されない。
プログラム変換方針(ハードウェア割付情報)は、目的プログラムのコードサイズを最小にしたい旨の情報であってもよい。この場合、プログラム変換装置は、例えば、変換指標生成部により目的プログラムのコードサイズを生成し、生成したコードサイズをプログラム変換指標として通知部を用いて使用者に通知する。
または、プログラム変換方針(ハードウェア割付情報)は、ハードウェア(目的プログラム)を実行する際のハードウェアの消費電力を最小にしたい旨の情報であってもよい。この場合、プログラム変換装置は、例えば、消費電力計測ツールを使用して、変換指標生成部により目的プログラムに対する消費電力の計測を行い、計測結果をプログラム変換指標として通知部を用いて使用者に通知する。
または、上記にて示すコードサイズ、消費電力、ハードウェアの面積、実行時間のそれぞれをパラメータとし、プログラム変換装置は、プログラム変換方針として1以上のパラメータを受け付けてもよい。この場合、プログラム変換装置は、各パラメータに対する算出値のうち少なくとも1の算出値が最小となるように入力プログラムを目的プログラムへと変換し、各算出値(受け付けた1以上のパラメータそれぞれに対応する算出値)からなる組をプログラム変換指標として通知部を用いて使用者に通知する。例えば、プログラム変換装置は、2つのパラメータ(ハードウェアの面積、実行時間)を受け付けると、面積値と実行時間とを使用者に通知する。
または、プログラム変換装置は、1以上のパラメータ(パラメータの種別は上記と同様)と、前記1以上のパラメータそれぞれに対応する所定値とをプログラム変換方針として受け付けてもよい。この場合、プログラム変換装置は、各パラメータに対する算出値のうち少なくとも1の算出値が対応する所定値以下となるように入力プログラムを目的プログラムへと変換し、各算出値からなる組をプログラム変換指標として通知部を用いて使用者に通知する。例えば、プログラム変換装置は、1のパラメータとそのパラメータに対応する所定値とを受け付けると、受け付けた1のパラメータに対する算出値が所定値以下となるように入力プログラムを目的プログラムへと変換し、受け付けた1のパラメータに対する算出値からなるプログラム変換指標として通知部を用いて使用者に通知する。
なお、上記第1の実施の形態の具体例において、ハードウェア割付情報をプログラム変換方針として入力しているが、他の変換方針として「実行時間を最小にする」や、「コードサイズを最小にする」などを指定した場合でも、その方針を基にハードウェア割付を行う点については、ハードウェア割り付け情報をプログラム変換方針として入力した場合と変わらない。
(5)第2の実施の形態において、プログラム変換方針(ハードウェア割付情報)は、目的プログラムのコードサイズを最小にしたい旨の情報であってもよい。この場合、プログラム変換装置は、入力プログラム変換予測部を用いて受け付けたプログラム変換方針に基づいて目的プログラムのコードサイズの予測を行い、その結果を使用者に通知する。プログラム変換装置は、変換指示を受け付けた場合には、上記(4)にて示すプログラム変換装置と同様の動作を行う。ここで、コードサイズの予測方法は、過去に生成した目的プログラムのコードサイズを用いて予測する。例えば、プログラム変換装置は、過去に入力された1以上の入力プログラムと、各入力プログラムに対する目的プログラム及びそのコードサイズとを予め記憶している。プログラム変換装置は、入力された入力プログラムと、記憶している1以上の入力プログラムとを比較することにより、同一の部分を検索する。同一の部分に関しては、対応付けて記憶している目的プログラム及びそのコードサイズから、同一部分のコードサイズを取得する。同一でない部分に関しては、プログラム変換を行うことで、その部分のコードサイズを取得する。取得した各コードサイズの総和を予測結果とする。
または、プログラム変換方針(ハードウェア割付情報)は、ハードウェア(目的プログラム)を実行する際のハードウェアの消費電力を最小にしたい旨の情報であってもよい。この場合、プログラム変換装置は、入力プログラム変換予測部を用いて受け付けたプログラム変換方針に基づいて目的プログラムのコードサイズの予測を行い、その結果を使用者に通知する。プログラム変換装置は、変換指示を受け付けた場合には、上記(4)にて示すプログラム変換装置と同様の動作を行う。ここで、消費電力の予測方法は、過去に生成した目的プログラムの消費電力を用いて予測する。例えば、プログラム変換装置は、過去に変換された目的プログラム及びその消費電力を予め記憶している。プログラム変換装置は、入力された入力プログラムに対してハードウェアの割付を行い、その後、記憶している1以上の目的プログラムにて示されるハードウェアの割付と比較することにより、同一の部分を検索する。同一の部分に関しては、対応付けて記憶している目的プログラム及びその消費電力から、同一部分の消費電力を取得する。同一でない部分に関しては、その部分に対する割付結果から消費電力を取得する。取得した各消費電力の総和を予測結果とする。
または、上記にて示すコードサイズ、消費電力、ハードウェアの面積、実行時間のそれぞれをパラメータとし、プログラム変換装置は、プログラム変換方針として1以上のパラメータを受け付けてもよい。この場合、プログラム変換装置は、入力プログラム変換予測部を用いて受け付けたプログラム変換方針に基づいて、プログラム変換指標の予測を行い、その結果を使用者に通知する。プログラム変換装置は、変換指示を受け付けた場合には、上記(4)にて示すプログラム変換装置と同様の動作を行う。
または、プログラム変換装置は、1以上のパラメータ(パラメータの種別は上記と同様)と、前記1以上のパラメータそれぞれに対応する所定値とをプログラム変換方針として受け付けてもよい。この場合、プログラム変換装置は、入力プログラム変換予測部を用いて受け付けたプログラム変換方針に基づいて、プログラム変換指標の予測を行い、その結果を使用者に通知する。プログラム変換装置は、変換指示を受け付けた場合には、上記(4)にて示すプログラム変換装置と同様の動作を行う。
(6)上記第1の実施の形態において、入力プログラム(ビヘイビア記述)に記載された内容全てを目的プログラム(RTL記述)へと変換したが、これに限定されない。
プログラム変換装置は、入力プログラムの一部のみを目的プログラムへと変換してもよい。この場合、プログラム変換装置は、入力プログラムと、プログラム変換方針として入力プログラムにおける変換箇所を示す情報とを受け付ける。プログラム変換装置は、入力プログラムのうち受け付けたプログラム変換方針が示す変換箇所のみを目的プログラムへと変換し、変換した目的プログラムに対するプログラム変換指標を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。
また、第2の実施の形態においても同様に、プログラム変換装置は、入力プログラムのうち一部のみを目的プログラムへと変換してもよい。この場合、プログラム変換装置は、入力プログラムと、プログラム変換方針として入力プログラムにおける変換箇所を示す情報とを受け付ける。プログラム変換装置は、入力プログラム変換予測部を用いて入力プログラムのうち受け付けたプログラム変換方針が示す変換箇所のみに対する目的プログラムのプログラム変換指標を予測し、予測結果を使用者へ通知する。プログラム変換装置は、変換指示を受け付けると、入力プログラムのうち受け付けたプログラム変換方針が示す変換箇所のみを目的プログラムへと変換し、変換した目的プログラムに対するプログラム変換指標を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。
(7)第1の実施の形態において、プログラム変換装置は、入力プログラムとプログラム変換方針とを受け付けたが、これに限定されない。
プログラム変換装置は、入力プログラムのみ受け付けてもよい。この場合、プログラム変換装置は、受け付けた入力プログラムを目的プログラムへ変換し、変換した目的プログラムに対するプログラム指標を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。使用者は、通知されたプログラム変換指標を参照し、目的プログラムが示す回路が、所望する諸元を有しているか否かを判断する。有していないと判断する場合には、使用者は、入力プログラムを改良する。プログラム変換装置は、改良された入力プログラムを受け付け、上記と同様の動作を行う。
また、第2の実施の形態においても同様に、プログラム変換装置は、入力プログラムのみ受け付けてもよい。この場合、プログラム変換装置は、受け付けた入力プログラムに対する目的プログラムのプログラム変換指標を予測し、予測結果を使用者へ通知する。使用者は、通知された予測結果を参照し、目的プログラムが示す回路が、所望する諸元を有しているか否かを判断する。有していないと判断する場合には、使用者は、入力プログラムを改良する。プログラム変換装置は、改良された入力プログラムを受け付け、再度、プログラム変換指標を予測し、その結果を使用者へ通知する。使用者は通知された予測結果が所望する諸元を有していると判断する場合には、変換指示をプログラム変換装置へ与える。プログラム変換装置は、変換指示を受け付けると、入力プログラムを目的プログラムへと変換し、変換した目的プログラムのプログラム変換指標を生成する。
(8)第1の実施の形態において、プログラム変換装置は、ある入力プログラムを初めて目的プログラムへと変換する場合には、その入力プログラムのみを受け付け、同一の入力プログラムに対して再度目的プログラムへと変換する場合に、プログラム変換方針を受け付けてもよい。
この場合、プログラム変換装置は、先ず入力プログラムのみを受け付け、受け付けた入力プログラムを目的プログラムへ変換し、変換した目的プログラムに対するプログラム指標(例えば、面積値)を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。使用者は、通知されたプログラム変換指標を参照し、目的プログラムが示す回路が、所望する諸元を有しているか否かを判断する。有していないと判断する場合には、使用者は、プログラム変換方針と入力プログラムとをプログラム変換装置に与える。プログラム変換装置は、プログラム変換方針に基づいて、入力プログラムを目的プログラムへ変換し、変換した目的プログラムに対するプログラム指標を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。
ここで、生成されるプログラム指標は、実行時間や消費電力やコードサイズや、面積と実行時間との関係を示すグラフであってもよい。
また、第2の実施の形態においても同様に、プログラム変換装置は、ある入力プログラムを初めて目的プログラムへと変換する場合には、その入力プログラムのみを受け付け、同一の入力プログラムに対して再度目的プログラムへと変換する場合に、プログラム変換方針を受け付けてもよい。
この場合、プログラム変換装置は、先ず入力プログラムのみを受け付け、受け付けた入力プログラムに対する目的プログラムのプログラム変換指標(例えば、面積と実行時間との関係を示すグラフ)を予測し、予測結果を使用者へ通知する。使用者は、通知された予測結果を参照し、所望する諸元を有しているか否かを判断する。有していないと判断する場合には、使用者は、使用者は、プログラム変換方針と入力プログラムとをプログラム変換装置に与える。プログラム変換装置は、プログラム変換方針に基づいて、再度、プログラム変換指標を予測し、その結果を使用者へ通知する。使用者は通知された予測結果が所望する諸元を有していると判断する場合には、変換指示をプログラム変換装置へ与える。プログラム変換装置は、変換指示を受け付けると、入力プログラムを目的プログラムへと変換し、変換した目的プログラムのプログラム変換指標を生成する。
ここで、生成されるプログラム指標は、面積や実行時間や消費電力やコードサイズであってもよい。
(9)上記第1の実施の形態において、プログラム変換装置が使用者に通知する情報は、入力プログラムを変換するに当たっての詳細な情報(スケジューリングの方法や、目的プログラムがハードウェア技術情報であった場合には演算器割り付けの方法など)であってもよい。
(10)第2の実施の形態において、高位合成装置の変換結果記憶部は、過去に変換した1以上の目的プログラム(RTL記述)と、1以上の目的プログラムそれぞれに対応する利用情報とを記憶したが、これに限定されない。
変換結果記憶部は、過去に入力された1以上の割付パターンと、1以上の割付パターンそれぞれに対応する利用情報とを記憶してもよい。
この場合、面積・実行時間予測部は、入力プログラムに対する割付結果において、記憶している割付パターンと一致する部分にはその割付パターンに対応する利用情報(面積、実行時間)を用いて、二次元平面上にプロットする。一致しない部分については、面積・実行時間予測部は、面積及び実行時間を算出し、算出した面積及び実行時間に基づいて二次元平面上にプロットする。その後、面積・実行時間予測部は、グラフを生成する。
または、変換結果記憶部は、過去に入力された割付パターンと、割付パターンが入力された際に生成された目的プログラムの組を1以上記憶してもよい。
この場合、面積・実行時間予測部は、現在の演算器割り付けパターンと過去の割り付けパターンを比較し、差分のある部分に関してのみ再度ハードウェア割り付けを行い、差分のない部分に関しては過去の割り付けパターンをそのまま流用することで簡易的にハードウェア割り付けを行い、その場合の実行時間と面積を予測結果とする。
(11)上記第1の実施の形態において、プログラム変換指標の一例として、回路図と算出値とからなる変換指標としたが、これに限定されない。
プログラム変換指標は、目的プログラムにて示される回路全体の面積、実行時間、消費電力のいずれかであってもよし、これらの組み合わせであってもよい。
また、上記第2の実施の形態においても同様に、プログラム変換指標は、目的プログラムにて示される回路全体の面積、実行時間、消費電力、コードサイズ、及び面積と実行時間との関係を示すグラフの何れかであってもよし、又はこれらの組み合わせであってもよい。
(12)第2の実施の形態において、面積・実行時間予測部がグラフを生成する際に、実割付パターンそれぞれに対応する利用情報(面積及び実行時間)、及び仮割付パターンに対応する面積及び実行時間を二次元平面にプロットした後、最小二乗法を適用してグラフを生成したが、これに限定されない。
実割付パターンそれぞれに対応する利用情報(面積及び実行時間)を二次元平面にプロットした後、最小二乗法を適用してグラフを生成し、その後、予測値として仮割付パターンに対応する面積及び実行時間をプロットしてもよい。
(13)上記第1の実施の形態において、算出値をRTL記述にて示される回路の実行時間とする場合、本発明における回路の諸元とは、当該回路の実行時間である。
また、回路の消費電力を算出値とする場合、本発明における回路の諸元とは、当該回路の消費電力である。
また、コードサイズを算出値とする場合、本発明における回路の諸元とは、当該回路の設計内容を記述しているRTL記述のコードサイズである。
また、変換指標として回路図を通知する場合、本発明における回路の諸元とは、当該回路を示す回路図である。
また、上記第2の実施の形態において、本発明における回路の諸元とは、当該回路の面積値であってもよいし、実行時間であってもよい。
(14)上記第2の実施の形態において、プログラム変換結果記憶部と入力プログラム変換予測部とを個別の構成としたが、これに限定されない。
プログラム変換結果記憶部を入力プログラム変換予測部に含めてもよい。
(15)上記第1の実施の形態にて示すプログラム変換装置の具体例を、高位合成装置としたが、これに限定されない。
プログラム変換装置は、コンパイラ装置であってもよい。この場合、コンパイラ装置は、高級言語で記述された入力プログラムと、プログラム変換方針とを受け付ける。コンパイラ装置は、受け付けたプログラム変換方針に基づいて、目的プログラムとしてマシン固有の言語(例えば、アセンブラ言語)に変換し、変換した言語を出力し、さらには、変換した言語に対するプログラム変換指標を生成し、生成したプログラム変換指標を使用者に通知する。プログラム変換方針は、例えば、目的プログラムのコードサイズを最小にする旨の情報であり、プログラム変換指標は、目的プログラムのコードサイズである。
(16)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD―ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu−ray Disc)、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
(17)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
4.まとめ
第1の実施の形態において、プログラム変換装置は、プログラム変換指標を使用者に通知している。使用者は、通知されたプログラム変換指標を参照して、より効率的なプログラム変換方針を容易に立てることができる。使用者は、入力プログラムとプログラム変換方針をプログラム変換装置に入力、プログラム変換装置がプログラム変換指標を通知、使用者が通知されたプログラム変換指標を基により効率的な変換方針を考案、というステップを自身の要求を満たす目的プログラムが得られるまで繰り返すことにより、使用者は所望する諸元を有する回路を示す目的プログラムを取得することができる。
第2の実施の形態において、プログラム変換装置は、入力プログラム(例えば、ビヘイビア記述)から目的プログラム(例えば、RTL記述)を生成する前に、プログラム変換指標を予測し、その予測結果(例えば、グラフ)を使用者に通知している。その後、使用者から変換指示を受け付けると、プログラム変換装置は、目的プログラムに変換した後のプログラム変換指標(例えば、グラフ)を使用者に通知している。
ここで、予測結果の通知内容と、実際に変換した結果の通知内容との違いについて説明する。変換結果を予測する場合は実際には目的プログラムへの変換を行わないので変換にかかる時間を短縮できる。よって入力プログラムとプログラム変換方針を入力してから予測結果を通知するまでの時間が短い。ただし、予測結果であるので実際に変換した場合の指標と誤差がある場合がある。一方、実際に目的プログラムへの変換を行った後の結果の通知内容は、目的プログラムへの変換を実際に実行するので入力プログラムとプログラム変換方針を入力してからプログラム変換指標を通知するまでの時間が、予測通知の場合と比較して長いが、実際に変換された内容に基づいてプログラム変換指標を生成しているので通知内容の信頼性は高い。
本発明におけるプログラム変換装置は、変換された目的プログラムの変換指標を使用者に通知しているので、使用者はその変換指標を参考にしてより良いプログラム変換方針を容易に考案することができる。そして、使用者は、考案した変換方針をプログラム変換装置に入力することでよりよい目的プログラムが生成できる。これを繰り返すことで目的プログラムが示す回路の諸元(品質)は段階的に向上し、最終的に使用者の要求を満たす目的プログラムが得られる。
本発明のプログラム変換装置は、入力プログラムを目的プログラムへ変換するプログラム変換装置であって、前記入力プログラムを受け付けるプログラム入力手段と、前記入力プログラムを前記目的プログラムへ変換する変換手段と、変換結果である前記目的プログラムを出力する目的プログラム出力手段と、前記入力プログラムを変換する過程で得られた前記入力プログラムの変換指標を使用者へ通知する変換指標通知手段とを備えていることを特徴とする。この装置によれば、装置の使用者は目的プログラム以外の情報をプログラム変換装置から得ることができる。
また、前記プログラム変換装置は、前記変換指標として前記目的プログラムの実行時間を使用者へ通知することを特徴とする。この装置によれば、装置の使用者はプログラムを変換した際の目的プログラムの実行時間を把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
また、前記プログラム変換装置は、前記変換指標として前記目的プログラムの実行時間と前記目的プログラムによって実現されるハードウェアの面積との相関関係を使用者へ通知することを特徴とする。この装置によれば、装置の使用者はプログラムを変換した際の目的プログラムによって実現されるハードウェアの面積との相関関係を把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
また、前記プログラム変換装置は前記変換指標として前記目的プログラムのコードサイズを使用者へ通知することを特徴とする。この装置によれば、装置の使用者はプログラムを変換した際の前記目的プログラムのコードサイズを把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
また、前記プログラム変換装置は前記変換指標として前記目的プログラムによって実現されるハードウェアの面積を使用者へ通知することを特徴とする。この装置によれば、装置の使用者はプログラムを変換した際の前記目的プログラムによって実現されるハードウェアの面積を把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
また、前記プログラム変換装置は前記変換指標として前記目的プログラムを実行する際の消費電力を使用者へ通知することを特徴とする。この装置によれば、装置の使用者は前記目的プログラムを実行する際の消費電力を把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
また、前記プログラム変換装置は前記入力プログラムを変換する際の使用者からの要求である変換方針を受け付ける変換方針入力手段を備え、前記変換手段は前記変換方針を基に前記入力プログラムを変換することを特徴とする。この装置によれば、効果的な変換方針入力手段が入力されることで変換方針を入力しない場合と比較してより高品質な目的プログラムを出力できる。
また、前記プログラム変換装置は前記変換指標を基に使用者が作成した変換方針が入力されることを特徴とする。この装置によれば、装置の使用者は効果的な変換方針入力手段を入力することで変換方針を入力しない場合と比較してより高品質な目的プログラムが得られる。
また、前記プログラム変換装置は前記変換方針として前記入力プログラム中のプログラム変換する箇所を指定する情報を受け付けることを特徴とする。この装置によれば、プログラム変換方針の再入力によって再度プログラム変換を実行する際に、目的プログラム中で既に要求を満たしている部分については再変換を省略することでプログラム変換にかかる時間を短縮できる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムの実行時間が最小となるように前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、プログラム変換によって目的プログラムの実行時間が最小である目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムによって実現されるハードウェアの面積が最小となるように前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、プログラム変換によって前記目的プログラムによって実現されるハードウェアの面積が最小である目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムによって実現される消費電力が最小となるように前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、プログラム変換によって前記目的プログラムによって実現される消費電力が最小である目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムのコードサイズが最小となるように前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、プログラム変換によって前記目的プログラムのコードサイズが最小である目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムにおける一つあるいは複数のパラメータを指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムにおける一つあるいは複数のパラメータが指定した値以下となる目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムにおける実行時間を指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムにおける実行時間が指定した値以下となる目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムによって実現されるハードウェアの面積を指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムによって実現されるハードウェアの面積が指定した値以下となる目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムによって実現されるハードウェアの消費電力を指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムによって実現されるハードウェアの消費電力が指定した値以下となる目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラムのコードサイズを指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムのコードサイズが指定した値以下となる目的プログラムを得られる。
また、前記プログラム変換装置は前記変換方針として前記目的プログラム中の各演算と前記目的プログラムによって実現される各ハードウェアとの対応関係として定義される演算器割り付けパターンに関する情報を受け付けることを特徴とする。この装置によれば、装置の使用者はプログラム変換によって、入力された前記演算器割り付けパターンに則った前記目的プログラムを得られる。
また、前記プログラム変換装置は、前記ハードウェアの演算器割り付けに関する情報として、前記ハードウェアの回路図と前記回路図の動作を組とする情報として定義されたテンプレートを含んでいることを特徴とする。この装置によれば、前記目的プログラムによって表現されるハードウェアの回路図の中に、テンプレートの回路図が含まれることによって、出力される回路図の一部を装置の使用者が設計することができる。
また、前記プログラム変換装置は、前記入力プログラムの変換結果または変換指標を予測し、予測された変換結果または変換指標を前記変換指標通知手段へ入力する予測手段を備えており、前記変換指標通知手段は、前記予測された変換結果である目的プログラムまたは変換指標を使用者へ通知することを特徴とする。この装置によれば、装置の使用者は、プログラム変換結果からプログラム変換方針または指標を再考案する際にプログラム変換結果の代わりに変換予測結果を使用することで、プログラム変換にかかる時間を省略できる。
また、前記プログラム変換装置は、前記入力プログラムを変換した結果である目的プログラム及び前記変換方針を記録しておく記録手段を備え、前記記録手段に記録されている内容を基に、前記入力プログラムの変換結果を予測することを特徴とする。この装置によって、記憶手段に記憶されている情報を利用してプログラム変換結果を予測できる。
また、前記プログラム変換装置は、前記記録手段に記録されている、過去の変換方針と現在の変換方針の差分を取って、前記差分と過去の入力プログラム変換結果を基に現在の入力プログラム変換結果を予測することを特徴とする。この装置によって、装置の使用者は過去の変換方針と現在の変換方針の差分を利用した予測結果を得られる。
また、前記プログラム変換装置は、前記目的プログラムによって実現されるハードウェアの面積または前記目的プログラムの実行時間を予測することを特徴とする。この装置によれば、装置の使用者は、目的プログラムによって実現されるハードウェアの面積または前記目的プログラムの実行時間が大きいプログラム変換の結果とその時のプログラム変換指標を変換前に把握できるので、プログラム変換方針を再考案する際に、実際の変換を行わずに、目的プログラムによって実現されるハードウェアの面積または前記目的プログラムの実行時間が大きい場合のプログラム変換指標を把握できる。これによって目的プログラムによって実現されるハードウェアの面積または前記目的プログラムの実行時間が大きいプログラム変換を行う時間を省略できる。
また、前記プログラム変換装置は、前記目的プログラムのコードサイズを予測することを特徴とする。この装置によれば、装置の使用者は、前記目的プログラムのコードサイズが大きいプログラム変換の結果とその時のプログラム変換指標を変換前に把握できるので、プログラム変換方針を再考案する際に、実際の変換を行わずに、前記目的プログラムのコードサイズの面積が大きい場合のプログラム変換指標を把握できる。これによって前記目的プログラムのコードサイズが大きいプログラム変換を行う時間を省略できる。
また、前記プログラム変換装置は、前記入力プログラムによって実現されるハードウェアの回路図を予測することを特徴とする。この装置によれば、装置の使用者は、前記入力プログラムによって実現されるハードウェアの回路図が大きいプログラム変換の結果とその時のプログラム変換指標を変換前に把握できるので、プログラム変換方針を再考案する際に、実際の変換を行わずに、前記入力プログラムによって実現されるハードウェアの回路図の面積が大きい場合のプログラム変換指標を把握できる。これによって前記入力プログラムによって実現されるハードウェアの回路図が大きいプログラム変換を行う時間を省略できる。
また、前記プログラム変換装置は、前記入力プログラムによって実現されるハードウェアの回路図を予測することを特徴とする。この装置によれば、装置の使用者は、前記入力プログラムによって実現されるハードウェアの回路図が大きいプログラム変換の結果とその時のプログラム変換指標を変換前に把握できるので、プログラム変換方針を再考案する際に、実際の変換を行わずに、前記入力プログラムによって実現されるハードウェアの回路図の面積が大きい場合のプログラム変換指標を把握できる。これによって前記入力プログラムによって実現されるハードウェアの回路図が大きいプログラム変換を行う時間を省略できる。
また、前記プログラム変換装置は前記変換方針入力手段から入力された現在の演算器割り付けパターンと、前記記録手段に記録された過去の演算器割り付けパターンと前記過去の入力プログラムの変換結果を基にして、前記現在の入力プログラムの変換結果を予測することを特徴とする。 この装置によれば、装置の使用者は前記変換方針入力手段から入力された現在の演算器割り付けパターンと、前記記録手段に記録された過去の演算器割り付けパターンと前記過去の入力プログラムの変換結果を基にした予測結果を得られる。
また、前記プログラム変換装置は前記過去の演算器割り付けパターンと前記現在の演算器割り付けパターンの差分から前記現在のプログラム変換結果を予測する際に、差分のない部分に関しては前記過去の演算器割り付けパターンから得られた前記過去の入力プログラム変換結果をそのまま用い、差分がある部分に関してのみ再度前記現在の入力プログラムを変換したものを変換予測結果とすることを特徴とする。この装置によれば、装置の使用者は過去の演算器割り付けパターンと前記現在の演算器割り付けパターンの差分の出た箇所についてのみ割り付けし直した場合の変換予測結果を得られる。
本発明は、プログラム変換装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用されうる。
プログラム変換装置1の構成を示すブロック図である。 高位合成装置100の構成を示すブロック図である。 ビヘイビア記述D11からデータフローグラフD20への変換の一例を示す図である。 RTL記述D13の一例を示す図である。 高位合成装置100の動作を示す流れ図である。 変換指標生成部121におけるプログラム変換指標の生成の動作の一例を示す流れ図である。 プログラム変換装置1000の構成を示すブロック図である。 高位合成装置1100の構成を示すブロック図である。 テンプレートD121の一例を示す図である。 テンプレートD121に含まれるデータフローグラフD131の適用の一例を示す図である。 高位合成装置1100が通知するグラフG10の一例を示す図である。 高位合成装置1100の動作を示す流れ図である。 面積・実行時間予測部1123における面積・実行時間の予測の動作の一例を示す流れ図である。
符号の説明
1 プログラム変換装置
10 入力プログラム受付部
11 変換方針受付部
12 入力プログラム変換部
13 目的プログラム出力部
14 プログラム変換指標通知部
100 高位合成装置
110 ビヘイビア記述受付部
111 ハードウェア割付情報受付部
112 変換部
113 RTL記述出力部
114 通知部
120 RTL記述生成部
121 変換指標生成部
130 DFG変換部
131 ハードウェア割付部
132 RTL記述変換部
1000 プログラム変換装置
1010 入力プログラム受付部
1011 変換方針受付部
1012 入力プログラム変換部
1013 目的プログラム出力部
1014 プログラム変換指標通知部
1015 プログラム変換結果記憶部
1016 入力プログラム変換予測部
1020 目的プログラム生成部
1021 変換指標生成部
1100 高位合成装置
1110 ビヘイビア記述受付部
1111 受付部
1112 生成部
1113 RTL記述出力部
1114 グラフ通知部
1115 変換結果記憶部
1116 変換予測部
1120 DFG変換部
1121 テンプレートマッチング部
1122 ハードウェア割付部
1123 面積・実行時間予測部
1130 テンプレート受付部
1131 テンプレート割付パターン受付部
1141 RTL記述変換部
1142 変換指標生成部

Claims (20)

  1. プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置であって、
    一連の動作内容が記述された動作記述プログラムを、前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する変換手段と、
    前記回路記述プログラムを出力するプログラム出力手段と、
    前記回路記述プログラムが示す設計内容を、1以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する生成手段と、
    生成された前記指標を出力する指標出力手段と
    を備えることを特徴とするプログラム変換装置。
  2. 前記プログラム変換装置は、さらに、
    前記変換手段によるプログラム変換に先立って、前記動作内容を実現する回路に対して使用者が所望する諸元を示す方針を受け付ける方針受付手段を備え、
    前記変換手段は、前記方針に基づいて、前記動作記述プログラムを前記回路記述プログラムへと変換する
    ことを特徴とする請求項1に記載のプログラム変換装置。
  3. 前記生成手段は、受け付けられた前記方針が示す諸元を含む指標を生成する
    ことを特徴とする請求項2に記載のプログラム変換装置。
  4. 前記所望する諸元は、使用者が指定するハードウェアの割り付けであり、
    前記方針受付手段は、前記方針として、使用者により指定されたハードウェアの回路図と、処理動作を示す動作情報とからなるテンプレートを受け取り、
    前記変換手段は、動作記述プログラムに対して、受け付けられたテンプレートに含まれる動作情報と同一の処理動作を行う箇所には、前記動作情報に対応する回路図にて示されるハードウェアを割り付ける設計内容を含む前記回路記述プログラムを生成する
    ことを特徴とする請求項2に記載のプログラム変換装置。
  5. 前記方針受付手段は、さらに、
    前記テンプレートに含まれる前記回路図の割付箇所を指定する割付パターンを受け付け、
    前記変換手段は、動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う1以上の箇所において、前記割付パターンが示す割付箇所のみに、前記動作情報に対応する回路図にて示されるハードウェアを割り付け、指定されていない箇所に対しては前記前記動作情報に対応する回路図にて示されるハードウェアの割付を除外する設計内容を含む前記回路記述プログラムを生成する
    ことを特徴とする請求項4に記載のプログラム変換装置。
  6. 前記生成手段は、前記変換手段の動作に先立って、前記設計内容を予測し、予測した設計内容を実現する回路の諸元を示す指標を予測し、
    前記指標出力手段は、前記変換手段の動作に先立って、予測された前記指標を出力する
    ことを特徴とする請求項1に記載のプログラム変換装置。
  7. 前記生成手段は、
    予測に用いる予測情報を予め記憶しており、
    前記予測情報と、予測した設計内容とを用いて、前記指標を予測する
    ことを特徴とする請求項6に記載のプログラム変換装置。
  8. 前記予測情報は、過去に生成した回路記述プログラムである生成済プログラムと、前記生成済プログラムが示す設計内容を実現する回路の諸元を示す生成済指標とからなり、
    前記生成手段は、前記動作記述プログラムと前記生成済プログラムとから処理動作が同一の箇所を検索し、同一箇所に対して、前記生成済指標に基づく生成済部分指標を割り当て、同一でない箇所に対して、予測した予測部分指標を割り当てることにより、前記指標を予測する
    ことを特徴とする請求項7に記載のプログラム変換装置。
  9. 前記プログラム変換装置は、さらに、
    使用者により指定されたハードウェアの回路図と、処理動作を示す動作情報とからなるテンプレートを受け取るテンプレート受付手段を備え、
    前記生成手段は、前記動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う箇所には、前記動作情報に対応する回路図にて示されるハードウェアを割り付けることにより、前記設計内容を予測する
    ことを特徴とする請求項8に記載のプログラム変換装置。
  10. 前記テンプレート受付手段は、さらに、
    前記テンプレートに含まれる前記回路図の割付箇所を指定する割付パターンを受け付け、
    前記生成手段は、前記動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う1以上の箇所において、前記割付パターンが示す割付箇所のみに、前記動作情報に対応する回路図にて示されるハードウェアを割り付け、指定されていない箇所に対しては前記前記動作情報に対応する回路図にて示されるハードウェアの割付を除外することにより、前記設計内容を予測する
    ことを特徴とする請求項9に記載のプログラム変換装置。
  11. 回路の諸元とは、当該回路の面積値であり、
    前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の面積値であり、
    前記生成手段は、
    前記回路を実現する際に割り付けられる1以上のハードウェアのうち異なるハードウェアそれぞれの面積値を取得し、取得した1以上の面積値の総和を算出し、算出した総和を前記指標とする
    ことを特徴とする請求項1に記載のプログラム変換装置。
  12. 回路の諸元とは、当該回路の実行時間であり、
    前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の実行時間であり、
    前記生成手段は、
    前記設計内容に基づいて、割り付けられる1以上のハードウェアそれぞれが属する実行サイクルを決定し、決定結果に基づいて、実行サイクルの数と、1の実行サイクルあたりの単位時間とを取得し、取得した前記実行サイクル数と前記単位時間とを用いて前記回路の実行時間を算出し、算出した実行時間を前記指標とする
    ことを特徴とする請求項1に記載のプログラム変換装置。
  13. 回路の諸元とは、当該回路の消費電力であり、
    前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の消費電力であり、
    前記生成手段は、
    前記設計内容が示す各ハードウェア間の接続形態に基づいて前記回路の消費電力を算出し、算出した消費電力を前記指標とする
    ことを特徴とする請求項1に記載のプログラム変換装置。
  14. 回路の諸元とは、前記回路記述プログラムのコードサイズであり、
    前記生成手段は、
    前記回路記述プログラムのコードサイズを算出し、算出したコードサイズを前記指標とする
    ことを特徴とする請求項1に記載のプログラム変換装置。
  15. 回路の諸元とは、当該回路の面積値と実行時間との相関関係を示す相関関係情報であり、
    前記指標は、前記回路記述プログラムが示す設計内容を実現する回路における相関関係情報であり、
    前記生成手段は、
    前記設計内容を実現する回路に対する面積値及び実行時間を算出し、算出した面積値及び実行時間に基づいて相関関係情報を取得し、取得した相関関係情報を前記指標とする
    ことを特徴とする請求項1に記載のプログラム変換装置。
  16. 回路の諸元とは、回路図であり、
    前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の回路図であり、
    前記生成手段は、
    前記設計内容が示す各ハードウェア間の接続形態に基づいて、前記回路図を生成し、生成した前記回路図を前記指標とする
    ことを特徴とする請求項1に記載のプログラム変換装置。
  17. 回路の諸元とは、当該回路の面積値、実行時間、面積値と実行時間との相関関係を示す相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも2以上を含み、
    前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の面積値、実行時間、相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも2以上からなる組合指標であり、
    前記生成手段は、前記組合指標を生成し、
    前記指標出力手段は、生成された前記組合指標を出力する
    ことを特徴とする請求項1に記載のプログラム変換装置。
  18. プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置で用いられるプログラム変換方法であって、
    一連の動作内容が記述された動作記述プログラムを、前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する変換ステップと、
    前記回路記述プログラムを出力するプログラム出力ステップと、
    前記回路記述プログラムが示す設計内容を、1以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する生成ステップと、
    生成された前記指標を出力する指標出力ステップと
    を含むことを特徴とするプログラム変換方法。
  19. プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置で用いられるコンピュータプログラムであって、
    一連の動作内容が記述された動作記述プログラムを、前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する変換ステップと、
    前記回路記述プログラムを出力するプログラム出力ステップと、
    前記回路記述プログラムが示す設計内容を、1以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する生成ステップと、
    生成された前記指標を出力する指標出力ステップと
    を含むことを特徴とするコンピュータプログラム。
  20. 前記コンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記録されていることを特徴とする請求項19に記載のコンピュータプログラム。
JP2006304196A 2006-11-09 2006-11-09 プログラム変換装置 Pending JP2008123103A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006304196A JP2008123103A (ja) 2006-11-09 2006-11-09 プログラム変換装置
US11/889,571 US20080115101A1 (en) 2006-11-09 2007-08-14 Program conversion apparatus
CNA2007101663914A CN101178749A (zh) 2006-11-09 2007-11-07 程序转换装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006304196A JP2008123103A (ja) 2006-11-09 2006-11-09 プログラム変換装置

Publications (1)

Publication Number Publication Date
JP2008123103A true JP2008123103A (ja) 2008-05-29

Family

ID=39370659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006304196A Pending JP2008123103A (ja) 2006-11-09 2006-11-09 プログラム変換装置

Country Status (3)

Country Link
US (1) US20080115101A1 (ja)
JP (1) JP2008123103A (ja)
CN (1) CN101178749A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013200851A (ja) * 2012-03-26 2013-10-03 Fujitsu Ltd 設計支援プログラム、設計支援方法、および設計支援装置
JP2015125579A (ja) * 2013-12-26 2015-07-06 株式会社日立情報通信エンジニアリング 論理回路設計方法及び方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102072143B (zh) * 2010-12-02 2012-07-25 中国人民解放军空军工程大学 一种耦合计算恒压柱塞泵压力、流量和温度的方法
CN103455362A (zh) * 2013-09-27 2013-12-18 西安电子科技大学 一种硬件语言自动转换系统
US20180329372A1 (en) * 2017-05-10 2018-11-15 Honeywell International Inc. Apparatus and method for predictive time-based control of batch or sequential operations
WO2019136758A1 (zh) * 2018-01-15 2019-07-18 深圳鲲云信息科技有限公司 人工智能处理装置硬件优化方法、系统、存储介质、终端
CN110750265B (zh) * 2019-09-06 2021-06-11 华中科技大学 一种面向图计算的高层次综合方法及系统
US20220261523A1 (en) * 2021-02-17 2022-08-18 Xilinx, Inc. Behavioral-level timing and area optimiation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000315222A (ja) * 1999-04-30 2000-11-14 Matsushita Electric Ind Co Ltd 集積回路装置の設計用データベース及び集積回路装置の設計方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013200851A (ja) * 2012-03-26 2013-10-03 Fujitsu Ltd 設計支援プログラム、設計支援方法、および設計支援装置
US8677296B2 (en) 2012-03-26 2014-03-18 Fujitsu Limited Circuit design support computer product, method, and apparatus
JP2015125579A (ja) * 2013-12-26 2015-07-06 株式会社日立情報通信エンジニアリング 論理回路設計方法及び方法

Also Published As

Publication number Publication date
CN101178749A (zh) 2008-05-14
US20080115101A1 (en) 2008-05-15

Similar Documents

Publication Publication Date Title
JP2008123103A (ja) プログラム変換装置
US9189216B2 (en) Power consumption design-optimization of a communication device software program
JP2010113482A (ja) 資源割付方法、プログラム、及び資源割付装置
JP5681281B2 (ja) アルゴリズムおよび仕様に基づく自動最適集積回路ジェネレータ
JP2011138219A (ja) 並列プログラム解析結果表示装置および並列プログラム解析結果表示方法
US8839163B2 (en) Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus
Sohrabizadeh et al. Enabling automated FPGA accelerator optimization using graph neural networks
JP4293562B2 (ja) ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体
JP5682080B2 (ja) カスタム集積回路のためのアーキテクチャによりガイドされる最適システム精度定義アルゴリズム
US11579680B2 (en) Methods and devices for power management based on synthetic machine learning benchmarks
JPWO2011096016A1 (ja) コンパイラ装置
JP4870956B2 (ja) 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部
JP6173644B1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP6763411B2 (ja) 設計支援装置、設計支援方法、および設計支援プログラム
JP2008250838A (ja) ソフトウェア生成装置、方法、およびプログラム
JP4898365B2 (ja) 組み込み用プログラム開発装置、及びプログラム自動生成方法
JP6752393B1 (ja) 設計支援システムおよび設計支援プログラム
EP1989618B1 (en) Software pipelining
JP6137962B2 (ja) 情報処理装置、情報処理方法及びプログラム
Thepayasuwan et al. Layout conscious approach and bus architecture synthesis for hardware/software codesign of systems on chip optimized for speed
EP3929747A1 (en) Methods, apparatus, and systems to dynamically schedule workloads among compute resources based on temperature
Mahfoudhi et al. From UML/MARTE to RTDT: A model driven based method for scheduling analysis and HW/SW partitioning
JP5245727B2 (ja) 設計支援プログラム、設計支援装置、および設計支援方法
JP5046109B2 (ja) ソースコード検証管理装置、方法、及びプログラム
JP2016212674A (ja) ソフトウエアハードウエア割り当て装置、ソフトウエアハードウエア割り当て方法、および、ソフトウエアハードウエア割り当てプログラム