JP4470110B2 - 高位合成方法およびシステム - Google Patents

高位合成方法およびシステム Download PDF

Info

Publication number
JP4470110B2
JP4470110B2 JP2004317616A JP2004317616A JP4470110B2 JP 4470110 B2 JP4470110 B2 JP 4470110B2 JP 2004317616 A JP2004317616 A JP 2004317616A JP 2004317616 A JP2004317616 A JP 2004317616A JP 4470110 B2 JP4470110 B2 JP 4470110B2
Authority
JP
Japan
Prior art keywords
unit
scheduling
loop
logic circuit
operations
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.)
Expired - Fee Related
Application number
JP2004317616A
Other languages
English (en)
Other versions
JP2006127346A (ja
Inventor
渡 高橋
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2004317616A priority Critical patent/JP4470110B2/ja
Publication of JP2006127346A publication Critical patent/JP2006127346A/ja
Application granted granted Critical
Publication of JP4470110B2 publication Critical patent/JP4470110B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成方法およびシステムに関する。
動作記述からRTL回路を自動生成する高位合成技術の一例は、Kluwer Academic Publishersにより刊行された「HIGH-LEVEL SYNTHESIS」(非特許文献1)に記載されている。概略的に示すと、まず、入力された動作記述を解析してCDFG(コントロール/データフローグラフ)を生成し、CDFGにおける演算およびデータをステップと呼ばれる状態遷移マシンの状態に対応した時間に割り当てる(スケジューリング)。続いて、スケジューリングの結果に基づいて演算やデータを演算器やレジスタに割り当てる(資源割当)。そして、資源割当の結果に基づいてデータパスを生成し、各資源の入力セレクタを制御するコントローラを生成することで最終的なRTL回路を得る。
このような高位合成技術によれば、データ依存関係にある複数の演算を同じステップにスケジューリングすることができ、1つの演算器を複数の演算で共有することができる。すなわち、演算器やレジスタの資源が複数の演算およびデータで時分割に共有され、少ない資源を用いて動作記述の演算を実現することが可能となる。
この高位合成技術では、しかしながら、データパス生成処理においてレジスタを含まないループが生成されることがある。このループはどのステップでもループの一部分しか使用せず、ループ全体を使うことがない。このようなループが存在すると、論理合成時の静的遅延解析が難しくなるという問題がある。そこで、この問題の解決を目的とした技術がいくつか提案されている。
たとえば、特許第3386427号公報(特許文献1)には、資源割当が行われた後で検出されたループを削除する手順を有する高位合成方法が開示されている。より詳しくは、ループが検出されると、そのループを構成する演算器の演算を他の演算器へ割り当てたり、当該演算器に別の演算を割り当てたりする演算器割当の変更を行い、それによってループ数が減少するかどうかを調べる。ループ数が減少する場合には当該割当変更を採用し、減少しない場合には新たな演算器を生成して変更対象の演算器と置き換え、上記演算器割当の変更処理を繰り返す。この手順をループが無くなるまで繰り返す。
また、特開2003−76728号公報(特許文献2)には、ループ発生を防止する演算器アロケーション設計方法が開示されている。具体的には、スケジューリング結果に基づいて、着目演算と同一クロックサイクルに実行される演算のうち、着目演算にデータを供給する前演算と着目演算からデータを受け取る後演算とを求める。ある演算器Aに対して演算Bと演算Cとを割り当てるとき、演算Bを着目演算としたときの演算Bの前演算または後演算に演算Cがある場合、あるいは、演算Cを着目演算としたときの演算Cの前演算または後演算に演算Bがある場合、ループが生成されると判断される。ループが生じる場合には、演算BおよびCを異なる演算器に割り付ける。
特許第3386427号公報 特開2003−76728号公報 "HIGH-LEVEL SYNTHESIS"(Daniel Gajski, Nikil Dutt, Allen Wu, Steve Lin著、Kluwer Academic Publishers刊、1992年)
しかしながら、上記従来の高位合成技術では、ループ発生を防ごうとすると不必要な演算器を生成する可能性がある。特許文献1に記載された方法では、ループを構成する演算器の割り当て変更のみを行っているために、資源割当後に他の演算器に割当変更できない場合、ループを削除できる他の可能性を検討することなく演算器が新たに追加されてしまう。また、特許文献2に記載された方法では、複数の演算を割り当てるときに、演算の割り当て順序によって先に割り当てられた演算が邪魔となり、後から割り当てようとした演算のために新たな演算器を生成してしまう場合がある。
本発明の目的は、RTL回路を少ない演算器を用いて自動生成可能なループ回避機能を有する高位合成方法およびシステムを提供することにある。
本発明の第1の側面によれば、動作記述から生成された演算およびデータの依存関係に基づいて、ループを回避しながら、各演算およびデータのスケジューリングと前記演算の演算器への割当とを実行し、スケジューリングおよび演算器割当の結果に基づいて前記論理回路を生成する。
スケジューリングおよび演算器割当は、スケジューリング時に演算をある時間ステップに割り当て可能か否かを判定し、割り当て可能であれば演算を演算器に割り当てた時にループが形成されるか否かを判定し、ループが形成されない演算器が存在すれば当該演算を当該時間ステップに割り当てるとともに当該演算器に割り当て、ループが形成されない演算器が存在しなければ当該演算を当該時間ステップに割り当てない、ことにより実行されることを特徴とする
本発明の第2の側面によれば、動作記述から生成された演算およびデータの依存関係に基づいて各演算およびデータのスケジューリングを実行し、スケジューリング結果に基づいて同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、演算集合の演算が実行可能な演算器の集合を生成し、演算集合および演算器集合に基づいてループを回避しながら演算集合の演算と演算器集合の演算器との組み合わせを決定し、決定された組み合わせに従って資源割り当てを実行し、その結果を用いて論理回路を生成することを特徴とする。
本発明の一実施形態によれば、組み合わせの決定は、演算集合のある演算と演算器集合のある演算器とを仮に組み合わせたときにループが生成されるか否かを判定し、ループが生成される場合には当該組み合わせを除外し、演算集合と演算器集合との間のループが生成されない組み合わせのうち最大マッチング数および最小コストを有する組み合わせを決定する、ことにより実行される。
本発明の第3の側面によれば、動作記述から生成された演算およびデータの依存関係に基づいて、ループを回避しながら、各演算およびデータのスケジューリングと演算の演算器への割当とを実行し、スケジューリング結果のみに基づいて、同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、演算集合の演算が実行可能な演算器の集合を生成し、演算集合および演算器集合に基づいて、ループを回避しながら、演算集合の演算と演算器集合の演算器との組み合わせを決定し、決定された組み合わせに従って資源割り当てを実行し、その結果を用いて論理回路を生成することを特徴とする。
上述したように、本発明の第1の側面によれば、ループを回避しながら各演算およびデータのスケジューリングと演算の演算器への割当とを実行する。したがって、演算を時間ステップに割り当てるスケジューリング時に、演算をそのステップに割り当てることによってループができるかを判別し、ループができる場合は当該演算をそのステップに割り当てないことが可能となる。たとえば、スケジューリング時に依存関係のある2つの演算を同じステップに割り当てた場合にループができるかを判別し、ループができる場合は同じステップに割り当てないで次のステップに割り当てることが可能である。これにより、不必要な演算器を生成することなく、指定された演算器数でRTL論理回路を生成することができる。
本発明の第2の側面によれば、スケジューリング結果に基づいて同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合と、演算集合の演算が実行可能な演算器の集合とを生成し、演算集合および演算器集合に基づいてループを回避しながら演算と演算器との組み合わせを決定し、決定された組み合わせに従って資源割り当てを実行する。データ依存のない演算の集合と演算器の集合とを用いることで、ループが生成されるかを判別しやすくなる。さらに、資源割り当て段階でループを生成する割当候補を除外しているので、不必要な演算器の生成を有効に回避でき、指定された演算器数でRTL論理回路を生成することができる。
また、複数の演算と複数の演算器とを同時に割り当てることができるために、演算を1つずつ順次演算器に割り当てる従来の方法で問題となった先行割り当ての弊害を少なくすることができる。
本発明の第3の側面によれば、ループ回避機能付きスケジューリングで演算器を制限しながらスケジューリングを行った後、スケジューリング結果のみを用いて、再度、複数の演算を複数の演算器にループを回避しながら割り当てることにより、面積のさらなる改善が得られる。
以下、本発明の実施形態について説明する。なお、図面に明示されてはいないが、本発明による高位合成方法は、コンピュータプログラムにより記述可能であり、そのプログラムをコンピュータ上で実行することにより実現することができる。したがって、プログラムを格納するメモリとそのプログラムを実行するコンピュータとを有するシステムであれば、本発明による高位合成方法を実装可能である。
1.第1実施形態
図1は本発明の第1実施形態による高位合成方法の概略的流れを示すフローチャートである。まず動作記述1を入力し、動作記述を解析してCDFG(コントロール/データフローグラフ)を生成する(S1)。続いて、ループ回避機能付きスケジューリングおよび演算器割り当てを実行し(S2)、その結果を基に、隣接するステップの境であるクロック境界を横切るデータ枝をレジスタに割り当てるレジスタ割当を行なう(S3)。そして、資源割当の結果に基づいてデータパスを生成し(S4)、各資源の入力セレクタを制御するコントローラを生成することで最終的なRTL回路を得る(S5)。
以下、説明の複雑化を避けるために簡単な演算を一例として取り上げ、本実施形態による高位合成方法の各ステップS1〜S5を詳細に説明する。
(CDFG生成)
図2(A)は動作記述の一例を示す図であり、(B)はその動作記述を変換して生成されたコントロール/データフローグラフCDFGを示す図である。
まず、CDFG生成S1では、図2(A)に示す動作記述を解析し、図2(B)に示すデータおよび演算の依存関係を表現するCDFGに変換する。CDFGは、データおよび演算を節点、それらのデータ依存を有向枝で表現するグラフである。図2(A)で使われているデータa,b,c,d,e,x,yおよび1は、それぞれ図2(B)のCDFGでは四角い節点v7〜v15で表される。図2(A)で行われている演算(ここでは、2つの加算、4つの減算)はそれぞれ図2(B)では丸い節点n1〜n6で表され、データまたは演算のデータ依存はそれぞれ図2(B)の有向枝e16〜e28で表されている。
(ループ回避機能付きスケジューリングおよび演算器割当)
CDFGが生成されると、ループ回避機能付きスケジューリングおよび演算器割当S2が実行される。スケジューリングでは、各演算の遅延時間を考慮して、同じステップに割り当てられたデータ依存のある演算の遅延の総和がクロック周期に収まるように各演算をステップに割り当てる必要がある。また同じステップである種類の演算を、指定した個数以下の演算器に割り当てるように制限をかける場合もある。
1.1)スケジューリングの全体的フロー
図3は本実施形態において演算をステップに割り当てる手順の一例を示すフローチャートであり、図4は図3における割当可否判定S22の一例を示すフローチャートである。演算をステップに割り当てる手順は、ステップsを一つずつ増やしながら全ての演算がステップに割り当てられるまで繰り返される。
まずステップsを1に設定し(S18)、ステップに割り当てられていない演算が入力側に存在しない演算を割り当て候補グループに追加する(S19)。続いて、この割り当て候補グループに演算が存在するか否かを判断し(S20)、存在すれば(S20の「ある」)、出力までの演算の遅延の総和などの評価値に基づいて演算を一つずつ選び、割り当て候補グループから取り除く(S21)。なお、評価値は、演算器の大きさや遅延、出力までの距離などから求められる。
続いて、選ばれた演算がそのステップに割り当てられるか否かおよび演算の演算器への割り当ての可否を、後述するように演算の遅延、演算器の数およびループ形成の有無に従って判断する(S22)。割り当て不可の時は(S22のNO)、S20に戻る。割り当て可能であれば(S22のYES)、そのステップに演算を割り当て(S23)、その演算とデータ依存のある次の演算であって当該ステップに未割り当ての演算が入力側に存在しないものを割り当て候補グループに追加し(S24)、S20に戻る。なお、割り当て可能であれば(S22のYES)、後述するように演算器割り当ても実行される。上記S20〜S24は、割り当て候補グループに演算がなくなるまで繰り返される。
割り当て候補グループに演算がなくなると(S20の「ない」)、全ての演算が当該ステップに割り当てられたか否かを判定し(S25)、未割り当ての演算が残っていれば(S25のNO)ステップsを+1して(S26)、S19に戻る。このようにしてS19〜S26が繰り返され、全ての演算がステップに割り当てられると(S25のYES)、スケジューリングおよび演算器割り当てを終了する。
1.2)ループ回避機能付き割り当て可否判定
図4は、図3における割り当て可否判定手順(S22)の詳細を示すフローチャートである。先ず、同種類の演算の個数が演算器の個数制限を超えているか否かを判断し(S27)、超えていなければ、演算器の遅延に基づいて同じステップに割り当てられているデータ依存のある演算の遅延の総和がクロック周期を超えているか否かを判断する(S28)。超えていなければ、続いて、仮に演算を演算器に割り当てたときにループができるか否かを判別する(S29)。すなわち、割り当てができる全ての演算器でループが発生する場合はその演算はこのステップに割り当てない(S30)、割り当てができる演算器でループが発生しない演算器が1つでもある場合はその演算はこのステップに割り当てられる(S31)と判断する。
演算を演算器に割り当てたときにループができない場合(S29の「ある」)、割り当てができる演算器であってループが発生しないものの中から面積などの割り当てコストを考慮して一つの演算器を選択してその演算を割り当て、次の演算の割り当て時のループ判別のために演算器の接続状態を更新する(S32)。演算器の接続状態を更新するとは、具体的には、その演算を割り当てた演算器と、その割り当てた演算と同じステップに割り当てられた依存関係のある演算が割り当てられた演算器と、の間に接続状態があることを表す線を追加することである。
同種類の演算の個数が演算器の個数制限を超えている場合(S27の「超える」)、演算器の遅延に基づいて同じステップに割り当てられているデータ依存のある演算の遅延の総和がクロック周期を超えている場合(S28の「超える」)、あるいは、ループができない演算器がない場合、すなわちループが形成される場合(S29の「ない」)、当該ステップへの当該演算の割り当ては不可であると判断される(S30)。
このように、割り当て可否判定S22では、演算の資源割り当てがスケジューリング時に行われる。
1.3)ループ判定方法
図5は本実施形態で使用されるループ判定法を説明するためのフローグラフの一例を示す模式図である。図5において、CDFG上の演算(y1)を演算器(x1)に割り当てたときにループができる条件は次の通りである:
・CDFG上の演算(y1)の入力側のデータ依存が存在する同じステップの演算(y3,y4)が割当先の演算器(x1)の出力先に接続されている演算器グループG2のどこかに割り当てられている;あるいは
・演算(y1)の出力先のデータ依存が存在する同じステップの演算(y2,y5)が割当先の演算器(x1)の入力側に接続されている演算器グループG1のどれかに割り当てられている。
スケジューリングでは、入力側の演算しか割り当てられていないので、入力側の演算(y3,y4)が割当先の演算器(x1)の出力先に接続されている演算器グループG2のどこかに割り当てられているか否かを調べて判別する。このようなループ判定方法は、計算量は比較的大きくなるが必要メモリが少なくなるという利点がある。
なお、これ以外のループ判定方法を用いることもできる。たとえば、特許文献2に記載されているような着目演算の前演算と後演算とからループ判定を行ってもよい。この方法では、必要メモリは大きくなるが計算量は比較的少なくなる。
1.4)スケジューリングおよび演算器割当の具体例
次に、図6および図7を参照しながら、スケジューリングおよび演算器割当の具体例を説明する。その際、必要に応じて図3および図4も参照する。
図6および図7は、本実施形態におけるスケジューリングおよび演算器割当を説明するためのフローグラフおよび接続状態グラフの途中状態を示す模式図である。ここでは、加算器の数を1、減算器の数を2、クロック周期を演算器2つ分の遅延が収まる値とする制限をかけた場合のスケジューリングおよび演算器割当を示す。
まず、ステップに割り当てられていない演算が入力側に存在しない演算である減算(n1)、減算(n3)が割り当て候補グループに追加される(S19)。
次に割り当て候補グループから一つ演算を評価値に従って選択する。評価値は、演算器の大きさや遅延、出力までの距離などから求められるが、ここでは出力までの距離を用いる。どちらもそれぞれに関連する出力xおよびyまでの距離は同じなので、評価値は同じになる。ここでは減算(n1)が選ばれたとする(S21)。そして、減算(n1)をステップs=1に割り当てられるか否かを次のようにして判断する(S22)。
まず、減算(n1)は、演算器の制約に関しては減算器数=2であるから個数制限は満たしている(S27)。また、減算器1個であるから遅延総和はクロック周期に収まる(S28)。さらに、減算(n1)を減算器m1に割り当ててもループは生じない(S29)。よって、ステップs=1に割り当てることができると判断され(S31)、減算(n1)が減算器m1に割り当てられ(S32)、ステップs=1に割り当てられる(S23)。
続いて、減算(n1)にデータ依存する次の演算であってその入力側にステップに割り当てられていない演算が存在しない演算、すなわち加算(n2)を割り当て候補グループに追加する(S24)。したがって、割り当て候補グループに現時点で残存するのは減算(n3)と加算(n2)である。
加算(n2)と減算(n3)とでは、それぞれの出力xおよびyまでの距離が減算(n3)の方が遠いので減算(n3)が選ばれ(S21)、上述した減算(n1)と同様にステップに割り当て可能か否かが判断される(S22)。減算は2個まで同じステップに割り当てることができ、遅延の総和もクロック周期内であり、また減算(n3)を減算器m2に割り当ててもループは形成されないので、減算(n3)は減算器m2に割り当てられ(S32)、ステップs=1に割り当てられる(S23)。そして、次の演算である加算(n5)が割り当て候補グループに追加される(S24)。
次に、加算(n2)と加算(n5)とではどちらも同じ評価値であるが、ここでは加算(n2)が選ばれ(S21)、加算(n2)がステップs=1に割り当て可能か否かを判断する(S22)。個数制限は満たし(S27)、減算(n1)および加算(n2)の2つ分であるからクロック周期が演算器2つ分の遅延が収まる(S28)。また加算(n2)を加算器m3に割り当ててもループは形成されないので、加算(n2)は加算器m3に割り当てられ、減算器m1の出力から加算機m3の入力へ接続を表示する線e29が追加される(S32)。同時に、加算(n2)はステップs=1に割り当てられ(S23)、次の演算である減算(n4)が割り当て候補グループに追加される(S24)。
続いて、評価値に基づき、加算(n5)が選ばれる(S21)。しかしながら、すでにステップs=1では加算が1つ割り当てられているので、加算(n5)はステップs=1に割り当てることができない(S30)。したがって、減算(n4)が選ばれる(S21)。
減算(n4)に関しては、ステップs=1ですでに減算を2個使っているために割り当てることができない(S30)。この段階で、割り当て候補グループに演算がなくなっているため(S20)、ステップsを1つ増やし(S26)、ステップs=2にして同様にスケジューリングおよび演算器割当を行い、加算(n5)をステップs=2に割り当て、加算器m3に割り当てる。
こうして、図6に示すように、減算(n1)、加算(n2)および減算(n3)はステップs=1に、加算(n5)はステップs=2にそれぞれ割り当てることができる。この段階で、割り当て候補グループには減算(n4)と減算(n6)とが存在する。そこで、減算(n6)が選択された場合の割り当て可否の判断は次のようになる。
まず減算はステップs=2に割り当てられていないので、減算器2個の個数制限を越えていないことが確認され(S27)、次に同じステップのデータ依存のある演算の遅延の総和は演算器2つ分なので遅延の総和もクロック周期制限を超えていないことを確認される(S28)。最後に、それぞれの減算器m1、m2に割り当て可能か否かの判断と、仮に割り当てた時にループが発生するか否かの判断を行う(S29)。
まず、減算器m1、m2にはステップs=2ではまだ演算が割り当てられていないので減算(n6)を割り当てることができる。減算(n6)を仮に減算器m1に割り当てると、減算(n6)の入力側でデータ依存がある同じステップの加算(n5)が加算器m3に割り当てられており、この加算器m3は減算器m1の出力先に接続されているために、ループが発生すると判断される。
他方、減算(n6)を仮に減算器m2に割り当てた時は、減算器m2には出力先に何も演算器が接続されていないので、ループは発生しないと判断される。割り当て可能でループが発生しない演算器が存在するから、減算(n6)はステップs=2に割り当られ、減算(n6)は割り当て可能でループが発生しない減算器m2に割り当てが決定される。そして、図7に示すように、同じステップs=2で依存関係のある加算(n5)が割り当てられた加算器m3から減算(n6)を割り当てた減算器m2に接続を示す枝を接続する。以下、同様の手順で、最後の減算(n4)の割当が行われる。
(レジスタ割当)
上述したようにスケジューリングと演算器割当が終了すると、1つのデータにつき1つの入力ピンまたは出力ピンを生成して割り当て、続いて、クロック境界を横切る有効枝を別途レジスタに割り当てる。違うクロック境界を横切る有効枝同士はレジスタを共有することができる。
図8は本実施形態におけるレジスタ割当の一例を示すフローグラフである。ここでは、レジスタr1に枝e16、e22、e26が割り当てられ、レジスタr2に枝e17、e24が、レジスタr3に枝e17、e24が、レジスタr4に枝e23、e28がそれぞれ割り当てられている。
以上述べたスケジューリングおよび演算器割当S2とレジスタ割当S3とにより、資源割り当てが完了する。
(データパス生成)
資源割当の次にはデータパス生成S4を行う。データパス生成とはCDFGの有向枝に対応した配線を生成し、演算器またはレジスタにマルチプレクサを用いて選択的に接続する処理である。
図9は上述した資源割当に基づいてデータパス生成した回路を示す回路図である。図8のレジスタr1に割り当てられた枝e16、e22、e26から、このレジスタr1には、枝e16の入力元であるデータa(v7)に対応するピンa(p1)からの配線(w1)と、枝e22の入力元である減算(n3)に対応しかつ枝e26の入力元である減算(n4)にも対応する減算器m2からの配線(w2)と、がマルチプレクサx1を通して接続される。全てのレジスタおよび演算器において同様の作業を行うことで各演算器および各レジスタに必要であればマルチプレクサを用いて配線が接続される。
(コントローラ生成)
データパス生成の次にはコントローラ生成S5を行う。コントローラ生成とは、データパス生成で生成されたマルチプレクサの選択制御信号を生成する処理である。
図10は、図9にて生成された回路に対してコントローラ生成を行った例を示すブロック図である。コントローラc1は7つのマルチプレクサx1〜x7を制御する。
2.第2実施形態
図11は本発明の第2実施形態による高位合成方法の概略的流れを示すフローチャートである。まず動作記述1を入力し、動作記述を解析してCDFG(コントロール/データフローグラフ)を生成する(S1)。続いて、スケジューリングを実行し(S10)、その結果を基に、ループ回避機能付き資源割り当てを実行する(S11)。そして、資源割当の結果に基づいてデータパスを生成し(S4)、各資源の入力セレクタを制御するコントローラを生成することで最終的なRTL回路を得る(S5)。
本実施形態による高位合成方法のS1、S4およびS5は第1実施形態と同じであるから説明は省略し、第1実施形態と異なるスケジューリングS10およびループ回避機能付き資源割当S11について、具体例を示しながら詳細に説明する。
(スケジューリング)
本実施形態におけるスケジューリングS10は、基本的には通常のスケジューリング手順を採用し、図3に示す手順に従って実行される。ただし、割当可否判定S22では、予め定められた演算の遅延総和および個数の制限に従って、選ばれた演算がそのステップに割り当てられるか否かを判断する(S22)。第1実施形態のような演算器の割当はスケジューリング時には行われない。その他の動作は既に説明したとおりであり、ステップsを一つずつ増やしながら全ての演算がステップに割り当てられるまで繰り返される(図3のS19〜S26参照)。
(ループ回避機能付き資源割当)
2.1)全体的フロー
図12は本発明の第2実施形態におけるループ回避機能付き資源割当の手順を示すフローチャートである。本実施形態の資源割当手順は、いくつかの演算を同時に割り当てる手順を含み、全ての演算を演算器に割り当てるまで繰り返される。
まず、未割り当て演算があるか否かを調べ(S101)、割り当てていない演算がない場合は終了し、割り当てていない演算がある場合は、割り当てていない演算から適当に演算を1つ選択し割当演算リストに追加する(S102)。
続いて、選択された演算と同じステップにスケジューリングされた同じ種類の演算から、既に割当演算リストに入っている演算とデータ依存がない演算を1つずつ選択し、割当演算リストに追加する(S103)。そして、割当演算リストに登録された演算を実行可能な演算器を集め、割当先の演算器リストを作る(S104)。
次に、割当演算リストの演算を割当先演算器リストの演算器に仮に割り当て、ループ生成の有無を調べることで、二部グラフを生成する(S105)。すなわち、演算と演算器との仮の割当により増加する面積や遅延などから割当コストを求めるとともに、ある演算をある演算器に割り当てた時にループが生成されるかどうかを判定し、もしループが生成される場合には、当該演算と演算器との組み合わせを二部グラフの割当候補から除外する。具体的には、ループを生成する演算に対応する節点から演算器に対応する節点に枝をはらないように二部グラフを生成する。
そして、二部グラフの最大マッチング数最小重みマッチングを行い、演算と演算器との割当を決定し(S106)、演算を演算器に割り当てる(S107)。演算を演算器に割り当てることで演算器間の入出力が接続される場合には、その接続状態を示す枝を当該演算器間に追加する(S108)。
2.2)具体例
図13は、本実施形態における資源割当を説明するためのフローグラフおよび接続状態グラフの途中状態を示す模式図、図14は本実施形態における二部グラフ生成を説明するための模式図、図15は、本実施形態における資源割当により得られたフローグラフおよび接続状態グラフを示す模式図である。ここでは、図13の右側に図示されたスケジューリング済みCDFGを用いて、本実施形態による演算の演算器への割当の一例を具体的に説明する。
まず、6つの演算(n1)-(n6)から減算(n1)を選び、割当演算リストに追加する(S102)。そして、当該減算(n1)と同じステップにスケジューリングされた同じ種類の演算である減算(n3)に着目する。スケジューリング済みCDFGから分かるように、減算(n3)はすでに選ばれている減算(n1)とデータ依存関係にないので、減算(n3)は割当演算リストに追加される(S103)。
続いて、割当演算リストに登録された減算(n1)および(n3)を実現可能な減算器m1およびm2を選び、割当先演算器リストを生成する(S104)。
そして、図14(A)に示すように、割当演算リストにある演算を割当先演算器リストにある演算器に割り当てた時のそれぞれのコストを計算して二部グラフを生成する(S105)。この時、それぞれの演算をそれぞれの演算器に割り当てた時にループが生成されるかを判定する。ループ生成の判定は図5で説明した方法等を用いることができる。
図13に示すCDFGでは、演算(n1)および(n3)を演算器m1およびm2のどちらに割り当ててもループが生成されないので、そのまま枝を生成して図14(A)に示す二部グラフを生成する。そして、このニ部グラフの最大マッチング数最小重みマッチング問題を解くと(S106)、減算(n1)は減算器m1に、減算(n3)は演算器m2にそれぞれマッチングされる解が得られ、それに従って図14(B)に示すように演算を演算器に割り当てる(S107)。
同様の処理を加算(n2)対して行うことで加算(n2)を加算器m3に割り当て、加算(n5)に対して行うことで加算(n5)を加算器m3に割り当てる。この資源割当の途中の状態が図13に示されている。このとき、同じステップでデータ依存関係のある減算(n1)と加算(n2)をそれぞれ減算器m1と加算器m3にそれぞれ割り当てたことで、減算器m1から加算器m3へのデータ依存を表す有向枝e32が接続される(S108)。
次に減算(n4)に対して割り当てを行うために、減算(n4)を割当演算リストに追加する(S102)。続いて、減算(n4)と同じステップにある同じ種類の演算である減算(n6)に着目する。減算(n6)はすでに選ばれている減算(n4)とデータ依存の関係にないので割当演算のリストに追加する(S103)。次に減算(n4)および(n6)が実現可能な演算器である減算器m1およびm2を集めて割当先演算器のリストを作る(S104)。
そして、割当演算リストにあるそれぞれの演算を割当先演算器リストにある演算器に割り当てた時のコストを計算して二部グラフを生成する。その際、それぞれの演算をそれぞれの演算器に割り当てた時にループが生成されるかを判定する。
この場合、減算(n6)を減算器m1に割り当てるとループが生成される。すなわち、減算(n6)と同じステップにおいて、減算(n6)の入力側でデータ依存のある加算(n5)はすでに加算器m3に割り当てられており、この加算機m3の入力は減算器m1の出力に接続されている。したがって、減算(n6)を減算器m1に割り当てるとループが生成されることが判明する。そこで、減算(n6)と減算器m1の組み合わせは、二部グラフの割当候補から除外され、図14(C)に示すように減算(n6)から減算器m1への枝は生成されない。
この二部グラフの最大マッチング数最小重みマッチング問題を解くことで(S106)、図14(D)に示すように減算(n5)と演算器m1のマッチング、減算(n6)と減算器m2のマッチングが得られる(S107)。それに従って演算を演算器に割り当て、加算器m3の出力を減算器m2の入力に接続することで(S108)、図15に示す割り当て結果を得る。
図16は、図15に示す資源割当結果からデータパス生成した回路図である。このように資源割り当てをすることによって加算器を複製しなくてもループのない回路を得ることができる。
3.第3実施形態
本発明による高位合成方法では、上述した第1実施形態のループ回避機能付きスケジューリングおよび演算器割当(S2)と、第2実施形態のループ回避機能付き資源割当(S11)と、を組み合わせることも可能である。
図17は本発明の第3実施形態による高位合成方法の概略的流れを示すフローチャートである。まず動作記述1を入力し、動作記述を解析してCDFG(コントロール/データフローグラフ)を生成する(S1)。続いて、CDFGの各演算およびデータのスケジューリングを第1実施形態と同様にループを回避しながら行う(S2)。そして、ループを回避しながらスケジューリングした時に決定された演算器割当を削除した後(S12)、再度、第2実施形態の資源割当によりループを回避しながら演算器割当を行う(S11)。以下、データパス生成(S4)およびコントローラ生成(S5)を行い、最終的にRTL回路2を生成する。
このようにループ回避機能付きスケジューリングS2で演算器を制限しながらスケジューリングを行った後、それにより決定された演算器割当を削除し、再度、複数の演算を複数の演算器にループを回避しながら割り当てる資源割当S11を実行することにより、面積のさらなる改善が得られる。
本発明の第1実施形態による高位合成方法を概略的に示すフローチャートである。 (A)は動作記述の一例を示す図であり、(B)はその動作記述を変換して生成されたコントロール/データフローグラフCDFGを示す図である。 本実施形態によるループ回避機能付きスケジューリング手順を示すフローチャートである。 図3における演算割当可否判定の詳細を示すフローチャートである。 本実施形態で使用されるループ判定法を説明するためのフローグラフの一例を示す模式図である。 本実施形態におけるスケジューリングおよび演算器割当を説明するためのフローグラフおよび接続状態グラフの途中状態を示す模式図である。 図6に示すフローグラフおよび接続状態グラフの次の状態を示す模式図である。 本実施形態におけるレジスタ割当の一例を示すフローグラフである。 上述した資源割当に基づいてデータパス生成した回路を示す回路図である。 図9にて生成された回路に対してコントローラ生成を行った例を示すブロック図である。 本発明の第2実施形態による高位合成方法の概略的流れを示すフローチャートである。 本実施形態によるループ回避機能付き資源割当手順を示すフローチャートである。 本実施形態における資源割当を説明するためのフローグラフおよび接続状態グラフの途中状態を示す模式図である。 本実施形態における二部グラフ生成を説明するための模式図である。 本実施形態における資源割当により得られたフローグラフおよび接続状態グラフを示す模式図である。 図15に示す資源割当結果からデータパス生成した回路図である。 本発明の第3実施形態による高位合成方法の概略的流れを示すフローチャートである。
符号の説明
S2 ループ回避機能付きスケジューリングおよび演算器割当
S3 レジスタ割当
S11 ループ回避機能付き資源割当

