問題タブ [test-bench]
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.
vhdl - 波形ウィンドウで Active-HDL からのシミュレーション結果を表示するにはどうすればよいですか?
Active-HDL サポートを使用してテストベンチ スクリプトを拡張しました。Active-HDL は、コマンド ライン引数が類似していても、QuestaSim または ModelSim とほとんど同じように動作します。
Lattice Diamond 3.7 の Active-HDL Student Edition と Active-HDL Lattice Edition がインストールされています。このバージョンには完全な vsimsa (vsim スタンドアロン) 環境が付属しているため、現在は後者を使用しています。
私のスクリプトは、選択したテストベンチを 3 つのステップで処理します。
vlib.exe
(alib)を使用して、必要なすべての VHDL ライブラリを作成します。- すべての VHDL ソース ファイルを
vcom.exe
(acom)でコンパイルします。 vsimsa.exe
次の TCL コマンドで起動します。
asim -lib test arith_prng_tb; run -all; bye
シミュレーションが実行され、適切な出力が表示されます。
ご覧のとおり、asim はwave.asdb
GUI からロードできるファイルを作成しますが、ファイルは空です (信号はありません)。
だから私の質問は:
- その波形データベース ファイルに信号をトレースするにはどうすればよいですか?
- GUI のコマンドラインからこのファイルを開くにはどうすればよいですか?
verilog - パイプライン プロセッサの Verilog でテスト ベンチ コードが機能しない
Verilog で単純なパイプライン プロセッサを設計しています。コードは問題ないと思いますが、テスト ベンチを実行しても何も起こりません。すべての変数をインスタンス化しましたが、always ブロックが無視されているようです。プロセッサ コードとテスト ベンチのコピーを以下に示します。
プロセッサー:
テストベンチ:
エンドモジュール
connection - スケマティック内の 2 点間の接続をテストする
私は半導体メーカーで働いています。多くの場合、設計をテストして、パーツで実行するシーケンスが回路図の 2 つのポイント (たとえば、signal_a と signal_b) を適切に接続していることを確認します。2 つの信号には通常、2 つの信号を接続するためにオンにする必要がある複数のパス ゲートがあります。これが正しく行われることを確認するために、通常、回路図とシミュレーションを調べて、すべてのパス ゲートが正しくオンになっていることを確認します。Verilog には、これをチェックするためのコマンドが組み込まれているようです。たとえば、次のようなものです。
connected は、接続されている場合は 1 に設定され、接続されていない場合は 0 に設定されます。このようなものが存在する場合、誰かが私を正しい方向に向けることができれば幸いです。コードに強制信号を入れて signal_a をトグルし、それがカウンターを使用して signal_b に現れるかどうかを確認することを考えましたが、signal_a が 1 以外の状態にあるという事実のために、これは必要なすべてのケースで機能しません。ダイをオフにします。
system-verilog - systemverilog で reg を超えるビットの利点は何ですか?
テストベンチの変数は、ほとんどの場合、bit
ではなくとしてインスタンス化されますreg
。しかし、bit
2 つの状態変数 (0 と 1) だけで、reg
4 つの状態変数 (0,1,x と z) です。なぜ人々bit
はテストベンチ変数として使用したのですか? 古いプロジェクトを引き継ぎましたが、すべてのテストベンチ変数はbit
. したがって、チェッカーが次のようなチェックを実行するとき
if (data_rtl === data_expected) // reg[63:0] data_rtl, bit[63:0] data_expected
data_expected 側で X チェックを実行できませんでした。確かに を使用するのが一般的bit
ですが、なぜ人々はこれを行っているのでしょうか? systemverilogでのbit
overの利点は何ですか?reg
syntax-error - Verilog プログラム カウンターの構文エラー
そのため、プログラム カウンター テスト ベンチで構文エラーが発生し、なぜ取得し続けるのかわかりません Verilog ソースに次の構文エラーがあります: "pc_tb.v", 20: トークンは 'initial' です 初期 ^
イニシャルの使い方が間違っていますか?パイプライン化されたデータパスを作成します。これは、これまでのところ機能していない唯一の部分です
vhdl - ファイルへのVHD書き込みは何もしません
VHDLコードの画像操作部分を書きました。テストのために、Matlab と比較的単純なテストベンチ (ファイルから入力に値を入力するだけ) を使用して、ピクセル値のファイルを作成しました。結果を新しいファイルに書き込んで、結果を処理して結果の画像を確認したかったのです。
コードがコンパイルされ、テストベンチが実行されます。どこかで停止するかどうかを確認するために入力したすべてのレポートが表示されますが、結果を含むファイルは空のままです。print も writeline も何もしていないようです。ファイルが存在し、Vivado のプロジェクトに追加されるため、パス全体を記述する必要はありません。シミュレータ出力に警告やエラーはありません。
hereおよびhereからファイルへの書き込みコードを取得し、それを少し拡張して、クロックごとにファイルへの書き込みを行い、上部にキャプションを追加しました。
color_out(0) は出力の一部です。color_out_v は出力有効です。
何か案は?私は何が欠けていますか?
vhdl - テストベンチが機能しない
次のテスト ベンチは、 QAU および QBU に意図した信号を提供できません。
ループプロセスはCLOCK_50
信号に対して正常に機能しているようで、作業に対して私が行った指示も正常に機能してReset
います。それは単に信号QAU
とQBU
信号が機能していないだけであり、その結果、私Q
の出力である私の信号です。
理由はありますか?