JP5009243B2 - 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法 - Google Patents

動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法 Download PDF

Info

Publication number
JP5009243B2
JP5009243B2 JP2008174004A JP2008174004A JP5009243B2 JP 5009243 B2 JP5009243 B2 JP 5009243B2 JP 2008174004 A JP2008174004 A JP 2008174004A JP 2008174004 A JP2008174004 A JP 2008174004A JP 5009243 B2 JP5009243 B2 JP 5009243B2
Authority
JP
Japan
Prior art keywords
constraint
behavioral synthesis
violation
node
scheduling
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
JP2008174004A
Other languages
English (en)
Other versions
JP2010015339A (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.)
Sharp Corp
Original Assignee
Sharp 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 Sharp Corp filed Critical Sharp Corp
Priority to JP2008174004A priority Critical patent/JP5009243B2/ja
Publication of JP2010015339A publication Critical patent/JP2010015339A/ja
Application granted granted Critical
Publication of JP5009243B2 publication Critical patent/JP5009243B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法に関し、特に、論理回路等の設計に用いられ、動作記述から論理回路を自動合成する動作合成装置において、ループ処理のパイプライン化時の制約違反検出機能を付加したもの、このような動作合成装置に対応する動作合成方法、該動作合成方法をコンピュータにより行うためのプログラム、このプログラムを格納したコンピュータ読み取り可能な記憶媒体、および動作合成装置により作成されたハードウエハ回路構成を示す回路情報に基づいて半導体集積回路を製造する方法に関するものである。
システムLSI等の大規模回路の設計においては、回路の動作記述からRTL(Register Transfer Level:レジスタトランスファレベル)記述を生成する、動作合成が行なわれる。動作合成は高位合成とも呼ばれる。動作合成では、ハードウェアの構造に関する情報を含まずに、処理のアルゴリズムのみを記述した動作記述から、ハードウェアが自動的に合成される。以下、従来の動作合成技術を用いて、動作記述からハードウエア構成を自動的に合成する過程について、簡単に説明する。
動作合成は図10に示す手順で行なわれる。
まず、図10に示すデータフロー生成では、アルゴリズム記述におけるデータの流れを解析し、データフローグラフと呼ばれるモデルを作成する(ステップS11)。データフローグラフは節点と枝より成る。枝はデータを表し、節点は演算を表す。各節点は、入力枝と出力枝によって接続され、入力枝が演算に与えられるデータ、出力枝が演算結果のデータを表す。また、各節点は演算の種類の情報も持っている。
例えば、次のC言語で記述された動作記述は、図11に示すデータフローグラフで表される。
x = a*b + b*c;
図11では、データフローグラブGf2は、2つの乗算を表す節点21、22と、1つの加算を表す節点23を含み、節点21で入力データaと入力データbとを乗算して得れらた結果と、節点22で入力データbと入力データcを乗算して得られた結果とが節点23で加算され、その加算結果が出力データxとして出力されることが表されている。
データフローグラフGdfは、計算機上では、例えば、図12に示すようなデータ構造で表される。図12によると、節点はNode構造体Nsで表され、各節点固有の節点番号node_idを持つ。また、in_edge,out_edge配列には入力枝と出力枝の枝番号が複数記憶される。図12に示す例では、節点は2入力1出力の演算であり、in_edgeは2つの要素、out_edgeは1つの要素を持つ。また、op_typeには加算・減算・乗算などの演算の種類を表す番号が記憶される。
枝はEdge構造体Esで表され、各枝固有の枝番号edge_idを持つ。from_node,to_nodeには、その枝が接続された節点の節点番号が格納される。
これらのデータ構造により、計算機上のメモリ上にデータフローグラフの各節点間の接続が記憶される。また、データフローグラフGdf上で、節点を接続する場合や、ある節点の入出力につながる別の節点を見つける場合は、上記データベースの各要素に節点や枝の番号を登録したり、参照したりする。
以下では説明をわかりやすくするため、データフローグラフを視覚的に表した図11のような図を用いて、節点を枝で接続したり、節点の上下につながる節点を見つけたりすることでデータフローグラフについて説明する。
次に、データフローグラフに対して、図10に示す、スケジューリング(ステップS12)やアロケーション処理(ステップS13)を行なう。スケジューリングは、データフローグラフ中の各節点をいつ実行するかを決める処理である。アロケーションはバインディングとも呼ばれ、データフローグラフ中の枝が表すデータを格納するレジスタを決める処理と、データフローグラフの節点が表す演算をどの演算器を用いて行なうかを決定する処理とからなる。動作合成方法によっては、アロケーションがスケジューリングの前に行なわれる場合もある。
次に、図10に示すデータパス生成では、スケジューリング結果とアロケーション結果を元に、演算器とレジスタを、必要に応じてセレクタを入れて接続し、データパスを得る(ステップS14)。図10に示すコントローラ生成では、スケジューリング結果とアロケーション結果を元に、データパス中のレジスタの読み込みタイミングやセレクタによる選択を制御するステートマシンを生成する(ステップS15)。データパス生成とコントローラ生成はどちらを先にやってもよい。最後にデータパスとコントローラを接続し、所望のハードウェアを得る。
データフローグラフから回路を得る処理の詳細の例が特許文献1に示されている。
実際の回路では、多くの場合、動作記述中にループ処理が含まれる。ループ処理は多数回繰り返し実行されるため、回路全体の処理時間のうちの多くはループ処理が占めることになる。よって、回路の処理を高速化したい場合には、ループ処理を高速化するのが効果的である。画像処理や音声処理などのように、ある一定の時間内に処理を終えねばならない高速性が要求される回路の場合は、このような高速化は必須である。
このようなループ処理の問題を解決する方法の一つとして、ループ処理をパイプライン化する方法がある。
従来のループ処理のパイプライン化方法の一例が特許文献2に示されている。この方法を簡単に説明する。
例えば、図13に示すようなループ処理を含む動作記述を考える。図13に示す動作記述は、i=0を一つづつインクリメントしながらi<10の条件を満たす間に、sum=sum+x(i)、sum=sum+y(i)、sum=sum+z(i)の各式で示される演算を行う処理を表す動作記述である。図14は、図13に示す動作記述のデータフローグラフである。
矩形501はループ処理を表し、これは、矩形501内のデータフローグラフGf5が繰り返し実行されることを意味する。この矩形501の上端と下端にある丸印509、510、511、512はループ処理のポートを表し、ポート509及び510が図13に示す変数iに、ポート511及び512が図13に示す変数sumに対応する。ポート509に格納された変数iの値がインクリメント演算節点508でインクリメントされて1つづつ増加するように変化し、ポート510に至る。ポート509とポート510は同じ変数を表し、ポート510に至ったデータは、次の繰り返しで再びポート509に戻されて使用される。図13に示す変数sumについても同様にポート511及び512が使用される。節点502は配列xの値x(i)を読み出す処理(Rx)を表し、入力が配列の要素番号、出力は要素番号の配列の値である。節点503及び504も同様に配列y,zの値y(i)、z(i)を読み出す処理(Ry)、(Rz)を表す。節点505、506、及び507は加算処理を表し、2つの入力値の加算結果を出力する。図14に示すデータフローグラフGf5はこれらの節点のほか、ループの終了をコントロールする比較節点なども含むべきであるが、説明の簡単化のため省略する。
ここで、ループ処理501は、4ステップで1回の処理を行うようにスケジューリングされている。図中の点線はステップの境目を表す。スケジューリングは、クロックピリオドや演算節点での遅延などを考慮して行われ、クロックピリオドが十分長ければ、配列の読み出しと加算を1ステップで処理することも可能である。このような複数の処理を1ステップで実行することはチェイニングと呼ばれる。図14のスケジューリングでは、配列の読み出しと加算の遅延合計がクロックピリオドを超えるため、チェイニングをせず、それぞれ別のステップに割り当てている。
図13に示す動作記述が表すループ処理が図14に示すようにスケジューリングされた場合、1ステップの実行に1サイクルが必要で、ループ処理の1回の繰り返しに4サイクルかかるため、ループ処理を10回繰り返すには40サイクル必要である。ここで、ループをパイプライン化して実行することにより、より少ないサイクル数で処理を完了することが可能である。
図15は、図14に示すループ処理をスループット3で実行する場合の実行タイミングを表す。ここで、スループットとは、ループ処理のある繰り返しが開始されるクロックサイクルと、ループ処理のその次の繰り返しが開始されるクロックサイクルとの間隔である。また、ループ処理の1回の繰り返しを全て実行するのに必要なクロックサイクル数をレイテンシと呼ぶ。ループ処理の0ステップ目では、配列xの値の読出処理(Rx)502が実行され、図15でもループの0ステップ目の実行箇所にRxの記号を記す。ループの1ステップ目では、配列yの値の読出処理(Ry)503と加算(+)505が実行されるが、図15では代表してRyと記す。同様に、ループの2ステップ目は配列zの値の読出処理(Rz)を、ループ処理の3ステップ目には加算処理(+)507とインクリメント(+1)508の2つが実行されるが+を1つだけ記す。
図15に示すとおり、サイクル1でループの1回目の繰り返し(i = 0)が始まり、サイクル1で配列xの値Rx(0)を読み、サイクル2でsumに加算しつつ配列yの値Ry(0)を読み、サイクル3で変数sumに加算しつつ配列zの値Rz(0)を読み出す。サイクル4では、配列zの値Rz(0)を変数sumに加算するが、同時にループの2回目の繰り返し(i = 1)が始まり、配列xの値Rx(1)の読み出しも行う。これを繰り返すことにより、ループ処理の10回の繰り返しを31サイクルで終了することができる。このように、ループ処理の1回の繰り返しが終了する前にループ処理の次の繰り返しを開始することにより、全体の処理(つまり既定数のループ処理の繰り返し)に必要なサイクル数を削減することが可能である。
図14に示すデータフローグラフを図15に示すようなタイミングで実行する回路を得る方法は、例えば特許文献3に記載されている。
特開2001−229217号公報 特開2001−142937号公報(図3) 特開2004−326463号公報
しかしながら、ループ処理をパイプライン化して実行しようとすると、処理を正しく行えなくなる場合がある。
例えば、図16は、図14に示すデータフローグラフGf5のループ処理をスループット1で実行する場合のタイミングを示している。ループの1回目の繰り返し(i = 0)がサイクル1で開始し、ループの2回目の繰り返し(i = 1)がサイクル2で開始するなど、ループの各繰り返しを1サイクルおきに開始する。もしこのタイミングで処理を行うことが可能であるならば、ループ処理の10回の繰り返しを13サイクルで終了することができる。しかし、図14に示すループ処理では、そのある繰り返しにおいて計算した変数sumの値は、ポート511、512を通じて、該ループ処理の次の繰り返しで使用されるため、図16に示すタイミングでループを実行することは不可能となる。
すなわち、1回目の繰り返しで変数sumの値は、サイクル4(ループ処理(i=0)のステップ3)で計算するにもかかわらず、2回目の繰り返しではサイクル3(ループ処理(i=1)のステップ1)で変数sumの値を使用してしまっており、ループ処理のある繰り返しにおける変数sumの値の計算が、ループ処理の次の繰り返しでの使用に間に合わない。このため、図14に示すデータフローグラフをスループット1でパイプライン化して実行しようとした回路は正しく動作しなくなってしまう。
このように、図13に示す記述は、スループット1で処理することは不可能であるが、設計者がこれを直感的に判断することは難しい。さらに、実際の設計においては、回路は複数のループ記述を含み、それぞれのループが複雑な処理を含んでおり、各ループが正しく動作するかを設計者が判断するのは非常に困難である。
本発明は、上記のような課題を解決するためになされたもので、ループ処理をパイプライン化したときに該ループ処理を正しく実行できるかどうかを自動的に判断することができる動作合成装置及び動作合成方法、このような動作合成装置あるいは動作合成方法を用いて設計された回路情報に基づいて半導体集積回路を製造する製造方法、該動作合成方法をコンピュータにより実行するための動作合成プログラム、およびこのような動作合成プログラムを格納した記録媒体を提供することを目的とする。
本発明に係る動作合成装置は、回路で実行される演算処理のアルゴリズムを記述した動作記述から、各種演算処理を行う演算処理部を示す各節点と、該節点間でのデータの流れを示す入出力枝とを含むデータフローグラフを生成し、該データフローグラフに基づいて動作合成を行なってハードウェア回路構成を作成する動作合成装置であって、複数の節点を含むループ処理をパイプライン化したデータフローグラフを作成する動作合成手段と、該ループ処理のパイプライン化により該データフローグラフのスケジューリング制約違反が発生するか否かを検出するスケジューリング違反検出手段とを備え、該スケジューリング違反検出手段は、該ループ処理をパイプライン化したデータフローグラフに、該ループ処理の開始を表す開始節点と終了を表す終了節点を設定してなるグラフの各枝に、該各枝で接続された節点間の演算の時間関係を表す重みを付与することにより得られた制約グラフを用い、該制約グラフの節点間の演算の時間関係と、該ループ処理の繰り返し時間間隔の制約である繰り返し間制約とに基づいて、該スケジューリング制約違反が発生するか否かを検出する動作合成装置であり、そのことにより上記目的が達成される。
本発明は、上記動作合成装置において、前記ループ処理における第1節点で生成した値を、該ループ処理のn回後の繰り返し時に、該ループ処理における第2節点で使用するとき、該ループ処理の繰り返し時間間隔であるスループットの値をtpとして、該第1節点での演算開始から該第2節点での演算開始までに必要な時間である重みに対してtp×nの値を減算して前記繰り返し間制約を生成する繰り返し間制約生成手段を備えていることが好ましい。
本発明は、上記動作合成装置において、前記繰り返し間制約生成手段で生成した繰り返し間制約を含む、演算の順序と時間関係を表す前記制約グラフ中に、前記重みの合計が正である閉ループがあるか否かの判断により制約違反があるかを判断する制約違反検出手段を備えていることが好ましい。
本発明は、上記動作合成装置において、前記繰り返し間制約生成手段を、前記ループ処理の前記第1節点から前記第2節点に向かう繰り返し間制約枝を前記繰り返し間制約として複数生成するよう構成し、生成した繰り返し間制約枝のうち1つを前記制約グラフから削除し、該削除により制約違反がなくなればその枝がスケジューリング制約違反の原因と判断し、あるいは該削除後に制約違反があれば、別の繰り返し間制約枝を該制約グラフから削除する処理の繰り返しにより、スケジューリング制約違反の原因箇所を検出する原因箇所検出手段を備えていることが好ましい。
本発明は、上記動作合成装置において、制約違反の原因となっている繰り返し間制約枝に対して、前記重みを1減らし、該重み削減により、制約違反がなくなれば減らした重みの合計値をスケジューリング制約違反の量として検出し、あるいは、該重み削減後に制約違反がまだあるならば、さらに重みを1減らす処理の繰り返しにより、スケジューリング制約違反量を検出する制約違反量検出手段を備えていることが好ましい。
本発明に係る動作合成方法は、コンピュータシステムにより、回路で実行される演算処理のアルゴリズムを記述した動作記述から、各種演算処理を行う演算処理部を示す各節点と、該節点間でのデータの流れを示す入出力枝とを含むデータフローグラフを生成し、該データフローグラフに基づいて動作合成を行なってハードウェア回路構成を作成する動作合成方法であって、該コンピュータシステムにおける動作合成手段が複数の節点を含むループ処理をパイプライン化したデータフローグラフを作成する動作合成ステップと、該コンピュータシステムにおけるスケジューリング違反検出手段が該ループ処理のパイプライン化により該データフローグラフのスケジューリング制約違反が発生するか否かを検出するスケジューリング違反検出ステップとを含み、該スケジューリング違反検出ステップでは、該スケジューリング違反検出手段が、該ループ処理をパイプライン化したデータフローグラフに、該ループ処理の開始を表す開始節点と終了を表す終了節点を設定してなるグラフの各枝に、該各枝で接続された節点間の演算の時間関係を表す重みを付与することにより得られた制約グラフを用い、該制約グラフの節点間の演算の時間関係と、該ループ処理の繰り返し時間間隔の制約である繰り返し間制約とに基づいて、該スケジューリング制約違反が発生するか否かを検出するものであり、そのことにより上記目的が達成される。
本発明は、上記動作合成方法において、前記コンピュータシステムにおける繰り返し間制約生成手段が、前記ループ処理における第1節点で生成した値を、該ループ処理のn回後の繰り返し時に、該ループ処理における第2節点で使用するとき、該ループ処理の繰り返し時間間隔であるスループットの値をtpとして、該第1節点での演算開始から該第2節点での演算開始までに必要な時間である重みに対してtp×nの値を減算して前記繰り返し間制約を生成する繰り返し間制約生成ステップを含むことが好ましい。
本発明は、上記動作合成方法において、前記コンピュータシステムにおける制約違反検出手段が、前記繰り返し間制約生成ステップで生成した繰り返し間制約を含む、演算の順序と時間関係を表す前記制約グラフ中に前記重み合計が正である閉ループがあるか否かの判断により制約違反があるかを判断する制約違反検出ステップを含むことが好ましい。
本発明は、上記動作合成方法において、前記繰り返し間制約生成ステップを、前記繰り返し間制約生成手段が、前記ループ処理の前記第1節点から前記第2節点に向かう繰り返し間制約枝を前記繰り返し間制約として複数生成するステップとし、前記コンピュータシステムにおける原因箇所検出手段が、生成した繰り返し間制約枝のうち1つを前記制約グラフから削除し、該削除により制約違反がなくなればその枝がスケジューリング制約違反の原因と判断し、あるいは該削除後に制約違反があれば、別の繰り返し間制約枝を該制約グラフから削除する処理の繰り返しにより、スケジューリング制約違反の原因箇所を検出する原因箇所検出ステップを含むことが好ましい。
本発明は、上記動作合成方法において、前記コンピュータシステムにおける制約違反量検出手段が、制約違反の原因となっている繰り返し間制約枝に対して、前記重みを1減らし、該重み削減により、制約違反がなくなれば減らした重みの合計値をスケジューリング制約違反の量として検出し、あるいは、該重み削減後に制約違反がまだあるならば、さらに重みを1減らす処理の繰り返しにより、スケジューリング制約違反量を検出する制約違反量検出ステップを含むことが好ましい。
本発明に係るプログラムは、上述した本発明に係る動作合成方法の各ステップをコンピュータに実行させるための処理手順が記述されたものであり、そのことにより上記目的が達成される。
本発明に係る記録媒体は、上述した本発明のプログラムが格納されたコンピュータ読み取り可能な可読記憶媒体であり、そのことにより上記目的が達成される。
以下、本発明の作用について説明する。
本発明においては、動作記述からデータフローグラフを生成し、該データフローグラフに基づいて動作合成を行なってハードウェア回路構成を作成する動作合成装置において、ループ処理をパイプライン化することによりスケジューリング制約違反が生じるかどうかを検出する手段を備えたので、ループ処理をパイプライン化したときに該ループ処理を正しく実行できるかどうかを自動的に判断することができる。
また、本発明においては、ループ処理における第1節点で生成した値を、ループ処理のn回後の繰り返し時に、該ループ処理における第2節点で使用する場合、ループ処理のスループット値をtpとして、第1節点から第2節点への重みに対してtp×nの値を減算して繰り返し間制約とし、また、繰り返し間制約を含む制約グラフ中に重み合計が正の閉ループがあるかを判断し、制約違反があるかを判断する機能を提供するので、繰り返し間制約枝のうち1つを制約グラフから削除し、もし、制約違反がなくなればその枝がスケジューリング制約違反の原因と判断し、もし、まだ制約違反があれば、別の繰り返し間制約枝に対して同じ処理を繰り返すことにより、スケジューリング制約違反の原因箇所を検出することができる。
また、制約違反の原因となっている繰り返し間制約枝に対して、重みを1減らし、もし、制約違反がなくなれば減らした重みの合計値をスケジューリング制約違反の量として検出し、もし、制約違反がまだあるならば、さらに重みを1減らして同じ処理を繰り返すことにより、スケジューリング制約違反量を検出することができる。
本発明によれば、ループ処理をパイプライン化したときに、回路が正しく動作するかどうかを動作合成システムが判断することができ、正しく動作しないと判断したときには、動作記述のどこを修正すればよいかを設計者に知らせることが可能となる。これにより、設計効率を高めることができる。
以下、本発明の実施形態について図面を参照しながら説明する。
(実施形態1)
以下、本発明の実施の形態を図面を用いて説明する。
図1は、本発明の実施形態1による動作合成装置を説明するブロック図である。
この実施形態1の動作合成装置1000は、ループをパイプライン化することによりスケジューリング制約違反が生じるかどうかを検出するスケジューリング制約違反検出手段805を含むものであり、以下この動作合成装置1000について詳述する。
本実施形態の動作合成装置1000は、コンピュータシステムを用いて構成したものであり、各種演算処理を行う計算機800と、該計算機800に対してデータの入力、指令などを行うためのキーボード,マウスなどの入力装置801と、該計算機800で得られたデータを設計者などのオペレータに分かるよう出力する出力装置803とを有している。
上記計算機800は、動作記述に基づいてデータフローグラフを作成するとともに、RTL記述のハードウエア回路構成を作成する動作合成手段802と、上記動作記述およびRTL記述を格納するデータベース804と、該データフローグラフに基づいてスケジューリング制約違反を検出するスケジューリング制約違反検出手段805とを備えている。
ここで、動作合成手段802は、入力装置801からの設計者の指示に従い、データベース804中の動作記述を動作合成し、具体的な回路構成を示すRTL記述を生成してデータベース804に出力し、また、動作合成により得られた回路構成の概要を示す動作合成結果を出力装置803に出力するものである。設計者は該出力装置803から出力される動作合成結果に基づいて設計結果を確認することができる。この動作合成手段802による処理は、従来の動作合成装置と同様の処理である。
本実施形態の動作合成装置1000は、上述したようにスケジューリング制約違反検出手段805を備えており、上記動作合成手段802は、データフローグラフを生成した後、スケジューリング制約違反検出手段805に、生成したデータフローグラフの情報を渡すよう構成されている。
このスケジューリング制約違反検出手段805は、スケジューリング制約違反箇所を特定し、スケジューリング制約違反結果を出力するものである。ここで、上記動作合成手段802及びスケジューリング制約違反検出手段805による処理は、計算機上で実行される。これらの手段による処理は、図1に示すように同一の計算機上で実行してもよいし、別の計算機上で独立して実行してもよい。また、データベース804を構成する記憶媒体も、図1に示すように計算機800の中に含まれてもよいし、計算機800の外部デバイスとして設けてあってもよい。
上記スケジューリング制約違反検出手段805は、制約グラフを生成する手段805aと、繰り返し間制約を生成する手段805bと、制約違反を検出する手段805cと、違反箇所を検出して出力する手段805dと、違反量を検出して出力する手段805eとを有している。
次に動作について説明する。
図2は、本実施形態の動作合成装置1000におけるスケジューリング制約違反検出手段805の処理フローについて説明する図である。
まず、制約グラフ生成手段805aは、動作合成手段802から入力されたデータフローグラフから制約グラフを生成する(ステップS901)。図3(b)は制約グラフGr10の一例を示す。
制約グラフGr10は節点31〜35とこれらの節点間の枝とからなり、節点はデータフローグラフ中の演算を示す。枝は、節点から節点への有向枝であり、重みを持つ。
例えば、ある節点Aからある節点Bへの枝の重みが2の場合、節点Aに対応する演算の開始後、2サイクル以上後で、節点Bの演算を開始することを示す。データフローグラフは節点間のデータの流れを表すのに対して、制約グラフは節点の演算の順序と時間関係のみを表すグラフである。制約グラフには特別な節点(s)31と節点(t)35とが含まれており、それぞれソースとシンクと呼び、処理の開始と終了を表す。制約グラフもデータフローグラフと同様の図12に示すような方法で、計算機上で表される。制約グラフの場合は枝に重みを表す項目を追加する必要がある。
図3(b)に示す制約グラフGr10を数式で表すと、図3(a)に示す線形計画問題と同じ意味となる。制約グラフでソース節点(s)31から他の各節点への最長経路を求めることにより、各節点の処理開始時間を求めることができる。なお、図3(a)において、tは最小化される。
例えば、図3(b)に示す節点(s)31から節点(Z)35への最長経路は、s→X→Y→Zの経路で経路長は3である。よって、節点(Z)35を3サイクル目で実行すれば、節点Xや節点Yで生成される、節点Zの入力となるべきデータは全てそろっており、正しい処理が可能である。制約グラフにおける節点間の最長経路はダイクストラの方法などにより簡単に求めることができる。ソースからの最長経路で求めた結果(つまり、各節点の処理開始時間)は、各節点の処理をできるだけ早く開始するスケジューリング結果となるので、ASAP(As Soon As Possible)スケジューリングと呼ばれる。
図13に示す動作記述の制約グラフは、図4(a)のようになる。ここで、配列アクセス(配列の値の読出し)や加算の遅延を全て、簡単のため1としている。図4(b)は、図4(a)の制約グラフGf11に対して、クロックピリオドを1とした場合のASAPスケジューリング結果である。このスケジューリングでは、最初に全ての配列の値を読んでしまうため、レジスタが多く必要となってしまうが、レジスタ数や演算器数も考慮したより複雑なスケジューリング手段によると、図14のようなスケジューリング結果を得ることも可能である。
しかし、本発明は、スケジューリング制約違反を検出するのが目的であるため、短時間で求まるASAPスケジューリングで十分である。ASAPスケジューリングも他の全てのスケジューリング手法も、制約グラフにおける各節点での制約を全て満たす解のうちの1つを選ぶものである。よって、ASAPスケジューリングで全ての節点での制約を満たす解が存在しないことがわかれば、どのようなスケジューリング手法を用いても解は存在しないし、逆に、ASAPスケジューリングで解があるとわかれば、他のスケジューリング手法でも解は必ず見つかる。
次に、図2に示す繰り返し間制約生成(ステップS902)について説明する。
ループ処理のスループットが指定されていない場合(スループットとレイテンシが等しい場合)には、図4(a)に示す制約グラフGf11でよいが、レイテンシよりも小さいスループットが指定された場合は、ループ処理の繰り返し間依存制約が発生するため、それに対する枝を制約グラフに加えなければならない。図14に示すデータフローグラフGf5の場合、ポート510とポート512の値がそれぞれ次の繰り返しで、ポート509及び511で使用されるため、繰り返し間依存が発生する。
図5に繰り返し間制約生成の一例を示す。図5(a)は、ループ処理のデータフローグラフGf12を表し、節点(B)1204で作られた値は、ポート1202及び1201を通じて、次の繰り返しで節点(A)1203で使用される。
ここで、ループ処理のスループットを3、レイテンシを5、節点(B)1204の遅延を1とすると、図5(b)に示すように、3サイクル目で実行される節点(B)1206で生成する値を使用する次の繰り返しの節点(A)1207は、節点(B)の遅延が1のため、4サイクル目以降で実行されねばならない。これを同一繰り返し間での制約条件で考えると、節点(A)1207に対して、1回前の節点(A)1205は、スループット値のサイクル数前に実行されるので、節点(B)の遅延1からスループット値3を減算し、つまり、節点(A)1205は節点(B)1206の1−3=−2サイクル後以降で実行せねばならないことがわかる。言い換えると、節点(A)1205は、節点(B)1206の2サイクル前以降で実行せねばならない。これを制約グラフGr12で表したのが図5(c)である。
ここで、図5(b)では、節点(B)が3サイクル目で実行されるとしたが、節点(B)をどこのサイクルで実行しても節点(A)との相対関係は同じであるので、制約条件は変わらない。また、ループのレイテンシも制約条件には無関係である。よって、図5(c)の繰り返し間依存制約は、節点(B)の遅延とループ処理のスループットのみで決まる値である。この繰り返し間依存の例は、ある繰り返しで作った値を次の繰り返しで使う場合であるが、次の次の繰り返しで使う場合にはスループット値の2倍を引けばよいし、同様にn回後の繰り返しで使う場合は、スループット値のn倍を引けばよい。
図14に示すデータフローグラフGf5の繰り返し間依存制約を図4(a)の制約グラフGr11に加えた結果を図6に示す。図6の太線の枝が繰り返し間依存制約を表す。ここでスループットの値をtpとしている。
次に図2に示す制約違反検出(ステップS903)について説明する。
図2に示す繰り返し間依存制約(ステップS902)は、他の通常の制約と全く同じに扱うことができるため、図6に示す制約グラフGr13から従来と同じ方法でASAPスケジューリングを求めることができる。しかし、スループットの値によってはASAPスケジューリングが求まらない場合がある。
例えば、図6でスループット値tp=1の場合を考える。ソース節点(s)1300から節点(+)1301への最長経路長を求めようとすると、節点(s)1300から節点(Rx)1304を経由して節点(+)1301への経路長は1である。しかし、さらに、節点(+)1301 → 節点(+)1302 →節点(+)1303 →節点(+)1301という閉経路も存在するため、節点(s)1300→節点(Rx)1304 → 節点(+)1301 → 節点(+)1302 →節点(+)1303 → 節点(+)1301の経路長は3になる。さらにこの閉経路を回ると経路長はどんどん大きくなり、結局最長経路は求まらない。このように、枝の重みの合計が正の数である閉経路が存在すると最長経路は求まらず、これは制約グラフ中の全ての制約を同時に満たす解が存在しないことに対応する。逆に枝の重みの合計が0か負の数の閉経路の場合には、閉経路を通る経路が最長経路となることはないためこのような問題は生じない。図16のように、値を作る前に参照してしまうような、不可能な繰り返し間依存制約があると、その繰り返し間依存制約を含む閉グラフの重みの合計は正の値となる。
重み合計が正の閉経路を求める方法としてはどのような方法を用いてもかまわないが、単純にASAPスケジューリングを行い、ある一定時間内で結果が求まらなかった場合は重み合計が正の閉経路が存在するとするのが簡便で高速である。
次に図2に示す違反箇所検出・出力方法(ステップS904)について説明する。
重み合計が正の閉経路が存在することはわかっているが、制約グラフのどこに閉経路が存在するかがわからない場合は、図7に示す方法で、閉経路の位置を特定することが可能である。
手順1401では、図2に示す繰り返し間制約生成(ステップS902)で作った繰り返し間制約のうち任意の1つを選び、制約グラフから削除する。手順1402では、図2に示す制約違反検出(手順903)と同じ方法で制約違反を検出し、もし制約違反がまだあるなら手順1401にもどる。もし、制約違反がなくなれば、最後に削除した繰り返し間制約を制約違反箇所として検出する(手順1403)。本来は検出した繰り返し間制約を含む重み合計が正である閉ループが全体として制約違反なのであるが、繰り返し間制約を問題箇所として出力するほうが、設計者にとって着目点が特定できてわかり易い。制約グラフ中の繰り返し間制約に対応するデータフローグラフのポートを求め、そのデータフローグラフのポートが元の動作記述の変数に対応する場合はその変数名を出力してもよい。また、そのデータを生成するデータフローグラフの節点と使用する節点のそれぞれに対応する動作記述中の演算を出力してもよい。
例えば、図6に示す制約グラフの場合、枝1305が削除されると重み合計が正である閉経路がなくなるため、枝1305に対応する制約が制約違反箇所となり、元の動作記述における図13に示す変数sumを制約違反箇所として出力する。
次に図2に示す違反量検出・出力方法(ステップS905)について説明する。
図8は、違反量検出・出力方法を示す。手順1501では、手順904で求めた違反箇所について制約の重みを1減らす。手順1502では、図2に示す制約違反検出(ステップS903)と同じ方法で制約違反を検出し、もし制約違反がまだあるなら手順1501にもどる。もし、制約違反がなくなれば、減らした重みの合計を制約違反量として検出し、出力する。図6に示す制約グラフGr13で、tp=1の場合、枝1305の重み0が、−2になれば重み合計が正の閉経路はなくなるので、制約違反量は2と求まる。
これにより、例えば、図6に示す制約グラフGr13でtp=1の場合、枝1305に対応する繰り返し間依存が2制約違反していることが分かる。枝1305の繰り返し間制約は、図14に示すデータフローグラフG5のポート511および512に対して生成したものであるので、すなわち、図13に示す動作記述で、変数sumの生成が次の繰り返しでの使用に2サイクル間に合わないことがわかる。これにより、設計者はスループットを1から3に変更したり、あるいは、図9に示すように、変数sumの使用を遅らせる処置を取ることにより、スループット1でも正しく動作する回路を得ることが可能となる。
このように本発明の実施形態では、動作記述からデータフローグラフを生成し、該データフローグラフに基づいて動作合成を行なってハードウェア回路構成を作成する動作合成装置において、ループ処理をパイプライン化することによりスケジューリング制約違反が生じるかどうかを検出する手段を備えたので、ループ処理をパイプライン化したときに該ループ処理を正しく実行できるかどうかを自動的に判断することができる。
また、この実施形態では、ループ処理における第1節点Aで生成した値を、ループ処理のn回後の繰り返し時に、該ループ処理における第2節点Bで使用する場合、ループ処理のスループット値をtpとして、第1節点から第2節点への重みに対してtp×nの値を減算して繰り返し間制約とし、また、繰り返し間制約を含む制約グラフ中に重み合計が正の閉ループがあるかを判断し、制約違反があるかを判断する機能を提供するので、繰り返し間制約枝のうち1つを制約グラフから削除し、もし、制約違反がなくなればその枝がスケジューリング制約違反の原因と判断し、もし、まだ制約違反があれば、別の繰り返し間制約枝に対して同じ処理を繰り返すことにより、スケジューリング制約違反の原因箇所を検出することができる。
また、制約違反の原因となっている繰り返し間制約枝に対して、重みを1減らし、もし、制約違反がなくなれば減らした重みの合計値をスケジューリング制約違反の量として検出し、もし、制約違反がまだあるならば、さらに重みを1減らして同じ処理を繰り返すことにより、スケジューリング制約違反量を検出することができる。
以上のように本実施形態では、ループをパイプライン化したときに、回路が正しく動作するかどうかを動作合成システムが判断することができ、正しく動作しないと判断したときには、動作記述のどこを修正すればよいかを設計者に知らせることが可能となる。これにより、設計効率を高めることができる。
なお、上記実施形態の動作合成装置1000は、その動作合成処理をコンピュータに実行させるための処理手順が記述された制御プログラムをコンピュータ読み取り可能な可読記憶媒体に格納して、コンピュータにより実現できる。
また、上記実施形態1の動作合成装置により作成されたハードウエハ回路構成を示す回路情報は、回路情報に基づいて半導体集積回路を製造する方法において、該回路情報として用いることができるものである。
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
本発明は、動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法の分野において、ループ処理をパイプライン化したときに該ループ処理を正しく実行できるかどうかを自動的に判断することができ、しかも、正しく実行できない場合は、記述のどこを修正すればよいかを設計者に知らせることができる。
本発明の実施形態1による動作合成装置を説明するブロック図である。 本実施形態1の動作合成装置を説明する図であり、動作合成方法を説明するフローチャートを示している。 本実施形態1の動作合成装置を説明する図であり、動作合成方法における制約グラフの例(図(b))を、これと等価な線形計画問題(図(a))とともに示している。 本実施形態1の動作合成装置を説明する図であり、動作合成方法における制約グラフ(図(a))とスケジューリング結果(図(b))とを示す図である。 本実施形態1の動作合成装置を説明する図であり、動作合成方法における繰り返し間制約(図(a)〜図(c))を説明する図である。 本実施形態1の動作合成装置を説明する図であり、動作合成方法における繰り返し間制約を加えた制約グラフを示している。 本実施形態1の動作合成装置を説明する図であり、制約違反箇所検出・出力方法のフローチャートを示している。 本実施形態1の動作合成装置を説明する図であり、制約違反量検出・出力方法のフローチャートを示している。 本実施形態1の動作合成装置を説明する図であり、修正後の動作記述例を示している。 従来の動作合成方法のフローチャートを示す図である。 従来の動作合成方法を説明する図であり、データフローグラフを示している。 従来の動作合成方法を説明する図であり、データフローグラフのデータ構造を示している。 従来の動作合成方法を説明する図であり、動作記述の例を示している。 従来の動作合成方法を説明する図であり、ループのデータフローグラフを示している。 従来の動作合成方法を説明する図であり、スループット3のパイプライン動作を示している。 従来の動作合成方法を説明する図であり、スループット1のパイプライン動作を示している。
符号の説明
801 入力装置
802 動作合成手段
803 出力装置
804 データベース
805 スケジューリング制約違反検出手段
805a 制約グラフ生成手段
805b 繰り返し間制約生成手段
805c 制約違反検出手段
805d 違反箇所検出・出力手段
805e 違反量検出・出力手段
1000 動作合成装置

