問題タブ [quartus]
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 - VHDL & Synthesizing w/Quartus simple error
So I'm currently trying to synthesize a design and apparently it's too big to compile or something. It compiles and simulates perfectly in ModelSim, but in quartus throws this error:
Error: Design requires 491 I/O resources -- too many to fit in 456 available in the selected device or any device in the device family
Apparently I have 491 I/O resources but can only fit 456 (??). I have no idea what that means or how to extend the 456 number. Google searching gets me nowhere. Does anybody know what to do in this case?
Thanks a lot!
vhdl - Quartus に波形を追加するにはどうすればよいですか?
Quartus の VHDL プロジェクトでファイルから新しい波形を作成しようとしていますが、場所の検証部分で波形タイプを見つけることができませんでした。
プロジェクトに新しいファイルを追加する場合、何ができますか?
Quartus の Web 版を使用しています。
enums - QuartusII 合成: 列挙型から状態信号へ (エンコーディング)
アルテラ FPGA に配置する QuartusII (14.1) ツールを使用して合成するため、SystemVerilog で FSM を設計しています。コードをより合理的にするために列挙型宣言を使用しています。
logic [7:0]
Quartus がこのステート マシンを合成するたびに、タイプの一部にもかかわらずワンホット エンコーディングが作成されるようです。状態を SignalTap に追加する必要がある場合と同様に、すべての状態をシグナル 1 ビット変数 ( cs.CMD_INIT
、cs.CMD_WAIT
など) として取得します。これは通常非常に便利ですが、これらの状態の束といくつかのオーバー値を一度に確認する必要があるため、これらの状態をすべて含めるにはオンチップ メモリが不足しています (8 つをはるかに超えています。50 のように)。 +))。したがって、それらすべてを SignalTap に追加すると、このメモリが大量に消費されます。しかし、 の 8 ビット値を書き留めることができればcs
、他のもののために十分なスペースを確保できます。
Quartus が FSM に 1-hot エンコーディングを使用しないようにする方法がわかりません。設定 (設定 -> コンパイラ設定 -> 詳細設定 (合成...) -> ステート マシン処理) を最小ビット、ユーザー エンコーディング、およびシーケンシャルに変更し、いくつかの状態の値を追加しようとしました。
(途中でさらに追加する可能性があるため、すべてではないことに注意してください)
SignalTap が状態の 8 ビットのみを認識するようにするには、他に何をすべきかわかりません (これはおそらく、Quartus にこの FSM を 1hot エンコーディングではなくシーケンシャルとして合成させることに戻ります)
vhdl - この VHDL コード (BCD カウンター) の何が問題になっていますか?
私は今 VHDL を勉強しています。非常に簡単な宿題があります。0 から 9 までカウントし、9 に達すると 0 に戻る同期 BCD カウンターを作成する必要があります。少し実験したかったのです。そのため、(少なくとも私が見ているように) 従来の方法 (if、elseif を使用) ではなく、when-else ステートメントを使用してコードを実行することにしました (ほとんどの場合、カウンターは 0 から 9 までであり、 9 に達したら 0 に戻ります)。
したがって、すべてがコンパイルされますが、シミュレーションでは、最初にカウンターが 0 から 2 にジャンプしますが、サイクル (0-9 - 0) の後、正常に動作します。つまり、カウンターは本来あるべきように 0 から 1 になります。rst = '1' を強制する場合も同様です。
シミュレーション画像:
最初に 0 から 2 にジャンプするのはなぜですか?
ありがとうございました。
intel-fpga - ROM-1Portのアドレスを増やす方法
アルテラの Quartus メガファンクション ROM-1Port を使用し、内部に 8 つのデータを入力すると、最初のデータだけが表示されます。アドレスを増やすためにインクリメント プログラムを接続しましたが、それでも最初のデータが表示されます。正しく接続されていますか?それとも私はそれを間違っていましたか?
これが私のインクリメントプログラムのサンプルコードです:
vhdl - Quartus 合成後の問題 -- 出力が xxxxxxxx として取得される
vhdl コードを書き、FPGA で実行したいのですが、コードは ghdl と Quartus 2 合成前 (RTL シミュレーション) で正常に動作していますが、ゲートレベル シミュレーションで実行すると、data_out が xxxxxxx として表示されます。 .何が問題なのかわかりません。誰でも私を助けることができますか?
--- デバイスコード
---入力ファイル 1010 0111 1110 0010 1011
-- 出力ファイルの内容 00000101
コードとテストベンチを変更し、遅延も含めましたが、それでも同じ xxxx エラーが発生します...コードの何が問題なのか教えてください。他に何を変更する必要がありますか?ありがとうあらかじめ
------ 変更されたコード
-- 新しいテストベンチ
合成前と合成後の画像も添付しています。どこが間違っているのかわかりません
合成 前 合成後
intel-fpga - Qsys で作成された新しいコンポーネントを使用して、多くの信号をベクトル化/グループ化する方法
Qsys では、12 個の入力パラレル ポートを使用しています (名前を にpio1
しますpio12
)。各ポートは 12 ビットです。vhdl
これらのパラレル・ポートは、Quartus 回路図のブロックから値を取得します。回路図bdf
では、nios ii システム シンボルから を確認できるので、これらの を の他のブロックに接続pio1
できます。pio12
pio
bdf
私の質問は、これらpio1
をベクトル化する方法pio12
ですか? Nios システム シンボルから出てくる12pio
個すべてのピオを 1 行ずつ表示する代わりに、これらの 12 個のピオすべてをグループ化して、12 個ではなく 1 個だけを表示するにはどうすればよいですか? pio
私が見たものから、pio
[1..12][1..12] という名前を付けることができます。最初のブラケットは を意味pio1
しpio12
、2 番目のブラケットはビット 1 からビット 12 を意味します。これは、各パラレル ポートに 12 ビットがあるためです。
pio_helper.vhd
このファイルを使用して Qsys に新しいコンポーネントを作成しました。
ファイルは次のpio_helper.vhdl
とおりです。
のアーキテクチャ動作pio_helper
は
次のエラーが発生しました。いくつか質問があります。
- これは純粋にデータ転送であるため、クロック信号とリセット信号はないと思います
writebyteenable_n
12回出てくる(1回だけ許される)のに12回あるpio
のに…どう変えればいいの?
警告: avalon_slave_0: 信号 writebyteenable_n が 12 回表示されます (1 回のみが許可されます) エラー: avalon_slave_0: インターフェイスには関連するクロックが必要です エラー: avalon_slave_0: インターフェイスには関連するリセットが必要です エラー: avalon_slave_0: インターフェイスには関連するクロックが必要です。
compilation - 1 つのエンティティに複数のアーキテクチャがある場合はどうなりますか?
2 つのアーキテクチャが定義されているエンティティがあるとします。これらの 2 つのアーキテクチャは (明らかに) 同じエンティティで動作し、その後、2 つの出力ピンが異なる値に設定されます。私の質問は、プログラム (シミュレーター) は出力がどうあるべきか (つまり、どのアーキテクチャーを選択するか) をどのように決定するのかということです。
次に例を示します。
シミュレーションを行ったところ、qが割り当てられたaの値を取得し、 qnが割り当てられたbの値を取得することがわかりました。2 番目のアーキテクチャがコンパイラによって選択されたようです。なぜプログラムがそうすることにしたのかわかりません。
ありがとうございました。
vhdl - レポートステートメントで文字列を整数と連結する方法は?
次のレポート ステートメントを機能させるのに問題があります。
a
は のタイプですin std_logic_vector(31 downto 0)
。
私が得ているエラーは次のとおりです。
文字列を出力し、整数値を連結してから、別の文字列を連結したいと考えています。
私は何を間違っていますか?