JP2006502500A - 回路合成中における最小コストで正確なタイミングのハードウェアの設計方法 - Google Patents
回路合成中における最小コストで正確なタイミングのハードウェアの設計方法 Download PDFInfo
- Publication number
- JP2006502500A JP2006502500A JP2004543381A JP2004543381A JP2006502500A JP 2006502500 A JP2006502500 A JP 2006502500A JP 2004543381 A JP2004543381 A JP 2004543381A JP 2004543381 A JP2004543381 A JP 2004543381A JP 2006502500 A JP2006502500 A JP 2006502500A
- Authority
- JP
- Japan
- Prior art keywords
- hardware
- timing
- clock cycle
- receiving
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
【課題】 回路合成中における最小コストで正確なタイミングのハードウェアの設計方法を提供する。
【解決手段】 回路設計プロセス中に回路のタイミング要件を考慮する方法であって、クロックサイクル時間制約条件を受け取ること、マクロセルライブラリ(204)からハードウェア資源の遅延特性を受け取ること、オペレーションと、該オペレーションに関連付けられた選択肢のクロックサイクルと、該オペレーションに関連付けられた選択肢のハードウェア資源(202)とを受け取ること、およびプログラムグラフのハードウェア構造表現を使用して、タイミング制約条件に関する前記受け取った選択肢の有効性を判断すること、を含む方法とする。
【解決手段】 回路設計プロセス中に回路のタイミング要件を考慮する方法であって、クロックサイクル時間制約条件を受け取ること、マクロセルライブラリ(204)からハードウェア資源の遅延特性を受け取ること、オペレーションと、該オペレーションに関連付けられた選択肢のクロックサイクルと、該オペレーションに関連付けられた選択肢のハードウェア資源(202)とを受け取ること、およびプログラムグラフのハードウェア構造表現を使用して、タイミング制約条件に関する前記受け取った選択肢の有効性を判断すること、を含む方法とする。
Description
[関連出願のクロスリファレンス]
本出願は、本発明の譲受人に譲渡された「SYSTEM FOR AND METHOD OF CLOCK CYCLE-TIME ANALYSIS USING MODE-SLICING MECHANISM」という発明の名称の米国特許出願第[代理人整理番号第100200559−1号]、および、「METHOD OF USING CLOCK CYCLE-TIME IN DETERMINING LOOP SCHEDULES DURING CIRCUIT DESIGN」という発明の名称の米国特許出願第[代理人整理番号第100200560−1号]に関連するものである。これらの出願は本出願と同時に出願され、この引用によって、それらの開示は、全内容が参照により本明細書に援用される。
本出願は、本発明の譲受人に譲渡された「SYSTEM FOR AND METHOD OF CLOCK CYCLE-TIME ANALYSIS USING MODE-SLICING MECHANISM」という発明の名称の米国特許出願第[代理人整理番号第100200559−1号]、および、「METHOD OF USING CLOCK CYCLE-TIME IN DETERMINING LOOP SCHEDULES DURING CIRCUIT DESIGN」という発明の名称の米国特許出願第[代理人整理番号第100200560−1号]に関連するものである。これらの出願は本出願と同時に出願され、この引用によって、それらの開示は、全内容が参照により本明細書に援用される。
[発明の分野]
本発明は、デジタル回路合成を対象にし、特に、タイミング解析の検討を組み込むことによって、ハイレベル合成により生成されたデジタル回路の品質を改善することを対象にする。
本発明は、デジタル回路合成を対象にし、特に、タイミング解析の検討を組み込むことによって、ハイレベル合成により生成されたデジタル回路の品質を改善することを対象にする。
[背景]
技術の継続的な進歩および生産コストの削減が組み合わさることによって、高度なデジタル回路を実装または使用する電子デバイスが急増している。これらの電子デバイスには、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルド計算デバイス等の従来型の電子デバイスだけでなく、携帯電話、プリンタ、デジタルカメラ、ファクシミリ装置、家庭用およびビジネス用の電化製品等の従来型でない電子デバイスの双方が含まれる。なお、ハンドヘルド計算デバイスは、携帯情報端末(PDA)やハンドヘルドコンピュータ等である。これらの電子デバイスに含まれるデジタル回路は、その電子デバイスの基本機能を提供するのに使用することもできるし、望ましい特徴を追加して提供するのに使用することもできる。
技術の継続的な進歩および生産コストの削減が組み合わさることによって、高度なデジタル回路を実装または使用する電子デバイスが急増している。これらの電子デバイスには、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルド計算デバイス等の従来型の電子デバイスだけでなく、携帯電話、プリンタ、デジタルカメラ、ファクシミリ装置、家庭用およびビジネス用の電化製品等の従来型でない電子デバイスの双方が含まれる。なお、ハンドヘルド計算デバイスは、携帯情報端末(PDA)やハンドヘルドコンピュータ等である。これらの電子デバイスに含まれるデジタル回路は、その電子デバイスの基本機能を提供するのに使用することもできるし、望ましい特徴を追加して提供するのに使用することもできる。
これらの電子デバイスのそれぞれについて、そのデバイスの全体的なコストを削減することが望ましい。このコスト削減は、デバイスに実装されたデジタル回路のコストを削減することによって達成することができる。デジタル回路のコストは、各デジタル回路の製造に使用されるシリコンの量を削減することによって削減することができる。しかしながら、デジタル回路がこれまで通りに適切な機能および性能の要件を満たすことが重要である。性能要件は、スループット(クロックサイクルごとに実行されるタスク数)、待ち時間(単一のタスクを完了するためのクロックサイクル数)、およびクロック速度といったいくつかのメトリックの組み合わせとして表される。
機能および性能の要件が与えられると、合成手法は、通常、その要求された機能を有し、かつ、コストが最小で、それにもかかわらず性能要件を満たすデジタル回路の設計を試みる。図1は、デジタル回路のハイレベル合成の一般的なプロセスのブロック図である。図示するように、設計プロセスは、入力として、アプリケーションの機能仕様101および所望の性能要件102を取り込み、多数のステップを実行する。この多数のステップは、解析、変換、および最適化ステップ103、記憶決定ステップ104、機能ユニット割り当てステップ105、オペレーションスケジューリングおよび資源バインドステップ106、およびハードウェア合成ステップ107を含む。その後、回路の構造的レジスタ転送言語(RTL)記述が出力として生成される(108)。
機能仕様入力101は、アプリケーションの振る舞いを表すハイレベルな仕様である。この機能仕様入力は、通常、ハイレベル合成プロセスが理解する言語による実行可能プログラムである。この機能仕様入力がテキスト文書である場合、合成のために、同等の実行可能コードを記述することが必要な場合がある。性能要件102は、合成されるデジタル回路に必要なスループット、待ち時間、クロック速度等を表す。
所望の性能を満たす機会およびコスト削減の機会を示すために、プログラムはステップ103で解析および変換される。これは、タスクレベル、インターレーション(interation)レベル、および命令レベルの並列性を利用する技法、ならびに、共通の部分式の削除、デッドコードの削除等のような従来の他のコンパイラの最適化を含む。
ステップ104において、プログラムの変数の記憶が決定される。プログラムに含まれるデータ構造体は、グローバルメモリにマッピングすることができる一方、それ以外のものは、ローカルメモリまたは場合によっては内部レジスタにマッピングすることができる。
ステップ105において、変換され最適化されたプログラムのオペレーションに対して、機能ユニットが割り当てられる。プログラムオペレーションには、加算、減算、乗算、除算等が含まれ得るが、これらに限定されるものではない。機能ユニット(FU)は、加算器、乗算器、ロード/ストアユニット、類似のコンポーネント等のコンポーネントを指す。これらの機能ユニットのそれぞれは、1つまたは2つ以上のタイプのオペレーションを実行することができる。機能ユニットの割り当てには、プログラムグラフのオペレーションを実行でき、かつ、要求された性能を満たすことができる最小コストの1組のハードウェアコンポーネントを割り当てるプロセスが必要とされる。例えば、加算、減算、乗算、メモリロード、およびメモリストアを有するプログラムが与えられると、ステップ105は、2つの乗加算器(multiply-adder)、3つの減算器、および1つのロード/ストア機能ユニットを割り当てることができる。
オペレーションのスケジューリングおよび資源のバインドは、ステップ106で行われる。オペレーションのスケジューリングには、各オペレーションの開始を特定のクロックサイクルに割り当てることが必要とされる。例えば、加算オペレーションは、クロックサイクル番号23で実行を開始するように割り当てることができる。資源のバインドには、各オペレーションにつき、その実行に使用される特定の機能を選択することが必要とされる。例えば、機能ユニットを割り当てるステップ105では、2つの加算器ADDER1およびADDER2を回路設計に含める必要があるとの判断が行われることがある。資源のバインドステップ106では、特定の加算オペレーションをADDER1にバインドすることができる。すなわち、特定の加算オペレーションは、ADDER1で実行されるように割り当てられる。
通常、スケジューリングされていないオペレーション(クロックサイクルおよび機能ユニットに関連付けられていないオペレーション)は、事前に割り当てられるか、または、スケジューリング中に動的に決定されるかのいずれかの或る順序で対処される。スケジューリングされていないオペレーションが選択されると、このオペレーションのスケジューリングおよびバインドを行うために、いくつかの選択肢が検討される。選択肢とは、このオペレーションのスケジューリングおよびバインドを行うことができる特定のクロックサイクルおよび機能ユニットを指す。スケジューリングされていないオペレーションの選択肢は、このオペレーションの実行に利用可能なクロックサイクルおよび機能ユニットを決定することによって導き出される。例えば、加算器を必要とするオペレーションに対して、3つの可能なクロックサイクルおよび2つの可能な加算器機能ユニットがある場合、そのオペレーションをスケジューリングするために6つの選択肢が解析されることになる。また、スケジューラ/バインダは、依存性の問題および/または資源コンフリクトの問題のために、いくつかの前の決定を取り消すこともできる。スケジューリングおよびバインドのアルゴリズムの一例としては、B. R. Rauの「ITERATIVE MODULO SCHEDULING」, International Journal of Parallel Processing, vol. 24, pp. 3-64, 1996(非特許文献1)の「A」の開示を参照されたい。この引用によって、この開示は、参照により本明細書に援用される。この文書は、Hewlett-Packard社から提供されるHP Labs Tech. Report HPL-94-115としても入手可能である。
ハードウェア合成ステップ107は、オペレーションのスケジューリングおよび資源のバインドのステップ106の完了後に行われる。ハードウェア合成は、データ値を保持するレジスタを割り当てるプロセス、ならびに、ハードウェア機能ユニットを互いに、および、割り当てられた記憶素子から/へ接続するプロセスを含む。これらの相互接続は、プログラムのデータフロー、ならびに、前のステップで行われたスケジューリングおよびバインドの決定に基づく。
最後に、出力109として、回路の構造記述が生成される。このRTL回路記述は、その後、後続の論理合成ステップ、ならびに、配置および配線ステップを通じて利用され、最終的な回路を生成することができる。
ハイレベル合成プロセスは、図1には図示しない他のステップを含むことができる。また、解析、変換、および最適化、記憶の決定、機能ユニットの割り当て、オペレーションのスケジューリングおよび資源のバインド、ならびにハードウェア合成を行うハイレベル合成プロセスは、図1に示すシーケンスで連続的に行うこともできるし、異なるシーケンスで連続的に行うこともできるし、これらのステップのいくつかは、組み合わせて並列に実行することもできる。プロセス全体のいくつかのステップを実行する現在利用可能なハイレベル合成の一例はPICO−NPAである。1999年8月20日に出願された「PROGRAMMATIC SYNTHESIS OF PROCESSOR ELEMENT ARRAYS」という発明の名称の米国特許出願第09/378,298号の図13および第5節を参照されたい。この米国特許出願の開示は、この引用によって、参照により本明細書に援用される。
上述したように、オペレーションのスケジューリングおよび資源のバインドのステップの総合的な目的は、指定された性能要件を満たし、かつ、ハードウェアのコストを最小にするように、特定のクロックサイクルおよび機能ユニットをプログラムの各オペレーションに関連付けることである。待ち時間およびスループットの性能要件を満たすことに加えて、結果のハードウェアが、指定されたクロック周波数によって回路パスに課されたタイミング制約条件を満たすことを確保することも重要である。回路パスは、主入力からラッチ/レジスタへの組み合わせパス、または、或るラッチ/レジスタから別のラッチ/レジスタへの組み合わせパス、または、或るラッチ/レジスタから主出力への組み合わせパス、または、主入力から主出力への組み合わせパスである。
米国特許第6,324,678号
B. R. Rau著「ITERATIVE MODULO SCHEDULING」, International Journal of Parallel Processing, vol. 24, pp. 3-64, 1996
KUEHLMANN A他, 「Timing analysis in high-level synthesis」, 1992年11月8-12日, PROCEEDINGS OF THE IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER AIDED DESIGN (ICCAD). SANTA CLARA, LOS ALAMITOS, IEEE COMP.SOC.PRESS, US, vol. CONF.10, p349-354
NESTOR J A他「SALSA: a new approach to scheduling with timing constraints」, 1990年11月11-15日, PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTER AIDED DESIGN. SANTA CLARA, LOS ALAMITOS, IEEE COMP.SOC.PRESS, US, vol.CONF.8, p262-265
LY T A他「Applying simulated evolution to scheduling in high level synthesis」1990年8月12-14日, CIRCUITS AND SYSTEMS, PROCEEDINGS OF THE 33RD MIDWEST SYMPOSIUM ON CALGARY, ALTA., CANADA, NEW YORK, NY, USA, IEEE, US, p172-175
[発明の概要]
本発明は、回路設計プロセス中に回路のタイミング要件を考慮する方法を対象とし、クロックサイクル時間制約条件を受け取ること、マクロセルライブラリからハードウェア資源の遅延特性を受け取ること、オペレーションと、該オペレーションに関連付けられた選択肢のクロックサイクルと、該オペレーションに関連付けられた選択肢のハードウェア資源とを受け取ること、およびプログラムグラフのハードウェア構造表現を使用して、タイミング制約条件に関する前記受け取った選択肢の有効性を判断すること、を含む方法。
本発明は、回路設計プロセス中に回路のタイミング要件を考慮する方法を対象とし、クロックサイクル時間制約条件を受け取ること、マクロセルライブラリからハードウェア資源の遅延特性を受け取ること、オペレーションと、該オペレーションに関連付けられた選択肢のクロックサイクルと、該オペレーションに関連付けられた選択肢のハードウェア資源とを受け取ること、およびプログラムグラフのハードウェア構造表現を使用して、タイミング制約条件に関する前記受け取った選択肢の有効性を判断すること、を含む方法。
[詳細な説明]
図2は、スケジューリングおよびバインドによって所与のクロック周波数要件を満たすハードウェアを生成することができるメカニズムのフロー図を示している。本発明であるタイミングトラッカ205は、スケジューラ/バインダ201と共にこの目的を達成するために機能する。スケジューラ/バインダ201は、入力202としてタイミングトラッカ205に次のもの、すなわち、オペレーションと、順序対<クロックサイクル,機能ユニット>として表される、選択肢のクロックサイクルおよび選択肢の機能ユニットを含む選択肢を提供する。
図2は、スケジューリングおよびバインドによって所与のクロック周波数要件を満たすハードウェアを生成することができるメカニズムのフロー図を示している。本発明であるタイミングトラッカ205は、スケジューラ/バインダ201と共にこの目的を達成するために機能する。スケジューラ/バインダ201は、入力202としてタイミングトラッカ205に次のもの、すなわち、オペレーションと、順序対<クロックサイクル,機能ユニット>として表される、選択肢のクロックサイクルおよび選択肢の機能ユニットを含む選択肢を提供する。
また、タイミングトラッカ205は、クロック周期仕様203も受け取り、マクロセルライブラリ204にアクセスする。マクロセルライブラリ204は、すべてのハードウェア資源(機能ユニット、レジスタ、マルチプレクサ、および他の論理スイッチング素子)の遅延を収容する。これらのマクロセルのそれぞれに関連付けられた遅延は、Δini、Δouti、Δthrui,jによって事前に特徴付けられる。Δiniは、マクロセルの主入力iからマクロセル内部のラッチへの最長の組み合わせパスの遅延を指し、主入力の遷移時間の関数である。このようなパスが存在しない場合(例えば、組み合わせマクロセルの場合)、Δiniは無関係となる。Δoutiは、マクロセル内部のラッチからマクロセルの主出力iへの最長の組み合わせパスの遅延を指し、主出力の容量性負荷の関数である。このようなパスが存在しない場合(例えば、組み合わせマクロセルの場合)、Δoutiは無関係となる。Δthrui,jは、マクロセルの主入力iからマクロセルの主出力jへの最長の組み合わせパスの遅延を指し、主入力の遷移時間および主出力の容量性負荷の関数である。このようなパスが存在しない場合(例えば、順序マクロセルの場合)、Δthrui,jは無関係となる。これらのマクロセルの遅延Δini、Δouti、およびΔthrui,jは、幅等のマクロセル特有のパラメータの関数となることもある。さらに、これらの遅延は、例えば、最も高速な実施、最小の実施等のマクロセルの特定なハードウェアの実施に対応し、その選択は外部から制御することができる。
タイミングトラッカ205は、スケジューリングおよびバインド中に定義されるので、その部分ハードウェア構造の内部表現を使用する。ハードウェアの構造表現(ボックス206)は、FU間のデータフローがレジスタにバインドされ、対応する相互接続が合成される場合には、粒度を細かくすることもできるし、データフローが生産側FUと消費側FUとの間の仮想リンクとしてモデル化される場合には、粒度を粗くすることができる。粒度の粗い構造表現の例を図3に示す。図3では、FU1からFU3へのデータフローが、ワイヤ301、レジスタ302、およびワイヤ303としてモデル化され、FU1からFU6へのデータフローが、ワイヤ304としてモデル化されている。デジタル回路の構造表現に含まれる詳細のレベルは、外部から制御することができる。タイミングトラッカ205は、このようなすべての可能な構造表現を扱う。
各スケジューリング/バインドステップにおいて、タイミングトラッカ205は、入力202の新たな値を受け取る。タイミングトラッカ205は、選択肢によって与えられたオペレーションのスケジューリングおよびバインドが、前のスケジューリングおよびバインドの判断との関連でクロック周波数要件を満たすかどうか判断するための解析を行う。ステップ207は、入力202で与えられたオペレーションが入力202で与えられた選択肢に配置されることになると、フロー依存コンフリクト(flow dependency conflict)を引き起こす可能性のある、スケジューリングされたすべてのオペレーションを特定する。所与の選択肢にオペレーションを配置することは、そのオペレーションが、その選択肢に対応するクロックサイクルで実行されるようにスケジューリングされ、その選択肢に対応するFUで実行されることを意味する。フロー依存コンフリクトは、あるオペレーションがデータを、このデータが他のオペレーションにより消費された後に生成するときに、引き起こされる。
ステップ208において、指令がハードウェア構造表現モジュール206に発行され、前に行われたスケジューリングおよびバインドの判断、入力202、およびステップ207で特定されたあらゆるフロー依存コンフリクトオペレーションに基づいて、ハードウェア構造が計算される。タイミングトラッカ205が入力202の新たな値を受け取るごとに、構造表現を最初から構築することもできるし、スケジューリング/バインドプロセス中に、構造を永続的なものとして維持し、ステップ208が起動されるごと、すなわち、有効性の判断が行われるごとに、構造を追加的に更新することもできる。タイミングトラッカは、構造表現を維持するこのようなすべての可能性を扱う。ハードウェア構造に対する更新が追加的に行われる実施の形態では、ハードウェア構造表現は、選択肢によって与えられたクロックサイクルにおいて、および、選択肢によって与えられたFUで、このオペレーションをスケジューリングすることによって導入される、追加されたデータフロー関係で更新される。
図3は、タイミングトラッカが、例えばOP1といったオペレーションが、例えば<クロックサイクル=17,機能ユニット=FU1>といった指定された選択肢に対して有効であると確認されることを指定する入力202(図2)を受け取った時の内部ハードウェア構造表現に対する更新を示している。ここで、内部ハードウェア構造表現を更新した結果として、(ボールド体で示すような)ワイヤ304、306、および307が加えられ、機能ユニットFU1のクロックサイクル17においてOP1をスケジューリングする結果としてバインドされるデータフロー関係をモデル化する。
ステップ209において、タイミング解析は、計算された構造表現に対して実行される。構造表現が粗い粒度である(すなわち、記憶および相互接続が正確にモデル化されない)場合、タイミング解析を実行するために、マクロセル遅延関数(Δini、Δouti、Δthrui,j)が必要とするパラメータは、近似する必要がある。これらのパラメータには、ファンイン、ファンアウト容量、および幅が含まれる。ファンインは、或るFUまたはレジスタから別のレジスタまたはFUへデータ値を導くのに必要な各スイッチング論理素子の入力数(例えば、マルチプレクサの入力数)を指す。ファンアウト容量は、すべてのFU、レジスタ、および論理素子の出力の負荷容量を指す。これらの近似は、これらのパラメータの予測値に基づいて、スケジューリングおよびバインドの前に行うこともできるし、スケジューリングおよびバインド中に行うこともできる。後者の場合、これらの値は、構造が更新されるごとに再計算される。これらのシナリオはそれぞれ、本発明の範囲内にある。これらのパラメータは、次に、マクロセルライブラリの各資源に関連付けられたΔini関数、Δouti関数、Δthrui,j関数を使用したハードウェア構造のすべてのハードウェア資源の正確な遅延値を導出するのに使用される。タイミング解析は、これらの遅延値に基づきハードウェア構造に対して行われる。
タイミング解析ステップ209は、ハードウェア構造全体に対して行うこともできるし、追加的に、すなわち、構造の更新の結果タイミングが影響を受けるハードウェア構造の部分に対してのみ行うこともできる。例えば、図3では、上述した構造の更新の結果として、タイミングが影響を受けるハードウェア構造の部分を領域305内として示す。領域305は、ファンイン、ファンアウト容量、または幅が構造の更新によって変更されたあらゆるハードウェア資源を含み、その結果として、タイミングが変化したあらゆる回路パスに沿ったすべてのハードウェア資源を含む。本発明は、非追加的および追加的の双方で実行されたタイミング解析ステップ209をカバーする。この状況において、タイミング解析は、あらゆる回路パスがタイミング制約条件を満たすことをチェックするプロセスを指す。あらゆるタイミング解析アルゴリズムを使用でき、例えば、「SYSTEM FOR AND METHOD OF CLOCK CYCLE-TIME ANALYSIS USING MODE-SLICING MECHANISM」という発明の名称の米国特許出願第[代理人整理番号第100110559−1号]に開示されたタイミング解析等を使用できることが理解されよう。この米国特許出願は、本出願と同時に出願され、参照によりその全内容が本明細書に援用される。
図2を再び参照して、ステップ210において、タイミング制約条件がステップ209で満たされた場合には、真信号がステップ211でスケジューラ/バインダ201に対して生成される。そうでない場合には、偽信号がステップ212で生成され、スケジューラ/バインダ201に送出される。本発明の一実施の形態では、ステップ210で実行されたタイミング制約条件を満たすかどうかのチェックの結果として、ブールフラグが真(ステップ211)または偽(ステップ212)に設定される。いずれの場合にも、ステップ213において、タイミングトラッカ205が新たな入力202に対して起動された時にハードウェア構造表現が有していた状態にハードウェア構造表現を戻す指令が、ハードウェア構造表現モジュール206に発行される。次に、タイミングトラッカは、スケジューラ/バインダ201に制御を戻す。
本発明の別の実施の形態は、クロック周波数によって課されたタイミング制約条件を満たしつつ、デジタル回路のコストを最小にするのに使用することができる。図4は、設計対象の電子デバイスのタイミング制約条件を満たすデジタル回路の最小コスト選択肢を選択するメカニズムのフロー図である。図2は、タイミングを正確するためにオペレーション/選択肢の選択の有効性を確認する方法およびシステムを説明するのに対して、本発明のこの実施の形態は、全体的な回路コストも削減する。スケジューラ/バインダ401は、スケジューラ/バインダ401がコストパーフォーマンストラッカ403と連係して、使用されるシリコンの量を最小にすることにより全体的なデジタル回路のコストを削減するという相違はあるが、本質的に、図2のスケジューラ/バインダ201と同様である。コストパーフォーマンストラッカ403は、スケジューラ/バインダ401と共に、この目的を達成するように機能する。
スケジューラ/バインダ401は、入力202として、コストパーフォーマンストラッカ403に次のもの、すなわち、オペレーション、および、選択肢のクロックサイクルと選択肢の機能ユニットを含む選択肢を提供する。
また、コストパーフォーマンストラッカモジュール403は、クロック周期仕様203も受け取り、マクロセルライブラリ402にアクセスする。マクロセルライブラリ402は、すべてのハードウェア資源(機能ユニット、レジスタ、マルチプレクサ、および他の論理スイッチング素子)の面積−遅延特性を収容する。この実施の形態では、マクロセルライブラリのマクロセルは、異なる面積および遅延を有する1組のハードウェア実施態様を表す。基本的に、この実施の形態のマクロセルは、上述した実施の形態におけるような特定のハードウェア実施態様に対応せず、その代わり、1系統のハードウェア実施態様に対応する。この実施の形態では、選択されたどの実施態様の遅延も、幅、入力遷移時間、容量性出力負荷等の他のパラメータに加えて、選択された実施態様の面積に依存する。同様に、選択されたどの実施態様の面積も、選択された実施態様の遅延に依存する。この状況において、面積は、ハードウェア資源に含まれるシリコンの量に比例し、したがって、ハードウェア資源のコストに関連付けられる。
ハードウェア資源のシリコンの量が増加するにつれて、遅延は減少するが、ハードウェア資源のコストは増加する。例えば、加算器の遅延が減少するにつれて、シリコンの面積は増加し、関連したコストも増加する。これらの面積−遅延特性は、通常、面積遅延トレードオフ曲線として表される。このトレードオフ曲線は、いくつかの方法で表すことができ、面積−遅延値のリスト(タプル)または閉形公式(closed-form formula)として表すことができる。本発明は、これらの表現のいずれも扱うことができる。また、内部ラッチ(例えば、パイプライン化されたFU)を有するマクロセルの場合、そのマクロセルの可能な各マイクロアーキテクチャ上の選択(例えば、加算器のリップルキャリー対キャリールックアヘッド対キャリー選択)ごとに異なる面積−遅延曲線が存在する。
図5は、(i)マクロセル501ならびに面積−遅延曲線505、506、および507として表されたその面積−遅延特性と、(ii)マクロセル508および面積−遅延曲線510として表されたその面積−遅延特性との2つの例を示している。ここで、「Ain」502は、マクロセルの入力から、その入力から開始して当該マクロセル内で最初に遭遇するパイプラインレジスタセットまでのすべての組み合わせ論理回路から成る、当該マクロセルの部分の面積を指す。その対応する面積−遅延曲線を505によって示す。「Aout」504は、マクロセルの出力から逆に戻って開始して当該マクロセル内で最初に遭遇するパイプラインレジスタセット、および、これらのレジスタと当該マクロセルの出力との間のすべての組み合わせ論理回路から成る、当該マクロセルの部分の面積を指す。その対応する面積−遅延曲線を507によって示す。「Apipe」503は、最初のパイプラインレジスタセットおよびすべての中間のパイプラインレジスタセット、ならびに、すべての介在する組み合わせ論理回路から成る、マクロセルの部分の面積を指す。その対応する面積−遅延曲線を506によって示す。組み合わせマクロセル508の例では、「A」509は総面積を指す。その対応する面積−遅延曲線を510によって示す。
図4を参照して、各スケジューリング/バインドステップにおいて、コストパーフォーマンストラッカ403は、入力202の新たな値を受け取る。コストパーフォーマンストラッカ403は、クロック周波数要件を満たしつつも、前のスケジューリングおよびバインドの判断との関連で、選択肢によって与えられたオペレーションをスケジューリングおよびバインドした結果生じたハードウェアの比較コストを判断する解析を行う。入力202の新たな値を受け取ると、ステップ207、および、それに続いてステップ208が実行される。これらのステップは、図2との関連ですでに説明した。
次に、ステップ404は、指定されたクロック周期入力203を満たすような、計算されたハードウェア構造表現の最小の相対コストを決定する。この決定は、いくつかの方法で行うことができる。
ステップ404の一実施の形態では、これは、以下の数値最適化問題の形を取る。
∀p,ΣpΔ≦Tとなるような
minΣA
∀p,ΣpΔ≦Tとなるような
minΣA
ここで、「minΣA」は、すべてのコンポーネントの面積の合計を最小にすることを意味し、「∀p,ΣpΔ≦T」は、あらゆる回路パスp(「∀p」)について、そのパス遅延、すなわち、そのパスpに沿ったすべてのコンポーネントの遅延の合計(「ΣpΔ」)が、入力されたクロック周期203以下(≦T)であることを意味する。この数値最適化問題は、マクロセルの面積−遅延特性の非線形性により、非線形となる。
ステップ404の別の実施の形態では、各回路パスに沿ったレジスタ、相互接続、およびFUの間でクロックサイクル時間を分割するのに、時間編成(time-budgeting)を使用することができる。このように、個々の各ハードウェア資源の遅延制約条件が取得され、解析されて、タイミングの考慮事項を満たすことが保証される。面積−遅延特性は、各ハードウェア資源について、そのハードウェア資源の遅延制約条件を満たすような最小面積の実施態様を決定するのに使用される。
これに加えて、各FUマクロセルについてのマイクロアーキテクチャ上の選択間の変動に関する選択も、解析の一部として含まれる。例えば、パイプライン化されたFUマクロセルは、図6の代表的な面積−遅延トレードオフ曲線601〜603によって表される、例えばarch1およびarch2といった2つの異なるマイクロアーキテクチャ上の実施態様を有することができる。遅延制約条件(Δini,サイクル時間,Δouti)を満たすような最小面積の実施態様は次の通りである。
min(Ain,arch1+Apipe,arch1+Aout,arch1,Ain,arch2+Apipe,arch2+Aout,arch2)
min(Ain,arch1+Apipe,arch1+Aout,arch1,Ain,arch2+Apipe,arch2+Aout,arch2)
ステップ209と同様に、ステップ404は、ハードウェア構造のすべてのハードウェア資源について実行することもできるし、タイミングが構造更新ステップ208の結果として影響を受けるハードウェア構造の部分についてのみ行うこともできる。本発明は、非追加的および追加的の双方で実行されたステップ404をカバーする。
その後、ステップ213において、コストパーフォーマンストラッカ403が新たな入力202に対して起動された時にハードウェア構造表現が有していた状態にハードウェア構造表現を戻す指令が、ハードウェア構造表現モジュール206に発行される。次に、コストパーフォーマンストラッカは、スケジューラ/バインダ401に制御を戻す。
説明した第2の実施の形態は、最小コストで、かつ、タイミングが正確であるオペレーションの選択肢の選択を保証するものである。これによって、指定されたクロック周期全体を計算に利用しつつ、シリコン面積を最小にする目的が可能になる。この手法は、最小コストのハードウェアが、正確に導き出され、設計プロセスの各ステップにおいて選択肢の選択を案内するのに使用される点で、前の手法よりも優れている。
201、401 スケジューラ/バインダ
202 入力
203 クロック周期仕様
204、402 マクロセルライブラリ
205 タイミングトラッカ
206 ハードウェア構造表現モジュール
301、303、304、306、307 ワイヤ
302 レジスタ
305 領域
403 コストパーフォーマンストラッカ
501、508 マクロセル
505、506、507、510 面積−遅延曲線
202 入力
203 クロック周期仕様
204、402 マクロセルライブラリ
205 タイミングトラッカ
206 ハードウェア構造表現モジュール
301、303、304、306、307 ワイヤ
302 レジスタ
305 領域
403 コストパーフォーマンストラッカ
501、508 マクロセル
505、506、507、510 面積−遅延曲線
Claims (10)
- 回路設計プロセス中に回路のタイミング要件を満たす方法であって、
クロックサイクル時間制約条件を受け取るステップと、
マクロセルライブラリ(204)からハードウェア資源の遅延特性を受け取るステップと、
オペレーションと、該オペレーションに関連付けられた選択肢のクロックサイクルと、該オペレーションに関連付けられた選択肢のハードウェア資源(202)とを受け取るステップと、
プログラムグラフのハードウェア構造表現を使用して、タイミング制約条件に関する前記受け取った選択肢の有効性を判断するステップと、
を含む方法。 - 前記回路設計プロセスに前記有効性を報告すること、
をさらに含む、請求項1に記載の回路設計プロセス中に回路のタイミング要件を満たす方法。 - 前記回路設計プロセスはスケジューラ/バインダである、請求項1に記載の回路設計プロセス中に回路のタイミング要件を満たす方法。
- 前記ハードウェア構造表現は、永続的であり、新たな選択肢を受け取るごとに追加的に更新される、請求項1に記載の回路設計プロセス中に回路のタイミング要件を満たす方法。
- 前記有効性の判断は、タイミング解析を使用して行われる、請求項1に記載の回路設計プロセス中に回路のタイミング要件を満たす方法。
- 前記タイミング解析は、前記ハードウェア構造表現に対する更新の結果としてタイミングが変更された、前記ハードウェア構造表現の部分に対して行われる、請求項5に記載の回路設計プロセス中に回路のタイミング要件を満たす方法。
- 前記遅延特性関数のパラメータは、前記ハードウェア構造表現を使用して見積もられる、請求項1に記載の回路設計プロセス中に回路のタイミング要件を満たす方法。
- 前記クロックサイクル時間制約条件はクロック周期である、請求項1に記載の回路設計プロセス中に回路のタイミング要件を満たす方法。
- 前記クロックサイクル時間制約条件はクロック周波数である、請求項1に記載の回路設計プロセス中に回路のタイミング要件を満たす方法。
- コンピュータ可読媒体に保存される、回路設計プロセス中に回路のタイミング要件を満たすコンピュータ・プログラムであって、
クロックサイクル時間制約条件を受け取るコンピュータ・コードと、
マクロセルライブラリ(204)からハードウェア資源の遅延特性を受け取るコンピュータ・コードと、
オペレーションと、該オペレーションに関連付けられた選択肢のクロックサイクルと、該オペレーションに関連付けられた選択肢のハードウェア資源(202)とを受け取るコンピュータ・コードと、
プログラムグラフのハードウェア構造表現を使用して、タイミング制約条件に関する前記受け取った選択肢の有効性を判断するコンピュータ・コードと、
を含むコンピュータ・プログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/266,831 US6966043B2 (en) | 2002-10-07 | 2002-10-07 | Method for designing minimal cost, timing correct hardware during circuit synthesis |
PCT/US2003/031581 WO2004034289A2 (en) | 2002-10-07 | 2003-10-03 | Method for designing minimal cost, timing correct hardware during circuit synthesis |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006502500A true JP2006502500A (ja) | 2006-01-19 |
Family
ID=32042730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004543381A Pending JP2006502500A (ja) | 2002-10-07 | 2003-10-03 | 回路合成中における最小コストで正確なタイミングのハードウェアの設計方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6966043B2 (ja) |
EP (1) | EP1550060A2 (ja) |
JP (1) | JP2006502500A (ja) |
AU (1) | AU2003277293A1 (ja) |
WO (1) | WO2004034289A2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6952816B2 (en) * | 2002-10-07 | 2005-10-04 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for digital circuit design generation |
US7873506B2 (en) * | 2003-06-30 | 2011-01-18 | Agere Systems Inc. | Simulation framework with support for multiple integrated circuits having potentially differing characteristics |
US8365116B2 (en) * | 2010-12-06 | 2013-01-29 | University Of Utah Research Foundation | Cycle cutting with timing path analysis |
US10318676B2 (en) * | 2017-01-25 | 2019-06-11 | Ampere Computing Llc | Techniques for statistical frequency enhancement of statically timed designs |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553002A (en) * | 1990-04-06 | 1996-09-03 | Lsi Logic Corporation | Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, using milestone matrix incorporated into user-interface |
US5764951A (en) * | 1995-05-12 | 1998-06-09 | Synopsys, Inc. | Methods for automatically pipelining loops |
US6003030A (en) * | 1995-06-07 | 1999-12-14 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US6151304A (en) * | 1997-10-29 | 2000-11-21 | Lucent Technologies Inc. | Distributed precomputation of network signal paths with improved performance through parallelization |
US6496504B1 (en) * | 1998-08-06 | 2002-12-17 | Ricoh Company, Ltd. | Smart allocation of bandwidth for multiple independent calls on a digital network |
US6507587B1 (en) * | 1998-10-09 | 2003-01-14 | Microsoft Corporation | Method of specifying the amount of bandwidth to reserve for use in network communications |
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
JP2001142922A (ja) * | 1999-11-15 | 2001-05-25 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法 |
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 |
-
2002
- 2002-10-07 US US10/266,831 patent/US6966043B2/en not_active Expired - Lifetime
-
2003
- 2003-10-03 EP EP03808151A patent/EP1550060A2/en not_active Withdrawn
- 2003-10-03 WO PCT/US2003/031581 patent/WO2004034289A2/en active Application Filing
- 2003-10-03 AU AU2003277293A patent/AU2003277293A1/en not_active Abandoned
- 2003-10-03 JP JP2004543381A patent/JP2006502500A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US6966043B2 (en) | 2005-11-15 |
WO2004034289A2 (en) | 2004-04-22 |
EP1550060A2 (en) | 2005-07-06 |
WO2004034289A3 (en) | 2004-05-13 |
AU2003277293A1 (en) | 2004-05-04 |
US20040068706A1 (en) | 2004-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Raghunathan et al. | An iterative improvement algorithm for low power data path synthesis | |
US20080209425A1 (en) | Device Comprising a Communications Stick With A Scheduler | |
US7096438B2 (en) | Method of using clock cycle-time in determining loop schedules during circuit design | |
Bakshi et al. | Partitioning and pipelining for performance-constrained hardware/software systems | |
Ohm et al. | Comprehensive lower bound estimation from behavioral descriptions | |
JP2006502502A (ja) | ハードウェアソルバの合成中における配線遅延または輻輳を削減するシステムおよび方法 | |
Murthy et al. | Memory management for synthesis of DSP software | |
JP2001202397A (ja) | システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法 | |
Ohm et al. | A unified lower bound estimation technique for high-level synthesis | |
Gupta et al. | Conditional speculation and its effects on performance and area for high-level snthesis | |
US20070028198A1 (en) | Method and apparatus for allocating data paths to minimize unnecessary power consumption in functional units | |
JP2006502500A (ja) | 回路合成中における最小コストで正確なタイミングのハードウェアの設計方法 | |
Eikerling et al. | A methodology for rapid analysis and optimization of embedded systems | |
JPH1031693A (ja) | 専用アプリケーション・サブシステムの合成方法 | |
Bringmann et al. | Target architecture oriented high-level synthesis for multi-FPGA based emulation | |
Gregory et al. | ISIS: A system for performance driven resource sharing | |
Matai et al. | Trimmed VLIW: Moving application specific processors towards high level synthesis | |
US8056030B2 (en) | Behavioral synthesis system, behavioral synthesis method, and behavioral synthesis program | |
Wang et al. | Automating embedded software construction and analysis with design models | |
Richter et al. | Bottom-up performance analysis of HW/SW platforms | |
Bakshi et al. | Performance-constrained hierarchical pipelining for behaviors, loops, and operations | |
Szymanek et al. | Digital systems design using constraint logic programming | |
Biswas et al. | Code size reduction in heterogeneous-connectivity-based DSPs using instruction set extensions | |
Cong et al. | A variation-tolerant scheduler for better than worst-case behavioral synthesis | |
Trajkovic et al. | A graph based algorithm for data path optimization in custom processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080814 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090202 |