FPGA CPU、最大速度を見つける方法


14

FPGAを使い始めたばかりで、正しく理解できれば、コードを使用して論理ゲートを接続していることになります。VerilogでCPUを設計する場合、いくつかのロジックゲートを接続して動作するはずですが、DIY CPUの実行速度をどのように知ることができますか?何に依存していますか?


12
@KingDuken CPUのようなものを設計するためのVerilogの代替物に興味があります(VHDLではない:))?
ユージンSh。

1
@KingDukenそれは私が抱えている問題ではなく、ブレッドボード上のCPUとそのアーキテクチャを既に作成しており、FPGAに移植したいのです。私の質問は、CPUの最大周波数クロックがどのように計算され、どのように制限されるのかということです。

4
「静的タイミング解析」をグーグルにしたい場合があります
Photon

14
@KingDuken 2つのCPUを設計した人として、実際にはそれほど時間がかかりません。何をしているのかわかっていれば、1〜2か月で稼働中のプロセッサを使用できます。
user110971

2
@KingDuken面白い事実:Sun / OracleはVerilogソースコードをUltraSPARC T1およびT2プロセッサにリリースしました。私は偶然いくつかを見たことがあり、それらはすべて機能しました。参考までに、彼らはSPECint_rate2006を勝ち取りに行きました!:Dこれは、Verilogまたは他のHDLでCPUを設計することがいかに不可能かを明確に示しています。私は自分自身を趣味として数回やってきましたが、それは本当に不可能なことではありません(いつものように、一度目をむくのです)
リチャードザスペースキャット

回答:


29

設計の速度はいくつかの制限事項があります。最大の可能性は、クリティカルパスと呼ばれるデザインの組み合わせロジックを介した伝搬遅延です。高速FPGAを使用し、HDLを非常に慎重に記述する場合、おそらくVirtex Ultrascale +のようなもので700 MHzに達する可能性があります。Spartan 6などのローエンドFPGAでは、合理的な数値は250 MHzに近いでしょう。これにはどこでもパイプライン処理が必要であるため、ステートフルコンポーネント間の最小限の組み合わせロジック(ロジックレベルの最小化)、低ファンアウト(ロジック要素への負荷の最小化)、および混雑したラットネスト(効率的なルーティングパス)がありません。

異なるFPGAのファブリックロジックには、異なるタイミングパラメーターがあります。高速で高価なFPGAの遅延は小さく、その結果、同じデザインで高いクロック周波数を実現したり、同じ周波数でより複雑なデザインやパイプラインの少ないデザインを実行したりできます。特定のプロセス内のパフォーマンスは類似している可能性があります。たとえば、Kintex UltrascaleとVirtex Ultrascaleは同じプロセスで作成され、同様のセル遅延とルーティング遅延があります。ツールチェーンを介して実行し、静的タイミング解析からのタイミングレポートを見ることなく、特定のデザインがどれほど高速になるかを言うことは不可能です。

ツールチェーンを実行して最大クロック速度を決定する場合、ツールはタイミング駆動型であることに注意してください。指定されたタイミング制約を満たそうとします。タイミング制約が指定されていない場合、ツールはデザインの速度を最適化しようとしないため、結果が非​​常に悪くなる可能性があります。一般に、ツールは異なるクロック周期の制約で複数回実行して、達成可能な最大クロック周波数を見つける必要があります。

クリティカルパスが制限にならないようにデザインを最適化できる場合、クロックの生成と分配の制限(PLL、DCM、クロックバッファー、グローバルクロックネット)に直面します。これらの制限は部品のデータシートに記載されていますが、重要な設計でそれらに近づくことは困難です。Virtex Ultrascaleで500 MHzで実行しましたが、これは他のコンポーネントにトリガー信号を提供する少数のカウンターでした。


22

ターゲットテクノロジ(特定のFPGA)でデザインを合成し、静的タイミング解析ツールに最小クロック周期を通知させます。

または、最初にデザインに制約を追加すると、ツールはそれらが満たされているかどうかを知らせます。


制約が満たされない原因は何ですか?クロック周期を制限するものは何ですか?それはFPGA Iの使用に依存しているか、FPGAの全体の家族のために同じである?(現存するすべてのFPGAのために多分か?)

3
これは、FPGAの速度、およびデザインのFF間に配置する組み合わせロジックの量に依存します。
デイブツイード

9
@ appmaker1358、FPGAのデータシートを読んでみましたか?速度の評価は、データシートに記載されている最も重要なパラメーターの1つです。
光子

2
速度は最長のタイミングパスによって制限されます。これは、ロジックおよび2つのステートフルエレメント(フリップフロップ、RAMなど)間のルーティングを通る最長の伝播遅延になります。FPGAごとにタイミングパラメータが異なるため、デザインはFPGAごとに異なる速度を実現します。ただし、FPGAには周波数が制限されている部分がいくつかあります。通常、クロック分配コンポーネントとPLLには制限がありますが、非自明な設計に近いHDLを書くことは困難です。
alex.forencich

3
また、タイミング制約を常に追加する必要があります。配置および配線では、制約を考慮に入れて、それらを満たそうと努めます。制約を追加しない場合、ツールはあまり一生懸命努力せず、楽観的な数値を取得できません。
alex.forencich

13

CPUが実行される速度は、合成されたデザインでの最長のフロップ間遅延に基づきます。フロップからフロップへの遅延には、クロックからQ、ルーティング、ロジック/ LUT、フロップのセットアップ時間が含まれます。これらが一緒に追加されると、タイミングのクリティカルパスが形成され、配置配線ツールで出力されるタイミングレポートで確認できます。

パイプライン化、並列実行、投機的実行など、特定のプロセスを最大限に活用するためにこの遅延を最小限に抑えるアーキテクチャの作成に専念する設計分野があります。これは魅力的で、タスクを伴い、FPGA(または、その点ではASIC)のパフォーマンスの最後の1オンスを絞り込みます。

ただし、FPGAベンダーは、最大MHzレートに対応するさまざまなスピードグレードをデバイスに提供します。たとえば、-2のザイリンクスArtixは大まかに言って「250 MHz」の部品ですが、パイプラインの高いデザインではより高いクロックレートが可能です。

FPGA合成および配置配線ツールを操作するときは、デザインに制約を与える必要があります。これらは、達成しようとしているターゲットフロップ間遅延をツールフローに伝えます。Quartus(Altera)およびVivado(Xilinx)では、これらの制約はSynopsys Design Constraintsを表すSDCと呼ばれる構文を使用します。SDCは当初ASICの世界から来たもので、FPGA業界でも採用されています。SDCを理解する-必要な結果を得るのに役立ちます。

アルテラとザイリンクスには、SDC構文の使用方法やその他の多くのトピックに関するヘルプを提供するオンラインコミュニティがあります。

つまり、速度を重視する場合は、ZynqなどのCPUハードマクロを含むFPGAを検討する必要があります。


-2

CPUはグローバルクロックよりも高速に実行されないため、実行可能な速度に上限が設定されます。通常、最大クロックレートに関する情報は、FGPAデータシートに記載されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.