Claims (12)

  1. 回路で実行される演算処理のアルゴリズムを記述した動作記述から、各種演算処理を行う演算処理部を示す各節点と、該節点間でのデータの流れを示す入出力枝とを含むデータフローグラフを生成し、該データフローグラフに基づいて動作合成を行なってハードウェア回路構成を作成する動作合成装置であって、
    複数の節点を含むループ処理をパイプライン化したデータフローグラフを作成する動作合成手段と、
    該ループ処理のパイプライン化により該データフローグラフのスケジューリング制約違反が発生するか否かを検出するスケジューリング違反検出手段とを備え
    該スケジューリング違反検出手段は、
    該ループ処理をパイプライン化したデータフローグラフに、該ループ処理の開始を表す開始節点と終了を表す終了節点を設定してなるグラフの各枝に、該各枝で接続された節点間の演算の時間関係を表す重みを付与することにより得られた制約グラフを用い、該制約グラフの節点間の演算の時間関係と、該ループ処理の繰り返し時間間隔の制約である繰り返し間制約とに基づいて、該スケジューリング制約違反が発生するか否かを検出する動作合成装置。
  2. 請求項1に記載の動作合成装置において、
    前記ループ処理における第1節点で生成した値を、該ループ処理のn回後の繰り返し時に、該ループ処理における第2節点で使用するとき、該ループ処理の繰り返し時間間隔であるスループットの値をtpとして、該第1節点での演算開始から該第2節点での演算開始までに必要な時間である重みに対してtp×nの値を減算して前記繰り返し間制約を生成する繰り返し間制約生成手段を備えた動作合成装置。
  3. 請求項2に記載の動作合成装置において、
    前記繰り返し間制約生成手段で生成した繰り返し間制約を含む、演算の順序と時間関係を表す前記制約グラフ中に、前記重みの合計が正である閉ループがあるか否かの判断により制約違反があるかを判断する制約違反検出手段を備えた動作合成装置。
  4. 請求項2に記載の動作合成装置において、
    前記繰り返し間制約生成手段を、前記ループ処理の前記第1節点から前記第2節点に向かう繰り返し間制約枝を前記繰り返し間制約として複数生成するよう構成し、
    生成した繰り返し間制約枝のうち1つを前記制約グラフから削除し、該削除により制約違反がなくなればその枝がスケジューリング制約違反の原因と判断し、あるいは該削除後に制約違反があれば、別の繰り返し間制約枝を該制約グラフから削除する処理の繰り返しにより、スケジューリング制約違反の原因箇所を検出する原因箇所検出手段を備えた動作合成装置。
  5. 請求項4に記載の動作合成装置において、
    前記スケジューリング制約違反の原因となっている繰り返し間制約枝に対して、前記重みを1減らし、該重み削減により、制約違反がなくなれば減らした重みの合計値をスケジューリング制約違反の量として検出し、あるいは、該重み削減後に制約違反がまだあるならば、さらに重みを1減らす処理の繰り返しにより、スケジューリング制約違反量を検出する制約違反量検出手段を備えた動作合成装置。
  6. コンピュータシステムにより、回路で実行される演算処理のアルゴリズムを記述した動作記述から、各種演算処理を行う演算処理部を示す各節点と、該節点間でのデータの流れを示す入出力枝とを含むデータフローグラフを生成し、該データフローグラフに基づいて動作合成を行なってハードウェア回路構成を作成する動作合成方法であって、
    該コンピュータシステムにおける動作合成手段が複数の節点を含むループ処理をパイプライン化したデータフローグラフを作成する動作合成ステップと、
    該コンピュータシステムにおけるスケジューリング違反検出手段が該ループ処理のパイプライン化により該データフローグラフのスケジューリング制約違反が発生するか否かを検出するスケジューリング違反検出ステップとを含み、
    該スケジューリング違反検出ステップでは、
    該スケジューリング違反検出手段が、該ループ処理をパイプライン化したデータフローグラフに、該ループ処理の開始を表す開始節点と終了を表す終了節点を設定してなるグラフの各枝に、該各枝で接続された節点間の演算の時間関係を表す重みを付与することにより得られた制約グラフを用い、該制約グラフの節点間の演算の時間関係と、該ループ処理の繰り返し時間間隔の制約である繰り返し間制約とに基づいて、該スケジューリング制約違反が発生するか否かを検出する動作合成方法。
  7. 請求項6に記載の動作合成方法において、
    前記コンピュータシステムにおける繰り返し間制約生成手段が、前記ループ処理における第1節点で生成した値を、該ループ処理のn回後の繰り返し時に、該ループ処理における第2節点で使用するとき、該ループ処理の繰り返し時間間隔であるスループットの値をtpとして、該第1節点での演算開始から該第2節点での演算開始までに必要な時間である重みに対してtp×nの値を減算して前記繰り返し間制約を生成する繰り返し間制約生成ステップを含む動作合成方法。
  8. 請求項7に記載の動作合成方法において、
    前記コンピュータシステムにおける制約違反検出手段が、前記繰り返し間制約生成ステップで生成した繰り返し間制約を含む、演算の順序と時間関係を表す前記制約グラフ中に前記重み合計が正である閉ループがあるか否かの判断により制約違反があるかを判断する制約違反検出ステップを含む動作合成方法。
  9. 請求項7に記載の動作合成方法において、
    前記繰り返し間制約生成ステップを、前記繰り返し間制約生成手段が、前記ループ処理の前記第1節点から前記第2節点に向かう繰り返し間制約枝を前記繰り返し間制約として複数生成するステップとし、
    前記コンピュータシステムにおける原因箇所検出手段が、生成した繰り返し間制約枝のうち1つを前記制約グラフから削除し、該削除により制約違反がなくなればその枝がスケジューリング制約違反の原因と判断し、あるいは該削除後に制約違反があれば、別の繰り返し間制約枝を該制約グラフから削除する処理の繰り返しにより、スケジューリング制約違反の原因箇所を検出する原因箇所検出ステップを含む動作合成方法。
  10. 請求項に記載の動作合成方法において、
    前記コンピュータシステムにおける制約違反量検出手段が、制約違反の原因となっている繰り返し間制約枝に対して、前記重みを1減らし、該重み削減により、制約違反がなくなれば減らした重みの合計値をスケジューリング制約違反の量として検出し、あるいは、該重み削減後に制約違反がまだあるならば、さらに重みを1減らす処理の繰り返しにより、スケジューリング制約違反量を検出する制約違反量検出ステップを含む動作合成方法。
  11. 請求項6から10のいずれかに記載の動作合成方法の各ステップをコンピュータに実行させるための処理手順が記述されたプログラム。
  12. 請求項11に記載のプログラムが格納されたコンピュータ読み取り可能な可読記憶媒体。
