1

Verilog でプログラムを書いていて、プログラムが Cyclone II ボードで実行されているときに値を確認したいいくつかの変数がありますが、コンソールがどこにあるのかわかりません (コンソールがある場合)。 .)。これを行う方法はありますか?$display 関数について読みましたが、出力が Quartus II のどこにあるのかわかりません。残念ながら、これに関する多くの情報を見つけることができないようです。助けてくれてありがとう!

4

2 に答える 2

3

Verilog には、主に次の 2 つの用途があります。

  • これは、合成可能なロジックを記述するために使用される HDL (ハードウェア記述言語) です。これは、FPGA または ASIC を作成するために使用する部品です。
  • これは、シミュレーションを通じてハードウェア設計をテストおよび検証するために使用されるスクリプト言語です。

何らかの理由で、ほとんどのオンライン チュートリアルでは、その違いが強調されていません。$display新参者はシミュレーターで何かを試しているので、パート 2 ( のようなものを含む) から始めることがよくあります。スクリプティングに使用される構造は、コードが合成されて FPGA で使用される場合、まったく効果がありません。多少のオーバーラップがありますが、それでも期待どおりには機能しません。シミュレーターでループを作成するforと、他のプログラミング言語と同じようにループします。合成可能なコードをそのループ内に配置すると、ループによって複製されます (ループを通過するパスごとに 1 つの並列 FPGA パスの全体を作成します)。したがって、合成に実際に影響を与えるスクリプト部分は、メタプログラミングに似ていると考えることができます。

UART を実装 (または HDL ランドで「IP」と呼ばれる既存の実装を見つける) してデータを自分で出力することもできますが、これは FPGA で非常に複雑で (FPGA 領域に関して) コストがかかります。通常、FPGA をデバッグするには、デバッグ ピンを取り出して、オシロスコープまたはロジック アナライザー (Saleae ロジックのような安価なものでも) でそれらを調べます。これは、FPGA リソースの点で非常に安価です。もう 1 つの可能性は、FPGA 内のデバッグ データをブロック RAM に記録し、後で読み出すことです。両方のアルテラ ( SignalTapを使用)) とザイリンクス (Chipscope を使用) は、FPGA コードと GUI の両方を提供して、JTAG ポート経由で駆動します。Quartus II は、匿名の統計情報を共有することに同意する限り、SignalTap の無料ライセンスを提供します。最後に知ったのですが、Chipscope は無料ではありませんでした。そのため、私の趣味のプロジェクトでは常にアルテラ FPGA を使用しています。

于 2014-10-21T16:11:30.260 に答える