問題タブ [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 投票する
10 に答える
1023 参照

embedded - HDLはどこから始めればよいですか?

私は独学の組み込み開発者です。私は主にCとASMでプログラムされたAVRを使用していますが、他のシステムに手を出しています。CPLDやFPGAなどのより複雑なデバイスに移行したいと考えていますが、どこから始めればよいのかわかりません。だから私の1.5の質問は次のとおりです。

  1. VHDLとVerilogのどちらが好きですか。その理由は何ですか。
  2. HDLの経験がない人にとって、そのような獣の学習を始めるための良い方法は何ですか?
0 投票する
3 に答える
23142 参照

verilog - Verilog で数値を 2 の補数に変換するにはどうすればよいですか?

Verilog で 4 ビット加算減算器を設計しようとしています。これは私が Verilog で書いたのは 2 番目に過ぎず、正しい構文をまだすべて知っているわけではありません。これは私がこれまで持っているモジュールです:

私のコンパイラ (ザイリンクス 10.1) は、「if の近くで構文エラー」と言い続けます。Y を引数として取り、考えられるすべての 4 ビットの組み合わせをチェックして、それらを 2 の補数に変換する Case を使用するなど、さまざまな変換方法を試しました。

Z は、加算器が減算または加算を行うかどうかを決定するものです。0 の場合は減算を意味し、y を 2 の補数に変換したいので、通常の加算を行います。加算器の残りの部分は正しいと確信していますが、変換しようとしている部分の何が問題なのかわかりません。

0 投票する
6 に答える
19796 参照

verilog - ハードウェア記述言語 (Verilog、VHDL など) のベスト プラクティスは何ですか?

HDL コードを実装する際に守るべきベスト プラクティスは何ですか?

より一般的なソフトウェア開発分野と比較した場合の共通点と相違点は何ですか?

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

verilog - 動的にプラグ可能なモジュールを VHDL で実行できますか?

C (組み込み) では、モジュールをロードできる関数ポインター テーブルとアドレス範囲を定義することで、プラグインを実装できます。

これには、領域を割り当てて関数テーブルの場所を定義するリンカー ディレクティブが必要です。

HDL / VHDL または Verilog にも同様のメカニズムはありますか。

私が考えているのは、FPGA 内のゲートのブロックを拡張機能用に定義し、インターフェイスするポートを定義し、後でこのブロックにロジックをロードして特定の操作を実行できるようにすることだと思います。

FPGA はプラグインが配信される通信システムの一部であるため、これは実行時に行う必要があります。

0 投票する
5 に答える
11191 参照

hdl - 「Nand to Tetris」コースで ALU の出力フラグを設定するにはどうすればよいですか?

この宿題にタグを付けましたが、実際には無料で自分でやっているコース用です。とにかく、このコースは「ナンドからテトリスへ」と呼ばれており、誰かがこのコースを見たり受講したりしているので、助けが得られることを願っています. 提供された hdl 言語で ALU を構築している段階です。私の問題は、チップを適切にコンパイルできないことです。ALU の出力フラグを設定しようとすると、エラーが発生します。問題は、中間変数に添字を付けられないことだと思います。これは、ランダム変数(入力フラグなど)に基づいてフラグをtrueまたはfalseに設定しようとすると、エラーが発生しないためです。すべての組み込みチップを使用しているため、使用しようとしているチップに問題がないことはわかっています。

これまでのところ、私のALUチップは次のとおりです。

そのため、'out' の添字付きバージョンを Or8Way チップに送信しようとすると、問題が発生します。「out」とは異なる変数を使用してみましたが、同じ問題があります。次に、中間変数に添字を付けることができないことを読みました。中間変数を他のチップに送信し、そのチップに添字を付ければ問題は解決するのではないかと思いましたが、同じエラーが発生しました。残念ながら、中間変数に添え字を付けずに zr フラグと ng フラグを設定する方法が思い浮かびません。

ご存知のように、問題のある行を次のように置き換えると、コンパイルされます (ただし、ランダムな入力を使用しているだけなので、正しい結果は得られません)。

誰にもアイデアはありますか?

編集:これは、hdlの仕組みを指定するコースの本の付録です。具体的には、バスについて説明しているセクション 5 を見てください。

編集:ここに私が得る正確なエラーがあります:「68行目、ゲートの出力ピンをパーツに接続できません」。ただし、実際の問題ではないように見えるため、エラーメッセージはやや混乱しています。「Or8way( in=out[0..7], out=zr1 );」を置き換えるだけなら 「Or8way( in=false, out=zr1 );」で このエラーは生成されないため、付録を調べたところ、 out 変数は中間として導出されたため、添え字を付けることができませんでした。

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

variable-assignment - ネストされたモジュールのセットの奥深くにワイヤを割り当てる

私は約4レベルの深さのワイヤーを持っており、それを階層の上位に伝播する必要があるという煩わしさを本当に望んでいません。ある種の参照を使用してワイヤを割り当てる方法はありますか?次のように入力して、ワイヤーにアクセスできることを知っています。

しかし

動作しません

誰かがそれを行う方法を知っていますか?

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

verilog - ザイリンクス コア ジェネレーターで作成された Verilog コアを合成する方法を教えてください。

分割コアの開発には coregen を使用しました。デザインでその仕切りを使用しようとした手順は次のとおりです (完全に正しいかどうかはわかりません): 1) ラッパー (core_name.v)、.ngc ファイル、および .veo ファイルをメイン デザイン フォルダーにコピーします。 veo テンプレートを使用したメインの Verilog モジュール: core_name u1(.a(a_p), .b(b_p), .c(c_p), .d(d_p); メインの Verilog モジュールで除算関数が必要な場合はいつでも 3) ` 「core_name.v」を含める

構文チェックを行うと、次のようになります: "core_name.v" line 1 expected 'endmodule', found 'module'

ISE デザインでコアをインスタンス化して合成するために必要な手順を教えてください。

ありがとうございました。

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

verilog - Verilog コードがシミュレートされるが、FPGA で予測どおりに実行されない

コードの動作シミュレーションを行ったところ、完全に動作しました。結果は予想通り。コードを合成して Spartan 3e FPGA にアップロードし、chipscope を使用して解析しようとすると、結果が期待したものに近くありません。私は間違って何をしましたか? http://pastebin.com/XWMekL7r

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

verilog - Verilog テストベンチは実際のクロックで動作しますか?

Verilog でカウンターを書き、それをテストするためのテストベンチを作成しました。私のテストベンチは正しい結果を出すので、私のコードは問題ありません。しかし、それは長い時間の結果を瞬時に与えます。

リアルタイムで結果を取得することは可能ですか。つまり、1 秒ごとにテストベンチが新しい結果行を生成するということですか?? (そして、可能であればどのように?)

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

specman - Specman で、コード本体のマクロ ラベルがガベージを返すのはなぜですか?

この投稿と同様 http://feedproxy.google.com/~r/cadence/community/blogs/fv/~3/IvdCIla8_Es/extending-multiple-when-subtypes-simultaneously.aspx

Specman が持つ when-subtyping と継承の問題のいくつかを回避するために、ループ展開を行うマクロを作成したいと考えています。

私は始めました:

これを実行すると、次のようになります。

の印刷物を見ると<UNROLLEES>

中括弧内の体の代わりに<UNROLLEES>私を与えるのはなぜですか? [35]35 は のアスキー値な#ので、なぜ 35 になるのか途方に暮れています...

PSマクロは悪魔のものだと思いますが、コードのコピーはもっと悪いと思います。Specman は実際にはポリモーフィックではないため、これを行う必要があります。