JP2008174004A 2008-07-02 2008-07-02 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法 Expired - Fee Related JP5009243B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008174004A JP5009243B2 (ja) 2008-07-02 2008-07-02 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008174004A JP5009243B2 (ja) 2008-07-02 2008-07-02 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法

Publications (2)

Publication Number Publication Date
JP2010015339A JP2010015339A (ja) 2010-01-21
JP5009243B2 true JP5009243B2 (ja) 2012-08-22

Family

ID=41701409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008174004A Expired - Fee Related JP5009243B2 (ja) 2008-07-02 2008-07-02 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法

Country Status (1)

Country Link
JP (1) JP5009243B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6246445B1 (ja) * 2016-03-17 2017-12-13 三菱電機株式会社 高位合成装置、高位合成方法及び高位合成プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2831790B2 (ja) * 1990-03-29 1998-12-02 株式会社東芝 演算スケジューリング支援装置
US6745160B1 (en) * 1999-10-08 2004-06-01 Nec Corporation Verification of scheduling in the presence of loops using uninterpreted symbolic simulation
US7096438B2 (en) * 2002-10-07 2006-08-22 Hewlett-Packard Development Company, L.P. Method of using clock cycle-time in determining loop schedules during circuit design
US7107199B2 (en) * 2002-10-31 2006-09-12 Hewlett-Packard Development Company, L.P. Method and system for the design of pipelines of processors
JP4204039B2 (ja) * 2003-04-24 2009-01-07 シャープ株式会社 動作合成システム、動作合成方法、制御プログラム、可読記録媒体、論理回路の製造方法および論理回路
JP2004288206A (ja) * 2004-05-10 2004-10-14 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法
JP2009025973A (ja) * 2007-07-18 2009-02-05 Sharp Corp 動作合成装置、半導体集積回路の製造方法、動作合成方法、動作合成制御プログラムおよび可読記録媒体

