FPGAベースのRTL評価
-
22-08-2019 - |
質問
現在、私は、私はncverilog使用しています、いくつかのRTLをテストしていて、それは非常に...非常に遅いです。私たちはFPGAボードのいくつかの種類を使用する場合は、物事が速くなる、と聞いたことがあります。それは本当のためですか?
解決
次の2つの異なるものの話をしています。
FPGAボードは実際のハードウェアである一方、NCVerilogは、シミュレーションツールです。だから、違いがあるでしょう。実際のハードウェアは、一般的に速くなりますが、シミュレータで、デバッグの楽しみのすべての種類を持つことができます。特定の信号をプローブしようとすると、テストベンチに行を追加するだけです。また、あなたが簡単代わりにFPGAボードを再設計するのでシミュレートされたモデルに変更を加えることができます。
あなたは十分に強力なマシン上でシミュレーションを実行する場合は、、あなたは時々おおよその実世界でのパフォーマンス(FPGAが遅い1であると仮定して)することができます。
すべてのすべてで、あなたはその両方を行う必要があります。あなたの基本的な開発・評価を行うためのシミュレータを使用してください。あなたのデザインが十分に定義されていたら、あなたのFPGAのハードウェアに移動します。
他のヒント
私たちも、シミュレーション速度と同じ問題を持っていました。しかし、私たちは、検証の大多数のためのシミュレーションに固執します。各SIMチェック特定の機能は、システム・レベルのSIMSよりもはるかに迅速です。我々はまた、彼らに自己チェックを行い、回帰テスト(ユニットテスト)に有用であるきます。
我々はできる場合は、シミュレートするために、あまりにも多くの時間がかかり、現実世界の信号の長いシステムテストのために、私たちは、FPGAにこれらを移動します。私たちは、それが独自の方法で遅くなることがありますので、手動で、コードの変更後に再度、これらすべてのテストケースを再チェックする必要があります。
時にはしかし、デザインをFPGAingすることは、単に現実的ではありません。時には完全なデザインは、FPGAに収まるには大きすぎる、またはクロックレートが高すぎます。しかし、あなたが興味を持っている重要なブロックを取得し、完全にこれをチェックするのに十分であり、あなたは必ずしもあなたの全体のデザインをFPGAに持っていないことを覚えています。
あなたは、アルテラのSignalTapまたはザイリンクスのChipScopeのような「エンベデッド・ロジック・アナライザ」ソフトウェアツールを使用して実行しているFPGAデザインの信号上の活動を追跡することができます。合成/デバイスへのあなたのRTLをマッピングする前に、あなたが見たいと思うの信号にソフトプローブを接続するために、これらのツールを使用します。信号の値が特定の条件下でのみ記録されますように、あなたはトリガを設定することができます。その後、ビットファイルを生成し、JTAGでデバイスをプログラムします。ロジック・アナライザはJTAGを介してPCと通信して、あなたがして分析することができ、あなたのプローブを、上のアクティビティをログに記録します。
これらのツールは用いることが特に容易ではありませんが、あなたはRTLシミュレーションよりも結果がはるかに速くなりますよう、これは、セットアップは少し複雑だ。
あなたはRTLのどのような種類をテストしていますか?あなたはFPGAボードを使用する場合は、コンパイルすることができます あなたのコードは、あなたが右のFPGAのための適切なツールを持っていました。 FPGAはreprograammableなので、その後の進路あなたは、ボード上のコードをテストし、ターゲット(FPGA)を持っているあなたのコード(RTL)を実行することができます。
しかし、それはこれ以上のシミュレーションでは、与えられたクロック速度で、特定のハードウェアと、テストです。 そして、あなたは、画面上の素敵な結果を得ることはありません、あなたは物理的なプローブとスコープを使用する必要があります。プラスあなたのコードの内部が動作しているかを確認するために得ることはありません。
VerilogまたはVHDLシミュレーションは、ソートのデバッガを使用してコードを実行しているようなものです。 FPGAのテストは、より多くのprintf関数でデバッグするようなものです。大きな違いはシミュレートしたときに、あなたのCPUは、あなたのコードの結果は、これらすべての論理ゲートの動作をシミュレートしなければならないことです。 FPGA上で、何のシミュレーション、あなただけの「RUN」のコードはありませんので、はるかに高速ですが、あまり情報を持っています。
あなたは非常に小さな部品のためのシミュレーションを使用して、FPGA上であなたの全体のプログラムをテストする必要があります。
あなたは、おそらくハードウェアシミュレーションアクセラレータについて尋ねています。 ここではそのうちの一つである: GateRocketする