問題タブ [xilinx-ise]
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 - dsp48 でステートメントを生成する
私は VHDL を初めて使用し、大きな数値 (256 ビット) の計算を高速化するために dsp ブロックを使用する必要があるプロジェクトを作成しようとしています。coreGenerator を使用してこの DSP48macro を作成しましたが、generate ステートメントで構文エラーが発生します。私が間違っているところを誰かが助けてくれたらお願いします。
注記: 最初の部分は、coregen によって生成されたコンポーネントです。他の部分は、ブロックをインスタンス化しようとしている部分です。シングルブロックは問題なく動作しています。他の情報が必要な場合は、助けてください。生成ステートメントでエラーが発生しているため、どこが間違っているのか教えていただければ幸いです。
A(i)、B(i) は (47 downto 0) と cin, cout の両方の 0 から 5 の配列をキャリーを伝搬します。
ありがとうございました。
vhdl - VHDL: 有限ステート マシンのデフォルト値
シリアル入力に基づいて状態を切り替える有限状態マシンを作成しようとしています。コードの実行方法について説明が必要です。教科書で、「DEFAULT VALUES」とマークしたプロセスのセクションにデフォルト値を配置する必要があることを読みました。ただし、状態を切り替えるたびに、信号はこれらの値をとるようです。たとえば、state_next をデフォルト値の idle に設定します。これを行うと、FSM が理由もなく他の状態からアイドル状態にジャンプし続けます。
もう 1 つの質問は、FSM のプロセス全体がどのように実行されるかを明確にすることです。ある状態から別の状態に移行する場合、case ステートメントの前のセクション (DEFAULT VALUES とマークされた部分) が実行されることになっていますか? それとも、後の状態からアイドル状態に戻った場合にのみ実行されますか? DEFAULT VALUES セクションはいつ実行されることになっていますか?
私のコードを以下に示します。「次の状態のロジック」セクションを参照してください。
vhdl - 自己検証テストベンチで発生したエラーの量を表示する方法は?
以下は、単純な (クロックされていない) 4 ビット加算器のテストベンチ コードです。私のシミュレーションは現在、最後に「テスト完了」とともに発生したエラーを表示します。エラーがない場合、シミュレーションは単に「テスト完了」を返します。
私の質問は次のとおり
です。シミュレーションでエラーが検出されなかったときに「テスト完了、エラーなし」を表示し、「テスト完了、[x] エラーが見つかりました」と表示するように「if」ステートメントを何らかの形で含める方法はありますか?シミュレーションでエラーが検出されました (ここで、x はシミュレーション終了時に返されるエラーの可変量です)。
以下の回答を使用すると、結果として得られる作業コードは次のとおりです。
vhdl - ザイリンクスで Assert ステートメントをテスト中にエラーが発生しました
現在、このエラーが発生しています
エラー: HDLCompiler:1731 - 行 ...: 演算子 "=" の '0' 定義が見つかりました。"=" のオーバーロードされた正確な一致定義を特定できません
以下に示す最後の 2 つの Assert ステートメント (PulseOutput および IsCounting) について。等号は好きではありませんが、1 ビットの信号値をどのようにテストしますか? その上のアサート (CountTemp) はエラーを受け取りません。何か案が?!
vhdl - テストベンチ内で std_logic を整数に変換しますか?
ISim のコンソール ウィンドウで特定の時間に CLK 信号の値を返そうとしています (以下のコードでは 7.5ns)。次のエラーが表示されます。
ERROR:HDLCompiler:258 - "saved project.." 行 91: タイプ std_logic をタイプ unsigned に変換できません
この変換 ( integer'image(to_integer(unsigned((generic_signal)))); ) をstd_logic_vectorsで使用しましたが、うまくいきましたが、これはうまくいきません。CLK 値は 0 または 1 です。特定の時間にその値を返したいだけです。これを行うより効率的な方法を知っていますか?' image
vhdl - テストベンチ プロセス内で for ループが間違った値を生成していますか?
シミュレーション中に、時間値 7.5 ns、15 ns、22.5 ns などで A、B、および Y の値を返したいと考えています。以下は、これまでに実装したコードです (for ループ用)。数学的には理にかなっていますが、7.5 ns、30 ns、67.5 ns、120 ns の時間で値を返しています....コードのどこが間違っているのかわかりません。これを実装するためのより良い方法を知っていますか?
vhdl - テストベンチ プロセス内で "if" ステートメントの書式設定を発行しますか?
これは私を夢中にさせています。これまでのコードは次のとおりです。
ISim波形の写真 ---> i.imgur.com/G5KvCQe.jpg
このテストの目的は、立ち上がりエッジ (SYS_CLK) で InputSignal = '1' の場合に、SYS_CLK の周期と同等のパルス (SyncOutputSignal) が送信されることを確認することです。
ただし、CLK が High になり、InputSignal が High になるたびにエラー レポートが発行されます。
簡単に言うと、コードにリストされている assert ステートメントを再度テストする前に、次の InputSignal Pulse を待つようにプログラムに指示する方法が必要です。何か案は??
vhdl - ISim で std_logic_vector が符号なし整数としてレポートされますか?
私が使用しているライブラリは次のとおりです。
シグナル:
およびレポート ステートメント:
次のエラーが表示されます。