問題タブ [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.

0 投票する
2 に答える
1534 参照

verilog - Verilog での PIPO の実装

Verilog HDL で 32 ビット パラレル イン パラレル アウトを実装しようとしています。ここに私が書いたコードがあります...

ただし、これにより次のエラーログが発生します( using iverilog):

問題は何ですか?

0 投票する
1 に答える
186 参照

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 からの出力です。

編集:上記のコードに示されているようにセミコロンを追加しました。
ご協力いただきありがとうございます!

0 投票する
2 に答える
5779 参照

arrays - Icarus Verilog ダンプ メモリ配列 ($dumpvars)

配列 (reg [31:0] data [31:0]) をダンプしようとしましたが、うまく実行できません。私はiverilog wikiにある方法を試しました:

動作しますが、2 つのことが起こります。

  1. 警告が表示されます: VCD 警告: 配列ワード cpu_tb.cpu0.cpu_dp.cpu_regs.data[0] は、エスケープされた識別子と競合します。
  2. GTKWave では、SST ウィンドウに次のようなものがあります: \data[0][31:0]

それについて何か解決策はありますか?

よろしくお願いします。私の英語で申し訳ありません。

0 投票する
1 に答える
5365 参照

verilog - fifo の Verilog テストベンチ

次のコードの Verilog テスト ベンチ コードを書くのを手伝ってくれる人はいますか !. 私は試してみましたが、うまくいきません!. シングルクロックのFIFO(先入れ先出し)のコードです。私はイカルスシミュレーターを使っています

fifo4:

0 投票する
1 に答える
1818 参照

verilog - Icarus Verilog でプログラム カウンター デザインをシミュレートすると無限ループになる

次のプロトタイプを使用して、単純なプログラム カウンター加算器を実装しています。

Icarus Verilog でシミュレートすると、上書きが無効になり、カウントが有効になる最初のティックで無限ループが発生するため、PC 加算器の出力 (PC + 4) が内部レジスタに供給されます。

この問題を、D フリップフロップを 1 ビット レジスタとして使用する基本的なコードに単純化しました。

シミュレーションがスタックした後、VCD 出力は状態の変化を示しません。

私の推測では、特定の目盛りで、加算器は常に異なる値を供給している (継続的に加算している) ため、安定していないため、シミュレーターは値が修正されるのを待ってスタックします。

このデザインは正しいですか (つまり、合成でき、動作するはずです)。

0 投票する
1 に答える
1255 参照

verilog - gEDA と iVerilog を使用した Verilog テストベンチ コード

私の課題は、単純な 2 から 4 のデコーダーをコーディングし、考えられる結果と波形を表示することです。

コンパイラとして Icarus Verilog (iVerilog) と一緒に gEDA スイートを使用し、波形には GTKWave を使用しています。

Verilog でのコーディングや gEDA スイートでの作業は初めてです。グーグルから、このデザインフローに従う必要があるようです:

  1. 実装したいデザインについて考えます。私の場合、デコーダー
  2. VHDL/Verilog でデザインを実装します。
  3. VHDL/Verilog でテストベンチを実装します。
  4. iVerilog を使用してデザイン ファイルとテストベンチ ファイルをコンパイルする
  5. テストベンチと .vcd ダンプ ファイルを使用して、GTKWave を使用して波形を表示します。

テストベンチ ファイルがコンパイルされず、理由がわかりません。いくつかのバリエーションを試しましたが、エラーが発生し続けます。どんな助けでも大歓迎です。ありがとうございました。

ここに私のデザインファイルコードがあります:

ここに私のテストベンチコードがあります:

私が使用している端末のコマンドは次のとおりです。

編集:正確なエラーメッセージは次のとおりです

0 投票する
1 に答える
11276 参照

verilog - Verilog HDL で常に vs 永遠に

alwaysキーワード (ブロックではない) とVerilog HDLのキーワードの違いは何ですか?always @forever

これが私の調査結果ですが、2つの間に線を引くことはまだできません。

ウィキペディアから:

alwaysキーワードは、永久に実行されるという意味で、"C" 構文の while(1) {..} と同様に機能します。

エレクトロソフト より:

forever命令は、それに続くステートメントを継続的に繰り返します。したがって、手続き型のタイミング コントロールと共に使用する必要があります (そうしないと、シミュレーションが停止します)。

誰かがこれについてより明確な説明をすることができますか? ありがとうございました!

0 投票する
2 に答える
1025 参照

compiler-errors - reg宣言で解析エラーを取得しています

このコードの 15 行目から解析エラーが発生します。

これは、input 変数と reg 変数を初期化するテスト ベンチの一部です。

iVerilog を使用して合成しています。エラーメッセージは次のとおりです。

ここに画像の説明を入力

解析エラーが発生する理由を誰か助けてもらえますか? ありがとう!