FPGAは初めてで、現在HDL(特にVerilog)クラスを受講しています。次のようなデジタルデザインに関する十分な知識があります。組み合わせ回路と順序回路。

このYouTubeビデオに示されているに似たプロジェクトを作成したい。

また、ザイリンクスISEはロジック信号を処理し、波形をシミュレートできることも知っています。USB、カメラなどを介して入力信号を取得し、コンピュータに出力するなどの追加機能はありますか。

実行することは可能ですか。実際のFPGAボードを購入せずにこのプロジェクト(コンピューターでのシミュレーションのような)?つまり、コンピューターでそのプロジェクトをビルド、コーディング、実行し、USB経由でカメラを接続して、着信ビデオ信号をザイリンクスISEなどのHDLシミュレータで処理されます(FPGAボードを実際に購入してそこでプロジェクトを合成する必要はありません。現在、FPGAボードを用意する予算はありません)

(私が本当に意味しているのは、HDL1デザインを実際のソースやCコードなどにインターフェースすることです。)

コメント

回答

ザイリンクスのツールは、私の知る限りリアルタイムでインターフェースできません。ModelSim(ActelのLibero IDEで使用)もできません。
オープンソースシミュレーターについてはわかりません。むしろいくつかあります。エキゾチックなプロジェクトがあるので、これを行うことができる何かがある可能性があります。

ただし、これはあなたが求めていなかった答えかもしれません(役に立たない場合は削除します)が、これを行うために独自のFPGAボードを構築することを検討します。最初のFPGAボードをエッチングしました。非常にシンプルでしたが(ボードはプロセスではありません;-))、非常に迅速に多くのことを学びました。

長所:

  • 格安
  • ディープエンドにジャンプして、ハードウェアの考慮事項について知っておく必要のあるすべてのことを学びます。最初にほとんどのデータシートを読んでから、独自のデータシートを作成する必要があります。スターターコード。IMHOはプラグアンドプレイの開発ボードアプローチよりも学習に優れていることがよくあります。
  • 必要なものだけをボードに配置します。
  • さらに進んでください。すべてをリアルタイムでシミュレートする方法を考え出すのとおそらく同じ努力/研究で、実際に機能する設計の目標。

短所:

  • ザイリンクス/アルテラプログラマーの安価なバージョンはeBayで見つけることができますが、それでもプログラマーを購入する必要があります。
  • PCB /シグナルインテグリティの設計と問題に焦点を当てたくない場合は、この方法で得られる知識の多くに興味がない可能性があります。

自分のボードをエッチングする必要はおそらくないことを理解しています。FPGAがあり、せっかちで、PCBが到着するまで2週間待ちたくなかったからです。ここでは、少なくともデザインを実行するために非常に安価な取引があります(おそらく、最終的に望まれるよりも低速で-通常、高速FPGAデザインの最小レイヤー数は4ですが、これらははるかに高価です)

とにかく、Spirit Circuitsは完全に無料の2層の「ベアボーン」PCB取引(月に1回、1つのデザイン、マスクやシルクスクリーンなし)を行い、1回限りのデザインに役立ちます。 。
また、適切な2層および4層の安価なプロトタイプボードの場合、ITeadおよびSeed Studioは10枚のボード(またはその価格では5枚)のサービスで最低$ 10になります。

コメント

  • これについて非常に興味深い見解を示し、励ましもします

回答

標準のザイリンクスISEWebpack(無料バージョンxilinx.comからダウンロードできます)には、iSimと呼ばれるシミュレータが含まれています。それは素晴らしいシミュレーターではありませんが、完全に機能し、価格は適切です。

アルテラのツールを使用したことはありませんが、シミュレータが含まれていないと驚きます。

しかし…シミュレータでできることとできないことを知る必要があります。 。初心者の場合、フルスピードで動作するFPGAをシミュレートすることはできません。実際、非常に低速です。シミュレートするFPGAの複雑さによっては、1ミリ秒の「シミュレート」をシミュレートするのに1分かかることは驚くことではありません。 「時間」。1時間の「シミュレートされた時間」をシミュレートする場合は、1000時間のリアルタイムが必要になります。

また、シミュレートされたFPGAはUSBポートなどと直接通信できません。シミュレートされたFPGA 「テストベンチ」と通信します。テストベンチは、FPGA(またはFPGAの一部)の入力をフィードし、FPGAの出力を検証するVHDLまたはVerilogコードのチャンクです。テストベンチでは、かなり複雑なことを実行できます。 、浮動小数点数の使用、ファイルの読み取りと書き込み、合成が不可能なロジックの実行など。