Claims (17)

  1. コンピュータにより、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成方法において、
    前記コンピュータによるスケジューリング・演算器割当手段が、前記動作記述から生成された演算およびデータの依存関係に基づいて各演算およびデータのスケジューリングを行う際に、前記スケジューリング時に前記演算をある時間ステップに割り当て可能か否かを判定し、割り当て可能であれば前記演算を演算器に割り当てた時にループが形成されるか否かを判定し、ループが形成されない演算器が存在しなければ前記演算を当該時間ステップに割り当てず、ループが形成されない演算器が存在すれば前記演算を当該時間ステップに割り当てるとともに当該演算器に割り当て、
    前記コンピュータによる論理回路生成手段が前記スケジューリングおよび演算器割当の結果に基づいて前記論理回路を生成する、
    ことを特徴とする高位合成方法。
  2. 前記スケジューリング時に前記演算を前記時間ステップに割り当て可能か否かは、前記時間ステップにおける当該演算の個数制限および遅延総和制限にしたがって判定されることを特徴とする請求項1に記載の高位合成方法。
  3. 前記ループが形成されるか否かは、
    同じ時間ステップにおいて前記演算の入力側のデータ依存が存在する演算が割当先の演算器の出力先に接続されている演算器に割り当てられているか否か、かつ、
    同じ時間ステップにおいて前記演算の出力先のデータ依存が存在する演算が割当先の演算器の入力側に接続されている演算器に割り当てられているか否かに、
    よって判定されることを特徴とする請求項1または2に記載の高位合成方法。
  4. コンピュータにより、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成方法において、
    前記コンピュータによるスケジューリング手段が前記動作記述から生成された演算およびデータの依存関係に基づいて、各演算およびデータのスケジューリングを実行し、
    前記コンピュータによる資源割当手段が、前記スケジューリング結果に基づいて、同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    前記コンピュータによる論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ことを特徴とする高位合成方法。
  5. 前記資源割当手段は、
    前記演算集合のある演算と前記演算器集合のある演算器とを仮に組み合わせたときにループが生成されるか否かを判定し、
    ループが生成される場合には当該組み合わせを除外し、
    前記演算集合と前記演算器集合との間のループが生成されない組み合わせのうち、最大マッチング数および最小コストを有する組み合わせを前記演算集合の演算と前記演算器集合の演算器との組み合わせとして決定する、
    ことを特徴とする請求項4に記載の高位合成方法。
  6. コンピュータにより、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成方法において、
    前記コンピュータによるスケジューリング・演算器割当手段が、前記動作記述から生成された演算およびデータの依存関係に基づいて、ループを回避しながら、各演算およびデータのスケジューリングと前記演算の演算器への割当とを実行し、
    前記コンピュータによる資源割当手段が、前記スケジューリング結果のみに基づいて、同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    前記コンピュータによる論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ことを特徴とする高位合成方法。
  7. 前記スケジューリング・演算器割当手段は、
    前記スケジューリング時に前記演算をある時間ステップに割り当て可能か否かを判定し、
    割り当て可能であれば、前記演算を演算器に割り当てた時にループが形成されるか否かを判定し、
    ループが形成されない演算器が存在すれば、前記演算を当該時間ステップに割り当てるとともに当該演算器に割り当て、
    ループが形成されない演算器が存在しなければ、前記演算を当該時間ステップに割り当てないことを特徴とする請求項6に記載の高位合成方法。
  8. 前記資源割当手段は、
    前記演算集合のある演算と前記演算器集合のある演算器とを仮に組み合わせたときにループが生成されるか否かを判定し、
    ループが生成される場合には当該組み合わせを除外し、
    前記演算集合と前記演算器集合との間のループが生成されない組み合わせのうち、最大マッチング数および最小コストを有する組み合わせを前記演算集合の演算と前記演算器集合の演算器との組み合わせとして決定する、
    ことを特徴とする請求項6または7に記載の高位合成方法。
  9. コンピュータに、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成を実行させるためのプログラムにおいて、
    フローグラフ生成手段が前記動作記述から演算およびデータの依存関係を表すフローグラフを生成し、
    スケジューリング・演算器割当手段が、前記フローグラフに基づいて各演算およびデータのスケジューリングを行う際に、前記スケジューリング時に前記演算をある時間ステップに割り当て可能か否かを判定し、割り当て可能であれば前記演算を演算器に割り当てた時にループが形成されるか否かを判定し、ループが形成されない演算器が存在しなければ前記演算を当該時間ステップに割り当てず、ループが形成されない演算器が存在すれば前記演算を当該時間ステップに割り当てるとともに当該演算器に割り当て、
    論理回路生成手段が前記スケジューリングおよび演算器割当の結果に基づいて前記論理回路を生成する、
    ように前記コンピュータを機能させることを特徴とする高位合成プログラム。
  10. コンピュータに、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成を実行させるためのプログラムにおいて、
    フローグラフ生成手段が前記動作記述から演算およびデータの依存関係を表すフローグラフを生成し、
    スケジューリング手段が、前記フローグラフに基づいて各演算およびデータのスケジューリングを実行し、
    資源割当手段が、前記スケジューリング結果に基づいて同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ように前記コンピュータを機能させることを特徴とする高位合成プログラム。
  11. コンピュータに、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成を実行させるためのプログラムにおいて、
    フローグラフ生成手段が前記動作記述から演算およびデータの依存関係を表すフローグラフを生成し、
    スケジューリング・演算器割当手段が、前記フローグラフに基づいて、ループを回避しながら、各演算およびデータのスケジューリングと前記演算の演算器への割当とを実行し、
    資源割当手段が、前記スケジューリング結果のみに基づいて、同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ように前記コンピュータを機能させることを特徴とする高位合成プログラム。
  12. 動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成システムにおいて、
    プログラムを格納するメモリと、前記プログラムを実行するためのコンピュータと、を有し、
    前記プログラムは、
    フローグラフ生成手段が前記動作記述から演算およびデータの依存関係を表すフローグラフを生成し、
    スケジューリング・演算器割当手段が、前記フローグラフに基づいて各演算およびデータのスケジューリングを行う際に、前記スケジューリング時に前記演算をある時間ステップに割り当て可能か否かを判定し、割り当て可能であれば前記演算を演算器に割り当てた時にループが形成されるか否かを判定し、ループが形成されない演算器が存在しなければ前記演算を当該時間ステップに割り当てず、ループが形成されない演算器が存在すれば前記演算を当該時間ステップに割り当てるとともに当該演算器に割り当て、
    論理回路生成手段が前記スケジューリングおよび演算器割当の結果に基づいて前記論理回路を生成する、
    ように前記コンピュータを機能させる、
    ことを特徴とする高位合成システム。
  13. 動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成システムにおいて、
    プログラムを格納するメモリと、前記プログラムを実行するためのコンピュータと、を有し、
    前記プログラムは、
    フローグラフ生成手段が前記動作記述から演算およびデータの依存関係を表すフローグラフを生成し、
    スケジューリング手段が、前記フローグラフに基づいて各演算およびデータのスケジューリングを実行し、
    資源割当手段が、前記スケジューリング結果に基づいて同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ように前記コンピュータを機能させる、
    ことを特徴とする高位合成システム。
  14. 動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成システムにおいて、
    プログラムを格納するメモリと、前記プログラムを実行するためのコンピュータと、を有し、
    前記プログラムは、
    フローグラフ生成手段が前記動作記述から演算およびデータの依存関係を表すフローグラフを生成し、
    スケジューリング・演算器割当手段が、前記フローグラフに基づいて、ループを回避しながら、各演算およびデータのスケジューリングと前記演算の演算器への割当とを実行し、
    資源割当手段が、前記スケジューリング結果のみに基づいて、同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ように前記コンピュータを機能させる、
    ことを特徴とする高位合成システム。
  15. コンピュータにより、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成方法において、
    前記コンピュータによるスケジューリング・演算器割当手段が、前記動作記述から生成された演算およびデータの依存関係に基づいて、ループを回避しながら、各演算およびデータのスケジューリングと前記演算の演算器への割当とを実行し、
    前記コンピュータによる資源割当手段が、前記スケジューリング結果に基づいて、同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    前記コンピュータによる論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ことを特徴とする高位合成方法。
  16. コンピュータに、動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成を実行させるためのプログラムにおいて、
    フローグラフ生成手段が前記動作記述から演算およびデータの依存関係を表すフローグラフを生成し、
    スケジューリング・演算器割当手段が、前記フローグラフに基づいて、ループを回避しながら、各演算およびデータのスケジューリングと前記演算の演算器への割当とを実行し、
    資源割当手段が、前記スケジューリング結果に基づいて、同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ように前記コンピュータを機能させることを特徴とする高位合成プログラム。
  17. 動作記述からレジスタ・トランスファ・レベル(RTL)の論理回路を自動生成するための高位合成システムにおいて、
    プログラムを格納するメモリと、前記プログラムを実行するためのコンピュータと、を有し、
    前記プログラムは、
    フローグラフ生成手段が前記動作記述から演算およびデータの依存関係を表すフローグラフを生成し、
    スケジューリング・演算器割当手段が、前記フローグラフに基づいて、ループを回避しながら、各演算およびデータのスケジューリングと前記演算の演算器への割当とを実行し、
    資源割当手段が、前記スケジューリング結果に基づいて、同一時間ステップ内の複数の演算であって互いにデータ依存のない未割り当て演算の集合を生成し、前記演算集合の演算が実行可能な演算器の集合を生成し、前記演算集合および前記演算器集合に基づいて、ループを回避しながら、前記演算集合の演算と前記演算器集合の演算器との組み合わせを決定し、前記決定された組み合わせに従って資源割り当てを実行し、
    論理回路生成手段が前記資源割り当ての結果を用いて前記論理回路を生成する、
    ように前記コンピュータを機能させる、
    ことを特徴とする高位合成システム。
