問題タブ [hdl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
signals - 「シグナル」はVHDLのδ遅延を意味しますか?
こんにちは私は信号宣言がVHDLで実際にどのように機能するのか疑問に思いました。内部信号からの遅延を意味しますか?信号には内部メモリがありますか?例:
このCの宣言はδ遅延を導入しますか?もしそうなら、なぜですか?VHDLの標準ですか?ありがとう。
hardware - Verilog Generate ステートメントでの複数の Genvar のインクリメント
Verilog でマルチステージ コンパレータを作成しようとしていますが、単一の生成ループで複数の genvar をインクリメントする方法がわかりません。私は次のことを試しています:
そして、次のエラーが発生します:
同じ生成ステートメントで複数の genvars をインクリメントする方法を知っている人はいますか? または、少なくとも同等の機能を取得しますか?
arrays - Verilog で複数の配列を 1 つの配列に結合する方法は?
これが私のコードです:
4 つの配列を 1 つの配列に結合して、コードから命令を取得するにはどうすればよいですか? 上記のコードはコンパイルされません!
編集:
コードを@toolicが提案したものに変更した後:
それでも、コンパイルされません:
ザイリンクスの使用:
Verilogger Extreme の使用:
numbers - 実数、VerilogHDLを使用した計算
Verilogが実数の結果を整数の結果に丸めていることに気づきました。たとえば、シミュレーターを見ると、17/2の結果が9と表示されます。どうすればよいですか?とにかく:のようなものを定義することはありますoutput real reg [11:0] output_value
か?それとも、シミュレーターの設定でやらなければならないことですか?
シミュレーションのみ(合成なし)。例:
xは符号付き入力として定義され、output_valueは出力regとして定義されます。
x = + 1の場合、出力値は次のようになります13/2=6.5
。
ただし、シミュレートすると、が表示されますoutput_value = 6
。
loops - Verilogで常にブロックを解除する方法は?
Verilogの動作コードを使用して単純なMIPSプロセッサをシミュレートしようとしています。コードの記述は終了しましたが、MIPS命令の実行が完了した後、alwaysブロックを解除する最後のステップに到達しました。これが私のコードです:
$ finishを試しましたが、機能しません。
always
では、どうすればブロックを破ることができますか?または、代わりに他のものを使用する必要がありますか?
verilog - Verilog の実行順序
VHDL のコースを受講した後、Verilog を独学で学び始めたところです。行動ステートメントが実行される順序を理解するのに苦労しています。これが問題のコードです。
そしてここに出力があります
正のクロック エッジごとにゼロにリセットされない理由がわかりません。myMain は実行中の場所を覚えており、クロックが呼び出されるたびにそこから続行しますか? もしそうなら、それはどこで止まっていますか?そして、これらすべてをどのように合成するのでしょうか?
その他の 2 つの小さな質問:
start <= 1'b01; と書いてみました。assign start = 1'b01; の代わりに 2番目のモジュールでは機能しません。なぜだめですか?
2番目は、出力の奇妙な間隔の原因は何ですか?
お時間をいただきありがとうございます。
simulation - Verilogを使用したFPGAでのMIPSプロセッサのシミュレーション
Verilogを使用してFPGAで単純なMIPSプロセッサをシミュレートしようとしています。これが私のコードです:
output reg[7:0] LEDs
FPGAデバイスとFPGAの8つのスイッチに8つのLEDを取り付けましたinput[7:0] Switches
。コードはエラーなしでコンパイルされます。しかし、残念ながら、それは機能しません。LEDはスイッチの状態を示すはずですが、常にオフになっています。
LEDs[7:0] = 8'b11111111;
ただし、ブロック内のようにLEDの状態をハードコーディングしようとするとinitial
、LEDは常にオンのままになります。LEDs[7:0] = 8'b11111111;
私がブロックの中に置いたときalways
、LEDは常にオフのままです。FPGAはブロック内のコードを実行しないようですalways
が、何が問題になっていますか?デザインを間違った方法で実装していますか?
fpga - FPGAでのPCIインターフェイスのテスト
上司から、アルテラのボードでPCIExpressをテストするためのコードが提供されました。コードは、BIOSの読み取り、いくつかのレジスタの設定、バッファへの書き込みなどの命令を含むいくつかのcコードファイルで構成されています。現在の私の仕事は、コードを実行してコードの機能を確認することです。FPGAを初めて使用するので、FPGA用にコンパイルするためにどのツールやコンパイラなどを使用するのか理解できません。
Cコードなので、Verilog/VHDLと同じ環境は使えないと思います。FPGAのさまざまなインターフェイスをテストするためにCコードをコンパイルするために使用できるコンパイラに関するヒントを入手できますか?
ありがとう、よろしく
H
parameters - ビット選択のためのVerilogでのforループでのパラメーターの使用
私はVerilogでいくつかのハードウェアを設計していますが、物事を柔軟に保つために、パラメーターを使用して幅を設定し、コードを変更せずに必要に応じて幅を変更できるようにしています。私が遭遇した問題の1つは、複数のセルへの並列書き込みを実行できるようにしたいコードのセクションにあります。
データの読み取り方法のため、r_data_bufを配列として保持する必要があります。また、コンパイル時にすべてが一定であるため、Verilogがこのコードを好まない理由や、修正して希望の動作を維持する方法もわかりません。
vhdl - VHDL で Process ステートメントを使用する適切なタイミングはいつですか?
私は現在、2 回目または 3 回目の VHDL の学習段階に入っています。(今回は、非常に優れた無料の電子書籍で武装しています) そして、私はついにそのかなりの量を「取得」し始めています. 今、私は行動スタイルとプロセスステートメントについて学んでおり、そのほとんどは理にかなっています. ただし、特定の場合を除いてプロセスを回避する必要があることを多くの場所で読みました。つまり、理論的には、行動ではなくデータフローですべてを実装することはできないのでしょうか?
プロセス ステートメントを使用する必要があることを明確にする必要があるのは、正確にはいつですか?