Also Published As

Publication number Publication date
JP2010015339A (ja) 2010-01-21

Similar Documents

Publication Publication Date Title
US7739635B2 (en) Conjunctive BDD building and variable quantification using case-splitting
US9483597B1 (en) Opportunistic candidate path selection during physical optimization of a circuit design for an IC
JP5040758B2 (ja) シミュレーション装置、シミュレーション方法及びプログラム
JP4396987B2 (ja) 動作合成装置および動作合成方法、ディジタル回路の製造方法、動作合成制御プログラム、可読記録媒体
US8146041B1 (en) Latch based optimization during implementation of circuit designs for programmable logic devices
Raudvere et al. Application and verification of local nonsemantic-preserving transformations in system design
JP2004326463A (ja) 動作合成システム、動作合成方法、制御プログラム、可読記録媒体、論理回路の製造方法および論理回路
Guzel et al. Using high-level synthesis for rapid design of video processing pipes
Gill et al. Performance estimation and slack matching for pipelined asynchronous architectures with choice
JP2009025973A (ja) 動作合成装置、半導体集積回路の製造方法、動作合成方法、動作合成制御プログラムおよび可読記録媒体
Kam et al. Correct-by-construction microarchitectural pipelining
JP4293562B2 (ja) ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体
JP5009243B2 (ja) 動作合成装置、動作合成方法、プログラム、記録媒体、および半導体集積回路の製造方法
JP5644344B2 (ja) 設計データ生成装置、設計データ生成方法及びプログラム
JP2008299464A (ja) 消費電力計算方法、消費電力計算プログラムおよび消費電力計算装置
JP2007233842A (ja) リセット動作検証回路の生成方法
US8352234B2 (en) Model generation based on a constraint and an initial model
JP6081832B2 (ja) 動作合成装置及び動作合成プログラム
GB2366414A (en) A method of identifying false paths in circuit synthesis
US11023633B2 (en) High-level synthesis method, high-level synthesis apparatus, and high-level synthesis system
US6532584B1 (en) Circuit synthesis method
JP2017041085A (ja) プログラム仕様推定装置、推定方法、および推定プログラム
JP4702357B2 (ja) 動作レベル記述とレジスタ転送レベル記述間の等価性検証方法及び装置並びにプログラム
JP4779908B2 (ja) 回路設計支援システム、回路設計支援方法及びプログラム
JP2009129367A (ja) 動作合成システム、動作合成方法および動作合成用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120125

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: 20120509

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: 20120530

R150 Certificate of patent or registration of utility model

Ref document number: 5009243

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

LAPS Cancellation because of no payment of annual fees