JP2005258917A - 集積回路の設計支援システムおよび設計支援プログラム - Google Patents
集積回路の設計支援システムおよび設計支援プログラム Download PDFInfo
- Publication number
- JP2005258917A JP2005258917A JP2004071105A JP2004071105A JP2005258917A JP 2005258917 A JP2005258917 A JP 2005258917A JP 2004071105 A JP2004071105 A JP 2004071105A JP 2004071105 A JP2004071105 A JP 2004071105A JP 2005258917 A JP2005258917 A JP 2005258917A
- Authority
- JP
- Japan
- Prior art keywords
- block
- processing
- processing elements
- throughput
- integrated circuit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】 時間の概念を導入し、処理エレメントのレイテンシーや入出力の同期を考慮したシミュレーションを実現する。
【解決手段】 システム10のトランスレータ14は、入力および出力の間の演算および処理を定義する機能ブロックの接続に基づいて、パスを解析し、機能ブロックのスループットを算出し、各機能ブロックを、対応する1以上の、集積回路に実際に配置されるべき処理エレメントに変換し、かつ、算出されたレイテンシーにしたがって、処理エレメントの動作の有効無効を制御する制御信号の制御タイミングを決定し、機能ブロック間を相互接続することにより、ブロックを構成する1以上の処理エレメント間の接続を実現する。ブロックごとの処理エレメントの情報、制御タイミング、遅延エレメントの情報および接続の情報を含むネットリストは、記憶装置12に記憶される。
【選択図】 図1
Description
本発明は、集積回路の設計支援システムおよびプログラムに関し、より詳細には、設計段階において時間の概念を考慮したシミュレーションが可能なシステムおよびプログラムに関する。
LSIやASICなどの集積回路を設計するため、ハードウェア記述言語(HDL)が利用される。たとえば、C++に類似する言語を用いて、集積回路を構成する回路の要素(処理エレメント)とその接続を定義することにより、一定のデータフローダイヤグラムを構成することができる。
或いは、それぞれが機能や属性を定義された処理エレメントを、ライブラリから選択して配置し、一方の処理エレメントの出力と、他方の処理エレメントの入力とを接続することにより、データフローダイヤグラムが生成されるような設計支援システムも提案されている。後者を利用すれば、より視覚的な回路設計が可能となる。
このような設計支援システムを利用して生成された、処理エレメントとそれらの間の接続を定義した情報を利用して、入力に所望の値を与えて、信号経路(パス)の所望の位置の出力や、データフローダイヤグラムの出力を検証するシミュレータが知られている。
たとえば、非特許文献1には、集積回路を構成する処理エレメントを接続して作成されたデータフローダイヤグラムのシミュレーション、システム性能の評価などを実行するシミュレータが開示されている。
"Real Time Workshop For Use with Simulink" The MathWorks Inc.Version 4 (Release 12) 2000年9月
"Real Time Workshop For Use with Simulink" The MathWorks Inc.Version 4 (Release 12) 2000年9月
しかしながら、このようなシミュレータは、基本的に時間の概念が導入されていない。たとえば、図8(a)に示すような増幅器において、そのゲインが「2」であるとすると、入力信号のあるタイミングにおける値が「n」であると、実際には増幅器内の遅延を考慮すべきであるが、シミュレータにおいては、そのタイミングにおける出力時間は「2n」になってしまう。このような問題は、特に、図8(b)に示すように、ある処理エレメントの出力をフィードバックさせて、同じ処理エレメントの入力の一方に利用する場合に顕著となる。図8(b)において、ALUが信号を入力してから出力するまでに、3クロック期間を有すると考える。この場合、ALU100の出力信号が、他のALU101を介して、ALU100にフィードバックするまで、6クロックを要する。したがって、ALU100の出力は、6クロックに一度だけ有効となる。しかしながら、従来のシミュレータにおいては、有効な出力信号を取り出すことが困難であるという問題点があった。
本発明は、時間の概念を導入し、処理エレメントのレイテンシーや入出力の同期を考慮した設計支援システムおよびプログラムを提供することを目的とする。
本発明の目的は、集積回路を構成する機能ブロックであって、ユーザにより選択され或いは記述され、入力および出力の間の演算および処理を定義する機能ブロックを記憶した機能ブロックライブラリと、前記集積回路を構成する処理エレメントであって、集積回路に実際に配置されるエレメントにおける演算および処理を定義した処理エレメントを記憶した処理エレメントライブラリと、前記機能ブロックライブラリから選択された機能ブロックおよびそれらの接続から定義されるデータフローダイヤグラムを、前記処理エレメントにより表わしたネットリストを生成するトランスレータとを備え、前記トランスレータが、前記機能ブロックの接続に基づいて、パスを解析するパス解析手段と、ブロックのスループットを算出するスループット算出手段と、各機能ブロックを、対応する1以上の処理エレメントに変換し、かつ、算出されたレイテンシーにしたがって、処理エレメントの動作の有効無効を制御する制御信号の制御タイミングを決定する変換手段と、前記機能ブロック間を相互接続することにより、前記ブロックを構成する1以上の処理エレメント間の接続を実現する接続手段と、前記ブロックごとの処理エレメントの情報、制御タイミング、遅延エレメントの情報および前記接続の情報を含むネットリストを生成し、記憶装置に記憶するネットリスト生成手段とを備えたことを特徴とする集積回路の設計支援システムにより達成される。
好ましい実施態様においては、さらに、前記レイテンシーにしたがって、遅延機能を有する処理エレメントを挿入する同期手段を備え、前記ネットリストに、前記遅延機能を有する処理エレメントの情報が含まれる。
別の好ましい実施対応においては、ブロックごとに処理エレメントを並列的或いは直列的に配置するための選択情報にしたがって、前記スループット算出手段、変換手段および/または同期手段が、動作することを特徴とする。
さらに好ましい実施態様においては、前記スループット算出手段が、データフローグループ中の最悪の転送期間に基づきスループットを算出する。
また、本発明の目的は、集積回路を構成する機能ブロックであって、ユーザにより選択され或いは記述され、入力および出力の間の演算および処理を定義する機能ブロックを記憶した機能ブロックライブラリと、前記集積回路を構成する処理エレメントであって、集積回路に実際に配置されるエレメントにおける演算および処理を定義した処理エレメントを記憶した処理エレメントライブラリとを備えたコンピュータを、前記機能ブロックライブラリから選択された機能ブロックおよびそれらの接続から定義されるデータフローダイヤグラムを、前記処理エレメントにより表わしたネットリストを生成するために、前記機能ブロックの接続に基づいて、パスを解析するパス解析手段、ブロックのスループットを算出するスループット算出手段、各機能ブロックを、対応する1以上の処理エレメントに変換し、かつ、算出されたレイテンシーにしたがって、処理エレメントの動作の有効無効を制御する制御信号の制御タイミングを決定する変換手段、前記機能ブロック間を相互接続することにより、前記ブロックを構成する1以上の処理エレメント間の接続を実現する接続手段、並びに、前記ブロックごとの処理エレメントの情報、制御タイミング、および、前記接続の情報を含むネットリストを生成し、記憶装置に記憶するネットリスト生成手段として機能させることを特徴とする集積回路の設計支援プログラムによっても達成される。
好ましい実施態様においては、さらに、前記コンピュータを、前記レイテンシーにしたがって、遅延機能を有する処理エレメントを挿入する同期手段として機能させ、前記ネットリストに、前記遅延機能を有する処理エレメントの情報が含まれる。
また、別の好ましい実施態様においては、前記コンピュータが前記スループット算出手段、変換手段および/または同期手段として動作するときに、ブロックごとに処理エレメントを並列的或いは直列的に配置するための選択情報にしたがう。
さらに、前記コンピュータが、前記スループット算出手段として機能するときに、当該コンピュータにデータフローグループ中の最悪の転送期間に基づきスループットを算出させるのが望ましい。
本発明によれば、時間の概念を導入し、処理エレメントのレイテンシーや入出力の同期を考慮した設計支援システムおよびプログラムを提供することが可能となる。
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる集積回路設計支援システムの概略を示すブロックダイヤグラムである。図1に示すように、集積回路設計支援システム10は、機能ブロックライブラリなどを格納した記憶装置12と、記憶装置12から、ユーザの指示にしたがって、時間概念が導入されていない機能ブロックライブラリ中の機能ブロックを選択するとともに、機能ブロック間を接続した情報を生成し、必要な処理を実行して、時間概念が導入された後の処理エレメントおよびその接続の情報を生成するトランスレータ14と、キーボードやマウスなどの入力装置16と、表示装置18とを有している。
機能ブロックライブラリ12は、ハードウェア装置などの記憶装置により実現することができる。また、トランスレータ14は、パーソナルコンピュータにより実現され得る。
なお、本実施の形態においては、機能ブロックは、機能や属性とともに、図形によるシンボルを有している。ユーザは入力装置16を操作して、シンボルを選択して、表示装置18の画面上の所定の領域(編集領域)に配置し、かつ、あるシンボルの出力と、他のシンボルの入力とを指定することにより、それらの間を接続することができる。しかしながら、このような構成に限定することはない。たとえば、ユーザは、C++に類似するハードウェア記述言語により、機能ブロックおよび機能ブロック間の接続を定義しても良い。
以下、本実施の形態における機能ブロック、処理エレメントおよび、一定のデータフローを有するデータフローダイヤグラムについて説明する。
[入力系]
本実施の形態にかかる設計支援システムにおける入力系は、N入力の機能ブロックからなる。つまり、データフローダイヤグラムは、N入力の機能ブロックから構成される。機能ブロックの機能は、機能ブロックライブラリに予め定義されている。図2(a)は、機能ブロックライブラリ12の内容を示す図である。図2(a)に示すように、機能ブロックライブラリ12には、加算(SUM)、増幅(GAIN)などの機能ブロックのそれぞれに関する種々の情報が記憶されている。種々の情報には、その機能ブロックの機能を記述した定義情報、利用可能なインプリメンテーションの属性、最大スループットなどが含まれる。インプリメンテーションの属性や最大スループットは、設計支援システムの演算により、機能ブロックの情報として追加される。
本実施の形態にかかる設計支援システムにおける入力系は、N入力の機能ブロックからなる。つまり、データフローダイヤグラムは、N入力の機能ブロックから構成される。機能ブロックの機能は、機能ブロックライブラリに予め定義されている。図2(a)は、機能ブロックライブラリ12の内容を示す図である。図2(a)に示すように、機能ブロックライブラリ12には、加算(SUM)、増幅(GAIN)などの機能ブロックのそれぞれに関する種々の情報が記憶されている。種々の情報には、その機能ブロックの機能を記述した定義情報、利用可能なインプリメンテーションの属性、最大スループットなどが含まれる。インプリメンテーションの属性や最大スループットは、設計支援システムの演算により、機能ブロックの情報として追加される。
定義情報は、その機能ブロックの機能を示す。たとえば、Z=A+B+C+D+Eや、Z(t)=Z(t−1)(ただし、tはサンプル時間)などが、定義情報に該当する。
本実施の形態において、機能ブロック間の接続は、スカラー、ベクトルおよびマトリクスデータのタイプを含む。また、データフローダイヤグラムは、一定のサンプル時間にて作動するように設定される。このサンプル時間は、ハードウェアの動作周波数により決定される。たとえば、ハードウェアの動作周波数が100MHzであれば、サンプル時間は10nsとなる。また、初期的には、データ処理は、レイテンシー無しにモデル化される。
[出力系]
2つのデータ入力、1つのデータ出力の予め定められた処理エレメントのネットワークが、本実施の形態にかかる出力系を構成し、上述した入力系の機能を実現する。処理エレメントの間は、整数値およびブール代数によるバリッドシグナルからなるスカラー信号により接続される。処理エレメントの入力接続は、非接続のまま残すことができ、また、一定値に置き換えることができる。
2つのデータ入力、1つのデータ出力の予め定められた処理エレメントのネットワークが、本実施の形態にかかる出力系を構成し、上述した入力系の機能を実現する。処理エレメントの間は、整数値およびブール代数によるバリッドシグナルからなるスカラー信号により接続される。処理エレメントの入力接続は、非接続のまま残すことができ、また、一定値に置き換えることができる。
また、各処理エレメントは、2つのブール代数による制御入力と、1つの制御出力を有する。これらは、上記接続(処理エレメント間の接続)と独立して、接続或いは非接続とすることができる。各処理エレメントは、所定の機能を処理するために、固定されたクロックレイテンシーを有するパイプライン化されたデータパスである。図2(b)に示すように、記憶装置12中には、ALUの機能を定義した処理エレメント、RAMの機能を定義したRAMエレメント、その他、回路を構成するための種々の処理エレメント(たとえば、遅延素子、レジスタなど)の情報を記憶した処理エレメントライブラリが設けられている。
各処理ブロックは、一群の処理エレメントに転換される。グループとして、処理ブロックは、入力から出力まで、固定されたレイテンシーを有する。付加的なパイプラインディレイブロックおよび制御ブロックが、元のデータフローダイヤグラムに付加される。
固定された動作周波数は、予め定義された処理エレメントのために決定される。また、ブロック間のデータ転送の動作周波数は、トランスレータにより決定される。データ入力およびデータ出力の周波数は、機能ブロックごとに相違し得る。
[構成]
次に、本実施の形態にかかる設計支援装置の処理の概略について説明する。各機能ブロックは、予め定められパイプライン化された、2データ入力、1データ出力の、処理エレメントの組からインプリメントされる。この機能ブロックは、各入力から出力まで固定されたレイテンシーを有する。
次に、本実施の形態にかかる設計支援装置の処理の概略について説明する。各機能ブロックは、予め定められパイプライン化された、2データ入力、1データ出力の、処理エレメントの組からインプリメントされる。この機能ブロックは、各入力から出力まで固定されたレイテンシーを有する。
機能ブロックは、それぞれの、利用可能な機能ブロックおよびそのインプリメンテーションを定義する。あるインターフェイス要求に与えられる機能をインプリメントするために、任意の方法を使用することができる。インプリメンテーションは、インターフェイス要求を満たす。
1ビットの制御信号は、ブロック間のデータ転送を同期させるために使用される。各データ接続に関連する制御信号は、信号バリッドデータ(バリッド信号)に使用される。データフローに依存しない制御信号は、連続的な処理ループ、バリッドデータの出力、および、連続的なパラメータリストのリセットを合図するために生成される。
処理ブロックの内部処理は、並列的に実行され得る。或いは、資源を削減するが、減じられたスループットで動作するように直列的にも処理され得る。
データ処理は、ベクター或いはマトリックのバスの信号上で実行され得る。これら信号は、並列フォーマット或いは直列フォーマットで、機能ブロック間を転送される。機能ブロックは、ベクトル処理フォーマットに割り当てられ、他の関連するブロックも、同一のフォーマットに割り当てられる。
データ処理システムは、パイプライン化されたデータパスを利用してインプリメントされる。データ処理ブロックは、各入力パスで、データパスレイテンシーにしたがって自動的に同期される。
データ処理システムは、異なるデータ転送周波数で動作するブロックを用いてインプリメントされる。各ブロックのデータ処理スループットは、各ブロックの受理データが、処理可能であることを保証するように算出される。
[データ処理系のデータフローダイヤグラムの例]
図3は、簡単なデータ処理系を入力系で記述した例を示す。この処理系は、入力ポート1および入力ポート2で、データ値の流れを受け入れ、出力ポート1に、値の流れを出力する。図3における増幅器(Gain)、ベクトル加算器(Vector Sum)、ユニットディレイ(Unit Delay)、離散フィルタ(Discrete
Filter)、加算器(Sum)が、それぞれ機能ブロックに相当する。
図3は、簡単なデータ処理系を入力系で記述した例を示す。この処理系は、入力ポート1および入力ポート2で、データ値の流れを受け入れ、出力ポート1に、値の流れを出力する。図3における増幅器(Gain)、ベクトル加算器(Vector Sum)、ユニットディレイ(Unit Delay)、離散フィルタ(Discrete
Filter)、加算器(Sum)が、それぞれ機能ブロックに相当する。
[処理系のパス解析の例]
図4に示すように、処理系全体は、1つのデータフローグループを構成する。単一のベクトルバスの信号は、動作することによりスカラーの結果が与えられるまで、グループをなす。定数値は、目的のブロックに送出される。図4においては、左下部の入力端子(In2)から増幅器(Gain)およびベクトル加算器(Vector Sum)までが、ベクトルグループを構成している。また、図4の例において、ベクトルグループを構成する増幅器(Gain)において、ベクトルの各要素に与えるゲインはそれぞれ2,3,4および5となっている。
図4に示すように、処理系全体は、1つのデータフローグループを構成する。単一のベクトルバスの信号は、動作することによりスカラーの結果が与えられるまで、グループをなす。定数値は、目的のブロックに送出される。図4においては、左下部の入力端子(In2)から増幅器(Gain)およびベクトル加算器(Vector Sum)までが、ベクトルグループを構成している。また、図4の例において、ベクトルグループを構成する増幅器(Gain)において、ベクトルの各要素に与えるゲインはそれぞれ2,3,4および5となっている。
[出力系の例]
図5は、上記図3に示す入力系で記述された処理系を、並列ベクトルインプリテーションにより、出力系の処理エレメントで記述した例を示し、図6は、同じ処理系を、直列ベクトルインプリテーションにより、出力系の処理エレメントで記述した例を示す。図5において、「*」が付された処理エレメントは、乗算オペレータ、「+」が付された処理エレメントは、加算オペレータである。また、「DEL y」と記載された処理エレメントは、yクロックのパイプラインディレイであることを示す。図5において、「L」は、ネットのレイテンシー(Latency)を示す。また、この例では全てのブロックについてスループット期間は「1」である。
図5は、上記図3に示す入力系で記述された処理系を、並列ベクトルインプリテーションにより、出力系の処理エレメントで記述した例を示し、図6は、同じ処理系を、直列ベクトルインプリテーションにより、出力系の処理エレメントで記述した例を示す。図5において、「*」が付された処理エレメントは、乗算オペレータ、「+」が付された処理エレメントは、加算オペレータである。また、「DEL y」と記載された処理エレメントは、yクロックのパイプラインディレイであることを示す。図5において、「L」は、ネットのレイテンシー(Latency)を示す。また、この例では全てのブロックについてスループット期間は「1」である。
図6においても、「+」、「*」および「DEL y」が付された処理エレメントは、図5に関して説明したものと同様である。「+=」が付された処理エレメントは、リセット付きの累算オペレータ、「==」が付された処理エレメントは、比較オペレータを示す。「Valid Data」が付された処理エレメントは、データ有効信号(Data Valid Signal)をイネーブルにする。「CNT A..B」が付された処理エレメントは、値「A」から「B」までをカウントするカウンタを示す。また、「RAM」が付された処理エレメントは、プログラム可能なメモリブロックである。図5の例と同様に、「L」は、ネットのレイテンシーを示す。その一方、「T」は、それぞれスループット期間を示す。
[変換フロー]
次に、図7のフローチャートを参照して、本実施の形態にかかる、入力系のデータフローダイヤグラムから、出力系の処理エレメントの情報(ネットリストファイル)に変換する処理について説明する。
次に、図7のフローチャートを参照して、本実施の形態にかかる、入力系のデータフローダイヤグラムから、出力系の処理エレメントの情報(ネットリストファイル)に変換する処理について説明する。
[データフローダイヤグラム生成]
まず、ユーザは、入力装置を操作して、記憶装置12の機能ブロックライブラリから所望の機能ブロックを選択して、そのシンボルを、表示装置18の画面上の所定の領域(編集領域)に配置し、かつ、機能ブロック間を接続することにより、データフローダイヤグラムを生成する(ステップ701)。
まず、ユーザは、入力装置を操作して、記憶装置12の機能ブロックライブラリから所望の機能ブロックを選択して、そのシンボルを、表示装置18の画面上の所定の領域(編集領域)に配置し、かつ、機能ブロック間を接続することにより、データフローダイヤグラムを生成する(ステップ701)。
[パス解析]
次いで、ベクトル接続およびデータフロー接続のためのパス解析が実行される(ステップ702)。前述したように、ダイヤグラム中の各ブロックは、機能ブロックライブラリ中のブロックに対応している。
次いで、ベクトル接続およびデータフロー接続のためのパス解析が実行される(ステップ702)。前述したように、ダイヤグラム中の各ブロックは、機能ブロックライブラリ中のブロックに対応している。
パス解析は、以下の論理に従う。
(1)出力ポートの無いブロックは、それぞれ、パスの終了点とみなされる。
(2)入力ポートの無いブロックは、パスの開始点とみなされる。
(3)パスは、源のブロックへの各ブロックのベクトル入力にしたがうことにより、パスの終了点から、パスの開始点のそれぞれまで横切る。
(4)パスのリストが生成される。リストの内容は、ブロックごとの一意的な数字の識別子である。
(4)第1のパスから、第1のパスグループが生成される。
(5)各パスが調べられる。存在するパスグループで共通するブロックが存在すれば、パスのブロックが当該存在するパスグループに追加される。それ以外の場合には、パスのブロックは、新たなパスグループに追加される。
(6)上述した手法は、ベクトルおよび全てのデータフローパスグループを決定するために用いられる。
(7)データフローグループを決定するために、全てのベクトルおよびデータフローパスが解析される。
(8)ベクトルグループを決定するために、ベクトル化されたポートのみが解析され、スカラーポートは無視される。
(1)出力ポートの無いブロックは、それぞれ、パスの終了点とみなされる。
(2)入力ポートの無いブロックは、パスの開始点とみなされる。
(3)パスは、源のブロックへの各ブロックのベクトル入力にしたがうことにより、パスの終了点から、パスの開始点のそれぞれまで横切る。
(4)パスのリストが生成される。リストの内容は、ブロックごとの一意的な数字の識別子である。
(4)第1のパスから、第1のパスグループが生成される。
(5)各パスが調べられる。存在するパスグループで共通するブロックが存在すれば、パスのブロックが当該存在するパスグループに追加される。それ以外の場合には、パスのブロックは、新たなパスグループに追加される。
(6)上述した手法は、ベクトルおよび全てのデータフローパスグループを決定するために用いられる。
(7)データフローグループを決定するために、全てのベクトルおよびデータフローパスが解析される。
(8)ベクトルグループを決定するために、ベクトル化されたポートのみが解析され、スカラーポートは無視される。
また、ブロックについて以下の処理も実行される。
a)定数出力値を有するブロックが調査され、当該出力値が、ブロックのインプリメンテーションに依存するブロックパラメータへの可能な変換のため、行き先のブロックに送出され、付加される。
b)ブロックのインスタンスが調査され、ブロックのベクトル接続性が割り当てられ、かつ、ベクトルグループとして、同じベクトルバス上の他のブロックとともにグループ化される。
c)ブロックインスタンスが調査され、全ての接続性が割り当てられ、データフローグループとしてグループ化される。
a)定数出力値を有するブロックが調査され、当該出力値が、ブロックのインプリメンテーションに依存するブロックパラメータへの可能な変換のため、行き先のブロックに送出され、付加される。
b)ブロックのインスタンスが調査され、ブロックのベクトル接続性が割り当てられ、かつ、ベクトルグループとして、同じベクトルバス上の他のブロックとともにグループ化される。
c)ブロックインスタンスが調査され、全ての接続性が割り当てられ、データフローグループとしてグループ化される。
[ブロック解析]
次いで、ブロック解析が実行され、ユーザの選択(ステップ703)に基づき、ブロックごとの並列インプリメンテーション或いは直列インプリメンテーションが決定される(ステップ704)。
次いで、ブロック解析が実行され、ユーザの選択(ステップ703)に基づき、ブロックごとの並列インプリメンテーション或いは直列インプリメンテーションが決定される(ステップ704)。
ここでは、処理系内の各ブロックのインスタンスが調査され、ライブラリが参照されて、インスタンスの与えられたパラメータのために有用なインプリメンテーションの方法が決定される
たとえば、ユーザは、各ブロックインスタンスについて、「資源」対「データスループット」の用いるべき優位性を特定し、これに基づきインプリメンテーションが決定される。或いは、トランスレータによる処理が開始される前に、ユーザが所望のデフォルト選択を設定していてもよい。
たとえば、ユーザは、各ブロックインスタンスについて、「資源」対「データスループット」の用いるべき優位性を特定し、これに基づきインプリメンテーションが決定される。或いは、トランスレータによる処理が開始される前に、ユーザが所望のデフォルト選択を設定していてもよい。
各ブロックは以下の属性を有する。
ベクトル転送および算出のサポートされた手法:並列か直列か
内部インプリメンテーションのサポートされた手法:並列か直列か
そこで、各インスタンスに対するインプリメンテーションは以下のように選択される。すなわち、ユーザは、ブロックのリストを与え、各ブロック或いは一群のブロックに対して、インプリメンテーションの方法が選択され得る。ベクトルのインプリメンテーションの方法について、一つのブロックが変更された場合には、同じグループの全てのブロックに、同じ方法が割り当てられる。
ベクトル転送および算出のサポートされた手法:並列か直列か
内部インプリメンテーションのサポートされた手法:並列か直列か
そこで、各インスタンスに対するインプリメンテーションは以下のように選択される。すなわち、ユーザは、ブロックのリストを与え、各ブロック或いは一群のブロックに対して、インプリメンテーションの方法が選択され得る。ベクトルのインプリメンテーションの方法について、一つのブロックが変更された場合には、同じグループの全てのブロックに、同じ方法が割り当てられる。
[スループットの算出]
各ブロックインスタンスおよびそのインプリメンテーションの方法について、処理系における他のブロックとの接続性、および、各ブロックの必要性に基づき、入力データのレートおよび出力データのレートが算出される(ステップ705)。各ブロックの要求は、インスタンスのパラメータに基づき、機能ブロックライブラリから算出される。なお、この算出結果が満足でなければ、ユーザは、ステップ704に戻ることができる。
各ブロックインスタンスおよびそのインプリメンテーションの方法について、処理系における他のブロックとの接続性、および、各ブロックの必要性に基づき、入力データのレートおよび出力データのレートが算出される(ステップ705)。各ブロックの要求は、インスタンスのパラメータに基づき、機能ブロックライブラリから算出される。なお、この算出結果が満足でなければ、ユーザは、ステップ704に戻ることができる。
スループットは、以下の見地から算出される。なお、以下の説明において、スループット期間とは、1つの有効なデータワードが、データ接続上を転送されるサイクル数を示し、転送期間とは、1つのデータパケットがデータ接続上を転送されるサイクル数を示す。
並列ベクトル或いはスカラー信号について、データパケットは、1スループット期間で転送される。また、直列ベクトル信号について、データパケットは、スループット期間*ベクトル幅で転送される。
各ブロックインスタンスの各ポートについてのスループットの算出手法は以下の通りである。
(1)データフローダイヤグラムは、可能なデータパスのそれぞれを、設計中のデータ転送ポイントのリストとして記憶するように横切られる。これらレコードは以下の通りである。
{ブロックインスタンスの一意的ID,入力ポート,出力ポート}
(1)データフローダイヤグラムは、可能なデータパスのそれぞれを、設計中のデータ転送ポイントのリストとして記憶するように横切られる。これらレコードは以下の通りである。
{ブロックインスタンスの一意的ID,入力ポート,出力ポート}
(2)各ブロックのインプリメンテーションは、ブロックインスタンスのパラメータおよびインプリメネテーションの方法に基づき、各ポートについて求められる入力データレートおよび出力データレートを算出する。
(3)A3次元マトリクスが用いられ、各ブロック、パスおよびポートのスループット機関が記録される。
(3)A3次元マトリクスが用いられ、各ブロック、パスおよびポートのスループット機関が記録される。
(4)各データパスは、入力から出力まで横切られ、パス上の各接続でデータを転送するのに必要な時間が決定される。
(5)ブロックの入力で必要なスループット期間が、先行する出力よりも大きければ、先行する全てのブロックのスループットを調整して、入力のスループットの要求が満たされるように保証する。ブロックの入力のスループットは、ブロックインプリミンテーションにより特定されるような、必要な入力スループットである。その一方、それ以外の場合(先行する出力以下である場合)には、ブロックについての入力のスループット期間は、先行するブロックの出力から受け継がれる。
(5)ブロックの入力で必要なスループット期間が、先行する出力よりも大きければ、先行する全てのブロックのスループットを調整して、入力のスループットの要求が満たされるように保証する。ブロックの入力のスループットは、ブロックインプリミンテーションにより特定されるような、必要な入力スループットである。その一方、それ以外の場合(先行する出力以下である場合)には、ブロックについての入力のスループット期間は、先行するブロックの出力から受け継がれる。
(6)ブロックからの出力のスループットは、入力のスループットに基づいて、機能ブロックライブラリに基づいて算出される。
(7)各ブロックについて、入力の転送時間は、すべての入力で同一でなければならない。これは、以下のように定義される。
入力の転送時間=入力のスループット期間*入力のベクトルバスの幅
なお、全ての与えられたデータフローのグループについて、転送時間は、全てのブロックで同一である。
(7)各ブロックの最悪の入力の転送期間について調べられる。
(8)各データフローグループについて、ブロックごとの最悪の転送期間が決定される。
(7)各ブロックについて、入力の転送時間は、すべての入力で同一でなければならない。これは、以下のように定義される。
入力の転送時間=入力のスループット期間*入力のベクトルバスの幅
なお、全ての与えられたデータフローのグループについて、転送時間は、全てのブロックで同一である。
(7)各ブロックの最悪の入力の転送期間について調べられる。
(8)各データフローグループについて、ブロックごとの最悪の転送期間が決定される。
データフローグループ中の各ブロックに、転送期間が割り当てられる。
ステップ705により、ブロックごとのスループットが記述されたスループットリポートが生成される。このスループットリポートは、記憶装置12の所定の領域に記憶される。
[ブロックインプリメンテーション]
各ブロックインスタンスについて、機能ブロックライブラリが参照されて、所定の処理エレメントおよびブロックインスタンシエーションを利用したブロックインプリメンテーションが実行される(ステップ706)。
各ブロックインスタンスについて、機能ブロックライブラリが参照されて、所定の処理エレメントおよびブロックインスタンシエーションを利用したブロックインプリメンテーションが実行される(ステップ706)。
所定の処理エレメントは、処理エレメントのライブラリ(図2(b)参照)から選択される。また、ブロックインスタンシエーションは、ダイヤグラムからのオリジナルデータおよび変換パラメータからのものである。
このステップにおいては、
a)構造パラメータが使用され、特定のインプリメンテーションが生成される。
b)数字パラメータは、インプリメンテーションのパラメータとして保存される。
c)ブロックインスタンスへのパラメータとして、付加的な制御ポートが追加される。
a)構造パラメータが使用され、特定のインプリメンテーションが生成される。
b)数字パラメータは、インプリメンテーションのパラメータとして保存される。
c)ブロックインスタンスへのパラメータとして、付加的な制御ポートが追加される。
機能ブロックのタイプごとに、独立した処理回路ジェネレータが用いられる。各機能ブロックは関連する使用およびパラメータを有する特定のオブジェクトタイプを有している。任意のブロックタイプは、この仕様に基づく、多数の回路インプリメンテーションを有し得る。各機能のタイプに対してインプリメントされる回路エレメントは、以下のインターフェイス要求を有する。
ブロックの入力および出力の各々は、関連するバリッドデータ制御信号を有する。バリッド入力信号が入力されたときのみ、バリッドデータ信号が出力される。入力後、決められたクロックサイクル数で出力されなければならない。このレイテンシーは、ブロックインプリメンテーションのパラメータである。
N個のバリッドデータ入力に対して、M個のバリッドデータが出力される。[N,M]の比は、インスタンスパラメータに基づき、ブロックインプリメンテーションにより算出される。
新たなデータパケット(1つの完全なベクトル或いはスカラー値)は、ブロックの転送期間に割り当てられた後にのみ、出力され得る。
バリッド入力データは、Tクロックサイクルごとに受け入れられねばならない。この入力スループット期間Tは、ブロック実施のパラメータである。Tクロックサイクルより大きいバリッド期間を持つデータは、ブロックにより正確に処理されなければならない。
[制御ロジックの挿入]
次いで、トランスレータ14は、機能ブロックのインプリテーションの必要性にしたがって、制御回路を追加する(ステップ707)。ステップ707では以下の処理が実行される。
a)存在するブロックの新たな制御ポートパラメータが調べられる。
b)ステップ706の処理結果を利用して、連続的な制御ブロックが、新たなブロックインスタンスとしてインプリメントされる。
c)ブロックインスタンスとして実施すべき新たな制御ポートパラメータが存在しなくなるまで、上記a)およびb)のループが繰り返される。
次いで、トランスレータ14は、機能ブロックのインプリテーションの必要性にしたがって、制御回路を追加する(ステップ707)。ステップ707では以下の処理が実行される。
a)存在するブロックの新たな制御ポートパラメータが調べられる。
b)ステップ706の処理結果を利用して、連続的な制御ブロックが、新たなブロックインスタンスとしてインプリメントされる。
c)ブロックインスタンスとして実施すべき新たな制御ポートパラメータが存在しなくなるまで、上記a)およびb)のループが繰り返される。
なお、本実施の形態においては、Nクロック巡回カウンタ、カウンタ比較器、および、パラメータメモリからの繰り返し読み出し回路などが、制御ロジックブロックとしてライブラリに定義されている。
[パイプラインレイテンシーの同期]
さらに、トランスレータ14は、各ブロックインスタンスのレイテンシーにしたがって、パイプライン同期のディレイエレメントを、ブロックの入力に挿入する(ステップ708)。
さらに、トランスレータ14は、各ブロックインスタンスのレイテンシーにしたがって、パイプライン同期のディレイエレメントを、ブロックの入力に挿入する(ステップ708)。
ステップ708において、各データフローダイヤグラムは、パイプラインレイテンシーが無いものとして定義され、その後に、各ブロックインスタンスがインプリメンテーションされ、そのインプリメンテーションからパイプラインレイテンシーが決定される。各ブロックは、それぞれの入力から出力まで同一のレイテンシーを維持する。
「遅延エレメント」、つまり、パイプラインディレイが、データパスを同期させるために使用される。これは、データを遅延させる所定のエレメント、或いは、プログラム可能なクロックサイクル数ごとの同期パイプラインを用いた制御信号である。また、入力から出力までのデータフローダイヤグラムを介したパスの各々が横断される。
各ブロックの入力で、先行する出力からのレイテンシーが、入力への属性として適用される。その一方、出力レイテンシーは、最悪の入力ポートのレイテンシーと、ブロックインプリメンテーションによるレイテンシーとの和である。遅延エレメントは、最悪の入力レイテンシーと調和しないポートのために挿入される。
[内部接続]
ベクトルインプリメンテーションモードにしたがって、各ブロック間のブロック接続がなされる(ステップ709)。たとえば、並列のベクトル処理ブロックは、多重接続にて接続される。その一方、直列のベクトル処理ブロックは、単一の接続として接続される。
ベクトルインプリメンテーションモードにしたがって、各ブロック間のブロック接続がなされる(ステップ709)。たとえば、並列のベクトル処理ブロックは、多重接続にて接続される。その一方、直列のベクトル処理ブロックは、単一の接続として接続される。
ブロック間の接続により、処理系における内部接続が完了する。ブロックインプリメンテーション(ステップ706)による処理結果、挿入された制御ブロックの情報(ステップ707参照)、ブロックごとのレイテンシー(ステップ708参照)、および、ブロック間の接続の情報は、ネットリストファイルとして、記憶装置12の所定の領域に記憶される(ステップ610)。これにより、処理系が、図5および図6に示すように、処理エレメントにより記述され、かつ、ブロックごとのレイテンシーなどが規定されたデータフローダイヤグラムのネットリストを取得することが可能となる。
本実施の形態によれば、機能ブロックライブラリを接続したデータフローダイヤグラムから、ブロックインプリメンテーションによって、並列或いは直列の1以上の処理エレメントに変換される。また、ブロックのスループットやレイテンシーも算出され、これにしたがって、処理エレメントの動作の有効無効を指示するための制御信号を、処理エレメントに付加するとともに、必要な制御回路を追加することができる。このようにして得られたネットリストを利用することにより、スループットおよびレイテンシーを考慮し、時間の概念が導入されたシミュレーションが実現される。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
10 集積回路設計支援システム
12 記憶装置
14 トランスレータ
16 入力装置
18 表示装置
12 記憶装置
14 トランスレータ
16 入力装置
18 表示装置
Claims (8)
- 集積回路を構成する機能ブロックであって、ユーザにより選択され或いは記述され、入力および出力の間の演算および処理を定義する機能ブロックを記憶した機能ブロックライブラリと、
前記集積回路を構成する処理エレメントであって、集積回路に実際に配置されるエレメントにおける演算および処理を定義した処理エレメントを記憶した処理エレメントライブラリと、
前記機能ブロックライブラリから選択された機能ブロックおよびそれらの接続から定義されるデータフローダイヤグラムを、前記処理エレメントにより表わしたネットリストを生成するトランスレータとを備え、
前記トランスレータが、
前記機能ブロックの接続に基づいて、パスを解析するパス解析手段と、
ブロックのスループットを算出するスループット算出手段と、
各機能ブロックを、対応する1以上の処理エレメントに変換し、かつ、算出されたレイテンシーにしたがって、処理エレメントの動作の有効無効を制御する制御信号の制御タイミングを決定する変換手段と、
前記機能ブロック間を相互接続することにより、前記ブロックを構成する1以上の処理エレメント間の接続を実現する接続手段と、
前記ブロックごとの処理エレメントの情報、制御タイミング、遅延エレメントの情報および前記接続の情報を含むネットリストを生成し、記憶装置に記憶するネットリスト生成手段とを備えたことを特徴とする集積回路の設計支援システム。 - さらに、前記レイテンシーにしたがって、遅延機能を有する処理エレメントを挿入する同期手段を備え、前記ネットリストに、前記遅延機能を有する処理エレメントの情報が含まれることを特徴とする請求項1に記載の設計支援システム。
- ブロックごとに処理エレメントを並列的或いは直列的に配置するための選択情報にしたがって、前記スループット算出手段、変換手段および/または同期手段が、動作することを特徴とする請求項1または2に記載の設計支援システム。
- 前記スループット算出手段が、データフローグループ中の最悪の転送期間に基づきスループットを算出することを特徴とする請求項1ないし3の何れか一項に記載の設計支援システム。
- 集積回路を構成する機能ブロックであって、ユーザにより選択され或いは記述され、入力および出力の間の演算および処理を定義する機能ブロックを記憶した機能ブロックライブラリと、前記集積回路を構成する処理エレメントであって、集積回路に実際に配置されるエレメントにおける演算および処理を定義した処理エレメントを記憶した処理エレメントライブラリとを備えたコンピュータを、
前記機能ブロックライブラリから選択された機能ブロックおよびそれらの接続から定義されるデータフローダイヤグラムを、前記処理エレメントにより表わしたネットリストを生成するために、
前記機能ブロックの接続に基づいて、パスを解析するパス解析手段、
ブロックのスループットを算出するスループット算出手段、
各機能ブロックを、対応する1以上の処理エレメントに変換し、かつ、算出されたレイテンシーにしたがって、処理エレメントの動作の有効無効を制御する制御信号の制御タイミングを決定する変換手段、
前記機能ブロック間を相互接続することにより、前記ブロックを構成する1以上の処理エレメント間の接続を実現する接続手段、並びに、
前記ブロックごとの処理エレメントの情報、制御タイミング、および、前記接続の情報を含むネットリストを生成し、記憶装置に記憶するネットリスト生成手段として機能させることを特徴とする集積回路の設計支援プログラム。 - さらに、前記コンピュータを、前記レイテンシーにしたがって、遅延機能を有する処理エレメントを挿入する同期手段として機能させ、前記ネットリストに、前記遅延機能を有する処理エレメントの情報が含まれることを特徴とする請求項5に記載の設計支援プログラム。
- 前記コンピュータが前記スループット算出手段、変換手段および/または同期手段として動作するときに、ブロックごとに処理エレメントを並列的或いは直列的に配置するための選択情報にしたがうことを特徴とする請求項5または6に記載の設計支援プログラム。
- 前記コンピュータが、前記スループット算出手段として機能するときに、当該コンピュータにデータフローグループ中の最悪の転送期間に基づきスループットを算出させることを特徴とする請求項5ないし7の何れか一項に記載の設計支援プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004071105A JP2005258917A (ja) | 2004-03-12 | 2004-03-12 | 集積回路の設計支援システムおよび設計支援プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004071105A JP2005258917A (ja) | 2004-03-12 | 2004-03-12 | 集積回路の設計支援システムおよび設計支援プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005258917A true JP2005258917A (ja) | 2005-09-22 |
Family
ID=35084553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004071105A Pending JP2005258917A (ja) | 2004-03-12 | 2004-03-12 | 集積回路の設計支援システムおよび設計支援プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005258917A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009193452A (ja) * | 2008-02-15 | 2009-08-27 | Fujitsu Ltd | 回路設計支援プログラム、回路設計支援方法および回路設計支援装置 |
JP2010146292A (ja) * | 2008-12-18 | 2010-07-01 | Fujitsu Microelectronics Ltd | 性能評価装置、性能評価方法及びシミュレーションプログラム |
JP2011237888A (ja) * | 2010-05-06 | 2011-11-24 | Fujitsu Ltd | 検証支援プログラム、検証支援装置および検証支援方法 |
JP2013152620A (ja) * | 2012-01-25 | 2013-08-08 | Fujitsu Semiconductor Ltd | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 |
-
2004
- 2004-03-12 JP JP2004071105A patent/JP2005258917A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009193452A (ja) * | 2008-02-15 | 2009-08-27 | Fujitsu Ltd | 回路設計支援プログラム、回路設計支援方法および回路設計支援装置 |
JP2010146292A (ja) * | 2008-12-18 | 2010-07-01 | Fujitsu Microelectronics Ltd | 性能評価装置、性能評価方法及びシミュレーションプログラム |
JP2011237888A (ja) * | 2010-05-06 | 2011-11-24 | Fujitsu Ltd | 検証支援プログラム、検証支援装置および検証支援方法 |
JP2013152620A (ja) * | 2012-01-25 | 2013-08-08 | Fujitsu Semiconductor Ltd | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9983852B2 (en) | Graphical specification and constraint language for developing programs for hardware implementation and use | |
US8453079B2 (en) | Automated conversion of synchronous to asynchronous circuit design representations | |
US20140040855A1 (en) | Optimization of a Data Flow Program Based on Access Pattern Information | |
KR101260295B1 (ko) | 신호처리장치 | |
WO2008033344A2 (en) | Hardware definition language generation for frame-based processing | |
JP2006285865A (ja) | レジスタ転送レベル記述と動作記述間の対応関係特定方法、装置及びプログラム | |
JP3852741B2 (ja) | 高位合成方法および高位合成装置 | |
Williamson et al. | Synthesis of parallel hardware implementations from synchronous dataflow graph specifications | |
Smith et al. | An architecture design and assessment system for software/hardware codesign | |
JP4348546B2 (ja) | 信号処理装置、信号処理プログラムおよび記録媒体 | |
US9454627B1 (en) | Systems and methods for optimizing executable models for hardware synthesis | |
Raudvere et al. | Application and verification of local nonsemantic-preserving transformations in system design | |
JP2005258917A (ja) | 集積回路の設計支援システムおよび設計支援プログラム | |
Shang et al. | Asynchronous system synthesis based on direct mapping using VHDL and Petri nets | |
US7684968B1 (en) | Generation of a high-level simulation model of an electronic system by combining an HDL control function translated to a high-level language and a separate high-level data path function | |
Folmer et al. | High-level synthesis of digital circuits from template haskell and sdf-ap | |
US20070250803A1 (en) | High-level synthesis method and high-level synthesis system | |
US8156452B1 (en) | Method and apparatus for importing hardware description language into a system level design environment | |
Karlström et al. | Nogap: A micro architecture construction framework | |
JP5162531B2 (ja) | シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置 | |
JP2011053805A (ja) | ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、及び制御プログラム | |
Parhi et al. | Signal flow graphs and data flow graphs | |
Fan et al. | Usage-based characterization of complex functional blocks for reuse in behavioral synthesis | |
Raudvere et al. | A synchronization algorithm for local temporal refinements in perfectly synchronous models with nested feedback loops | |
Grotker et al. | Aden: An environment for digital receiver asic design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070309 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090520 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090602 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091027 |