(57)【要約】【課題】あるプログラムを、設計者が所望する諸元を有する回路を示すプログラムへと変換することのできるプログラム変換装置を提供する。【解決手段】プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置は、一連の動作内容が記述された動作記述プログラムを前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換し、前記回路記述プログラムを出力し、前記回路記述プログラムが示す設計内容を１以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成し、生成した前記指標を出力する。【選択図】図１
2008123103.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置であって、
一連の動作内容が記述された動作記述プログラムを、前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する変換手段と、
前記回路記述プログラムを出力するプログラム出力手段と、
前記回路記述プログラムが示す設計内容を、１以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する生成手段と、
生成された前記指標を出力する指標出力手段と
を備えることを特徴とするプログラム変換装置。
【請求項２】
前記プログラム変換装置は、さらに、
前記変換手段によるプログラム変換に先立って、前記動作内容を実現する回路に対して使用者が所望する諸元を示す方針を受け付ける方針受付手段を備え、
前記変換手段は、前記方針に基づいて、前記動作記述プログラムを前記回路記述プログラムへと変換する
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項３】
前記生成手段は、受け付けられた前記方針が示す諸元を含む指標を生成する
ことを特徴とする請求項２に記載のプログラム変換装置。
【請求項４】
前記所望する諸元は、使用者が指定するハードウェアの割り付けであり、
前記方針受付手段は、前記方針として、使用者により指定されたハードウェアの回路図と、処理動作を示す動作情報とからなるテンプレートを受け取り、
前記変換手段は、動作記述プログラムに対して、受け付けられたテンプレートに含まれる動作情報と同一の処理動作を行う箇所には、前記動作情報に対応する回路図にて示されるハードウェアを割り付ける設計内容を含む前記回路記述プログラムを生成する
ことを特徴とする請求項２に記載のプログラム変換装置。
【請求項５】
前記方針受付手段は、さらに、
前記テンプレートに含まれる前記回路図の割付箇所を指定する割付パターンを受け付け、
前記変換手段は、動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う１以上の箇所において、前記割付パターンが示す割付箇所のみに、前記動作情報に対応する回路図にて示されるハードウェアを割り付け、指定されていない箇所に対しては前記前記動作情報に対応する回路図にて示されるハードウェアの割付を除外する設計内容を含む前記回路記述プログラムを生成する
ことを特徴とする請求項４に記載のプログラム変換装置。
【請求項６】
前記生成手段は、前記変換手段の動作に先立って、前記設計内容を予測し、予測した設計内容を実現する回路の諸元を示す指標を予測し、
前記指標出力手段は、前記変換手段の動作に先立って、予測された前記指標を出力する
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項７】
前記生成手段は、
予測に用いる予測情報を予め記憶しており、
前記予測情報と、予測した設計内容とを用いて、前記指標を予測する
ことを特徴とする請求項６に記載のプログラム変換装置。
【請求項８】
前記予測情報は、過去に生成した回路記述プログラムである生成済プログラムと、前記生成済プログラムが示す設計内容を実現する回路の諸元を示す生成済指標とからなり、
前記生成手段は、前記動作記述プログラムと前記生成済プログラムとから処理動作が同一の箇所を検索し、同一箇所に対して、前記生成済指標に基づく生成済部分指標を割り当て、同一でない箇所に対して、予測した予測部分指標を割り当てることにより、前記指標を予測する
ことを特徴とする請求項７に記載のプログラム変換装置。
【請求項９】
前記プログラム変換装置は、さらに、
使用者により指定されたハードウェアの回路図と、処理動作を示す動作情報とからなるテンプレートを受け取るテンプレート受付手段を備え、
前記生成手段は、前記動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う箇所には、前記動作情報に対応する回路図にて示されるハードウェアを割り付けることにより、前記設計内容を予測する
ことを特徴とする請求項８に記載のプログラム変換装置。
【請求項１０】
前記テンプレート受付手段は、さらに、
前記テンプレートに含まれる前記回路図の割付箇所を指定する割付パターンを受け付け、
前記生成手段は、前記動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う１以上の箇所において、前記割付パターンが示す割付箇所のみに、前記動作情報に対応する回路図にて示されるハードウェアを割り付け、指定されていない箇所に対しては前記前記動作情報に対応する回路図にて示されるハードウェアの割付を除外することにより、前記設計内容を予測する
ことを特徴とする請求項９に記載のプログラム変換装置。
【請求項１１】
回路の諸元とは、当該回路の面積値であり、
前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の面積値であり、
前記生成手段は、
前記回路を実現する際に割り付けられる１以上のハードウェアのうち異なるハードウェアそれぞれの面積値を取得し、取得した１以上の面積値の総和を算出し、算出した総和を前記指標とする
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項１２】
回路の諸元とは、当該回路の実行時間であり、
前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の実行時間であり、
前記生成手段は、
前記設計内容に基づいて、割り付けられる１以上のハードウェアそれぞれが属する実行サイクルを決定し、決定結果に基づいて、実行サイクルの数と、１の実行サイクルあたりの単位時間とを取得し、取得した前記実行サイクル数と前記単位時間とを用いて前記回路の実行時間を算出し、算出した実行時間を前記指標とする
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項１３】
回路の諸元とは、当該回路の消費電力であり、
前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の消費電力であり、
前記生成手段は、
前記設計内容が示す各ハードウェア間の接続形態に基づいて前記回路の消費電力を算出し、算出した消費電力を前記指標とする
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項１４】
回路の諸元とは、前記回路記述プログラムのコードサイズであり、
前記生成手段は、
前記回路記述プログラムのコードサイズを算出し、算出したコードサイズを前記指標とする
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項１５】
回路の諸元とは、当該回路の面積値と実行時間との相関関係を示す相関関係情報であり、
前記指標は、前記回路記述プログラムが示す設計内容を実現する回路における相関関係情報であり、
前記生成手段は、
前記設計内容を実現する回路に対する面積値及び実行時間を算出し、算出した面積値及び実行時間に基づいて相関関係情報を取得し、取得した相関関係情報を前記指標とする
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項１６】
回路の諸元とは、回路図であり、
前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の回路図であり、
前記生成手段は、
前記設計内容が示す各ハードウェア間の接続形態に基づいて、前記回路図を生成し、生成した前記回路図を前記指標とする
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項１７】
回路の諸元とは、当該回路の面積値、実行時間、面積値と実行時間との相関関係を示す相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも２以上を含み、
前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の面積値、実行時間、相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも２以上からなる組合指標であり、
前記生成手段は、前記組合指標を生成し、
前記指標出力手段は、生成された前記組合指標を出力する
ことを特徴とする請求項１に記載のプログラム変換装置。
【請求項１８】
プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置で用いられるプログラム変換方法であって、
一連の動作内容が記述された動作記述プログラムを、前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する変換ステップと、
前記回路記述プログラムを出力するプログラム出力ステップと、
前記回路記述プログラムが示す設計内容を、１以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する生成ステップと、
生成された前記指標を出力する指標出力ステップと
を含むことを特徴とするプログラム変換方法。
【請求項１９】
プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置で用いられるコンピュータプログラムであって、
一連の動作内容が記述された動作記述プログラムを、前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する変換ステップと、
前記回路記述プログラムを出力するプログラム出力ステップと、
前記回路記述プログラムが示す設計内容を、１以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する生成ステップと、
生成された前記指標を出力する指標出力ステップと
を含むことを特徴とするコンピュータプログラム。
【請求項２０】
前記コンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記録されていることを特徴とする請求項１９に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、あるプログラムを別のプログラムへと変換する技術、特に、回路設計において、設計対象の回路の動作内容が記述されたプログラムを、前記動作内容を実現し、使用者が所望する諸元を有する回路を示すプログラムへと変換する技術に関する。
【背景技術】
【０００２】
近年のソフトウェア開発においては、あるプログラムを別のプログラムへ変換するプログラム変換装置がある。プログラム変換装置は、例えば、高級言語で記述されたプログラムをマシン固有の言語に変換するコンパイラ装置である。プログラム変換装置に関する文献としては特許文献１がある。
【０００３】
また、大規模化しつつあるシステムＬＳＩ設計において、従来はＶＨＤＬやＶｅｒｉｌｏｇ−ＨＤＬといったハードウェア記述言語をＬＳＩ設計者が記述することでシステムＬＳＩを設計している。しかし近年において、より抽象度の高い高級言語を用いてハードウェアの処理内容を設計し、それをハードウェア記述言語に自動的に変換することでシステムＬＳＩを設計するという高位合成という技術がある。この技術では、抽象度の高い高級言語をハードウェア記述言語へ変換する高位合成装置が用いられる。
【０００４】
高位合成装置について詳細に説明する。高位合成装置は、Ｃ言語などの高級言語で記述されたビヘイビア記述を入力とし、入力されたビヘイビア記述の処理内容を実行するハードウェアのＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）記述を出力する。ＲＴＬ記述とは、例えば、電気回路といったハードウェアの構成情報をテキスト形式で表現したものである。よって、高位合成装置はビヘイビア記述をハードウェアのＲＴＬ記述に変換するプログラム変換装置であると言える。高位合成装置に関する文献としては特許文献２がある。
【０００５】
以降、変換前のプログラムを入力プログラム、変換後のプログラムを目的プログラムという。
【特許文献１】特開２００５−１７４０４５号公報
【特許文献２】特開２００６−１２７３４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献２では、回路にループが生成されることを回避する技術が開示されている。
【０００７】
従来の高位合成装置を用いて入力プログラムを目的プログラムへと変換する場合、高位合成装置の使用者（回路の設計者）毎に、目的プログラムが示す回路に対して各人が所望する諸元は異なる。所望する回路の諸元とは、例えば、生成されるハードウェアの面積が最小であるということや、ハードウェアの実行時間が最小であるということである。
【０００８】
特許文献２に記載の技術では、諸元がループを回避する構成であるハードウェア（回路）を得ることはできる。しかしながら、設計者が設計対象の回路に対して他の諸元を有することを所望する場合には、特許文献２に記載の技術では、設計者が所望する諸元を有するハードウェア（回路）は得られるとは限らない。
【０００９】
そこで、本発明は、あるプログラムを、設計者が所望する諸元を有する回路を示すプログラムへと変換することのできるプログラム変換装置、プログラム変換方法、コンピュータプログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明は、プログラムを記述内容に基づいて別のプログラムへと変換するプログラム変換装置であって、一連の動作内容が記述された動作記述プログラムを、前記動作内容を実現する回路の設計内容が記述された回路記述プログラムへ変換する変換手段と、前記回路記述プログラムを出力するプログラム出力手段と、前記回路記述プログラムが示す設計内容を、１以上のハードウェアを用いて実現する場合に得られる回路の諸元を示す指標を生成する生成手段と、生成された前記指標を出力する指標出力手段とを備えることを特徴とする。
【発明の効果】
【００１１】
上記に示す構成によると、プログラム変換装置は、回路記述プログラムが示す設計内容を実現する回路の指標を出力しているので、使用者は出力された指標を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断し、満たしていないと判断する場合には、より良いプログラム変換方針を容易に考案することができる。使用者は、動作記述プログラムを入力する、及び出力された指標を用いてプログラム変換方針を容易に考案するという動作を繰り返すことにより、自身が所望する諸元を有する回路を示す設計内容が記述された回路記述プログラムを取得することができる。
【００１２】
ここで、前記プログラム変換装置は、さらに、前記変換手段によるプログラム変換に先立って、前記動作内容を実現する回路に対して使用者が所望する諸元を示す方針を受け付ける方針受付手段を備え、前記変換手段は、前記方針に基づいて、前記動作記述プログラムを前記回路記述プログラムへと変換するとしてもよい。
【００１３】
この構成によると、プログラム変換装置は、使用者から受け付けた方針に基づいて動作記述プログラムから回路記述プログラムへと変換するので、使用者は自身が所望する諸元を有する回路を示す設計内容が記述された回路記述プログラムを取得することができる。
【００１４】
ここで、前記生成手段は、受け付けられた前記方針が示す諸元を含む指標を生成するとしてもよい。
【００１５】
この構成によると、プログラム変換装置は、方針が示す諸元と同一の諸元を示す指標を生成するので、使用者は出力された指標を参照することにより、回路記述プログラムが示す設計内容を実現する回路が、所望する諸元を有するか否かの判断を容易に行うことができる。
【００１６】
ここで、前記所望する諸元は、使用者が指定するハードウェアの割り付けであり、前記方針受付手段は、前記方針として、使用者により指定されたハードウェアの回路図と、処理動作を示す動作情報とからなるテンプレートを受け取り、前記変換手段は、動作記述プログラムに対して、受け付けられたテンプレートに含まれる動作情報と同一の処理動作を行う箇所には、前記動作情報に対応する回路図にて示されるハードウェアを割り付ける設計内容を含む前記回路記述プログラムを生成するとしてもよい。
【００１７】
この構成によると、プログラム変換装置は、使用者より受け付けたテンプレートを用いて回路記述プログラムを生成する。これにより、使用者は、テンプレートをプログラム変換装置に入力することにより、回路記述プログラムが示す設計内容を実現する回路に所望するハードウェアが割り付けられるので、使用者は自身が指定したハードウェアが割り付けられた回路を示す設計内容が記述された回路記述プログラムを取得することができる。
【００１８】
ここで、前記方針受付手段は、さらに、前記テンプレートに含まれる前記回路図の割付箇所を指定する割付パターンを受け付け、前記変換手段は、動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う１以上の箇所において、前記割付パターンが示す割付箇所のみに、前記動作情報に対応する回路図にて示されるハードウェアを割り付け、指定されていない箇所に対しては前記前記動作情報に対応する回路図にて示されるハードウェアの割付を除外する設計内容を含む前記回路記述プログラムを生成するとしてもよい。
【００１９】
この構成によると、プログラム変換装置は、割付パターンにより使用者から指定されたハードウェアを割り付ける箇所と割り付けない箇所とを区別することができる。
【００２０】
ここで、前記生成手段は、前記変換手段の動作に先立って、前記設計内容を予測し、予測した設計内容を実現する回路の諸元を示す指標を予測し、前記指標出力手段は、前記変換手段の動作に先立って、予測された前記指標を出力するとしてもよい。
【００２１】
この構成によると、プログラム変換装置は、動作記述プログラムを回路記述プログラムに変換する前に、指標を予測し、予測した指標を出力することができる。これにより、使用者は、回路記述プログラムが出力される前に、予測された指標を知ることができるので、予測結果を用いて、これから出力される回路記述プログラムが示す設計内容を実現する回路が、自身が所望する諸元を有しているか否かを事前に予測することができる。
【００２２】
ここで、前記生成手段は、予測に用いる予測情報を予め記憶しており、前記予測情報と、予測した設計内容とを用いて、前記指標を予測するとしてもよい。
【００２３】
この構成によると、プログラム変換装置は、予め記憶している予測情報を用いて、指標を予測することができる。
【００２４】
ここで、前記予測情報は、過去に生成した回路記述プログラムである生成済プログラムと、前記生成済プログラムが示す設計内容を実現する回路の諸元を示す生成済指標とからなり、前記生成手段は、前記動作記述プログラムと前記生成済プログラムとから処理動作が同一の箇所を検索し、同一箇所に対して、前記生成済指標に基づく生成済部分指標を割り当て、同一でない箇所に対して、予測した予測部分指標を割り当てることにより、前記指標を予測するとしてもよい。
【００２５】
この構成によると、プログラム変換装置は、生成済プログラムと生成済指標とを用いて、指標を予測することができる。
【００２６】
ここで、前記プログラム変換装置は、さらに、使用者により指定されたハードウェアの回路図と、処理動作を示す動作情報とからなるテンプレートを受け取るテンプレート受付手段を備え、前記生成手段は、前記動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う箇所には、前記動作情報に対応する回路図にて示されるハードウェアを割り付けることにより、前記設計内容を予測するとしてもよい。
【００２７】
この構成によると、プログラム変換装置は、使用者より受け付けたテンプレートを用いて回路記述プログラムを生成する。これにより、使用者は、テンプレートをプログラム変換装置に入力することにより、回路記述プログラムが示す設計内容を実現する回路に所望するハードウェアが割り付けられるので、使用者は自身が指定したハードウェアが割り付けられた回路を示す設計内容が記述された回路記述プログラムを取得することができる。
【００２８】
ここで、前記テンプレート受付手段は、さらに、前記テンプレートに含まれる前記回路図の割付箇所を指定する割付パターンを受け付け、前記生成手段は、前記動作記述プログラムに対して、受け付けられた前記テンプレートに含まれる動作情報と同一の処理動作を行う１以上の箇所において、前記割付パターンが示す割付箇所のみに、前記動作情報に対応する回路図にて示されるハードウェアを割り付け、指定されていない箇所に対しては前記前記動作情報に対応する回路図にて示されるハードウェアの割付を除外することにより、前記設計内容を予測するとしてもよい。
【００２９】
この構成によると、プログラム変換装置は、割付パターンにより使用者から指定されたハードウェアを割り付ける箇所と割り付けない箇所とを区別することができる。
【００３０】
ここで、回路の諸元とは、当該回路の面積値であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の面積値であり、前記生成手段は、前記回路を実現する際に割り付けられる１以上のハードウェアのうち異なるハードウェアそれぞれの面積値を取得し、取得した１以上の面積値の総和を算出し、算出した総和を前記指標とするとしてもよい。
【００３１】
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の面積値を指標として出力するので、使用者は、出力された指標（面積値）を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
【００３２】
ここで、回路の諸元とは、当該回路の実行時間であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の実行時間であり、前記生成手段は、前記設計内容に基づいて、割り付けられる１以上のハードウェアそれぞれが属する実行サイクルを決定し、決定結果に基づいて、実行サイクルの数と、１の実行サイクルあたりの単位時間とを取得し、取得した前記実行サイクル数と前記単位時間とを用いて前記回路の実行時間を算出し、算出した実行時間を前記指標とするとしてもよい。
【００３３】
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の実行時間を指標として出力するので、使用者は、出力された指標（実行時間）を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
【００３４】
ここで、回路の諸元とは、当該回路の消費電力であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の消費電力であり、前記生成手段は、前記設計内容が示す各ハードウェア間の接続形態に基づいて前記回路の消費電力を算出し、算出した消費電力を前記指標とするとしてもよい。
【００３５】
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の消費電力を指標として出力するので、使用者は、出力された指標（消費電力）を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
【００３６】
ここで、回路の諸元とは、前記回路記述プログラムのコードサイズであり、前記生成手段は、前記回路記述プログラムのコードサイズを算出し、算出したコードサイズを前記指標とするとしてもよい。
【００３７】
この構成によると、プログラム変換装置は、回路記述プログラムが示すコードのコードサイズを指標として出力するので、使用者は、出力された指標（コードサイズ）を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
【００３８】
ここで、回路の諸元とは、当該回路の面積値と実行時間との相関関係を示す相関関係情報であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路における相関関係情報であり、前記生成手段は、前記設計内容を実現する回路に対する面積値及び実行時間を算出し、算出した面積値及び実行時間に基づいて相関関係情報を取得し、取得した相関関係情報を前記指標とするとしてもよい。
【００３９】
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の面積値と実行時間との相関関係を指標として出力するので、使用者は、出力された指標（相関関係情報）を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
【００４０】
ここで、回路の諸元とは、回路図であり、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の回路図であり、前記生成手段は、前記設計内容が示す各ハードウェア間の接続形態に基づいて、前記回路図を生成し、生成した前記回路図を前記指標とするとしてもよい。
【００４１】
この構成によると、プログラム変換装置は、回路記述プログラムが示す回路の回路図を指標として出力するので、使用者は、出力された指標（回路図）を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
【００４２】
ここで、回路の諸元とは、当該回路の面積値、実行時間、面積値と実行時間との相関関係を示す相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも２以上を含み、前記指標は、前記回路記述プログラムが示す設計内容を実現する回路の面積値、実行時間、相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも２以上からなる組合指標であり、前記生成手段は、前記組合指標を生成し、前記指標出力手段は、生成された前記組合指標を出力するとしてもよい。
【００４３】
この構成によると、プログラム変換装置は、指標として、回路記述プログラムが示す回路の面積値、実行時間、面積値と実行時間との相関関係を示す相関関係情報、回路図、及び前記回路記述プログラムのコードサイズのうち少なくとも２以上からなる組合指標を出力するので、使用者は、出力された指標（組合指標）を参考にして、回路記述プログラムが示す設計内容を実現する回路が所望する諸元を満たしているか否かを判断することができる。
【発明を実施するための最良の形態】
【００４４】
１．第１の実施の形態
本発明に係る第１の実施の形態としてのプログラム変換装置１について説明する。
【００４５】
１．１  プログラム変換装置１の構成
プログラム変換装置１は、図１に示すように、入力プログラム受付部１０、変換方針受付部１１、入力プログラム変換部１２、目的プログラム出力部１３、及びプログラム変換指標通知部１４から構成されている。
【００４６】
プログラム変換装置１は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ＲＯＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサは、前記コンピュータプログラムに従って動作することにより、プログラム変換装置１は、その機能を達成する。
【００４７】
プログラム変換装置１は、高級言語にて記述されたプログラム（以下、入力プログラム）を、他のプログラム（以下、目的プログラム）へと変換する装置である。
【００４８】
プログラム変換装置１は、変換対象である入力プログラムと、その変換の方針を示す情報（以下、プログラム変換方針）とを受け付け、受け付けたプログラム変換方針に基づいて、入力プログラムを目的プログラムへと変換し、変換した目的プログラムと、目的プログラムに対するプログラム変換指標とを出力する。
【００４９】
ここで、プログラム変換方針は、例えば、変換された目的プログラムの実行時間を最小にしたい旨の情報、変換された目的プログラムのコードサイズを最小にしたい旨の情報、目的プログラムの実行時間をある値以下にしたい旨の情報、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積を最小にしたい旨の情報などである。
【００５０】
また、プログラム変換指標は、入力されたプログラム変換方針に対応する情報であり、例えば、変換された目的プログラムの実行時間、コードサイズ、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積などである。
【００５１】
（１）入力プログラム受付部１０
入力プログラム受付部１０は、入力プログラムＤ１を受け付け、受け付けた入力プログラムＤ１を入力プログラム変換部１２へ出力する。
【００５２】
（２）変換方針受付部１１
変換方針受付部１１は、プログラム変換方針Ｄ２を受け付け、受け付けたプログラム変換方針Ｄ２を入力プログラム変換部１２へ出力する。
【００５３】
（３）入力プログラム変換部１２
入力プログラム変換部１２は、図１に示すように、目的プログラム生成部２０と変換指標生成部２１とを有している。
【００５４】
（３−１）目的プログラム生成部２０
目的プログラム生成部２０は、入力プログラムＤ１を入力プログラム受付部１０から受け取り、プログラム変換方針Ｄ２を変換方針受付部１１から受け取る。
【００５５】
目的プログラム生成部２０は、プログラム変換方針Ｄ２に基づいて、入力プログラムＤ１を目的プログラムＤ３へと変換する。
【００５６】
例えば、プログラム変換装置１が高位合成装置である場合には、目的プログラム生成部２０は、入力プログラムＤ１をＲＴＬ記述のプログラムへと変換する。また、プログラム変換装置１がコンパイルを行う装置である場合には、目的プログラム生成部２０は、入力プログラムＤ１を装置固有の言語（例えば、アセンブラ言語）で記述されるプログラムへと変換する。
【００５７】
目的プログラム生成部２０は、生成した目的プログラムＤ３を目的プログラム出力部１３へ出力する。
【００５８】
（３−２）変換指標生成部２１
変換指標生成部２１は、目的プログラム生成部２０にて生成された目的プログラムの記述内容に基づいて、プログラム変換指標Ｄ４を生成する。
【００５９】
変換指標生成部２１は、生成したプログラム変換指標Ｄ４をプログラム変換指標通知部１４へ出力する。
【００６０】
（４）目的プログラム出力部１３
目的プログラム出力部１３は、目的プログラムＤ３を入力プログラム変換部１２の目的プログラム生成部２０から受け取ると、受け取った目的プログラムＤ３を、例えば、記憶装置（図示せず）へ出力する。
【００６１】
ここで、記憶装置は、プログラム変換装置１の内部にあってもよいし、外部にあってもよい。
【００６２】
（５）プログラム変換指標通知部１４
プログラム変換指標通知部１４は、プログラム変換指標Ｄ４を入力プログラム変換部１２の変換指標生成部２１から受け取ると、受け取ったプログラム変換指標Ｄ４を使用者へ通知する。
【００６３】
例えば、プログラム変換指標通知部１４は、プログラム変換装置１に接続された表示装置（図示せず）に、プログラム変換指標Ｄ４を出力する。
【００６４】
表示装置は、プログラム変換指標Ｄ４を表示する。これにより、プログラム変換指標通知部１４は、表示装置を介して、プログラム変換指標Ｄ４を使用者へ通知することができる。
１．２  プログラム変換装置１の具体例
ここでは、プログラム変換装置１の具体例として、高位合成装置１００の構成、及び動作について、以下に説明する。
【００６５】
（１）高位合成装置１００の構成
高位合成装置１００は、図２に示すように、ビヘイビア記述受付部１１０、ハードウェア割付情報受付部１１１、変換部１１２、ＲＴＬ記述出力部１１３、及び通知部１１４から構成されている。
【００６６】
高位合成装置１００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ＲＯＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサは、前記コンピュータプログラムに従って動作することにより、高位合成装置１００は、その機能を達成する。
【００６７】
高位合成装置１００は、入力プログラムとしてビヘイビア記述により作成されたプログラム（以下、ビヘイビア記述）Ｄ１１を受け付け、プログラム変換方針としてハードウェア割付情報Ｄ１２を受け付ける。ここで、ハードウェア割付情報Ｄ１２は、例えば、目的プログラムが示すハードウェアの面積を最小にしたい旨の情報、ハードウェアによる実行時間を最小にしたい旨の情報などである。
【００６８】
高位合成装置１００は、受け付けたハードウェア割付情報Ｄ１２に基づいて、ビヘイビア記述Ｄ１１を目的プログラムであるＲＴＬ記述によるプログラム（以下、ＲＴＬ記述）Ｄ１３へと変換し、変換したＲＴＬ記述Ｄ１３と、ＲＴＬ記述Ｄ１３に対するプログラム変換指標の１つである回路図を含む変換指標Ｄ１４とを出力する。
【００６９】
使用者は、変換指標を参照して、所望する諸元を有する回路を示すＲＴＬ記述Ｄ１３が作成されたか否かを判断することができる。
【００７０】
（１−１）ビヘイビア記述受付部１１０
ビヘイビア記述受付部１１０は、上述した入力プログラム受付部１０に相当する。
【００７１】
ビヘイビア記述受付部１１０は、ビヘイビア記述Ｄ１１を使用者から受け付け、受け付けたビヘイビア記述Ｄ１１を変換部１１２へ出力する。
【００７２】
ここで、ビヘイビア記述とは、Ｃ言語などの高級言語で記述されたプログラムである。
【００７３】
（１−２）ハードウェア割付情報受付部１１１
ハードウェア割付情報受付部１１１は、上述した変換方針受付部１１に相当する。
【００７４】
ハードウェア割付情報受付部１１１は、ハードウェア割付情報Ｄ１２を使用者から受け付け、受け付けたハードウェア割付情報Ｄ１２を変換部１１２へ出力する。
【００７５】
（１−３）変換部１１２
変換部１１２は、上述した入力プログラム変換部１２に相当する。
【００７６】
変換部１１２は、図２に示すように、ＲＴＬ記述生成部１２０と変換指標生成部１２１から構成されている。
【００７７】
（１−３−１）ＲＴＬ記述生成部１２０
ＲＴＬ記述生成部１２０は、上述した目的プログラム生成部２０に相当し、変換指標生成部１２１は、上述した変換指標生成部２１に相当する。
【００７８】
ＲＴＬ記述生成部１２０は、図２に示すように、ＤＦＧ変換部１３０、ハードウェア割付部１３１、及びＲＴＬ記述変換部１３２から構成されている。
【００７９】
（ＤＦＧ変換部１３０）
ＤＦＧ変換部１３０は、ビヘイビア記述Ｄ１１をビヘイビア記述受付部１１０から受け取る。
【００８０】
ＤＦＧ変換部１３０は、受け取ったビヘイビア記述Ｄ１１をデータフローグラフ(DFG)Ｄ２０に変換し、変換したデータフローグラフＤ２０をハードウェア割付部１３１へ出力する。
【００８１】
ここで、データフローグラフとは、演算をノードに見立てることで、ビヘイビア記述上の処理を有向グラフに置き換えたものであり、ビヘイビア記述Ｄ１１をデータフローグラフＤ２０へ変換した一例を図３に示す。データフローグラフＤ２０は、演算を示すノードとして、ノードＤ２１、Ｄ２２、Ｄ２３、Ｄ２４、及びＤ２５を有している。ノードＤ２１、Ｄ２２は乗算を示すノードであり、ノードＤ２３、Ｄ２４、及びＤ２５は加算を示すノードである。
【００８２】
なお、ビヘイビア記述からＤＦＧへの変換方法は公知であるため、ここでの説明は省略する。
【００８３】
（ハードウェア割付部１３１）
ハードウェア割付部１３１は、ハードウェア割付情報Ｄ１２をハードウェア割付情報受付部１１１から受け取り、データフローグラフＤ２０をＤＦＧ変換部１３０から受け取る。
【００８４】
ハードウェア割付部１３１は、受け取ったハードウェア割付情報Ｄ１２に基づいて、データフローグラフＤ２０を用いてハードウェアの割り付けを行う。
【００８５】
ここで、ハードウェア割り付けの一例を以下に説明する。
【００８６】
高位合成装置１００が生成する目的プログラムはＲＴＬ記述であり、これは回路図であるので単一または複数の演算器を接続したもので構成される。ビヘイビア記述Ｄ１１をＲＴＬ記述へ変換する際に、ビヘイビア記述を変換したデータフローグラフＤ２０の各演算ノードについてどのように演算器を割り付けるかを決定する処理がハードウェア割り付けである。
【００８７】
例えば、図３のデータフローグラフＤ２０では２つの乗算ノードＤ２１、Ｄ２２がと、３つの加算ノードＤ２３、Ｄ２４、Ｄ２５とがある。ハードウェア割付部１３１は、乗算ノードＤ２１、Ｄ２２に対して演算器割り付け際に、ハードウェア割付情報がハードウェアの実行時間が最小にしたい旨の情報である場合には、乗算器を２つ用意し、１の乗算器をノードＤ２１を実行するように、他の乗算器をノードＤ２２を実行するように割り付ける。これにより、２つの乗算を並列に実行可能になる。また、加算ノードＤ２３、Ｄ２４、Ｄ２５に対しても同様に、ハードウェア割付部１３１は、個々のノードにそれぞれ加算器を割り付ける。このような割り付けにより、ハードウェアの実行時間を最小にすることができる。なぜなら、通常、１サイクル内では、１つの演算器は、１回の実行のみが許可されている。つまり、上記の場合、割り付けた５つの演算器全てを１サイクル内で実行することができるからである。しかしながら、各演算ノードの異なる演算器を割り付けると、ハードウェアの面積は、当然大きくなる。
【００８８】
一方、ハードウェア割付情報がハードウェアの面積が最小にしたい旨の情報である場合には、上記の割り付けとは異なる割り付けになる。例えば、ハードウェア割付部１３１は、乗算ノードＤ２１、Ｄ２２に対して演算器割り付け際に、乗算ノードＤ２１、Ｄ２２の双方に同一の乗算器を割り付ける。この場合、２つの演算（乗算）を並列に実行できないが、乗算器は１つでよいので、上記に比べてハードウェアの面積は小さくなる。また、加算ノードＤ２３、Ｄ２４、Ｄ２５に対しても同様に、ハードウェア割付部１３１は、同一の加算器を割り付ける。
【００８９】
（ＲＴＬ記述変換部１３２）
ＲＴＬ記述変換部１３２は、ハードウェア割付部１３１による演算器の割り付けに基づいてＲＴＬ記述Ｄ１３を生成し、生成したＲＴＬ記述Ｄ１３をＲＴＬ記述出力部１１３へ出力する。
【００９０】
図４は、図３に示すビヘイビア記述に基づいたＲＴＬ記述Ｄ１３の一部を示す。図４に示すＲＴＬ記述Ｄ１３では、ｗｉｒｅ文にてデータの型を宣言し、その後、記述文Ｐ１０にて演算ｔｍｐ０に関する記述がなされる。また、以降においては、演算ｔｍｐ１及び演算Ｙに関する記述がなされる。なお、ＲＴＬ記述の詳細については既知であるため、ここでの説明は省略する。
【００９１】
（１−３−２）変換指標生成部１２１
変換指標生成部１２１は、ＲＴＬ記述変換部１３２にて生成されたＲＴＬ記述Ｄ１３によるハードウェア情報に基づいて、回路図を生成する。また、変換指標生成部１２１は、ハードウェア割付情報が示す情報に応じて、生成した回路図からハードウェアの面積、実行時間等の値（以下、算出値）を算出する。変換指標生成部１２１は、生成した変換指標（回路図及び算出値）Ｄ１４を通知部１１４へ出力する。
【００９２】
例えば、ハードウェア割付情報がハードウェアの面積を最小にしたい旨の情報を示す場合には、変換指標生成部１２１は、ＲＴＬ記述変換部１３２にて生成されたＲＴＬ記述Ｄ１３によるハードウェア情報に基づいて、異なる演算器それぞれに対する面積値を取得する。変換指標生成部１２１は、取得した各面積値の総和を算出する。算出した面積値の総和を算出値として、回路図ともに通知部１１４へ出力する。
【００９３】
このとき、高位合成装置１００は各演算器の面積値を予め記憶していてもよいし、使用者から各演算器の面積値を受け付けてもよい。または、高位合成装置１００は、外部装置から各演算器の面積値を取得してもよい。
【００９４】
また、ハードウェア割付情報が実行時間を最小にしたい旨の情報を示す場合には、変換指標生成部１２１は、ＲＴＬ記述変換部１３２にて生成されたＲＴＬ記述Ｄ１３によるハードウェア情報に基づいて、演算式「実行サイクル数  ×  １サイクル当たりの時間（単位：秒）」を用いて実行時間を算出する。変換指標生成部１２１は、算出した実行時間を算出値として、回路図ともに通知部１１４へ出力する。なお、上記演算のパラメータである「実行サイクル数」、及び「１サイクル当たりの時間」は、生成されたＤＦＧから取得することができる。
【００９５】
（１−４）ＲＴＬ記述出力部１１３
ＲＴＬ記述出力部１１３は、上述した目的プログラム出力部１３に相当する。
【００９６】
ＲＴＬ記述出力部１１３は、ＲＴＬ記述変換部１３２からＲＴＬ記述Ｄ１３を受け取ると、受け取ったＲＴＬ記述Ｄ１３を記憶装置（例えば、ハードディスクユニット）へ出力する。
【００９７】
なお、ＲＴＬ記述Ｄ１３の出力先は、ハードディスクユニットに限定されない。ＲＴＬ記述Ｄ１３の出力先は、ＲＴＬ記述Ｄ１３を格納する領域を有していればよい。
【００９８】
（１−５）通知部１１４
通知部１１４は、上述したプログラム変換指標通知部１４に相当する。
【００９９】
通知部１１４は、変換指標生成部１２１から回路図及び算出値を受け取ると、受け取った回路図及び算出値を変換指標Ｄ１４として使用者へ通知する。
【０１００】
例えば、通知部１１４は、高位合成装置１００に接続された表示装置（図示せず）に、変換指標Ｄ１４を出力する。表示装置は、変換指標Ｄ１４を表示する。これにより、通知部１１４は、表示装置を介して、変換指標Ｄ１４を使用者へ通知することができる。
【０１０１】
（２）高位合成装置１００の動作
ここでは、高位合成装置１００の動作について、図４にて示す流れ図を用いて説明する。
【０１０２】
ビヘイビア記述受付部１１０は、ビヘイビア記述Ｄ１１を使用者から受け付ける（ステップＳ５）。
【０１０３】
ハードウェア割付情報受付部１１１は、ハードウェア割付情報Ｄ１２を使用者から受け付ける（ステップＳ１０）。
【０１０４】
ＤＦＧ変換部１３０は、受け付けたビヘイビア記述Ｄ１１をデータフローグラフＤ２０に変換する（ステップＳ１５）。
【０１０５】
ハードウェア割付部１３１は、受け付けたハードウェア割付情報Ｄ１２に基づいて、データフローグラフＤ２０を用いてハードウェア（演算器）の割り付けを行う（ステップＳ２０）。
【０１０６】
ＲＴＬ記述変換部１３２は、ハードウェア割付部１３１による演算器の割り付けに基づいてＲＴＬ記述Ｄ１３を生成する（ステップＳ２５）。
【０１０７】
変換指標生成部１２１は、ＲＴＬ記述変換部１３２にて生成されたＲＴＬ記述Ｄ１３によるハードウェア情報に基づいて回路図の生成、及びハードウェア割付情報が示す情報を用いて、生成した回路図から算出値を算出を行うことにより、プログラム変換指標を生成する（ステップＳ３０）。
【０１０８】
ＲＴＬ記述出力部１１３は、生成されたＲＴＬ記述Ｄ１３を記憶装置へ出力する（ステップＳ３５）。
【０１０９】
通知部１１４は、生成された回路図及び算出された算出値を変換指標Ｄ１４として、表示装置へ出力することにより、使用者へ通知する（ステップＳ４０）。
【０１１０】
（３）プログラム変換指標の生成の一例
ここでは、図５にて示すステップＳ３０における算出値の生成動作の一例について、図６にて示す流れ図を用いて説明する。
【０１１１】
なお、算出値は、面積値とする。
【０１１２】
変換指標生成部１２１は、ＲＴＬ記述変換部１３２にて生成されたＲＴＬ記述Ｄ１３によるハードウェア情報に基づいて、回路図を生成する（ステップＳ５０）。
【０１１３】
変換指標生成部１２１は、ＲＴＬ記述変換部１３２にて生成されたＲＴＬ記述Ｄ１３によるハードウェア情報に基づいて、割り付けられた１以上の演算器それぞれの面積値を取得する（ステップＳ５５）。
【０１１４】
変換指標生成部１２１は、取得した１以上の面積値の総和を算出する（ステップＳ６０）。
【０１１５】
変換指標生成部１２１は、算出した面積値の総和を算出値として、回路図ともに通知部１１４へ出力する（ステップＳ６５）。
【０１１６】
なお、ステップＳ５５においては、変換指標生成部１２１は、各演算器の面積値を予め記憶された記憶部から取得してもよいし、使用者から各演算器の面積値を受け付けることにより取得してもよい。または、変換指標生成部１２１は、外部装置から各演算器の面積値を取得してもよい。
【０１１７】
（４）具体例のまとめ
上記にて示したように、高位合成装置は、入力プログラム（ビヘイビア記述のプログラム）とプログラム変換方針（ハードウェア割付情報）とを受け付け、目的プログラム（ＲＴＬ記述のプログラム）とプログラム変換指標（回路図及び算出値）とを出力する。
【０１１８】
高位合成装置によって出力されるＲＴＬ記述において、使用者が所望する諸元、例えば、面積が最小という諸元や、処理時間が最小という諸元によって演算器の最善の割り付け方が異なる。
【０１１９】
上記の具体例にて示すように、入力として、ハードウェア割付情報を受け付け、プログラム変換指標を出力することにより、装置の使用者はＤＦＧ上の各演算に割り付けるべき演算器を容易に指定、または、出力された回路図を参照することにより割り付けられた各演算器、及び個数や回路面積等を把握することができる。
【０１２０】
また、上記の高位合成装置はプログラム変換指標（回路図及び算出値）とを使用者に通知しているので、使用者は、高位合成装置１００から通知された回路図及び算出値を用いて、自身が所望する諸元を有する回路が得られているか否かを判断することができる。所望する諸元を有していないと判断する場合には、使用者は、ハードウェア割付情報を再度検討し、ビヘイビア記述と、再検討されたハードウェア割付情報とを高位合成装置１００へ入力する。上述の操作を繰り返すことにより、使用者は、自身が所望する諸元を有する回路を得ることができる。
【０１２１】
また、装置の使用者は、この回路図を見ることで、そのハードウェアのテストのしやすさを容易に判断することが可能となる。この回路図から装置の使用者はよりテストのしやすいハードウェアを考える。そして、考えた結果をプログラム変換方針（ここでは、ハードウェア割付情報）として高位合成装置に再入力する。高位合成装置１００は、再度高位合成を行うと、次に出力されたハードウェア情報（ＲＴＬ記述に基づく情報）は、前回に高位合成したものよりテストがしやすくなっているはずである。これを繰り返すことで、高位合成装置が生成するハードウェア情報はテストのしやすさが精錬される。そして、テストのしやすさが使用者の要求を満たすまで高位合成を繰り返せば、最終的に使用者の要求を満たすハードウェア情報が得られる。
【０１２２】
２．第２の実施の形態
本発明に係る第２の実施の形態としてのプログラム変換装置１０００について説明する。
【０１２３】
２．１  プログラム変換装置１０００の構成
プログラム変換装置１０００は、図７に示すように、入力プログラム受付部１０１０、変換方針受付部１０１１、入力プログラム変換部１０１２、目的プログラム出力部１０１３、プログラム変換指標通知部１０１４、プログラム変換結果記憶部１０１５、及び入力プログラム変換予測部１０１６から構成されている。
【０１２４】
プログラム変換装置１０００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ＲＯＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサは、前記コンピュータプログラムに従って動作することにより、プログラム変換装置１は、その機能を達成する。
【０１２５】
プログラム変換装置１０００は、第１の実施の形態のプログラム変換装置１と同様に、入力プログラムを目的プログラムへと変換する装置である。
【０１２６】
プログラム変換装置１０００は、変換対象である入力プログラムと、プログラム変換方針とを受け付け、受け付けたプログラム変換方針に基づいて、入力プログラムを目的プログラムへの変換結果を予測し、予測結果を使用者へ通知する。
【０１２７】
使用者は、通知された予測結果を参照し、入力したプログラム変換方針で問題なければ、入力プログラムの変換を指示する旨の情報（以下、変換指示）を入力する。使用者は、入力したプログラム変換方針を変更したい場合には、再度、プログラム変換方針を入力する。
【０１２８】
プログラム変換装置１０００は、予測結果を通知した後、変換指示を受け付けると、プログラム変換方針に基づいて、入力プログラムの変換を行い、変換した目的プログラムと、目的プログラムに対するプログラム変換指標とを出力する。
【０１２９】
プログラム変換装置１０００は、予測結果を通知した後、再度プログラム変換方針を受け付けると、再度受け付けたプログラム変換方針に基づいて、入力プログラムを目的プログラムへの変換結果を予測し、予測結果を使用者へ通知する。
【０１３０】
ここで、プログラム変換方針は、第１の実施の形態と同様に、例えば、変換された目的プログラムの実行時間を最小にしたい旨の情報、変換された目的プログラムのコードサイズを最小にしたい旨の情報、目的プログラムの実行時間をある値以下にしたい旨の情報、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積を最小にしたい旨の情報などである。
【０１３１】
また、プログラム変換指標は、第１の実施の形態と同様に、入力されたプログラム変換方針に対応する情報であり、例えば、変換された目的プログラムの実行時間、コードサイズ、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積などである。
【０１３２】
（１）入力プログラム受付部１０１０
入力プログラム受付部１０１０は、入力プログラムＤ１０１を受け付け、受け付けた入力プログラムＤ１０１を入力プログラム変換予測部１０１６へ出力する。
【０１３３】
（２）変換方針受付部１０１１
変換方針受付部１０１１は、プログラム変換方針Ｄ１０２を受け付け、受け付けたプログラム変換方針Ｄ１０２を入力プログラム変換予測部１０１６へ出力する。
【０１３４】
変換方針受付部１０１１は、使用者から変換指示を受け付けると、受け付けた変換指示を入力プログラム変換予測部１０１６へ出力する。
【０１３５】
（３）プログラム変換結果記憶部１０１５
プログラム変換結果記憶部１０１５は、過去に変換された１以上の目的プログラム及び目的プログラムのそれぞれに対応し、且つ変換の予測に利用する利用情報を記憶するための領域を有している。
【０１３６】
利用情報は、例えば、目的プログラムの実行時間、コードサイズ、目的プログラムがハードウェア技術情報であった場合には目的プログラムが示すハードウェアの面積などである。
【０１３７】
（４）入力プログラム変換予測部１０１６
入力プログラム変換予測部１０１６は、入力プログラムＤ１０１を入力プログラム受付部１０１０から受け取り、受け取った入力プログラムＤ１０１を一時的に格納する。
【０１３８】
入力プログラム変換予測部１０１６は、変換方針受付部１０１１から、変換指示又はプログラム変換方針Ｄ１０２を受け取る。
【０１３９】
入力プログラム変換予測部１０１６は、変換方針受付部１０１１から何れかの指示を受け取ったかを判断し、変換指示を受け取ったと判断する場合には、受け取った変換指示を入力プログラム変換部１０１２へ出力する。
【０１４０】
入力プログラム変換予測部１０１６は、受け取った指示がプログラム変換方針Ｄ１０２であると判断する場合には、受け取ったプログラム変換方針Ｄ１０２を一時的に記憶し、以下の動作を行う。
【０１４１】
入力プログラム変換予測部１０１６は、受け取ったプログラム変換方針Ｄ１０２に基づいて、プログラム変換結果記憶部１０１５に記憶している１以上の目的プログラムと、それらに対応する利用情報とを用いて、入力プログラムＤ１０１に対応する目的プログラムのプログラム変換指標を予測する。
【０１４２】
入力プログラム変換予測部１０１６は、予測結果を目的プログラム出力部１０１３へ出力する。
【０１４３】
ここで、予測結果は、受け取ったプログラム変換方針に対応する情報である。例えば、プログラム変換方針が目的プログラムの実行時間を最小にしたい旨の情報である場合には、予測結果は目的プログラムの実行時間である。また、プログラム変換方針が目的プログラムのコードサイズを最小にしたい旨の情報である場合には、予測結果は目的プログラムのコードサイズである。また、プログラム変換方針が目的プログラムが示すハードウェアの面積を最小にしたい旨の情報である場合には、予測結果は目的プログラムが示すハードウェアの面積である。
【０１４４】
（５）入力プログラム変換部１０１２
入力プログラム変換部１０１２は、図７に示すように、目的プログラム生成部１０２０と変換指標生成部１０２１とを有している。
【０１４５】
（５−１）目的プログラム生成部１０２０
目的プログラム生成部１０２０は、変換指示を入力プログラム変換予測部１０１６から受け取ると、入力プログラム変換予測部１０１６にて一時的に記憶されている入力プログラムＤ１０１を、予測結果に応じた目的プログラムＤ１０３へと変換する。
【０１４６】
目的プログラム生成部１０２０は、生成した目的プログラムＤ１０３を目的プログラム出力部１０１３へ出力する。
【０１４７】
（５−２）変換指標生成部１０２１
変換指標生成部１０２１は、目的プログラム生成部１０２０にて生成された目的プログラムＤ１０３、及び入力プログラム変換予測部１０１６による予測結果を用いて利用情報を取得する。変換指標生成部１０２１は、目的プログラムＤ１０３及び取得した利用情報をプログラム変換結果記憶部１０１５へ格納する。
【０１４８】
変換指標生成部１０２１は、目的プログラム生成部１０２０にて生成された目的プログラムＤ１０３の記述内容に基づいて、プログラム変換指標Ｄ１０４を生成し、生成したプログラム変換指標Ｄ１０４をプログラム変換指標通知部１０１４へ出力する。
【０１４９】
（６）目的プログラム出力部１０１３
目的プログラム出力部１０１３は、第１の実施の形態にて示す目的プログラム出力部１３と同様の動作を行うため、ここでの説明は省略する。
【０１５０】
（７）プログラム変換指標通知部１０１４
プログラム変換指標通知部１０１４は、入力プログラム変換予測部１０１６から予測結果を受け取ると、受け取った予測結果を使用者へ通知する。
【０１５１】
プログラム変換指標通知部１０１４は、入力プログラム変換部１０１２からプログラム変換指標Ｄ１０４を受け取ると、受け取ったプログラム変換指標Ｄ１０４を使用者へ通知する。
【０１５２】
例えば、プログラム変換指標通知部１０１４は、プログラム変換装置１０００に接続された表示装置（図示せず）に、プログラム変換指標Ｄ１０４を出力する。
【０１５３】
表示装置は、プログラム変換指標Ｄ１０４を表示する。これにより、プログラム変換指標通知部１０１４は、表示装置を介して、プログラム変換指標Ｄ４を使用者へ通知することができる。
２．２  プログラム変換装置１０００の具体例
ここでは、プログラム変換装置１０００の具体例として、高位合成装置１１００の構成、及び動作について、以下に説明する。
【０１５４】
（１）高位合成装置１１００の構成
高位合成装置１１００は、図８に示すように、ビヘイビア記述受付部１１１０、受付部１１１１、生成部１１１２、ＲＴＬ記述出力部１１１３、グラフ通知部１１１４、変換結果記憶部１１１５、及び変換予測部１１１６から構成されている。
【０１５５】
高位合成装置１１００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。前記ＲＯＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサは、前記コンピュータプログラムに従って動作することにより、高位合成装置１１００は、その機能を達成する。
【０１５６】
高位合成装置１１００は、入力プログラムとしてビヘイビア記述Ｄ１１１を受け付け、プログラム変換方針として変換方針Ｄ１１２を受け付ける。
【０１５７】
高位合成装置１１００は、受け付けた変換方針Ｄ１１２に基づいて、ビヘイビア記述Ｄ１１１を目的プログラムであるＲＴＬ記述Ｄ１１３へと変換し、変換したＲＴＬ記述Ｄ１１３と、ＲＴＬ記述Ｄ１１３に対するプログラム変換指標であるグラフＤ１１４とを出力する。ここで、グラフＤ１１４は、例えば、ハードウェアの実行時間と面積との関係を示すグラフである。
【０１５８】
使用者は、グラフＤ１１４を参照して、所望する諸元を有する回路を示すＲＴＬ記述Ｄ１１３が作成されたか否かを判断することができる。
【０１５９】
（１−１）ビヘイビア記述受付部１１１０
ビヘイビア記述受付部１１１０は、上述した入力プログラム受付部１０１０に相当する。
【０１６０】
ビヘイビア記述受付部１１１０は、ビヘイビア記述Ｄ１１１を使用者から受け付け、受け付けたビヘイビア記述Ｄ１１１を変換予測部１１１６へ出力する。
【０１６１】
（１−２）受付部１１１１
受付部１１１１は、上述した変換方針受付部１０１１に相当する。
【０１６２】
受付部１１１１は、変換方針Ｄ１１２及び変換指示を使用者から受け付ける。
【０１６３】
ここで、変換方針Ｄ１１２は、テンプレートＤ１２１とテンプレート割付パターンＤ１２２とからなる情報、又はテンプレートＤ１２１のみからなる情報である。
【０１６４】
テンプレートＤ１２１は、データフローグラフ（ＤＦＧ）及びそのＤＦＧにて示される回路図のＲＴＬ記述とからなる組であり、その一例を図９に示す。なお、図９では、便宜上、ＲＴＬ記述を回路図にて示している。図９に示すテンプレートＤ１２１に含まれるデータフローグラフＤ１３１は、演算「Y＝P×Q＋R」を示すグラフである。また回路図（ＲＴＬ記述）Ｄ１３２は、データフローグラフＤ１３１にて示される回路図であり、データフローグラフＤ１３１の各演算（乗算及び加算）は、積和演算器を使用することで計算することができる。
【０１６５】
テンプレート割付パターンＤ１２２は、例えば、入力プログラムにおいて、テンプレートＤ１２１を割り付ける箇所と割り付けない箇所を指定する情報である。
【０１６６】
受付部１１１１は、変換指示を受け付けると、受け付けた変換指示を変換予測部１１１６へ出力する。
【０１６７】
受付部１１１１は、図８に示すように、テンプレート受付部１１３０及びテンプレート割付パターン受付部１１３１を有している。
【０１６８】
テンプレート受付部１１３０は、使用者からテンプレートＤ１２１を受け付けると、受け付けたテンプレートＤ１２１を変換予測部１１１６へ出力する。
【０１６９】
テンプレート割付パターン受付部１１３１は、使用者からテンプレート割付パターンＤ１２２を受け付けると、受け付けたテンプレート割付パターンＤ１２２を変換予測部１１１６へ出力する。
【０１７０】
（１−３）変換結果記憶部１１１５
変換結果記憶部１１１５は、プログラム変換結果記憶部１０１５に相当する。
【０１７１】
変換結果記憶部１１１５は、ビヘイビア記述から変換されたＲＴＬ記述及びその利用情報を格納する領域を有している。
【０１７２】
なお、ここでは、利用情報は、ＲＴＬ記述にて示されるハードウェアの面積及び実行時間からなる情報である。
【０１７３】
（１−４）変換予測部１１１６
変換予測部１１１６は、入力プログラム変換予測部１０１６に相当する。
【０１７４】
変換予測部１１１６は、ビヘイビア記述Ｄ１１１をビヘイビア記述受付部１１１０から受け取り、受け取ったビヘイビア記述Ｄ１１１を一時的に格納する。
【０１７５】
変換予測部１１１６は、受付部１１１１から、変換指示又は変換方針Ｄ１１２を受け取る。
【０１７６】
変換予測部１１１６は、受付部１１１１から何れかの指示を受け取ったかを判断し、変換指示を受け取ったと判断する場合には、受け取った変換指示を生成部１１１２へ出力する。
【０１７７】
変換予測部１１１６は、受け取った指示が変換方針Ｄ１１２であると判断する場合には、受け取った変換方針Ｄ１１２を一時的に記憶する。
【０１７８】
変換予測部１１１６は、図８に示すように、ＤＦＧ変換部１１２０、テンプレートマッチング部１１２１、ハードウェア割付部１１２２、及び面積・実行時間予測部１１２３から構成されている。
【０１７９】
（ＤＦＧ変換部１１２０）
ＤＦＧ変換部１１２０は、ビヘイビア記述Ｄ１１１をビヘイビア記述受付部１１１０から受け取る。
【０１８０】
ＤＦＧ変換部１１２０は、受け取ったビヘイビア記述Ｄ１１１をデータフローグラフ(DFG)に変換し、変換したデータフローグラフをテンプレートマッチング部１１２１へ出力する。
【０１８１】
なお、ビヘイビア記述からＤＦＧへの変換方法は公知であるため、ここでの説明は省略する。
【０１８２】
（テンプレートマッチング部１１２１）
テンプレートマッチング部１１２１は、ＤＦＧ変換部１１２０にて変換されたデータフローグラフにおいて、受け付けたテンプレートＤ１１２のデータフローグラフＤ１２１と形状が同一の箇所を検索する処理を行う。
【０１８３】
テンプレートマッチング部１１２１は、受付部１１１１から変換方針を受け取り、ＤＦＧ変換部１１２０からデータフローグラフを受け取る。
【０１８４】
例えば、変換方針Ｄ１１２がテンプレートＤ１２１及びテンプレート割付パターンＤ１２２を含む場合には、テンプレートマッチング部１１２１は、テンプレート受付部１１３０からテンプレートＤ１２１を、テンプレート割付パターン受付部１１３１からテンプレート割付パターンＤ１２２をそれぞれ受け取る。変換方針Ｄ１１２がテンプレートＤ１２１のみを含む場合には、テンプレートマッチング部１１２１は、テンプレート受付部１１３０からテンプレートＤ１２１を受け取る。
【０１８５】
テンプレートマッチング部１１２１は、受け取った変換方針Ｄ１１２に基づいて、データフローグラフに対して、テンプレートＤ１２１に含まれるデータフローグラフＤ１３１と一致し、割り付けることが可能な箇所を検索する。
【０１８６】
（ハードウェア割付部１１２２）
ハードウェア割付部１１２２は、テンプレートマッチング部１１２１の検索結果に基づいて、データフローグラフに対してハードウェアの割り付けを行う。
【０１８７】
ここでは、ハードウェア割付部１１２２は、テンプレートＤ１２１と一致し、割り付けることが可能な箇所に対してはテンプレートＤ１２１を割り付け、テンプレートＤ１２１を割り付けられない箇所については、第１の実施の形態と同様の方法にて、演算器の割り付けを行う。
【０１８８】
ここで、図３にて示すデータフローグラフＤ２０に対して、図９にて示すデータフローグラフＤ１３１を割り付ける場合について、図１０を用いて説明する。なお、ここでは、変換方針Ｄ１１２はテンプレートＤ１２１のみを含むものとする。
【０１８９】
テンプレートマッチング部１１２１は、データフローグラフＤ１３１と一致する箇所して、データフローグラフＤ２０から部分データフローグラフＤ１４０及びＤ１４１を取得する。
【０１９０】
ハードウェア割付部１１２２は、部分データフローグラフＤ１４０及びＤ１４１に対してはデータフローグラフＤ１３１を割り付け、演算ノードＤ１４２に対しては、加算器を割り付ける。
【０１９１】
なお、高位合成装置１１００はテンプレート割付パターンＤ１２２として、部分データフローグラフＤ１４０にはデータフローグラフＤ１３１を割り付け、他の箇所には割り付けない旨の情報を受け取った場合には、ハードウェア割付部１１２２は、部分データフローグラフＤ１４０に対してはデータフローグラフＤ１３１を割り付け、他の演算ノードに対しては、第１の実施の形態と同様の割付方法にて演算器の割付を行う。
【０１９２】
（面積・実行時間予測部１１２３）
面積・実行時間予測部１１２３は、ハードウェア割付部１１２２による演算器の割付結果と、変換結果記憶部１１１５に記憶されている１以上のＲＴＬ記述及びそれらに対応する利用情報とを用いて、入力プログラムに対応する目的プログラムのプログラム変換指標を予測する。ここでは、面積・実行時間予測部１１２３は、プログラム変換指標の予測結果として、目的プログラム（ＲＴＬ記述）にて示されるハードウェアの実行時間と面積との関係を示すグラフを生成する。
【０１９３】
面積・実行時間予測部１１２３は、生成したグラフをグラフ通知部１１１４へ出力する。
【０１９４】
以下に、グラフの生成方法について説明する。
【０１９５】
面積・実行時間予測部１１２３は、変換結果記憶部１１１５に記憶されている１以上のＲＴＬ記述にて示される演算器の割付パターン（以下、実割付パターン）それぞれに対応する利用情報（面積及び実行時間）を二次元平面にプロットする。ここで、二次元平面は、横軸を面積、縦軸を実行時間とし、プロットされる座標は（面積、実行時間）となる。
【０１９６】
面積・実行時間予測部１１２３は、１以上の実割付パターンと、ハードウェア割付部１１２２による演算器の割付パターン（以下、仮割付パターン）とを比較する。比較結果により差分がない部分に関しては、面積・実行時間予測部１１２３は実割付パターンを用いて差分がない部分の面積及び実行時間を算出する。差分のある部分に関しては、面積・実行時間予測部１１２３は仮割付パターンを用いて面積及び実行時間を算出する。算出された各面積の総和及び各実行時間の総和を取得し、二次元平面にプロットする。
【０１９７】
面積・実行時間予測部１１２３は、プロットされた各座標と最小二乗法とを用いて、入力プログラムに対する目的プログラム（ＲＴＬ記述）が示すハードウェアの実行時間と面積との関係を示すグラフを生成する。
【０１９８】
ここで、面積・実行時間予測部１１２３にて生成されるグラフＧ１０の一例を図１１に示す。図１１では、横軸は面積であり、右に進むにつれ面積は増大することを示している。縦軸は実行時間であり、上に進むにつれ実行時間が小さくなることを示している。
【０１９９】
面積・実行時間予測部１１２３は、先ず、１以上の実割付パターンそれぞれに対応する利用情報（面積及び実行時間）を二次元平面上に、座標Ｐ１００〜Ｐ１０４をプロットする。次に、面積・実行時間予測部１１２３は、仮割付パターンに対する座標Ｐ１０５をプロットする。プロットされた座標Ｐ１００〜Ｐ１０５に対して最小二乗法を適用することにより、グラフＧ１０が得られる。
【０２００】
なお、グラフ生成において、最小二乗法を用いるとしたが、これに限定されない。グラフを生成することのできれば、他の方法であってもよい。
【０２０１】
（１−５）生成部１１１２
生成部１１１２は、上述した入力プログラム変換部１０１２に相当し、図８に示すように、ＲＴＬ記述変換部１１４１及び変換指標生成部１１４２から構成されている。
【０２０２】
ＲＴＬ記述変換部１１４１は、上述した目的プログラム生成部１０２０に相当し、変換指標生成部１１４２は、上述した変換指標生成部１０２１に相当する。
【０２０３】
（ＲＴＬ記述変換部１１４１）
ＲＴＬ記述変換部１１４１は、変換指示を変換予測部１１１６から受け取ると、変換予測部１１１６にて一時的に記憶されているビヘイビア記述Ｄ１１１を、ハードウェア割付部１１２２による演算器の割り付けに基づいてＲＴＬ記述Ｄ１１３を生成し、生成したＲＴＬ記述Ｄ１１３をＲＴＬ記述出力部１１１３へ出力する。
【０２０４】
（変換指標生成部１１４２）
変換指標生成部１１４２は、ＲＴＬ記述変換部１１４１にて生成されたＲＴＬ記述Ｄ１１３によるハードウェア情報に基づいて、ハードウェアの面積及び実行時間を算出し、算出した面積と実行時間とを組とする利用情報を、ＲＴＬ記述Ｄ１１３と対応付けて変換結果記憶部１１１５へ格納する。
【０２０５】
変換指標生成部１１４２は、変換結果記憶部１１１５に記憶されている１以上のＲＴＬ記述にて示される演算器の割付パターン（以下、実割付パターン）それぞれに対応する利用情報（面積及び実行時間）を用いてグラフＤ１１４を生成し、生成したグラフＤ１１４をプログラム変換指標としてグラフ通知部１１１４へ出力する。
【０２０６】
なお、面積及び実行時間の算出方法は第１の実施の形態にて示す算出方法と同様であり、グラフＤ１１４の生成方法は面積・実行時間予測部１１２３にて行われるグラフの生成と同様であるので、ここでの説明は省略する。
【０２０７】
（１−６）ＲＴＬ記述出力部１１１３
ＲＴＬ記述出力部１１１３は、上述した目的プログラム出力部１０１３に相当する。
【０２０８】
ＲＴＬ記述出力部１１１３は、ＲＴＬ記述変換部１１４１からＲＴＬ記述Ｄ１１３を受け取ると、受け取ったＲＴＬ記述Ｄ１１３を記憶装置（例えば、ハードディスクユニット）へ出力する。
【０２０９】
なお、ＲＴＬ記述Ｄ１１３の出力先は、ハードディスクユニットに限定されない。ＲＴＬ記述Ｄ１１３の出力先は、ＲＴＬ記述Ｄ１１３を格納する領域を有していればよい。
【０２１０】
（１−７）グラフ通知部１１１４
グラフ通知部１１１４は、上述したプログラム変換指標通知部１０１４に相当する。
【０２１１】
グラフ通知部１１１４は、面積・実行時間予測部１１２３から予測結果であるグラフを受け取ると、受け取ったグラフを使用者へ通知する。
【０２１２】
グラフ通知部１１１４は、変換指標生成部１１４２からグラフＤ１１４を受け取ると、受け取ったグラフＤ１１４を使用者へ通知する。
【０２１３】
例えば、グラフ通知部１１１４は、高位合成装置１１００に接続された表示装置（図示せず）に、グラフＤ１１４を出力する。表示装置は、グラフＤ１１４を表示する。これにより、グラフ通知部１１１４は、表示装置を介して、グラフＤ１１４を使用者へ通知することができる。
【０２１４】
（２）高位合成装置１１００の動作
ここでは、高位合成装置１１００の動作について、図１２にて示す流れ図を用いて説明する。
【０２１５】
ビヘイビア記述受付部１１１０は、ビヘイビア記述Ｄ１１１を使用者から受け付ける（ステップＳ１００）。
【０２１６】
受付部１１１１は、使用者から指示（変換方針、又は変換指示）受け付ける（ステップＳ１０５）。
【０２１７】
変換予測部１１１６は、受け付けた指示が変換方針であるか、変換指示であるかを判断する（ステップＳ１１０）。
【０２１８】
変換予測部１１１６が受け付けた指示が変換方針であると判断する場合には（ステップＳ１１０における「変換方針」）、以下の動作を行う。
【０２１９】
変換予測部１１１６のＤＦＧ変換部１１２０は、受け付けたビヘイビア記述Ｄ１１１をデータフローグラフに変換する（ステップＳ１１５）。
【０２２０】
テンプレートマッチング部１１２１は、受付部１１１１から変換方針を受け取り、ＤＦＧ変換部１１２０からデータフローグラフを受け取る。テンプレートマッチング部１１２１は、受け取った変換方針Ｄ１１２に基づいて、テンプレートのマッチングを行う（ステップＳ１２０）。ここでは、テンプレートマッチング部１１２１は、データフローグラフに対して、テンプレートＤ１２１に含まれるデータフローグラフＤ１３１と一致し、割り付けることが可能な箇所を検索する。
【０２２１】
ハードウェア割付部１１２２は、テンプレートマッチング部１１２１の検索結果に基づいて、データフローグラフに対してハードウェアの割り付けを行う（ステップＳ１２５）。
【０２２２】
面積・実行時間予測部１１２３は、ハードウェア割付部１１２２による演算器の割付結果と、変換結果記憶部１１１５に記憶されている１以上のＲＴＬ記述及びそれらに対応する利用情報とを用いて、ビヘイビア記述Ｄ１１１に対応する目的プログラム（ＲＴＬ記述）が示すハードウェアの面積及び実行時間を予測する（ステップＳ１３０）。ここでは、面積・実行時間予測部１１２３は、プログラム変換指標の予測結果として、目的プログラム（ＲＴＬ記述）にて示されるハードウェアの実行時間と面積との関係を示すグラフを生成する。
【０２２３】
グラフ通知部１１１４は、面積・実行時間予測部１１２３にて生成されたグラフを予測結果として使用者へ通知する（ステップＳ１３５）。
【０２２４】
変換予測部１１１６が受け付けた指示が変換指示であると判断する場合には（ステップＳ１１０における「変換指示」）、以下の動作を行う。
【０２２５】
ＲＴＬ記述変換部１１４１は、ハードウェア割付部１１２２による演算器の割り付けに基づいてＲＴＬ記述Ｄ１１３を生成する（ステップＳ１４０）。
【０２２６】
変換指標生成部１１４２は、利用情報（ハードウェアの面積及び実行時間）を生成し（ステップＳ１４５）、ＲＴＬ記述Ｄ１１３及びその利用情報を変換結果記憶部１１１５へ格納する（ステップＳ１５０）。
【０２２７】
変換指標生成部１１４２は、変換結果記憶部１１１５に記憶されている１以上のＲＴＬ記述にて示される演算器の実割付パターンそれぞれに対応する利用情報（面積及び実行時間）を用いてグラフＤ１１４を生成する（ステップＳ１５５）。
【０２２８】
ＲＴＬ記述出力部１１１３は、ＲＴＬ記述変換部１１４１にて生成されたＲＴＬ記述Ｄ１１３を記憶装置へ出力する（ステップＳ１６０）。
【０２２９】
グラフ通知部１１１４は、変換指標生成部１１４２にて生成されたグラフＤ１１４をプログラム変換指標として、表示装置へ出力することにより使用者へ通知する（ステップＳ１６５）。
【０２３０】
（３）予測動作の一例
ここでは、図１２にて示すステップＳ１３０における予測動作の一例について、図１３にて示す流れ図を用いて説明する。
【０２３１】
面積・実行時間予測部１１２３は、変換結果記憶部１１１５に記憶されている１以上のＲＴＬ記述にて示される演算器の割付パターン（以下、実割付パターン）それぞれに対応する利用情報（面積及び実行時間）を取得する（ステップＳ２００）。
【０２３２】
面積・実行時間予測部１１２３は、取得した１以上の利用情報を二次元平面にプロットする（ステップＳ２０５）。
【０２３３】
面積・実行時間予測部１１２３は、１以上の実割付パターンと、ハードウェア割付部１１２２により生成された仮割付パターンとを比較する（ステップＳ２１０）。比較結果により差分がない部分に関しては、面積・実行時間予測部１１２３は実割付パターンを用いて差分がない部分の面積及び実行時間を算出する（ステップＳ２１５）。差分のある部分に関しては、面積・実行時間予測部１１２３は仮割付パターンを用いて面積及び実行時間を算出する（ステップＳ２２０）。算出された各面積の総和及び各実行時間の総和を取得し、二次元平面にプロットする（ステップＳ２２５）。
【０２３４】
面積・実行時間予測部１１２３は、プロットされた各座標と最小二乗法とを用いて、入力プログラムに対する目的プログラム（ＲＴＬ記述）が示すハードウェアの実行時間と面積との関係を示すグラフを生成する（ステップＳ２３０）。
【０２３５】
面積・実行時間予測部１１２３は、生成したグラフをグラフ通知部１１１４へ出力する（ステップＳ２３５）。
【０２３６】
（４）プログラム変換指標の生成動作の一例
ここでは、図１２にて示すステップＳ１５５におけるプログラム変換指標の生成動作の一例について、図１３にて示す流れ図との変更点のみを説明する。
【０２３７】
変換指標生成部１１４２は、図１３にて示すステップＳ２００及びステップＳ２０５と同様の動作を行う。
【０２３８】
変換指標生成部１１４２は、ステップＳ２１０からステップＳ２２５を行う代わりに、ＲＴＬ記述変換部１１４１にて生成されたＲＴＬ記述Ｄ１１３によるハードウェア情報に基づいて、生成される回路全体の面積値及び実行時間を算出し、算出した面積値及び実行時間をプロットする。
【０２３９】
変換指標生成部１１４２は、ステップＳ２３０及びステップＳ２３５と同様の動作を行う。
【０２４０】
（５）具体例のまとめ
上記にて示したように、高位合成装置は、ビヘイビア記述と変換方針を受け付けると、ＲＴＬ記述と、ＲＴＬ記述にて示されるハードウェアの面積と実行時間との関係を示すグラフとを出力する。
【０２４１】
この二つの要素（面積、実行時間）はトレード・オフの関係にある。面積・実行時間グラフはこの２つの要素をグラフ化したものであり、可視化されているため装置の使用者は、容易に面積と実行時間の関係を把握できる。装置の使用者はこの予測結果を参考にして新しいテンプレートとテンプレート割り付けパターンを考案して再度高位合成することで、より高品質なＲＴＬ記述を合成できる。
【０２４２】
３．変形例
本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下の場合も本発明に含まれる。
【０２４３】
（１）上記第１の実施の形態において、高位合成装置は、プログラム変換指標として、回路図及び算出値を使用者へ通知したが、これに限定されない。
【０２４４】
高位合成装置は、回路図のみを通知してもよいし、算出値のみを通知してもよい。例えば、高位合成装置が回路図のみを通知する場合には、使用者は、通知された回路図から割り付けられた１個以上の演算器の面積の総和を算出することにより、通知された回路図が自身が所望する諸元（面積）を有しているか否かを判断することができる。
【０２４５】
また、使用者は、通知された回路図から割り付けられた１個以上の演算器の実行時間の総和を算出することにより、通知された回路図が自身が所望する諸元（実行時間）を有しているか否かを判断することができる。
【０２４６】
または、上記第１の実施の形態にて示す高位合成装置は、第２の実施の形態における具体例と同様に、面積と実行時間との関係を示すグラフを通知してもよい。
【０２４７】
（２）上記第２の実施の形態において、高位合成装置は、グラフを通知する代わりに、回路図及び算出値を通知してもよい。
【０２４８】
（３）上記第１の実施の形態において、高位合成装置は、ＲＴＬ記述を生成する前に、第２の実施の形態と同様に、生成されるＲＴＬ記述が示すハードウェアに対するプログラム変換指標（回路図及び算出値）の予測を行い、予測結果を使用者に通知してもよい。
【０２４９】
（４）上記第１の実施の形態において、プログラム変換方針（ハードウェア割付情報）は、ハードウェアの実行時間が最小にしたい旨の情報、又はハードウェアの面積を最小にしたい旨の情報としたが、これに限定されない。
【０２５０】
プログラム変換方針（ハードウェア割付情報）は、目的プログラムのコードサイズを最小にしたい旨の情報であってもよい。この場合、プログラム変換装置は、例えば、変換指標生成部により目的プログラムのコードサイズを生成し、生成したコードサイズをプログラム変換指標として通知部を用いて使用者に通知する。
【０２５１】
または、プログラム変換方針（ハードウェア割付情報）は、ハードウェア（目的プログラム）を実行する際のハードウェアの消費電力を最小にしたい旨の情報であってもよい。この場合、プログラム変換装置は、例えば、消費電力計測ツールを使用して、変換指標生成部により目的プログラムに対する消費電力の計測を行い、計測結果をプログラム変換指標として通知部を用いて使用者に通知する。
【０２５２】
または、上記にて示すコードサイズ、消費電力、ハードウェアの面積、実行時間のそれぞれをパラメータとし、プログラム変換装置は、プログラム変換方針として１以上のパラメータを受け付けてもよい。この場合、プログラム変換装置は、各パラメータに対する算出値のうち少なくとも１の算出値が最小となるように入力プログラムを目的プログラムへと変換し、各算出値（受け付けた１以上のパラメータそれぞれに対応する算出値）からなる組をプログラム変換指標として通知部を用いて使用者に通知する。例えば、プログラム変換装置は、２つのパラメータ（ハードウェアの面積、実行時間）を受け付けると、面積値と実行時間とを使用者に通知する。
【０２５３】
または、プログラム変換装置は、１以上のパラメータ（パラメータの種別は上記と同様）と、前記１以上のパラメータそれぞれに対応する所定値とをプログラム変換方針として受け付けてもよい。この場合、プログラム変換装置は、各パラメータに対する算出値のうち少なくとも１の算出値が対応する所定値以下となるように入力プログラムを目的プログラムへと変換し、各算出値からなる組をプログラム変換指標として通知部を用いて使用者に通知する。例えば、プログラム変換装置は、１のパラメータとそのパラメータに対応する所定値とを受け付けると、受け付けた１のパラメータに対する算出値が所定値以下となるように入力プログラムを目的プログラムへと変換し、受け付けた１のパラメータに対する算出値からなるプログラム変換指標として通知部を用いて使用者に通知する。
【０２５４】
なお、上記第１の実施の形態の具体例において、ハードウェア割付情報をプログラム変換方針として入力しているが、他の変換方針として「実行時間を最小にする」や、「コードサイズを最小にする」などを指定した場合でも、その方針を基にハードウェア割付を行う点については、ハードウェア割り付け情報をプログラム変換方針として入力した場合と変わらない。
【０２５５】
（５）第２の実施の形態において、プログラム変換方針（ハードウェア割付情報）は、目的プログラムのコードサイズを最小にしたい旨の情報であってもよい。この場合、プログラム変換装置は、入力プログラム変換予測部を用いて受け付けたプログラム変換方針に基づいて目的プログラムのコードサイズの予測を行い、その結果を使用者に通知する。プログラム変換装置は、変換指示を受け付けた場合には、上記（４）にて示すプログラム変換装置と同様の動作を行う。ここで、コードサイズの予測方法は、過去に生成した目的プログラムのコードサイズを用いて予測する。例えば、プログラム変換装置は、過去に入力された１以上の入力プログラムと、各入力プログラムに対する目的プログラム及びそのコードサイズとを予め記憶している。プログラム変換装置は、入力された入力プログラムと、記憶している１以上の入力プログラムとを比較することにより、同一の部分を検索する。同一の部分に関しては、対応付けて記憶している目的プログラム及びそのコードサイズから、同一部分のコードサイズを取得する。同一でない部分に関しては、プログラム変換を行うことで、その部分のコードサイズを取得する。取得した各コードサイズの総和を予測結果とする。
【０２５６】
または、プログラム変換方針（ハードウェア割付情報）は、ハードウェア（目的プログラム）を実行する際のハードウェアの消費電力を最小にしたい旨の情報であってもよい。この場合、プログラム変換装置は、入力プログラム変換予測部を用いて受け付けたプログラム変換方針に基づいて目的プログラムのコードサイズの予測を行い、その結果を使用者に通知する。プログラム変換装置は、変換指示を受け付けた場合には、上記（４）にて示すプログラム変換装置と同様の動作を行う。ここで、消費電力の予測方法は、過去に生成した目的プログラムの消費電力を用いて予測する。例えば、プログラム変換装置は、過去に変換された目的プログラム及びその消費電力を予め記憶している。プログラム変換装置は、入力された入力プログラムに対してハードウェアの割付を行い、その後、記憶している１以上の目的プログラムにて示されるハードウェアの割付と比較することにより、同一の部分を検索する。同一の部分に関しては、対応付けて記憶している目的プログラム及びその消費電力から、同一部分の消費電力を取得する。同一でない部分に関しては、その部分に対する割付結果から消費電力を取得する。取得した各消費電力の総和を予測結果とする。
【０２５７】
または、上記にて示すコードサイズ、消費電力、ハードウェアの面積、実行時間のそれぞれをパラメータとし、プログラム変換装置は、プログラム変換方針として１以上のパラメータを受け付けてもよい。この場合、プログラム変換装置は、入力プログラム変換予測部を用いて受け付けたプログラム変換方針に基づいて、プログラム変換指標の予測を行い、その結果を使用者に通知する。プログラム変換装置は、変換指示を受け付けた場合には、上記（４）にて示すプログラム変換装置と同様の動作を行う。
【０２５８】
または、プログラム変換装置は、１以上のパラメータ（パラメータの種別は上記と同様）と、前記１以上のパラメータそれぞれに対応する所定値とをプログラム変換方針として受け付けてもよい。この場合、プログラム変換装置は、入力プログラム変換予測部を用いて受け付けたプログラム変換方針に基づいて、プログラム変換指標の予測を行い、その結果を使用者に通知する。プログラム変換装置は、変換指示を受け付けた場合には、上記（４）にて示すプログラム変換装置と同様の動作を行う。
【０２５９】
（６）上記第１の実施の形態において、入力プログラム（ビヘイビア記述）に記載された内容全てを目的プログラム（ＲＴＬ記述）へと変換したが、これに限定されない。
【０２６０】
プログラム変換装置は、入力プログラムの一部のみを目的プログラムへと変換してもよい。この場合、プログラム変換装置は、入力プログラムと、プログラム変換方針として入力プログラムにおける変換箇所を示す情報とを受け付ける。プログラム変換装置は、入力プログラムのうち受け付けたプログラム変換方針が示す変換箇所のみを目的プログラムへと変換し、変換した目的プログラムに対するプログラム変換指標を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。
【０２６１】
また、第２の実施の形態においても同様に、プログラム変換装置は、入力プログラムのうち一部のみを目的プログラムへと変換してもよい。この場合、プログラム変換装置は、入力プログラムと、プログラム変換方針として入力プログラムにおける変換箇所を示す情報とを受け付ける。プログラム変換装置は、入力プログラム変換予測部を用いて入力プログラムのうち受け付けたプログラム変換方針が示す変換箇所のみに対する目的プログラムのプログラム変換指標を予測し、予測結果を使用者へ通知する。プログラム変換装置は、変換指示を受け付けると、入力プログラムのうち受け付けたプログラム変換方針が示す変換箇所のみを目的プログラムへと変換し、変換した目的プログラムに対するプログラム変換指標を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。
【０２６２】
（７）第１の実施の形態において、プログラム変換装置は、入力プログラムとプログラム変換方針とを受け付けたが、これに限定されない。
【０２６３】
プログラム変換装置は、入力プログラムのみ受け付けてもよい。この場合、プログラム変換装置は、受け付けた入力プログラムを目的プログラムへ変換し、変換した目的プログラムに対するプログラム指標を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。使用者は、通知されたプログラム変換指標を参照し、目的プログラムが示す回路が、所望する諸元を有しているか否かを判断する。有していないと判断する場合には、使用者は、入力プログラムを改良する。プログラム変換装置は、改良された入力プログラムを受け付け、上記と同様の動作を行う。
【０２６４】
また、第２の実施の形態においても同様に、プログラム変換装置は、入力プログラムのみ受け付けてもよい。この場合、プログラム変換装置は、受け付けた入力プログラムに対する目的プログラムのプログラム変換指標を予測し、予測結果を使用者へ通知する。使用者は、通知された予測結果を参照し、目的プログラムが示す回路が、所望する諸元を有しているか否かを判断する。有していないと判断する場合には、使用者は、入力プログラムを改良する。プログラム変換装置は、改良された入力プログラムを受け付け、再度、プログラム変換指標を予測し、その結果を使用者へ通知する。使用者は通知された予測結果が所望する諸元を有していると判断する場合には、変換指示をプログラム変換装置へ与える。プログラム変換装置は、変換指示を受け付けると、入力プログラムを目的プログラムへと変換し、変換した目的プログラムのプログラム変換指標を生成する。
【０２６５】
（８）第１の実施の形態において、プログラム変換装置は、ある入力プログラムを初めて目的プログラムへと変換する場合には、その入力プログラムのみを受け付け、同一の入力プログラムに対して再度目的プログラムへと変換する場合に、プログラム変換方針を受け付けてもよい。
【０２６６】
この場合、プログラム変換装置は、先ず入力プログラムのみを受け付け、受け付けた入力プログラムを目的プログラムへ変換し、変換した目的プログラムに対するプログラム指標（例えば、面積値）を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。使用者は、通知されたプログラム変換指標を参照し、目的プログラムが示す回路が、所望する諸元を有しているか否かを判断する。有していないと判断する場合には、使用者は、プログラム変換方針と入力プログラムとをプログラム変換装置に与える。プログラム変換装置は、プログラム変換方針に基づいて、入力プログラムを目的プログラムへ変換し、変換した目的プログラムに対するプログラム指標を生成する。プログラム変換装置は、生成したプログラム変換指標を使用者へ通知する。
【０２６７】
ここで、生成されるプログラム指標は、実行時間や消費電力やコードサイズや、面積と実行時間との関係を示すグラフであってもよい。
【０２６８】
また、第２の実施の形態においても同様に、プログラム変換装置は、ある入力プログラムを初めて目的プログラムへと変換する場合には、その入力プログラムのみを受け付け、同一の入力プログラムに対して再度目的プログラムへと変換する場合に、プログラム変換方針を受け付けてもよい。
【０２６９】
この場合、プログラム変換装置は、先ず入力プログラムのみを受け付け、受け付けた入力プログラムに対する目的プログラムのプログラム変換指標（例えば、面積と実行時間との関係を示すグラフ）を予測し、予測結果を使用者へ通知する。使用者は、通知された予測結果を参照し、所望する諸元を有しているか否かを判断する。有していないと判断する場合には、使用者は、使用者は、プログラム変換方針と入力プログラムとをプログラム変換装置に与える。プログラム変換装置は、プログラム変換方針に基づいて、再度、プログラム変換指標を予測し、その結果を使用者へ通知する。使用者は通知された予測結果が所望する諸元を有していると判断する場合には、変換指示をプログラム変換装置へ与える。プログラム変換装置は、変換指示を受け付けると、入力プログラムを目的プログラムへと変換し、変換した目的プログラムのプログラム変換指標を生成する。
【０２７０】
ここで、生成されるプログラム指標は、面積や実行時間や消費電力やコードサイズであってもよい。
【０２７１】
（９）上記第１の実施の形態において、プログラム変換装置が使用者に通知する情報は、入力プログラムを変換するに当たっての詳細な情報(スケジューリングの方法や、目的プログラムがハードウェア技術情報であった場合には演算器割り付けの方法など)であってもよい。
【０２７２】
（１０）第２の実施の形態において、高位合成装置の変換結果記憶部は、過去に変換した１以上の目的プログラム（ＲＴＬ記述）と、1以上の目的プログラムそれぞれに対応する利用情報とを記憶したが、これに限定されない。
【０２７３】
変換結果記憶部は、過去に入力された１以上の割付パターンと、１以上の割付パターンそれぞれに対応する利用情報とを記憶してもよい。
【０２７４】
この場合、面積・実行時間予測部は、入力プログラムに対する割付結果において、記憶している割付パターンと一致する部分にはその割付パターンに対応する利用情報（面積、実行時間）を用いて、二次元平面上にプロットする。一致しない部分については、面積・実行時間予測部は、面積及び実行時間を算出し、算出した面積及び実行時間に基づいて二次元平面上にプロットする。その後、面積・実行時間予測部は、グラフを生成する。
【０２７５】
または、変換結果記憶部は、過去に入力された割付パターンと、割付パターンが入力された際に生成された目的プログラムの組を１以上記憶してもよい。
【０２７６】
この場合、面積・実行時間予測部は、現在の演算器割り付けパターンと過去の割り付けパターンを比較し、差分のある部分に関してのみ再度ハードウェア割り付けを行い、差分のない部分に関しては過去の割り付けパターンをそのまま流用することで簡易的にハードウェア割り付けを行い、その場合の実行時間と面積を予測結果とする。
【０２７７】
（１１）上記第１の実施の形態において、プログラム変換指標の一例として、回路図と算出値とからなる変換指標としたが、これに限定されない。
【０２７８】
プログラム変換指標は、目的プログラムにて示される回路全体の面積、実行時間、消費電力のいずれかであってもよし、これらの組み合わせであってもよい。
【０２７９】
また、上記第２の実施の形態においても同様に、プログラム変換指標は、目的プログラムにて示される回路全体の面積、実行時間、消費電力、コードサイズ、及び面積と実行時間との関係を示すグラフの何れかであってもよし、又はこれらの組み合わせであってもよい。
【０２８０】
（１２）第２の実施の形態において、面積・実行時間予測部がグラフを生成する際に、実割付パターンそれぞれに対応する利用情報（面積及び実行時間）、及び仮割付パターンに対応する面積及び実行時間を二次元平面にプロットした後、最小二乗法を適用してグラフを生成したが、これに限定されない。
【０２８１】
実割付パターンそれぞれに対応する利用情報（面積及び実行時間）を二次元平面にプロットした後、最小二乗法を適用してグラフを生成し、その後、予測値として仮割付パターンに対応する面積及び実行時間をプロットしてもよい。
【０２８２】
（１３）上記第１の実施の形態において、算出値をＲＴＬ記述にて示される回路の実行時間とする場合、本発明における回路の諸元とは、当該回路の実行時間である。
【０２８３】
また、回路の消費電力を算出値とする場合、本発明における回路の諸元とは、当該回路の消費電力である。
【０２８４】
また、コードサイズを算出値とする場合、本発明における回路の諸元とは、当該回路の設計内容を記述しているＲＴＬ記述のコードサイズである。
【０２８５】
また、変換指標として回路図を通知する場合、本発明における回路の諸元とは、当該回路を示す回路図である。
【０２８６】
また、上記第２の実施の形態において、本発明における回路の諸元とは、当該回路の面積値であってもよいし、実行時間であってもよい。
【０２８７】
（１４）上記第２の実施の形態において、プログラム変換結果記憶部と入力プログラム変換予測部とを個別の構成としたが、これに限定されない。
【０２８８】
プログラム変換結果記憶部を入力プログラム変換予測部に含めてもよい。
【０２８９】
（１５）上記第１の実施の形態にて示すプログラム変換装置の具体例を、高位合成装置としたが、これに限定されない。
【０２９０】
プログラム変換装置は、コンパイラ装置であってもよい。この場合、コンパイラ装置は、高級言語で記述された入力プログラムと、プログラム変換方針とを受け付ける。コンパイラ装置は、受け付けたプログラム変換方針に基づいて、目的プログラムとしてマシン固有の言語（例えば、アセンブラ言語）に変換し、変換した言語を出力し、さらには、変換した言語に対するプログラム変換指標を生成し、生成したプログラム変換指標を使用者に通知する。プログラム変換方針は、例えば、目的プログラムのコードサイズを最小にする旨の情報であり、プログラム変換指標は、目的プログラムのコードサイズである。
【０２９１】
（１６）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２９２】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０２９３】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
【０２９４】
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０２９５】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２９６】
（１７）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【０２９７】
４．まとめ
第１の実施の形態において、プログラム変換装置は、プログラム変換指標を使用者に通知している。使用者は、通知されたプログラム変換指標を参照して、より効率的なプログラム変換方針を容易に立てることができる。使用者は、入力プログラムとプログラム変換方針をプログラム変換装置に入力、プログラム変換装置がプログラム変換指標を通知、使用者が通知されたプログラム変換指標を基により効率的な変換方針を考案、というステップを自身の要求を満たす目的プログラムが得られるまで繰り返すことにより、使用者は所望する諸元を有する回路を示す目的プログラムを取得することができる。
【０２９８】
第２の実施の形態において、プログラム変換装置は、入力プログラム（例えば、ビヘイビア記述）から目的プログラム（例えば、ＲＴＬ記述）を生成する前に、プログラム変換指標を予測し、その予測結果（例えば、グラフ）を使用者に通知している。その後、使用者から変換指示を受け付けると、プログラム変換装置は、目的プログラムに変換した後のプログラム変換指標（例えば、グラフ）を使用者に通知している。
【０２９９】
ここで、予測結果の通知内容と、実際に変換した結果の通知内容との違いについて説明する。変換結果を予測する場合は実際には目的プログラムへの変換を行わないので変換にかかる時間を短縮できる。よって入力プログラムとプログラム変換方針を入力してから予測結果を通知するまでの時間が短い。ただし、予測結果であるので実際に変換した場合の指標と誤差がある場合がある。一方、実際に目的プログラムへの変換を行った後の結果の通知内容は、目的プログラムへの変換を実際に実行するので入力プログラムとプログラム変換方針を入力してからプログラム変換指標を通知するまでの時間が、予測通知の場合と比較して長いが、実際に変換された内容に基づいてプログラム変換指標を生成しているので通知内容の信頼性は高い。
【０３００】
本発明におけるプログラム変換装置は、変換された目的プログラムの変換指標を使用者に通知しているので、使用者はその変換指標を参考にしてより良いプログラム変換方針を容易に考案することができる。そして、使用者は、考案した変換方針をプログラム変換装置に入力することでよりよい目的プログラムが生成できる。これを繰り返すことで目的プログラムが示す回路の諸元（品質）は段階的に向上し、最終的に使用者の要求を満たす目的プログラムが得られる。
【０３０１】
本発明のプログラム変換装置は、入力プログラムを目的プログラムへ変換するプログラム変換装置であって、前記入力プログラムを受け付けるプログラム入力手段と、前記入力プログラムを前記目的プログラムへ変換する変換手段と、変換結果である前記目的プログラムを出力する目的プログラム出力手段と、前記入力プログラムを変換する過程で得られた前記入力プログラムの変換指標を使用者へ通知する変換指標通知手段とを備えていることを特徴とする。この装置によれば、装置の使用者は目的プログラム以外の情報をプログラム変換装置から得ることができる。
【０３０２】
また、前記プログラム変換装置は、前記変換指標として前記目的プログラムの実行時間を使用者へ通知することを特徴とする。この装置によれば、装置の使用者はプログラムを変換した際の目的プログラムの実行時間を把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
【０３０３】
また、前記プログラム変換装置は、前記変換指標として前記目的プログラムの実行時間と前記目的プログラムによって実現されるハードウェアの面積との相関関係を使用者へ通知することを特徴とする。この装置によれば、装置の使用者はプログラムを変換した際の目的プログラムによって実現されるハードウェアの面積との相関関係を把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
【０３０４】
また、前記プログラム変換装置は前記変換指標として前記目的プログラムのコードサイズを使用者へ通知することを特徴とする。この装置によれば、装置の使用者はプログラムを変換した際の前記目的プログラムのコードサイズを把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
【０３０５】
また、前記プログラム変換装置は前記変換指標として前記目的プログラムによって実現されるハードウェアの面積を使用者へ通知することを特徴とする。この装置によれば、装置の使用者はプログラムを変換した際の前記目的プログラムによって実現されるハードウェアの面積を把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
【０３０６】
また、前記プログラム変換装置は前記変換指標として前記目的プログラムを実行する際の消費電力を使用者へ通知することを特徴とする。この装置によれば、装置の使用者は前記目的プログラムを実行する際の消費電力を把握できるので、それらを用いてより効率的なプログラム変換方針を容易に考案できる。
【０３０７】
また、前記プログラム変換装置は前記入力プログラムを変換する際の使用者からの要求である変換方針を受け付ける変換方針入力手段を備え、前記変換手段は前記変換方針を基に前記入力プログラムを変換することを特徴とする。この装置によれば、効果的な変換方針入力手段が入力されることで変換方針を入力しない場合と比較してより高品質な目的プログラムを出力できる。
【０３０８】
また、前記プログラム変換装置は前記変換指標を基に使用者が作成した変換方針が入力されることを特徴とする。この装置によれば、装置の使用者は効果的な変換方針入力手段を入力することで変換方針を入力しない場合と比較してより高品質な目的プログラムが得られる。
【０３０９】
また、前記プログラム変換装置は前記変換方針として前記入力プログラム中のプログラム変換する箇所を指定する情報を受け付けることを特徴とする。この装置によれば、プログラム変換方針の再入力によって再度プログラム変換を実行する際に、目的プログラム中で既に要求を満たしている部分については再変換を省略することでプログラム変換にかかる時間を短縮できる。
【０３１０】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムの実行時間が最小となるように前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、プログラム変換によって目的プログラムの実行時間が最小である目的プログラムを得られる。
【０３１１】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムによって実現されるハードウェアの面積が最小となるように前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、プログラム変換によって前記目的プログラムによって実現されるハードウェアの面積が最小である目的プログラムを得られる。
【０３１２】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムによって実現される消費電力が最小となるように前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、プログラム変換によって前記目的プログラムによって実現される消費電力が最小である目的プログラムを得られる。
【０３１３】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムのコードサイズが最小となるように前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、プログラム変換によって前記目的プログラムのコードサイズが最小である目的プログラムを得られる。
【０３１４】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムにおける一つあるいは複数のパラメータを指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムにおける一つあるいは複数のパラメータが指定した値以下となる目的プログラムを得られる。
【０３１５】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムにおける実行時間を指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムにおける実行時間が指定した値以下となる目的プログラムを得られる。
【０３１６】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムによって実現されるハードウェアの面積を指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムによって実現されるハードウェアの面積が指定した値以下となる目的プログラムを得られる。
【０３１７】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムによって実現されるハードウェアの消費電力を指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムによって実現されるハードウェアの消費電力が指定した値以下となる目的プログラムを得られる。
【０３１８】
また、前記プログラム変換装置は前記変換方針として前記目的プログラムのコードサイズを指定した値以下にするための前記入力プログラムを変換する指示を受け付けることを特徴とする。この装置によれば、装置の使用者は前記目的プログラムのコードサイズが指定した値以下となる目的プログラムを得られる。
【０３１９】
また、前記プログラム変換装置は前記変換方針として前記目的プログラム中の各演算と前記目的プログラムによって実現される各ハードウェアとの対応関係として定義される演算器割り付けパターンに関する情報を受け付けることを特徴とする。この装置によれば、装置の使用者はプログラム変換によって、入力された前記演算器割り付けパターンに則った前記目的プログラムを得られる。
【０３２０】
また、前記プログラム変換装置は、前記ハードウェアの演算器割り付けに関する情報として、前記ハードウェアの回路図と前記回路図の動作を組とする情報として定義されたテンプレートを含んでいることを特徴とする。この装置によれば、前記目的プログラムによって表現されるハードウェアの回路図の中に、テンプレートの回路図が含まれることによって、出力される回路図の一部を装置の使用者が設計することができる。
【０３２１】
また、前記プログラム変換装置は、前記入力プログラムの変換結果または変換指標を予測し、予測された変換結果または変換指標を前記変換指標通知手段へ入力する予測手段を備えており、前記変換指標通知手段は、前記予測された変換結果である目的プログラムまたは変換指標を使用者へ通知することを特徴とする。この装置によれば、装置の使用者は、プログラム変換結果からプログラム変換方針または指標を再考案する際にプログラム変換結果の代わりに変換予測結果を使用することで、プログラム変換にかかる時間を省略できる。
【０３２２】
また、前記プログラム変換装置は、前記入力プログラムを変換した結果である目的プログラム及び前記変換方針を記録しておく記録手段を備え、前記記録手段に記録されている内容を基に、前記入力プログラムの変換結果を予測することを特徴とする。この装置によって、記憶手段に記憶されている情報を利用してプログラム変換結果を予測できる。
【０３２３】
また、前記プログラム変換装置は、前記記録手段に記録されている、過去の変換方針と現在の変換方針の差分を取って、前記差分と過去の入力プログラム変換結果を基に現在の入力プログラム変換結果を予測することを特徴とする。この装置によって、装置の使用者は過去の変換方針と現在の変換方針の差分を利用した予測結果を得られる。
【０３２４】
また、前記プログラム変換装置は、前記目的プログラムによって実現されるハードウェアの面積または前記目的プログラムの実行時間を予測することを特徴とする。この装置によれば、装置の使用者は、目的プログラムによって実現されるハードウェアの面積または前記目的プログラムの実行時間が大きいプログラム変換の結果とその時のプログラム変換指標を変換前に把握できるので、プログラム変換方針を再考案する際に、実際の変換を行わずに、目的プログラムによって実現されるハードウェアの面積または前記目的プログラムの実行時間が大きい場合のプログラム変換指標を把握できる。これによって目的プログラムによって実現されるハードウェアの面積または前記目的プログラムの実行時間が大きいプログラム変換を行う時間を省略できる。
【０３２５】
また、前記プログラム変換装置は、前記目的プログラムのコードサイズを予測することを特徴とする。この装置によれば、装置の使用者は、前記目的プログラムのコードサイズが大きいプログラム変換の結果とその時のプログラム変換指標を変換前に把握できるので、プログラム変換方針を再考案する際に、実際の変換を行わずに、前記目的プログラムのコードサイズの面積が大きい場合のプログラム変換指標を把握できる。これによって前記目的プログラムのコードサイズが大きいプログラム変換を行う時間を省略できる。
【０３２６】
また、前記プログラム変換装置は、前記入力プログラムによって実現されるハードウェアの回路図を予測することを特徴とする。この装置によれば、装置の使用者は、前記入力プログラムによって実現されるハードウェアの回路図が大きいプログラム変換の結果とその時のプログラム変換指標を変換前に把握できるので、プログラム変換方針を再考案する際に、実際の変換を行わずに、前記入力プログラムによって実現されるハードウェアの回路図の面積が大きい場合のプログラム変換指標を把握できる。これによって前記入力プログラムによって実現されるハードウェアの回路図が大きいプログラム変換を行う時間を省略できる。
【０３２７】
また、前記プログラム変換装置は、前記入力プログラムによって実現されるハードウェアの回路図を予測することを特徴とする。この装置によれば、装置の使用者は、前記入力プログラムによって実現されるハードウェアの回路図が大きいプログラム変換の結果とその時のプログラム変換指標を変換前に把握できるので、プログラム変換方針を再考案する際に、実際の変換を行わずに、前記入力プログラムによって実現されるハードウェアの回路図の面積が大きい場合のプログラム変換指標を把握できる。これによって前記入力プログラムによって実現されるハードウェアの回路図が大きいプログラム変換を行う時間を省略できる。
【０３２８】
また、前記プログラム変換装置は前記変換方針入力手段から入力された現在の演算器割り付けパターンと、前記記録手段に記録された過去の演算器割り付けパターンと前記過去の入力プログラムの変換結果を基にして、前記現在の入力プログラムの変換結果を予測することを特徴とする。 この装置によれば、装置の使用者は前記変換方針入力手段から入力された現在の演算器割り付けパターンと、前記記録手段に記録された過去の演算器割り付けパターンと前記過去の入力プログラムの変換結果を基にした予測結果を得られる。
【０３２９】
また、前記プログラム変換装置は前記過去の演算器割り付けパターンと前記現在の演算器割り付けパターンの差分から前記現在のプログラム変換結果を予測する際に、差分のない部分に関しては前記過去の演算器割り付けパターンから得られた前記過去の入力プログラム変換結果をそのまま用い、差分がある部分に関してのみ再度前記現在の入力プログラムを変換したものを変換予測結果とすることを特徴とする。この装置によれば、装置の使用者は過去の演算器割り付けパターンと前記現在の演算器割り付けパターンの差分の出た箇所についてのみ割り付けし直した場合の変換予測結果を得られる。
【産業上の利用可能性】
【０３３０】
本発明は、プログラム変換装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用されうる。
【図面の簡単な説明】
【０３３１】
【図１】プログラム変換装置１の構成を示すブロック図である。
【図２】高位合成装置１００の構成を示すブロック図である。
【図３】ビヘイビア記述Ｄ１１からデータフローグラフＤ２０への変換の一例を示す図である。
【図４】ＲＴＬ記述Ｄ１３の一例を示す図である。
【図５】高位合成装置１００の動作を示す流れ図である。
【図６】変換指標生成部１２１におけるプログラム変換指標の生成の動作の一例を示す流れ図である。
【図７】プログラム変換装置１０００の構成を示すブロック図である。
【図８】高位合成装置１１００の構成を示すブロック図である。
【図９】テンプレートＤ１２１の一例を示す図である。
【図１０】テンプレートＤ１２１に含まれるデータフローグラフＤ１３１の適用の一例を示す図である。
【図１１】高位合成装置１１００が通知するグラフＧ１０の一例を示す図である。
【図１２】高位合成装置１１００の動作を示す流れ図である。
【図１３】面積・実行時間予測部１１２３における面積・実行時間の予測の動作の一例を示す流れ図である。
【符号の説明】
【０３３２】
１    プログラム変換装置
１０    入力プログラム受付部
１１    変換方針受付部
１２    入力プログラム変換部
１３    目的プログラム出力部
１４    プログラム変換指標通知部
１００    高位合成装置
１１０    ビヘイビア記述受付部
１１１    ハードウェア割付情報受付部
１１２    変換部
１１３    ＲＴＬ記述出力部
１１４    通知部
１２０    ＲＴＬ記述生成部
１２１    変換指標生成部
１３０    ＤＦＧ変換部
１３１    ハードウェア割付部
１３２    ＲＴＬ記述変換部
１０００    プログラム変換装置
１０１０    入力プログラム受付部
１０１１    変換方針受付部
１０１２    入力プログラム変換部
１０１３    目的プログラム出力部
１０１４    プログラム変換指標通知部
１０１５    プログラム変換結果記憶部
１０１６    入力プログラム変換予測部
１０２０    目的プログラム生成部
１０２１    変換指標生成部
１１００    高位合成装置
１１１０    ビヘイビア記述受付部
１１１１    受付部
１１１２    生成部
１１１３    ＲＴＬ記述出力部
１１１４    グラフ通知部
１１１５    変換結果記憶部
１１１６    変換予測部
１１２０    ＤＦＧ変換部
１１２１    テンプレートマッチング部
１１２２    ハードウェア割付部
１１２３    面積・実行時間予測部
１１３０    テンプレート受付部
１１３１    テンプレート割付パターン受付部
１１４１    ＲＴＬ記述変換部
１１４２    変換指標生成部
【図１】
2008123103.tif 000003
【図２】
2008123103.tif 000004
【図３】
2008123103.tif 000005
【図４】
2008123103.tif 000006
【図５】
2008123103.tif 000007
【図６】
2008123103.tif 000008
【図７】
2008123103.tif 000009
【図８】
2008123103.tif 000010
【図９】
2008123103.tif 000011
【図１０】
2008123103.tif 000012
【図１１】
2008123103.tif 000013
【図１２】
2008123103.tif 000014
【図１３】
2008123103.tif 000015