問題タブ [hdl]

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 に答える
1665 参照

vhdl - VHDL プロセスから 2 回インスタンス化されたエンティティにファイルを開く際の問題: 名前の競合

次の構造を持つ VHDL のエンティティがあります。

ファイルを開くのに問題はありません。すべてが機能します。私は問題があります。テストベンチを作成して実行するときは、通常、エンティティのインスタンスを 1 つ作成します。しかし、私の場合は、2 つのインスタンスを配置する必要があります。私の問題は、ファイル名との競合が発生し、1 つのプロセスが (同じ) ログ ファイルのオープンと書き込みに必然的に失敗することです。

これを解決したいので、ここで質問します:

  1. ポートにシグナルがあります。シグナル値をファイル名に追加してもよろしいですか? 残念ながら、これは最善の方法ではありません (そのようなことがうまくいくかどうかさえわかりません)。

  2. テストベンチでエンティティのインスタンス名を表す変数を取得する方法はありますか?

  3. ファイル名の最後に添付できるように、文字列をエンティティに渡す方法はありますか?

ありがとうございました

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

vhdl - Mod-M カウンター 符号なし値にはシグナルがない

Nexys2 ボード用の RS232 モジュールを作成しています。現在、19200 に設定したいボー レート コントローラに問題があります。

このために、私は Mod-M カウンターを使用しています。多くの ISim シミュレーションの後、私のコードの問題は mod-m カウンターにあり、ティックが生成されません。

すべての clk 入力をテストし、正常に実行しましたが、問題は r_reg および r_next レジスタにあるようです。ISim でこれらのいずれかを q に出力すると、UUUUUUUU が表示されるため、信号が生成されていないようです。このことから、r_reg と r_next の 2 つのレジスタが作成されていない、または値が格納されていないと推測できます。符号なしを使用する場合に問題はありますか?

念のため、書籍『FPGA Prototyping with VHDL』(表示されているコード) から mod-m カウンターをコピーしましたが、それでも機能せず、q 出力は UUUUUUUU です。

nexys2 50mzクロックからボーレートを作成するより良い方法があれば、それも歓迎します!

乾杯

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

vhdl - VHDL 文字セットの生成

文字セットから可能なすべての組み合わせを生成する必要があります。

生成されたパターンはこのように出力されるはずです。

これは 8 の長さで行われますa=>zzzzzzzz。私は C で例を書くことでこの問題に取り組み、これには再帰関数を使用しました。ざっくばらんに書かれていることは承知していますが、ご理解いただけると幸いです。

私の質問は 2 つあります。

  1. VHDL で再帰を使用する必要がありますか?
  2. そうでない場合、どうすれば問題に取り組むことができますか?

アップデート:

したがって、最終的な目標は、コードを合成し、値をクロック付きポートに出力することです。コメントを読んで理解したように、深さ 2 を超える再帰は悪い考えかもしれないので、再帰なしで他の方法で解決するのがおそらく最善です。

再帰以外の方法でこれについて考えるのに苦労しているので(理解できないようです)、ポインタや提案(コードでさえも!)をいただければ幸いです。

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

hardware - if-else の else ブロックは、条件ごとに異なる動作をします

if else ブロックを使用して単純なシフト レジスタをコーディングしています。control = 2'b00制御信号が(デフォルト値を保持することを意味する)場合は、else ブロックが正常に機能することに気付きましたが、制御値を指定control = 2'b11すると、右にシフトし始めます。これは、私が望むものではありません。

else ブロックが選択的に機能するのはなぜですか? control = 2'b00との両方control = 2'b11が else の場合でも?

以下のコードとスクリーンショット:

ここに画像の説明を入力

編集:

上記も動作しませんでした..しかし、ケースで修正しました。

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

hardware - 与えられた時間内に乱数を選択する方法は?

LED が 15 秒以内のランダムな時間に点灯するようにしたい。たとえば、ボタンを押した後、ランダムに 4 秒または 7 秒後にオンにする必要があります。

15 秒の遅延を生成するコードを思いつきましたが、この間にランダムな時間を選択する方法がわかりません。

以下は、15 秒の遅延のコードです。

また、合成可能なソリューションが必要です。

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

counter - Verilog カウンター実装の予期しない動作

Verilogでカウンターを作り、ハードウェアで実現しました。しかし、私は動作を説明することはできませんコードは次のとおりです。

ハードウェアでは、 をrst押すと、カウントしていた時点で LED がフリーズします。正確にゼロになるわけではありません。をアサートrstすると、 を解放しない限り変化しないゼロ以外のランダム パターンが表示されrstます。

私の質問は:if(rst) beginブロックが実行されると、counterが 0 に設定されます。LED は からコンボ ロジックとして割り当てられているためcounter、すぐに反映されるべきではありませんか?

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

verilog - Verilog: 変数へのブロッキング代入とノンブロッキング代入の混在推奨されるコーディング方法ではありません

次の Verilog コードがあります。

Xilinx Platform Studio でこのデザインのネットリストを生成しようとすると、次のようなエラー メッセージが表示されます。

私は完全に立ち往生していて、何をすべきかわかりません。

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

hdl - DMux 4ウェイの何が問題になっていますか?

動作に近いように見えますが、7行目で混乱しているようです。

私はDMuxを次のように実装し、それをツリーのように使用しています。

0 投票する
3 に答える
38752 参照

random - (疑似)ハードウェア乱数ジェネレーターを実装する方法

HDL(verilog)にハードウェア乱数ジェネレーターをどのように実装しますか?

どのようなオプションを検討する必要がありますか?


この質問は、自己回答形式に従っています。追加の回答と更新をお勧めします。

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

boolean-logic - AND、ORで構成され、ANDとNOTのみを使用しないブール式を表現するにはどうすればよいですか?

次のブール式があるとします。

AND(^)とNOT(〜)のみを使用してそれをどのように表現できますか?答えは欲しくない、どうやってやるのか。