コメント

  • A ltera 'は、ModelSimを含むQuartusの無料版を入手しました。無料版のModelSimはシミュレーション速度を制限し、無料版のQuartusは合成に使用されるCPUコアの数を制限しますが、それ以外は完全に機能します。
  • AlteraModelSimはVHDLの協調シミュレーションをサポートしていません。とVerilogは同じデザインです。

回答

直接インターフェースするシミュレーターはわかりません。 USBポート(または他のハードウェア)に到着する信号に。

少なくとも理論的には、ポートに到着する信号を取得し、それらをテストベンチファイルに変換するソフトウェアを作成することは可能です。シミュレーターで処理できます。残念ながら、これを実行する既存のソフトウェアはわかりません。自分で作成するのは簡単ではありません。

コメント

  • 次に、私のようなn00bs用のエントリーレベルの低コストfpgaボードを入手するのが最善の方法です
  • 実際に通過する必要はありません'シミュレーターをお持ちの場合はtestbenchファイルhは、VPIなどのカスタムコードへのインターフェイスをサポートしますが、シミュレーターの実行速度がリアルタイムよりも桁違いに遅いため、シミュレーションの速度で読み取ることができるファイル内のキャプチャされたデータを処理する方が簡単な場合があります。
  • @ChrisStrattonファイルにキャプチャされたデータのアイデアに興味があります。そのためのリソースはありますか?ありがとう
  • データソースとして使用する周辺機器に完全に依存します。

回答

協調シミュレーションインターフェイス(DPI、VPI、VHPI、FLI)を使用する必要があります。これにより、シミュレータにフックするコードを記述して、シミュレーションで実行されているRTLとマシン上の実際のハードウェアを橋渡しできます。 。

(不十分に文書化されたインターフェースを除いて)遭遇する重大な問題は、同期とタイミングに関連しています。シミュレーションで実行されるRTLは、実際のハードウェアよりもはるかに遅いです。シミュレーションの速度に合わせて、外部インターフェースとの相互作用をステップスルーできる必要があります。一部のハードウェアインターフェースはこれを好まないでしょう。たとえば、TCPを使用している場合、偽の再送信などを回避するためにカーネルスタックのタイマーをファッジする必要がある場合があります。

Icarus はVPIをサポートし、は無料なので、ライセンスにお金をかけずに実験できます。協調シミュレーションの重労働の一部を実行し、シミュレーターによりクリーンな抽象化を提供する既存のフレームワークを調べることをお勧めします。そのようなフレームワークの1つが Cocotb です。これは、シミュレーターにPythonインターフェースを提供するオープンソースライブラリです。 (免責事項:私はcocotbの開発者の1人です。)

関連する可能性のある例:昨日、ping要求に応答するためにRTLをノックアップし、テストベンチを作成しましたこれにより、TUNインターフェイスが開きます。pingコマンドを使用してインターフェイスにpingを実行すると、シミュレーションで実行されているRTLがpingを受信して応答します。テストベンチ全体は、Pythonの50行未満です。この例のソースコードは Github にあり、LinuxのIcarusで実行されます。

回答

ほとんどの場合、シミュレーションで行うことはすべてシミュレーションに残ります。そこから実際のハードウェアにアクセスすることはできません。実際のハードウェアのシミュレーションモデルが必要です。

ただし、ある程度の努力を惜しまない場合、ほとんどのシミュレーターには任意のコードへのインターフェースがあります。 Verilogでは、私が理解しているようにかなり標準的なインターフェイスなので、Verilog側はシミュレータ間で移植されます。VHDLランドでは、標準的な方法がありますが、少なくとも1つの大手ベンダーが独自の方法を持っています。

また、リアルタイムで(つまり、FPGAが実行する速度で)インターフェースをとる可能性は非常に低く、シミュレーションの残りの部分(HDL)は実際には実行されないことにも注意してください。 -どちらかの時間。コメントに記載されているように、この方法ではビデオのリアルタイムシミュレーション処理は実行できません。

個人的には、これを試す必要はありませんでした。 ハードウェアとすべてをVHDLで実行します。

ただし、シミュレーションを実行する利点を見逃さないでください。動作しているかどうかを確認し(コンパイルには数秒かかります)、ビットストリームを構築する(コンパイルには時間がかかります)。 数十分から数時間)、ハードウェアで試してみてください。

コメント

  • 正しくありません。質問へのコメントを参照してください。
  • OK、'もっと明確にすべきでした-答えを" I ' m FPGA "レベル:)回答が更新されました

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です