問題タブ [icarus]
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.
verilog - Verilog での PIPO の実装
Verilog HDL で 32 ビット パラレル イン パラレル アウトを実装しようとしています。ここに私が書いたコードがあります...
ただし、これにより次のエラーログが発生します( using iverilog
):
問題は何ですか?
verilog - イカルスはサイロとは異なる結果を生み出す
Verilog モジュールとスティミュラスをコンパイルおよびシミュレーションしようとすると、奇妙な結果が表示されます。サイロでシミュレートすると、コードは期待どおりに機能します。Icarus (iverlog と vvp) でシミュレートすると、時間は Silos とは異なります (200 ではなく 0 から開始します。Silos の 235 -> 255 と Icarus の 235 -> 265 ほど気にしません)。Silos の繰り返し機能は期待どおりに機能しますが、Icarus を使用すると、どのようにしてその結果が得られたのかがよくわかりません。また、repeat R2GDELAY を 3 に変更すると、Icarus も期待どおりに実行されないようです。シミュレーションの後半で正確な結果を得るには、手動で開始時間を 0 に設定する必要があるなど、Icarus を使用するときに欠けているものはありますか? または Silos は Icarus で手動で行わなければならない変数を自動初期化しますか? このコードは、Verilog HDL ブックから取得したもので、ここにあります。http://authors.phptr.com/palnitkar/
コードは次のとおりです。
サイロからの出力は次のとおりです。
以下は、iverilog からの出力です。
編集:上記のコードに示されているようにセミコロンを追加しました。
ご協力いただきありがとうございます!
arrays - Icarus Verilog ダンプ メモリ配列 ($dumpvars)
配列 (reg [31:0] data [31:0]) をダンプしようとしましたが、うまく実行できません。私はiverilog wikiにある方法を試しました:
動作しますが、2 つのことが起こります。
- 警告が表示されます: VCD 警告: 配列ワード cpu_tb.cpu0.cpu_dp.cpu_regs.data[0] は、エスケープされた識別子と競合します。
- GTKWave では、SST ウィンドウに次のようなものがあります: \data[0][31:0]
それについて何か解決策はありますか?
よろしくお願いします。私の英語で申し訳ありません。
verilog - fifo の Verilog テストベンチ
次のコードの Verilog テスト ベンチ コードを書くのを手伝ってくれる人はいますか !. 私は試してみましたが、うまくいきません!. シングルクロックのFIFO(先入れ先出し)のコードです。私はイカルスシミュレーターを使っています
fifo4:
verilog - Icarus Verilog でプログラム カウンター デザインをシミュレートすると無限ループになる
次のプロトタイプを使用して、単純なプログラム カウンター加算器を実装しています。
Icarus Verilog でシミュレートすると、上書きが無効になり、カウントが有効になる最初のティックで無限ループが発生するため、PC 加算器の出力 (PC + 4) が内部レジスタに供給されます。
この問題を、D フリップフロップを 1 ビット レジスタとして使用する基本的なコードに単純化しました。
シミュレーションがスタックした後、VCD 出力は状態の変化を示しません。
私の推測では、特定の目盛りで、加算器は常に異なる値を供給している (継続的に加算している) ため、安定していないため、シミュレーターは値が修正されるのを待ってスタックします。
このデザインは正しいですか (つまり、合成でき、動作するはずです)。
verilog - gEDA と iVerilog を使用した Verilog テストベンチ コード
私の課題は、単純な 2 から 4 のデコーダーをコーディングし、考えられる結果と波形を表示することです。
コンパイラとして Icarus Verilog (iVerilog) と一緒に gEDA スイートを使用し、波形には GTKWave を使用しています。
Verilog でのコーディングや gEDA スイートでの作業は初めてです。グーグルから、このデザインフローに従う必要があるようです:
- 実装したいデザインについて考えます。私の場合、デコーダー
- VHDL/Verilog でデザインを実装します。
- VHDL/Verilog でテストベンチを実装します。
- iVerilog を使用してデザイン ファイルとテストベンチ ファイルをコンパイルする
- テストベンチと .vcd ダンプ ファイルを使用して、GTKWave を使用して波形を表示します。
テストベンチ ファイルがコンパイルされず、理由がわかりません。いくつかのバリエーションを試しましたが、エラーが発生し続けます。どんな助けでも大歓迎です。ありがとうございました。
ここに私のデザインファイルコードがあります:
ここに私のテストベンチコードがあります:
私が使用している端末のコマンドは次のとおりです。
編集:正確なエラーメッセージは次のとおりです
verilog - Verilog HDL で常に vs 永遠に
always
キーワード (ブロックではない) とVerilog HDLのキーワードの違いは何ですか?always @
forever
これが私の調査結果ですが、2つの間に線を引くことはまだできません。
ウィキペディアから:
alwaysキーワードは、永久に実行されるという意味で、"C" 構文の while(1) {..} と同様に機能します。
エレクトロソフト より:
forever命令は、それに続くステートメントを継続的に繰り返します。したがって、手続き型のタイミング コントロールと共に使用する必要があります (そうしないと、シミュレーションが停止します)。
誰かがこれについてより明確な説明をすることができますか? ありがとうございました!
compiler-errors - reg宣言で解析エラーを取得しています
このコードの 15 行目から解析エラーが発生します。
これは、input 変数と reg 変数を初期化するテスト ベンチの一部です。
iVerilog を使用して合成しています。エラーメッセージは次のとおりです。
解析エラーが発生する理由を誰か助けてもらえますか? ありがとう!