JP2004317616A 2004-11-01 2004-11-01 高位合成方法およびシステム Expired - Fee Related JP4470110B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004317616A JP4470110B2 (ja) 2004-11-01 2004-11-01 高位合成方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004317616A JP4470110B2 (ja) 2004-11-01 2004-11-01 高位合成方法およびシステム

Publications (2)

Publication Number Publication Date
JP2006127346A JP2006127346A (ja) 2006-05-18
JP4470110B2 true JP4470110B2 (ja) 2010-06-02

Family

ID=36722013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004317616A Expired - Fee Related JP4470110B2 (ja) 2004-11-01 2004-11-01 高位合成方法およびシステム

Country Status (1)

Country Link
JP (1) JP4470110B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5267376B2 (ja) * 2009-08-07 2013-08-21 日本電気株式会社 動作合成装置、動作合成方法、ならびに、プログラム

Also Published As

Publication number Publication date
JP2006127346A (ja) 2006-05-18

Similar Documents

Publication Publication Date Title
US10089426B2 (en) Logic circuit generation device and method
JP4397744B2 (ja) 半導体集積回路の高位合成方法
US7107568B2 (en) System and method for reducing wire delay or congestion during synthesis of hardware solvers
US6493863B1 (en) Method of designing semiconductor integrated circuit
US20070168902A1 (en) Method for high-level synthesis of semiconductor integrated circuit
JP2012181852A (ja) タスク処理のスケジューリング方法及びこの方法を適用するための装置
JP3722351B2 (ja) 高位合成方法およびその実施に使用される記録媒体
JP4165712B2 (ja) データフローグラフの同一サブグラフ検出装置、高位合成装置、データフローグラフの同一サブグラフ検出方法、データフローグラフの同一サブグラフ検出制御プログラムおよび可読記録媒体
JP3765923B2 (ja) ハードウェア合成方法およびハードウェア合成装置並びにハードウェア合成プログラムを記録した記録媒体
JP4204039B2 (ja) 動作合成システム、動作合成方法、制御プログラム、可読記録媒体、論理回路の製造方法および論理回路
JP4647533B2 (ja) 演算処理装置、演算処理装置の内部構成決定方法および演算処理システム
JP2013539143A (ja) 論理時刻ベクトルに基づくタスクの実行をスケジュールするためのシステム
Amellal et al. Scheduling of a control data flow graph
JP2007034888A (ja) 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置
JP4470110B2 (ja) 高位合成方法およびシステム
JP2009025973A (ja) 動作合成装置、半導体集積回路の製造方法、動作合成方法、動作合成制御プログラムおよび可読記録媒体
JP2008171153A (ja) タスク管理装置
JP3370304B2 (ja) 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体
US6532584B1 (en) Circuit synthesis method
Bergamaschi et al. Scheduling under resource constraints and module assignment
Papa et al. Automatic large-scale integrated circuit synthesis using allocation-based scheduling algorithm
JP7400833B2 (ja) トポロジー設計装置、トポロジー設計方法、及びプログラム
JPH1031693A (ja) 専用アプリケーション・サブシステムの合成方法
JP3602697B2 (ja) 論理回路設計支援システム
Hara-Azumit et al. Clock-constrained simultaneous allocation and binding for multiplexer optimization in high-level synthesis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100204

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100217

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4470110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140312

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees