問題タブ [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.
embedded - Verilog での双方向ラインの駆動
この質問はおそらくあまりうまく説明されないでしょう。それは、自分の設計で何が起こっているのかを本当に理解していないからです。
カメラ (Terasic D5M) と通信するには I2C 通信バスを使用する必要があるため、Verilog を使用して記述しようとしました。私はマスターだけが必要です。私のロジック アナライザーでは、カメラから NACK 信号を受信し続けていることを除けば、すべて問題ないように見えます。最初は何が悪いのかわからなかったので、そのままにしておきました。
今夜、D5M 用のモジュールを備えた Altera University IP コアを使用してみました。これを自動的に初期化するように設定した後、アナライザーで何が起こっているかを見ました。トレースは、これがデバイスによって ACK を登録していることを除いて、私の I2C モジュールからの出力と同じように見えます。
私の問題は、なぜ私が承認を受けていないのか、一生わからないことです。カメラが sda ラインを低くプルすることを許可していない可能性があります (scl は正常に動作します) が、これがなぜなのかわかりません。
誰かが似たような経験をしたり、どこを見たり、投稿したり、読んだりするべきか考えていますか? 私はいくつかのコードを投稿しますが、それが完全ではない場合、それがどれほど役立つかはわかりません. あいまいで申し訳ありませんが、私は本当に迷っており、何を尋ねるべきかさえわかりません。これも同様のエフェクトリクエストだと思います。ご協力ありがとうございます。i2c モジュールからの出力行のコードを少し示します。
pSCL は目的のレートで動作するクロックで、sda_bit は動作中の sda ラインの値です。これは、ACK を解放して待機するセクションです。これは私のシフト状態に組み込まれているため、else if の始まりです。
カメラがモジュールを駆動できるようにするには、ena_sda を解放するだけで十分だと思います。テストとして sda_bit = HIGH を前に置いたと思います(これは1か月間見ていません)。
より多くのコードを共有したり、ロジック トレースを表示したりできれば幸いですが、これ以上散らかしたくありません。読んでくれてありがとう。
syntax - VHDL の構文エラー
構造的な VHDL とコンポーネントを使用して 1 ビット カウンターを実装しようとしています。ポート マップを実行しようとすると、構文エラーが発生します。エラーは「エラー (10028): Assign4.vhd(47) でネット "P" の複数の定数ドライバーを解決できません」です。
hardware - 「単純な」VHDL モジュールの設計は、いまだに私を怒らせる
すべてのご意見のおかげで、私はあなたの提案を実装しましたが、問題は同じままです. シミュレーションの結果は正常に動作しますが、ハードウェアは異なるものを出力します。簡単に要約すると、エンティティの動作を決定する 2 つの ctrl シグナルがあります。
VHDL コードは次のとおりです。
テストプログラム
ご覧のとおり、最初の SH1_L 操作の最後のビットが間違っています。最初の SH1_L 操作は、MSB が入力の 1 つに設定されているため、次の SH1_L 操作のキャリーを生成しますが、このキャリーは現在の SH1_L 操作で既に考慮されているようで、これは間違っています (tx はゼロである必要があります)。合成レポートを確認したところ、ラッチがないため、何が問題なのか少しわかりません。合成に Xilinx ISE 12.1 を使用していますが、アーキテクチャにリセット信号がないため、間違った種類のラッチがインスタンシエートされるという問題はありますか?
この問題を解決するための有益なコメントをありがとう、Patrick
syntax - 複数のアーキテクチャを提供する目的は?
私は VHDL の学習過程にあり、例、構文ガイド、および実験から学習しようとしています。
私がよく理解できないことの 1 つは、なぜ複数のアーキテクチャを提供したいのかということです。たとえば、この例の MUX コードは次のとおりです。
何か目的があるのですか、それとも単なる例えのためですか?
また、これがここに属しているのか、Electronics.SE に属しているのかわからないので、最初にここで試してみることにしました。
c - プログラム セグメントの最小化 - if, else
X、Y、Z、T は別のジョブです。例、X = マルチプレクサ( ... )
編集: emptyA は数値 1 または 0 であり、A はセット { 1, 2, 3, 4 } のメンバーです
最小の比較コストを得るためにそのプログラムセグメントを書き直すにはどうすればよいですか
verilog - 有効な左辺値ではありません - Verilog コンパイラ エラー
私がコンパイルすると、コンパイラは私に与えます;
どうすれば修正できますか? なぜエラーが発生するのですか?
編集:私は問題を解決しました;
if および else 構造を使用し、対応するインスタンスを 1'b1*/ で呼び出します。
verilog - ? === または <= を使用する場合の遅延時間
使用する場合
これらの操作 " === および <= " に対して、時間遅延が発生しましたか?
編集:1単位時間のような小さなものだと思いますが、間違っていますか?
使用言語: Verilog
vhdl - fpga 実装のパイプライン スループットを最適化するためのベスト プラクティスは何ですか?
たとえば、特定のパイプラインを最大限に活用するために、リタイミングや c-slow を最大限に活用するにはどうすればよいでしょうか。
リタイミングを使用すると、入力にシフト レジスタを配置することでより良い結果が得られるモジュール (フォワード レジスタ バランシング) と、出力にシフト レジスタを配置することでより良い結果が得られるモジュール (バックワード レジスタ バランシング) があります。
今のところ、次の方法を使用します。
- コード hdl (Verilog)
- 特定のモジュールのタイミング制約を作成する
- 合成、マップ、配置、配線 (ISE 13.1 を使用)
- 改善するモジュールの配置配線後のタイミングと、ロジック レベルの最大数を調べます。
- この数のロジック レベルを使用して、挿入するフリップフロップの数を推測してください。
- フリップフロップを挿入し、レジスタのバランスを有効にし、最善を尽くします
現状では、この方法はヒット&ミスです。かなり良い結果が得られることもあれば、がらくたになることもあります。では、そのようなリタイミングの成功率を向上させるにはどうすればよいでしょうか?
これを支援できるツールはありますか?また、リンク、論文、書籍の推奨事項も大歓迎です。
constants - verilogでconstを使用する方法
使用する代わりに
使いたい
または同じこと
その願いをVerilogで行うことはできますか?
verilog - 仕事をする前にポーズのclkを待っていますか? - どのように
(i)でマークされた行は、出力ポートにoutpを送信する前に、ポーズclkだけ待機したいのですが、;のように試した場合。
エラーが発生します
それはabsurb回答/シミュレーション出力を提供します。 出力を送信する前にposedgeclkを待つために、その行に何を置く必要がありますか?