(57)【要約】【課題】２入力の結合則又は分配則を満たさない演算ノードからなる、ＤＦＧ内の逐次処理がある場合に、高性能なＲＴＬ記述を生成する高位合成方法を提供する。【解決手段】プログラミング言語で記述された動作記述から、演算をノードで示しかつデータの流れをエッジで示すデータフローグラフを含む中間データを生成し、データフローグラフを構成する部分グラフの中から、予め定義された参照グラフに一致する部分グラフを検出し、部分グラフの各々について、部分グラフをノードとして代表するクラスタを生成し（Ｓ５１）、クラスタが連続して接続されているクラスタグラフを抽出し、クラスタグラフのグラフ高さが小さくなるようにクラスタグラフを変形し、変形をデータフローグラフに反映させ（Ｓ１１，Ｓ１２，Ｓ１３）、変形されたデータフローグラフを含む中間データからレジスタ転送レベルの回路記述を生成する（Ｓ５５）。【選択図】図３
2009169694.tif 000002
【特許請求の範囲】
【請求項１】
プログラミング言語で記述された動作記述からレジスタ転送レベルの回路記述を生成する高位合成方法であって、
前記動作記述から、演算をノードで示し、かつデータの流れをエッジで示すデータフローグラフを含む中間データを生成するステップと、
生成された前記中間データに含まれる前記データフローグラフを構成する部分グラフの中から、予め定義された参照グラフに一致する部分グラフを検出するグラフ検出ステップと、
検出された前記部分グラフの各々について、当該部分グラフをノードとして代表するクラスタを生成するクラスタ生成ステップと、
生成された前記クラスタが連続して接続されているクラスタグラフを抽出するステップと、
抽出された前記クラスタグラフのグラフ高さが小さくなるように前記クラスタグラフを変形し、当該変形を前記データフローグラフに反映させるデータフローグラフ高さ削減ステップと、
グラフ高さが削減された前記データフローグラフを含む前記中間データからレジスタ転送レベルの回路記述を生成するステップと
を含むことを特徴とする高位合成方法。
【請求項２】
前記参照グラフは、２入力１出力のグラフであり、かつ、当該参照グラフを１つのノードとみなした場合に、当該ノードが示す演算は、結合則又は分配則を満たす
ことを特徴とする請求項１記載の高位合成方法。
【請求項３】
前記参照グラフは、２ｎ入力ｎ出力（ｎは自然数）のグラフであり、
前記参照グラフの入力及び出力をそれぞれｎ個ずつグループ化して、２入力１出力のグラフとし、各前記２入力１出力のグラフを１つのノードとみなした場合に、当該ノードが示す演算は、結合則又は分配則を満たす
ことを特徴とする請求項１記載の高位合成方法。
【請求項４】
前記データフローグラフ高さ削減ステップでは、前記クラスタグラフに対して、結合則又は分配則に基づいた変形を施す
ことを特徴とする請求項２又は請求項３記載の高位合成方法。
【請求項５】
前記データフローグラフ高さ削減ステップは、
前記クラスタグラフの変形後の構造を示す変形構造を、遅延値及び面積の少なくとも１つの変形制約に基づいて決定する変形構造決定ステップと、
決定された変形構造に従って、前記クラスタグラフを変形し、当該変形を前記データフローグラフに反映させる変形ステップとを
含むことを特徴とする請求項１記載の高位合成方法。
【請求項６】
前記グラフ検出ステップでは、生成された前記中間データに含まれる前記データフローグラフを構成する部分グラフの中から、２つの入力のうち大きい値又は小さい値を出力する処理を示す参照グラフに一致する部分グラフを検出し、
前記変形ステップでは、２つ以上の入力から任意の２入力を総当りで比較して、前記２つ以上の入力の最大値又は最小値を選択する処理を示すグラフである総当り比較選択グラフを１つ以上含む構造に前記クラスタグラフを変形し、
前記変形構造を表す情報は、各総当り比較選択グラフの入力数と、総当り比較選択グラフ間の接続関係とを含む
ことを特徴とする請求項５記載の高位合成方法。
【請求項７】
前記変形制約は、設定ファイルによる指定、前記動作記述に含まれるプラグマによる指定及びＧＵＩ（Graphical User Interface）による指定の少なくとも１つ以上の方法によって予め定義されている
ことを特徴とする請求項５又は請求項６記載の高位合成方法。
【請求項８】
前記変形構造決定ステップでは、予め定義された動作周期又は動作周波数に基づいてスケジューリングを行い、スケジューリング結果から前記変形制約を求める
ことを特徴とする請求項５又は請求項６記載の高位合成方法。
【請求項９】
前記変形構造決定ステップでは、
前記スケジューリング結果から前記クラスタグラフがクリティカルパス上にあるか否かを判別し、前記クリティカルパス上にある場合には、変形構造が決定可能な最小遅延値を前記変形制約に設定し、前記クリティカルパス上にない場合は、変形構造が決定可能な最小面積を前記変形制約に設定する
ことを特徴とする請求項８記載の高位合成方法。
【請求項１０】
前記データフローグラフ高さ削減ステップでは、前記変形構造決定ステップと、前記変形ステップとを、前記変形ステップにおける前記クラスタグラフの変形がなくなるまで繰返す
ことを特徴とする請求項５記載の高位合成方法。
【請求項１１】
プログラミング言語で記述された動作記述からレジスタ転送レベルの回路記述を生成する高位合成装置であって、
複数の値から最大値又は最小値を選択する機能を含む動作記述の入力を受け付ける動作記述入力手段と、
前記動作記述で示される選択順序とは異なる順序で値を選択することにより前記複数の値から最大値又は最小値を選択する回路を含むレジスタ転送レベルの回路記述を出力するＲＴＬ記述出力手段と
を備えることを特徴とする高位合成装置。
【請求項１２】
前記動作記述入力手段は、さらに、前記動作記述から、演算をノードで示しかつデータの流れをエッジで示すデータフローグラフを含む中間データを生成し、
前記高位合成装置は、さらに、
前記複数の値から最大値又は最小値を選択する機能を含む動作記述に対する変形制約を設定する制約設定手段と、
前記制約設定手段において設定された前記変形制約を満たすようにデータフローグラフを変形する中間データ変形手段とを備え、
前記ＲＴＬ記述出力手段は、変形後の前記データフローグラフより、前記動作記述で示される選択順序とは異なる順序で値を選択することにより前記複数の値から最大値又は最小値を選択する回路を含むレジスタ転送レベルの回路記述を生成し、出力する
ことを特徴とする請求項１１記載の高位合成装置。
【請求項１３】
プログラミング言語で記述された動作記述からレジスタ転送レベルの回路記述を生成するプログラムであって、
前記動作記述から、演算をノードで示し、かつデータの流れをエッジで示すデータフローグラフを含む中間データを生成するステップと、
生成された前記中間データに含まれる前記データフローグラフを構成する部分グラフの中から、予め定義された参照グラフに一致する部分グラフを検出するグラフ検出ステップと、
検出された前記部分グラフの各々について、当該部分グラフをノードとして代表するクラスタを生成するクラスタ生成ステップと、
生成された前記クラスタが連続して接続されているクラスタグラフを抽出するステップと、
抽出された前記クラスタグラフのグラフ高さが小さくなるように前記クラスタグラフを変形し、当該変形を前記データフローグラフに反映させるデータフローグラフ高さ削減ステップと、
グラフ高さが削減された前記データフローグラフを含む前記中間データからレジスタ転送レベルの回路記述を生成するステップと
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｃ言語等のプログラミング言語による動作記述からレジスタ転送レベルの回路記述を自動生成する高位合成技術に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）等の論理回路は、高機能化による大規模化の進展に加え、回路を搭載する製品サイクルが短くなったことで、短期間での設計が必要となっている。短期間で大規模な回路を設計するためには、設計生産性の向上が重要であり、従来から、様々設計手法が提案されている。動作記述からレジスタ転送レベル（以下「ＲＴＬ」という。）の回路記述を自動合成する高位合成技術（例えば、非特許文献１参照。）もその一つである。
【０００３】
図２１は、従来の高位合成方法の一般的なフローチャートである。図２１の高位合成方法は、ＣＤＦＧ生成ステップＳ５１と、ＣＤＦＧ変形ステップＳ５２と、スケジューリングステップＳ５３と、バインディングステップＳ５４と、ＲＴＬ回路生成ステップＳ５５とを含む。
【０００４】
まず、ＣＤＦＧ生成ステップＳ５１で、動作記述から、制御機構とデータ依存を解析して、コントロールデータフローグラフ（ＣＤＦＧ）を生成する。ＣＤＦＧは、制御フローを表現したコントロールグラフ（ＣＦＧ）と、データフローを表現したデータフローグラフ（ＤＦＧ）の２種類のグラフから構成されている。ＤＦＧは、演算を示すノード（演算ノード）と変数ノード（定数を含む）を含むＤＦＧノードと、ノード間を接続するエッジとで構成されている。
【０００５】
次に、ＣＤＦＧ変形ステップＳ５２で、冗長な演算ノードの削除や、高性能又は小面積なＲＴＬ記述（ＲＴＬの回路記述）を生成するために、ＣＤＦＧを変形する。変形としては、不要処理の削除、共通部分処理の削除、定数の伝播／畳み込み等の処理、及び並列度向上を目的としたループ処理の展開（ループアンローリング）などがある。
【０００６】
次に、スケジューリングステップＳ５３で、ＣＤＦＧ内の各処理ノードで示される処理を実行するのに必要な制御サイクルを決定する。スケジューリングステップＳ５３では、クロック周期（動作周期）又はクロック周波数（動作周波数）に基づいて、制御サイクルを決定する。
【０００７】
次に、バインディングステップＳ５４で、スケジューリング結果に基づいて、ハードウェア記憶リソースやハードウェア演算リソースを回路に割り付ける（以下、「ハードウェア記憶リソース」と「ハードウェア演算リソース」をあわせて「ハードウェアリソース」という。）。スケジューリング結果から、ハードウェアリソースのライフタイムを解析し、同一処理が可能なハードウェアリソースのうち、ライフタイムがオーバーラップしていないハードウェアリソースには同一のハードウェアリソースを割り当てることができる。これを「ハードウェアリソースの共有化」と呼ぶ。
【０００８】
最後に、ＲＴＬ回路生成ステップＳ５５で、スケジューリング結果及びバインディング結果を実現するために必要となる制御回路を生成し、バインディングステップＳ５４で得られたハードウェアリソースを接続したデータパスとあわせて、レジスタ転送レベル記述を出力する。
【０００９】
次に、複数の値から最大値又は最小値を取得する動作を含んだ動作記述を例にして、ＲＴＬ記述を生成することを考える。図２２は、最大値を求める動作をＣ言語のプログラムで表した動作記述１１１の一例であり、この動作記述１１１は、予め、配列ａに格納されたＮ個（Ｎは、任意の正の整数）の値の最小値をｍｖに格納する動作を示している。
【００１０】
図２２に示すような繰返し処理がある動作記述１１１から、処理性能（処理レイテンシとクロック周期の積）が高いＲＴＬ記述を生成するためには、多くの処理を１制御サイクルで処理させることを狙って、繰返し処理を展開してＤＦＧを大きくする方法（例えば、非特許文献１参照。）や、繰返し処理をパイプライン処理させるスケジューリングを行い、繰返し処理のスループット性能を高める方法（例えば、非特許文献２参照。）や、それら２つを組み合わせた方法などが存在する。
【００１１】
図２２の動作記述１１１の場合は、繰返し処理間にデータ依存があるために、繰り返し処理をパイプライン処理化することができない。そのため、繰返し処理を展開する方法で高性能化を図ることになる。しかし、繰返し処理がなくなっても、データ依存に起因して、逐次的な処理が必要なＤＦＧとなり、選択元の値の数（図２２のＮ）によっては、高性能化が困難になる。
【００１２】
このような逐次的な処理となるＤＦＧのグラフ高さを削減し、高性能なＲＴＬ記述を生成する方法は、非特許文献３などで提案されている。
【非特許文献１】Ｄａｎｉｅｌ  Ｄ．Ｇａｊｓｋ，“Ｈｉｇｈ−Ｌｅｖｅｌ  Ｓｙｎｔｈｅｓｉｓ：Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｃｈｉｐ  ａｎｄ  Ｓｙｓｔｅｍ  Ｄｅｓｉｇｎ，”Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂ（１９９２／０４）
【非特許文献２】Ｌ．Ｃｈａｏ，Ａ．ＬａＰａｕｇｈ，Ｅ．Ｈｓｉｇｎ−Ｍｅａｎ  Ｓｈａ，“Ｒｏｔａｔｉｏｎ  Ｓｃｈｅｄｕｌｉｎｇ：Ａ  Ｌｏｏｐ  Ｐｉｐｅｌｉｎｉｎｇ  Ａｌｇｏｒｉｔｈｍ，”Ｐｒｏｃｅｄｄｉｎｇｓ  ｏｆ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ，１９９３
【非特許文献３】Ａ．Ｎｉｃｏｌａｕ，Ｒ．Ｐｏｔａｓｍａｎ，“Ｉｎｃｒｅｍｅｎｔａｌ  Ｔｒｅｅ  Ｈｅｉｇｈｔ  Ｒｅｄｕｃｔｉｏｎ  Ｆｏｒ  Ｈｉｇｈ  Ｌｅｖｅｌ  Ｓｙｎｔｈｅｓｉｓ，”Ｐｒｏｃｅｄｄｉｎｇｓ  ｏｆ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｃｏｎｆｅｒｅｎｃｅ，１９９１
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来のグラフ高さ削減方法では、ＤＦＧ内の逐次処理が、２入力の結合則又は分配則を満たす演算ノードで構成される場合のみ、グラフ高さ削減が適用可能である。このため、上述したような複数の値から最大値又は最小値を取得する動作を含んだ動作記述の処理に対しては、高性能なＲＴＬ記述を生成することができない。
【００１４】
本発明では、２入力の結合則又は分配則を満たさない演算ノードからなる、ＤＦＧ内の逐次処理がある場合に、高性能なＲＴＬ記述を生成する高位合成方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明のある局面に係る高位合成方法は、プログラミング言語で記述された動作記述からレジスタ転送レベルの回路記述を生成する高位合成方法であって、前記動作記述から、演算をノードで示し、かつデータの流れをエッジで示すデータフローグラフを含む中間データを生成するステップと、生成された前記中間データに含まれる前記データフローグラフを構成する部分グラフの中から、予め定義された参照グラフに一致する部分グラフを検出するグラフ検出ステップと、検出された前記部分グラフの各々について、当該部分グラフをノードとして代表するクラスタを生成するクラスタ生成ステップと、生成された前記クラスタが連続して接続されているクラスタグラフを抽出するステップと、抽出された前記クラスタグラフのグラフ高さが小さくなるように前記クラスタグラフを変形し、当該変形を前記データフローグラフに反映させるデータフローグラフ高さ削減ステップと、グラフ高さが削減された前記データフローグラフを含む前記中間データからレジスタ転送レベルの回路記述を生成するステップとを含むことを特徴とする。
【００１６】
これによると、データフローグラフ（ＤＦＧ）中にグラフ高さ削減が適用不可能な演算ノードが含まれる場合であっても、参照グラフに一致する部分グラフをノードであるクラスタとして代表させ、クラスタが連続して接続されているクラスタグラフを抽出している。このため、クラスタグラフに対してグラフ高さ削減を行なうことにより、２入力の結合則又は分配則を満たさない演算ノードをＤＦＧ中に含む場合であっても、ＤＦＧ内の逐次処理のグラフ高さを削減し、高性能なＲＴＬ記述を生成できる。
【００１７】
好ましくは、前記参照グラフは、２入力１出力のグラフであり、かつ、当該参照グラフを１つのノードとみなした場合に、当該ノードが示す演算は、結合則又は分配則を満たすことを特徴とする。
【００１８】
又は、前記参照グラフは、２ｎ入力ｎ出力（ｎは自然数）のグラフであり、前記参照グラフの入力及び出力をそれぞれｎ個ずつグループ化して、２入力１出力のグラフとし、各前記２入力１出力のグラフを１つのノードとみなした場合に、当該ノードが示す演算は、結合則又は分配則を満たすことを特徴とする。
【００１９】
これによって、クラスタを結合則又は分配則を満たす演算ノードと見なすことができ、従来のグラフ高さ削減方法への適用が容易に行なえる。
【００２０】
さらに好ましくは、前記データフローグラフ高さ削減ステップは、前記クラスタグラフの変形後の構造を示す変形構造を、遅延値及び面積の少なくとも１つの変形制約に基づいて決定する変形構造決定ステップと、決定された変形構造に従って、前記クラスタグラフを変形し、当該変形を前記データフローグラフに反映させる変形ステップとを含むことを特徴とする。
【００２１】
また、前記グラフ検出ステップでは、生成された前記中間データに含まれる前記データフローグラフを構成する部分グラフの中から、２つの入力のうち大きい値又は小さい値を出力する処理を示す参照グラフに一致する部分グラフを検出し、前記変形ステップでは、２つ以上の入力から任意の２入力を総当りで比較して、前記２つ以上の入力の最大値又は最小値を選択する処理を示すグラフである総当り比較選択グラフを１つ以上含む構造に前記クラスタグラフを変形し、前記変形構造を表す情報は、各総当り比較選択グラフの入力数と、総当り比較選択グラフ間の接続関係とを含むことを特徴とする。
【００２２】
これによって、複数の値から最大値又は最小値を求める逐次処理の動作記述から、回路面積と演算処理能力のトレードオフを考慮したレジスタ転送レベル（ＲＴＬ）の回路記述を生成することができる。
【００２３】
さらに好ましくは、前記変形制約は、設定ファイルによる指定、前記動作記述に含まれるプラグマによる指定及びＧＵＩ（Graphical User Interface）による指定の少なくとも１つ以上の方法によって予め定義されていることを特徴とする。
【００２４】
これによって、ユーザが意図した変形制約の指定を行なうことができる。
さらに好ましくは、前記変形構造決定ステップでは、予め定義された動作周期又は動作周波数に基づいてスケジューリングを行い、スケジューリング結果から前記変形制約を求めることを特徴とする。
【００２５】
また、前記変形構造決定ステップでは、前記スケジューリング結果から前記クラスタグラフがクリティカルパス上にあるか否かを判別し、前記クリティカルパス上にある場合には、変形構造が決定可能な最小遅延値を前記変形制約に設定し、前記クリティカルパス上にない場合は、変形構造が決定可能な最小面積を前記変形制約に設定することを特徴とする。
【００２６】
これによって、クリティカルパス上のクラスタグラフのみを変形することが可能なので、性能重視下においても不要な面積増加を防ぐことができる。
【００２７】
さらに好ましくは、前記データフローグラフ高さ削減ステップでは、前記変形構造決定ステップと、前記変形ステップとを、前記変形ステップにおける前記クラスタグラフの変形がなくなるまで繰返すことを特徴とする。
【００２８】
これによって、要求性能を満たす範囲で最小面積を実現するＲＴＬ記述を生成することができる。
【００２９】
本発明の他の局面に係る高位合成装置は、プログラミング言語で記述された動作記述からレジスタ転送レベルの回路記述を生成する高位合成装置であって、複数の値から最大値又は最小値を選択する機能を含む動作記述の入力を受け付ける動作記述入力手段と、前記動作記述で示される選択順序とは異なる順序で値を選択することにより前記複数の値から最大値又は最小値を選択する回路を含むレジスタ転送レベルの回路記述を出力するＲＴＬ記述出力手段とを備えることを特徴とする。
【００３０】
これによって、複数の値から最大値又は最小値を選択する機能を含んだ動作記述から、動作記述における選択順序とは異なる順序でデータを選択することにより、クリティカルパスにおける値の選択回数を減らした、高性能なＲＴＬ記述を生成することができる。
【００３１】
好ましくは、前記動作記述入力手段は、さらに、前記動作記述から、演算をノードで示しかつデータの流れをエッジで示すデータフローグラフを含む中間データを生成し、前記高位合成装置は、さらに、前記複数の値から最大値又は最小値を選択する機能を含む動作記述に対する変形制約を設定する制約設定手段と、前記制約設定手段において設定された前記変形制約を満たすようにデータフローグラフを変形する中間データ変形手段とを備え、前記ＲＴＬ記述出力手段は、変形後の前記データフローグラフより、前記動作記述で示される選択順序とは異なる順序で値を選択することにより前記複数の値から最大値又は最小値を選択する回路を含むレジスタ転送レベルの回路記述を生成し、出力することを特徴とする。
【００３２】
これによって、複数の値から最大値又は最小値を選択する機能を含んだ動作記述から、制約設定手段で設定された変形制約を満たす、動作記述における選択順序とは異なる順序でデータを選択することにより、クリティカルパスにおける値の選択回数を減らした、高性能なＲＴＬ記述を生成することができる。
【００３３】
なお、本発明は、このような特徴的なステップを含む高位合成方法又は特徴的な手段を含む高位合成装置として実現することができるだけでなく、高位合成方法に含まれる特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）等の記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは言うまでもない。
【発明の効果】
【００３４】
本発明の高位合成方法では、２入力の結合則又は分配則を満たさない演算ノードからなる、ＤＦＧ内の逐次処理の動作記述から、高性能なＲＴＬ記述を生成することができる。
【００３５】
また、複数の値から最大値又は最小値を求める逐次処理の動作記述がある場合には、回路面積と演算処理能力のトレードオフを図ることで、要求性能を満たす範囲で最小の面積を実現するＲＴＬ記述を生成することができる。
【発明を実施するための最良の形態】
【００３６】
（実施の形態１）
図１は、本発明の実施の形態１における高位合成装置の外観図である。高位合成装置は、パーソナルコンピュータやＥＷＳ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｗｏｒｋｓｔａｔｉｏｎ）などのコンピュータにより構成される。
【００３７】
図２は、本発明の実施の形態１における高位合成装置の構成を示す機能ブロック図である。
【００３８】
高位合成装置１００は、動作記述１１１を入力して、ＲＴＬ記述１１２を出力する装置であり、動作記述入力部１２１と、中間データ変形部１２２と、ＲＴＬ記述出力部１２３とを備えている。
【００３９】
動作記述１１１は、Ｃ言語等のプログラミング言語で動作が記述されたものである。
ＲＴＬ記述１１２は、Ｖｅｒｉｌｏｇ等のハードウェア記述言語又はＣ言語等のプログラミング言語で、レジスタとレジスタ間の組合せ回路が記述されたものである。
【００４０】
中間データ１１３は、ＣＤＦＧ等の既存の表現形式で、プログラムが表現されたものである。
【００４１】
動作記述入力部１２１は、動作記述１１１を、中間データ１１３に変換する処理部である。
【００４２】
中間データ変形部１２２は、高性能又は小面積のＲＴＬ記述を得るために、中間データの変形を行なう処理部である。変形としては、例えば背景技術で説明した不要処理の削除等がある。
【００４３】
ＲＴＬ記述出力部１２３は、中間データ１１３を、ＲＴＬ記述１１２に変換する処理部である。
【００４４】
図３は、本発明の実施の形態１における高位合成方法を示すフローチャートである。高位合成方法は、図２１を用いて説明した従来と同様のステップＳ５１〜Ｓ５５と、予め定義された結合則又は分配則を満たす参照グラフにマッチするグラフをＤＦＧから検出し、該グラフに対応するクラスタを生成するクラスタ生成ステップＳ１１と、生成されたクラスタが連続に接続しているクラスタグラフを抽出するクラスタグラフ抽出ステップＳ１２と、抽出されたクラスタグラフをグラフ高さが小さくなるように変形し、ＤＦＧにその変形を反映させるデータフローグラフ高さ削減ステップＳ１３とを含む。なお、参照グラフが結合則又は分配則を満たすとは、参照グラフ全体を２入力の演算ノードと見なした時に結合則又は分配則を満たすことを言う。
【００４５】
次に、高位合成装置１００において、図２２（図中のＮは４とする）に示した動作記述１１１を入力とした場合の処理の例を用いて、図３のフローチャートに即して、本発明の実施の形態１を説明する。
【００４６】
まず、動作記述入力部１２１が、動作記述１１１から図４に示すＣＤＦＧで表現された中間データ１１３を生成する（ステップＳ５１）。
【００４７】
次に、中間データ変形部１２２が、高性能なＲＴＬ記述を生成することが指定されたとして、ループ処理を展開し、図５に示すＣＤＦＧに変形する（ステップＳ５２）。
【００４８】
次に、中間データ変形部１２２が、図６に示す、予め定義された参照グラフをＤＦＧから検出し、図７に示すクラスタを含むグラフを生成する（ステップＳ１１）。クラスタは、検出された参照グラフを代表するノードのことである。参照グラフの検出は、例えば文献「Ｍ．Ｃｏｒａｚａｏ，Ｍ．Ｋｈａｌａｆ，Ｌ．Ｇｕｅｒｒａ，Ｍ．Ｐｏｔｋｏｎｊａｋ，ａｎｄ  Ｊ．Ｒａｂａｅｙ，“Ｐｅｒｆｏｍａｎｃｅ  Ｏｐｔｉｍｉｚａｔｉｏｎ  Ｕｓｉｎｇ  Ｔｅｍｐｌａｔｅ  Ｍａｐｐｉｎｇ  ｆｏｒ  Ｄａｔａｐａｔｈ−Ｉｎｔｅｎｓｉｖｅ  Ｈｉｇｈ−Ｌｅｖｅｌ  Ｓｙｎｔｈｅｓｉｓ”，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ  ｏｆ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｕｒｃｕｉｔｓ  ａｎｄ  Ｓｙｓｔｅｍｓ，ｖｏｌ．１５，  Ｎｏ．８，  １９９６」で公開されているテンプレートマッチング等を使用することで容易に実現することができる。
【００４９】
次に、中間データ変形部１２２が、図８に示すように同一の参照グラフにマッチングされたクラスタが連続に接続されたクラスタグラフを抽出する（ステップＳ１２）。
【００５０】
次に、中間データ変形部１２２が、非特許文献２に示された方法を用いて、クラスタグラフを図９に示すように変形し、ＤＦＧにその変形を反映させる（ステップＳ１３）。
【００５１】
次に、中間データ変形部１２２が、ＣＤＦＧ内の各処理ノードに対応する処理が実行するのに必要な制御サイクルを決定する（ステップＳ５３）。ステップＳ５３では、クロック周期（動作周期）又はクロック周波数（動作周波数）に基づいて、制御サイクルを決定する。
【００５２】
次に、ＲＴＬ記述出力部１２３が、スケジューリング結果に基づいて、ハードウェアリソースを回路に割り付け、必要に応じて、ハードウェアリソースの共有化を行う（ステップＳ５４）。
【００５３】
最後に、ＲＴＬ記述出力部１２３が、必要となる制御回路を生成し、データパスとあわせて、ＲＴＬ記述を生成する（ステップＳ５５）。
【００５４】
以上説明したように、本発明の実施の形態１によると、ＤＦＧの演算ノード単体ではグラフ高さの削減ができない場合においても、結合則又は分配則を満たす参照グラフにマッチするグラフをＤＦＧから検出し、当該グラフに対応するクラスタが連続に接続しているクラスタグラフを抽出している。また、クラスタグラフをグラフ高さが小さくなるように変形し、ＤＦＧに変形を反映させている。よって、グラフ高さを削減することができるため、より高性能なＲＴＬ記述を生成することができる。
【００５５】
なお、ここでは、予め定義された参照グラフが、２入力１出力の場合で説明したが、２ｎ入力ｎ出力（ｎは１以上の自然数）の参照グラフの場合においても、入出力をｎ個ずつグループ化することで、結合則又は分配則を満たす２入力１出力と見なせる場合は、同様の効果が得られる。
【００５６】
たとえば、図１０(ａ)に示した、Ｎ個の要素から最大値ｍｖを求めるのに加えて、最大値が格納されていた配列のインデックス値ｍｌも求める動作記述の場合は、図１０（ｂ）に示したように、４入力２出力の参照グラフを定義することでクラスタグラフを生成できる。図１０（ｂ）では同じ選択条件で選択される入力である｛ｉ０、ｊ０｝、｛ｉ１、ｊ１｝をそれぞれグループ化し、出力｛ｏ０、ｏ１｝をグループ化すればよい。
【００５７】
さらに、予め定義されている参照グラフは、入力する動作記述にあわせて、定義し直してもよいことは言うまでもない。
【００５８】
（実施の形態２）
図１１は本発明の実施の形態２における高位合成装置である。
【００５９】
高位合成装置２００は、実施の形態１と同様に、動作記述１１１を入力し、ＲＴＬ記述１１２を出力する装置であり、実施の形態１と同様の処理部１２１〜１２３に加えて、制約設定部２０１を備えている。
【００６０】
制約設定部２０１は、予め定義された遅延値、面積、遅延値と面積両方のいずれかの変形制約を、中間データ１１３に設定する処理部である。
【００６１】
図１２は、本発明の実施の形態２における高位合成方法を示すフローチャートである。高位合成方法は、図２１を用いて説明した従来と同様のステップＳ５１〜Ｓ５５と、実施の形態１と同様のステップＳ１１〜Ｓ１２と、クラスタグラフの変形構造を、遅延値、面積、遅延値と面積両方のいずれかの変形制約に基づいて決定する、変形構造決定ステップＳ２１と、決定された変形構造に従って、クラスタグラフを変形し、ＤＦＧにその変形を反映させる、変形ステップＳ２２とを備えている。
【００６２】
次に、高位合成装置２００において、図２２に示した動作記述を入力とした場合の処理の例を用いて、図１２のフローチャートに即して、本発明の実施の形態２を説明する。
【００６３】
まず、実施の形態１と同様に、ステップＳ５１とステップＳ５２を実行し、図５に示したＣＤＦＧを生成する。
【００６４】
次に、ステップＳ１１とステップＳ１２を実行し、クラスタグラフを抽出する。ただし、ステップＳ１１において、２つの入力のうち大きい値又は小さい値を出力するグラフを参照グラフとしてＤＦＧから検出する。この時、ステップＳ１２で抽出されたクラスタグラフは、Ｎ個の要素から最大値又は最小値を求める処理を表している。
【００６５】
次に、制約設定部２０１が、予め定義された変形制約を中間データ１１３に設定した後に、中間データ変形部１２２が、制約設定部２０１が設定した変形制約に基づいて、最大値（又は最小値）を求める場合に必要となる要素同士の比較演算に着目した変形構造を決定する（ステップＳ２１）。
【００６６】
図２２の動作記述では、比較演算がＮ個存在し、ＤＦＧ内ではＮ個の比較演算ノードが存在することになる。最低Ｎ個の比較演算があれば、最大値又は最小値を求めることできるが、比較演算数をＮより増加させることで、よりグラフ高さの小さいＤＦＧを生成することが可能である。グラフ高さが最小になるのは、任意のＮ＋１（初期値自体が加わるために、Ｎに１が足される）個の要素を総当りで比較して、その比較結果を用いて、最大値又は最小値を求めるように変形する場合である。図２２の動作では、繰返し処理１回目の条件判定は、常に成り立つために、ステップＳ５２の最適化処理で削除されると、比較要素はＮ、比較演算数はＮ−１となる。しかし、ここでの説明は、最適化処理で削除されないで、元の比較演算数があるものとして説明を統一する。
【００６７】
図１３は、Ｎを８とした場合の最大値を求めるＤＦＧであり、図１３（ａ）は、実施の形態１でグラフ高さ最小の場合を示し、図１３（ｂ）は、実施の形態２でグラフ高さ最小の場合を示している。
【００６８】
図１３(ｂ)において、総当り比較選択グラフ１３０１は、２つ以上の入力から任意の２入力を総当りで比較して、最大値又は最小値を選択するグラフである。総当り比較選択グラフにおいて、ＭＩＳｅｌはＮ＋１個の入力から１つを選択する多入力選択部であり、ＣｏｎｄＧｅｎはＮ＋１個の要素を総当りで比較した結果を用いて、ＭＩＳｅｌへの選択条件を生成する選択条件生成部である。図１４は、Ｎを３とした時の総当り比較選択グラフの例である。この例では多入力選択部ＭＩＳｅｌは３つの２入力セレクタノードＭＵＸで構成されており、選択条件生成部ＣｏｎｄＧｅｎは４個の要素を総当りで比較するのに必要な、4Ｃ2＝６個の比較演算ノードｇｔの結果を用いて選択条件を生成し、多入力選択部ＭＩＳｅｌに入力している。一般に、Ｎ＋１入力の選択条件生成部はN+1Ｃ2個の比較演算ノードｇｔを含み、図１３（ｂ）では9Ｃ2＝３６個の比較演算ノードｇｔを含む。ここで、選択条件生成部ＣｏｎｄＧｅｎで論理積（＆＆）や論理和（｜｜）等の論理演算ノードを用いているが、これらは１ビットの演算であり、比較演算ノードｇｔの遅延値に比べれば小さい。
【００６９】
図１３（ａ）ではクリティカルパスが２入力セレクタノードＭＵＸと比較演算ノードｇｔをそれぞれ４個通るのに対し、図１３（ｂ）ではクリティカルパスが選択条件生成部ＣｏｎｄＧｅｎ（比較演算ノードｇｔ１個といくつかの論理演算ノード）と、多入力選択部ＭＩＳｅｌ（２入力セレクタノードＭＵＸで構成する例の場合、最大４個の２入力セレクタノードＭＵＸ）を通るので、図１３（ｂ）のＤＦＧから生成されるＲＴＬ記述の方が高性能である。
【００７０】
この変形方法では、実施の形態１による方法よりもグラフ高さが削減され、高性能なＲＴＬ記述を生成することが可能となるが、実施の形態１による方法よりもグラフ高さを削減した場合は、最終的に生成されるＲＴＬ記述内の比較演算が多くなるため、面積が増加する。即ち、性能と面積のトレードオフ関係が発生する。例えば、図１５のように、図１３（ａ）よりグラフ高さは低い範囲で、図１３（ｂ）よりグラフ高さが高くなるようにクラスタグラフを変形すると、比較演算数は図１３（ａ）より多く、図１３（ｂ）より少なくなる。この時、ステップＳ２２で変形されたクラスタグラフは総当り比較選択グラフをクラスタとし、それを２つ以上（図１５では総当り比較選択グラフ（クラスタ）Ｇ０、Ｇ１、Ｇ２、Ｇ３、Ｇ４）含む構造となる。
【００７１】
したがって、ステップＳ２１では、予め設定された変形制約から、クラスタグラフの変形構造を決定する。変形制約としては、最大値（又は最小値）計算の遅延値、又は、最大値（又は最小値）計算に必要な面積で定義される。
【００７２】
変形構造を表す情報は、各総当り比較選択グラフ１３０１の入力数と、総当り比較選択グラフ間の接続関係を含む。図１６は、クラスタグラフが図１５の場合における、変形構造を表す情報の例である。出力と入力集合は、ＤＦＧノード又は各総当り比較選択グラフを要素とする。総当り比較選択グラフＧ０の出力には変数ノードｍｖが接続されており、入力には総当り比較選択グラフＧ１、Ｇ２、Ｇ３、Ｇ４が接続されている。総当り比較選択グラフＧ１の出力には総当り比較選択グラフＧ０が接続されており、入力には変数ノードａ［８］、ａ［７］が接続されている。以下、総当り比較選択グラフＧ２、Ｇ３、Ｇ４についても同様に入力数と接続関係が分かる。この情報によれば、１つ以上の総当り比較選択グラフを含む任意のクラスタグラフを表現可能であることは容易に分かる。
【００７３】
ステップＳ２１では、中間データ変形部１２２が、遅延値や面積等の変形制約と各種演算ノードの遅延値と面積等を含むライブラリ情報から、比較演算段数制約や比較演算数制約を求め、これらを用いて変形構造を決定する。
【００７４】
変形制約が遅延値の場合は、ステップＳ２１では遅延値から求めた比較演算段数制約の下で、比較演算数が最小となる構造を変形構造として決定する。比較演算段数制約の下で、比較演算数が最小となる構造を求めるには、全総当り比較選択グラフの入力数をパラメータとした、クラスタグラフの総比較演算数を評価関数として最小化する最適化問題を解けばよい。遅延値から求めた比較演算段数制約が１の例では、ステップＳ２１では図１３（ｂ）を変形構造として決定する。
【００７５】
また、変形制約が面積の場合は、ステップＳ２１では面積から求めた比較演算数制約の下で、例えば図１７のフローチャートによって、変形構造を決定する。図１７のフローチャートでは比較演算段数Ｓを１から増やしていって（ステップＳ１７１、Ｓ１７５）、比較演算段数制約Ｓにおける比較演算数の最小値ｍｉｎ（Ｓ）が比較演算数制約ｍａｘ＿Ｃ以下になれば（ステップＳ１７３でＹｅｓ）、比較演算数がｍｉｎ（Ｓ）となる構造を変形構造として決定する（ステップＳ１７４）。クラスタグラフの全ての総当り比較選択グラフの入力数が２となる場合に、比較演算段数Ｓは段数として取り得る最大のｃｅｉｌ（ｌｏｇ2（Ｎ＋１））となり（ただしｃｅｉｌ（Ａ）はＡ以上の最小の整数）、比較演算段数Ｓがこの値より大きくなる（ステップＳ１７２でＮｏ）と、変形制約を満たす構造は存在しなくなるので、エラーとする（ステップＳ１７６）。面積から求めた比較演算数制約が１６の例では、ｍｉｎ（１）＝３６となる図１３（ｂ）の構造では比較演算数制約を満たさず、次にｍｉｎ（２）＝4Ｃ2＋3Ｃ2＋３×2Ｃ2＝１２となる図１５の構造が比較演算数制約を満たし、変形構造として決定する。
【００７６】
また、変形制約が遅延値と面積の両方の場合は、ステップＳ２１では遅延値、面積から求めた比較演算段数制約、比較演算数制約の下で、例えば図１７においてステップＳ１７２の条件式の右辺を、ｃｅｉｌ（ｌｏｇ2（Ｎ＋１））から比較演算段数制約に置換えたフローチャートによって、変形構造を決定する。求められた比較演算段数が２、比較演算数が１０の例では、ｍｉｎ（１）＝３６となる図１３（ｂ）の構造では比較演算数制約を満たさず、次にｍｉｎ（２）＝１２となる図１５の構造が比較演算数制約を満たさず、次にステップＳ１７２において比較演算段数Ｓが比較演算段数制約より大きくなるので、エラー終了する。
【００７７】
変形制約の定義方法としては、設定ファイルによる指定、動作記述中のプラグマによる指定、ＧＵＩ（Graphical User Interface）による指定がある。
【００７８】
設定ファイルによる指定の場合、例えば、関数名と変形制約のペアを指定することで、指定された関数内の全クラスタグラフに変形制約を指定してもよい。
【００７９】
動作記述中のプラグマによる指定の場合、例えば、関数宣言の直前に変形制約を指定する旨のプラグマを記述することで、指定された関数内の全クラスタグラフに変形制約を指定してもよい。
【００８０】
ＧＵＩによる指定の場合、例えば、ＧＵＩ上のクラスタグラフを選択した状態で変形制約を指定するダイアログを開いて、変形制約を指定してもよい。
【００８１】
次に、中間データ変形部１２２が、ステップＳ２１が決定した変形構造に従って、クラスタグラフを変形し、その変形をＤＦＧに反映させる（ステップＳ２２）。
【００８２】
以降、実施の形態１と同様に、ステップＳ５３〜Ｓ５５まで実行し、ＲＴＬ記述を生成する。
【００８３】
なお、ここでは、予め定義された参照グラフが、２つの入力のうち大きい値、又は、小さい値を出力するグラフの場合で説明したが、２つの入力のうち大きい値、又は、小さい値を出力し、２つの入力に対応するインデックス値から、大きい値、又は、小さい値に対応するインデックス値を出力する図１０（ｂ）のようなグラフについても、入出力と対応するインデックス値をグループ化することで、同様の効果が得られる。このとき、要素数Ｎ＝３とした場合の総当り比較選択グラフ１３０１は図１８のようになり、同じ選択条件で選択される入力｛ｖ０，ｗ０｝、｛ｖ１，ｗ１｝、｛ｖ２，ｗ２｝、｛ｖ３，ｗ３｝をそれぞれグループ化し、出力｛ｏ０，ｏ１｝をグループ化すると、図１４と同様の扱いができる。
【００８４】
以上説明したように、本発明の実施の形態２によると、任意のＮ個の要素から最大値（又は最小値）を求める場合において、比較演算の個数を考慮しながら、実施の形態１より高性能なＲＴＬ記述を生成することが可能である。
【００８５】
さらに、定義された制約に基づいて、性能と面積とのトレードオフを取ることで、面積重視や性能重視など目的に合わせたＲＴＬ記述を生成することが可能である。
【００８６】
（実施の形態３）
実施の形態３における高位合成装置は実施の形態１における高位合成装置１００と同様である。
【００８７】
図１９は、本発明の実施の形態３における高位合成方法を示すフローチャートである。高位合成方法は、図２１を用いて説明した従来と同様のステップＳ５１〜Ｓ５５と、実施の形態１と同様のステップＳ１１〜Ｓ１２と、スケジューリング結果から変形構造を決定する自動変形構造決定ステップＳ３１と、実施の形態２と同様のステップＳ２２とを含む。
【００８８】
次に、高位合成装置１００において、図２２に示した動作記述を入力とした場合の処理の例を用いて、図１９のフローチャートに即して、本発明の実施の形態３を説明する。
【００８９】
まず、実施の形態２と同様に、ステップＳ５１、ステップＳ５２、ステップＳ１１とステップＳ１２を実行し、Ｎ個の要素から最大値又は最小値を求める処理行なうクラスタグラフを抽出する。
【００９０】
次に、ステップＳ５３を実行し、中間データ変形部１２２が、ＣＤＦＧ内の各処理ノードに対応する処理が実行するのに必要な制御サイクルを決定する。
【００９１】
次に、ステップＳ３１を実行する。ステップＳ３１は、変形制約が、制約設定部２０１で設定されたものでは無く、スケジューリング結果からを求められたものである点を除いては、実施の形態２のステップＳ２１と同様である。
【００９２】
スケジューリング結果から変形制約を求める例として、クリティカルパスの情報を用いることができる。この時、例えば、クリティカルパス上にクラスタグラフがある場合は比較演算段数制約が１段になるよう変形制約を設定し、それ以外は比較演算段数制約がｃｅｉｌ（ｌｏｇ2（Ｎ＋１））段になるよう変形制約を設定する。
【００９３】
次に、中間データ変形部１２２が、ステップＳ３１が決定した変形構造に従って、クラスタグラフを変形し、その変形をＤＦＧに反映させる（ステップＳ２２）。
【００９４】
以降、実施の形態１と同様に、ステップＳ５３〜Ｓ５５まで実行し、ＲＴＬ記述を生成する。
【００９５】
以上説明したように、本発明の実施の形態３によると、ＲＴＬ回路の性能を劣化する原因となっている、クリティカルパス上のクラスタグラフのみ変形することが可能であるので、性能重視下においても、不要な面積増加が防止される。
【００９６】
（実施の形態４）
実施の形態４における高位合成装置は実施の形態１における高位合成装置１００と同様である。
【００９７】
図２０は、本発明の実施の形態４における高位合成方法を示すフローチャートである。高位合成方法は、図２１を用いて説明した従来と同様のステップＳ５１〜Ｓ５５と、実施の形態１と同様のステップＳ１１〜Ｓ１２と、実施の形態３と同様のステップＳ３１と、実施の形態２と同様のステップＳ２２と、変形されたクラスタグラフが存在するかを判定し、存在する場合はステップＳ５３へ戻らせ、存在しない場合はステップＳ５４へ進ませる制御を行なうステップＳ４１とを含む。
【００９８】
次に、高位合成装置１００において、図２２に示した動作記述を入力とした場合の処理の例を用いて、図２０のフローチャートに即して、本発明の実施の形態４を説明する。
【００９９】
まず、実施の形態３と同様に、ステップＳ５１、ステップＳ５２、ステップＳ１１、ステップＳ１２を実行し、Ｎ個の要素から最大値又は最小値を求める処理行なうクラスタグラフを抽出する。
【０１００】
次に、ステップＳ５３を実行し、中間データ変形部１２２が、ＣＤＦＧ内の各処理ノードに対応する処理が実行するのに必要な制御サイクルを決定する。
【０１０１】
次に、実施の形態３と同様にステップＳ３１を実行し、中間データ変形部１２２が、スケジューリング結果から求めた変形制約を下に、クラスタグラフの変形構造を決定する。
【０１０２】
次に、ステップＳ２２で、中間データ変形部１２２が、ステップＳ３１で決定された変形構造に従って、クラスタグラフを変形し、その変形をＤＦＧに反映させる。
【０１０３】
次に、ステップＳ４１で、ステップＳ２２で変形されたクラスタグラフが存在すれば、ステップＳ５３へ戻り、存在しなければステップＳ５４へ進む。
【０１０４】
以降、実施の形態１と同様に、ステップＳ５４、Ｓ５５を実行し、ＲＴＬ記述を生成する。
【０１０５】
以上説明したように、本発明の実施の形態４によると、ステップＳ３１とステップＳ２２を変更するクラスタグラフがなくなるまで繰り返すので、要求性能を満たす範囲で最小面積を実現するＲＴＬ記述を生成することができる。
【０１０６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０１０７】
本発明の高位合成方法は、２入力の結合則又は分配則を満たさない演算ノードからなる、ＤＦＧ内の逐次処理の動作記述から、高性能なＲＴＬ記述を生成することができる特徴を有しており、大規模集積回路の設計に広く利用することができる。
【図面の簡単な説明】
【０１０８】
【図１】本発明の実施の形態１〜４における高位合成装置の外観図である。
【図２】本発明の実施の形態１、３及び４における高位合成装置の構成を示した機能ブロック図である。
【図３】本発明の実施の形態１における高位合成方法のフローチャートである。
【図４】動作記述から生成されたＣＤＦＧの一例を示す図である。
【図５】図４のＣＤＦＧから変形されたＣＤＦＧの一例を示す図である。
【図６】本発明の実施の形態１における高位合成方法のクラスタ生成ステップでＤＦＧから検出する参照グラフの一例を示す図である。
【図７】本発明の実施の形態１における高位合成方法のクラスタ生成ステップで生成されたクラスタを含むグラフの一例を示す図である。
【図８】本発明の実施の形態１における高位合成方法のクラスタグラフ抽出ステップで抽出されたクラスタグラフの一例を示す図である。
【図９】本発明の実施の形態１における高位合成方法のデータフロー高さ削減ステップでグラフ高さを削減されたクラスタグラフの一例を示す図である。
【図１０】配列値から最大値と最大値に対応するインデックス値を求める動作記述と、参照グラフの入力及び出力のグループ化の一例を示す図である。
【図１１】本発明の実施の形態２における高位合成装置の構成を示した機能ブロック図である。
【図１２】本発明の実施の形態２における高位合成方法のフローチャートである。
【図１３】本発明の実施の形態１における高位合成方法と実施の形態２における高位合成方法によるグラフ高さ最小のＤＦＧの一例を示す図である。
【図１４】本発明の実施の形態２における入力数４の総当り比較選択グラフの一例を示す図である。
【図１５】本発明の実施の形態２における高位合成方法のデータフロー高さ削減ステップでグラフ高さを削減されたＤＦＧの一例を示す図である。
【図１６】本発明の実施の形態２における変形構造を表す情報の一例を示す図である。
【図１７】本発明の実施の形態２における高位合成方法の変形構造決定ステップで変形制約が面積である場合のフローチャートの一例を示す図である。
【図１８】本発明の実施の形態２における値の入力数４、入力に対応するインデックス値の入力数４の総当り比較選択グラフの一例を示す図である。
【図１９】本発明の実施の形態３における高位合成方法のフローチャートである。
【図２０】本発明の実施の形態４における高位合成方法のフローチャートである。
【図２１】従来の高位合成方法のフローチャートである。
【図２２】配列値から最大値を求める動作記述例を示した図である。
【符号の説明】
【０１０９】
１００、２００  高位合成装置
１１１  動作記述
１１２  ＲＴＬ記述
１１３  中間データ
１２１  動作記述入力部
１２２  中間データ変形部
１２３  ＲＴＬ記述出力部
２０１  制約設定部
【図１】
2009169694.tif 000003
【図２】
2009169694.tif 000004
【図３】
2009169694.tif 000005
【図４】
2009169694.tif 000006
【図５】
2009169694.tif 000007
【図６】
2009169694.tif 000008
【図７】
2009169694.tif 000009
【図８】
2009169694.tif 000010
【図９】
2009169694.tif 000011
【図１０】
2009169694.tif 000012
【図１１】
2009169694.tif 000013
【図１２】
2009169694.tif 000014
【図１３】
2009169694.tif 000015
【図１４】
2009169694.tif 000016
【図１５】
2009169694.tif 000017
【図１６】
2009169694.tif 000018
【図１７】
2009169694.tif 000019
【図１８】
2009169694.tif 000020
【図１９】
2009169694.tif 000021
【図２０】
2009169694.tif 000022
【図２１】
2009169694.tif 000023
【図２２】
2009169694.tif 000024