問題タブ [intel-fpga]
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.
hardware - TABLEはAHDLでどのように機能しますか?
AHDLでコントロールユニット(UC)を実装しており、それをシミュレートして、対応するASMダイアグラムで定義されているとおりに機能するかどうかを確認することになっています。MAX + plus IIを使用してシミュレートしましたが、期待どおりに機能しませんでしたが、AHDLに精通していないため、TABLEの部分は言うまでもなく、何が問題なのかはわかりません。
これが私のコントロールユニットです:
シミュレーションには、私が理解していない2つの状況があります。
1)現在の状態がS3で、入力がM1=1およびM2=1の場合、次の状態はS6です。私の見方では、最初にS5を通過せずにS6に行く方法はないので、わかりません。
2)現在の状態がS0で、入力がN1=1およびN2=1の場合、次の状態はシミュレーションで「12」として定義されます。まあ、そのような状態はありません...
誰か助けてもらえますか?ありがとう。
アップデート:
1)ADHLとMAX + plus IIを使用する必要があります。これは大学の事務処理であり、コードを記述しなかったためです(私が言ったように、私はそれをシミュレートすることになっています)。 、変更できません)。
vhdl - IEEE vhdl 標準ライブラリが STL ではないのはなぜですか?
IEEE vhdl 言語リファレンス マニュアルでは、標準パッケージの限られたセットしか定義されていません。また、STD_LOGIC などの標準タイプの機能は定義されていません。そのため、標準の AND2、INV コンポーネント/演算子はありません。
Altera の MAX+Plus II は AND2、INV コンポーネントをサポートしていないようですが (ある場合はお気軽に訂正してください)、Xilinx Foundation はサポートしています。
IEEE vhdl 標準ライブラリが C++ の世界で STL のようなものにならないのはなぜですか?
ありがとう。
verilog - Verilog または VHDL デザインのすべての警告を削除する必要がありますか? なぜですか、そうでないのですか?
(通常の)ソフトウェアでは、gccオプション -Wall を使用してすべての警告を表示する会社で働いていました。次に、それらに対処する必要があります。Verilog または VHDL での重要な FPGA/ASIC デザインでは、多くの場合、多くの警告が表示されます。それらすべてについて心配する必要がありますか?提案する具体的なテクニックはありますか?私のフローは主に FPGA (特にアルテラとザイリンクス) 向けですが、ビルド後にデザインを変更できないため、同じルールが ASIC デザインにも適用されると思います。
2010 年 4 月 29 日更新: 当初は合成と P&R (配置配線) の警告について考えていましたが、シミュレーションの警告も有効です。
c - この構文のヘルプが必要です: "#define LED(char *)0x0003010"
私はソフトコアプロセッサ、アルテラのNios IIのプログラミングを行っています。以下は、チュートリアルの1つにあるコードです。ハードウェア(DE2ボード)でテストすることでコードを機能させることができますが、理解できませんでした。コード。
私が知っているのは、定数またはマクロ#define
を定義するために使用されますが、
(char *) 0x0003010
なぜ上記のコードで、、のようなキャストがあり#define
ますか?- なぜ2つの定数で
Switches
ありLEDs
、定数ではなく変数のように機能するのでしょうか。
linux - Linux で VHDL をプログラミングしますか?
Linux を使用して VHDL をプログラムし、シミュレートするのに適した環境を知っている人はいますか (Xilinx か Altera は関係ありません)。
floating-point - Verilogの複雑な浮動小数点シーケンシャルロジック
Verilog/SystemVerilogで合成可能な3Dラスタライザーを作成しようとしています。現在のラスターライザーは、実際には3Dラスターライザーではありません。頂点位置(vertA_pos_x、vertA_pos_y、vertB_pos_x、vertB_pos_y、vertC_pos_x、vertC_pos_y)用に6つの32ビットフロートと、頂点カラーリング用に9つの8ビット整数(vertA_color_r、vertA_ 、vertB_color_r、vertB_color_g、vertB_color_b、vertC_color_r、vertC_color_g、vertC_color_b)。
位置の範囲は0.0f〜1.0fで、0.0fは画面の上部/左側、0.5fは画面の中央、1.0fは下部/右側を表します。
ラスター作業は、最初に、必要なラスター線の数を数えることです。フレームバッファの高さが240ピクセルであるとすると、頂点Aは上部の頂点、Bは左下の頂点、Cは右下の頂点、Xは最下部の頂点です(BまたはCのいずれか。これは計算する必要があります)。ラスターラインの数はで与えられ(vertX_pos_y - vertA_pos_y) / 240
ます。
ラスタライズプロセスのこの部分は、私の疑問を明らかにするほど複雑なので、ここでどのように進めるかについては説明しません。
ここで私が知りたいのは、Verilogでこのような「複雑な」ロジックを実装する方法です(これはシーケンシャルであり、1クロックサイクル以上かかるため「複雑」です。これは、ハードウェアで設計するのに最も快適な種類ではありません。説明言語)。
私はアルテラのQuartusを使用しているので、主にアルテラのソリューションに興味があります。
Quartusに付属する浮動小数点演算メガファンクションはすべて、完了するまでに1クロックサイクル以上を必要とするため、のような「単純な」計算を実装する(vertX_pos_y - vertA_pos_y) / 240
には、かなり退屈でエラーが発生しやすいステートマシンが必要だと思います。私の最大の期待は、誰かが私にそれは必要ないと言うことですが、そうでない場合でも、人々が一般的にこのようなものをどのように設計するかを知りたいです。
また、私はVerilogとハードウェアの設計全般に非常に慣れていないので、愚かなことを言ったら申し訳ありません。アイデア?
verilog - Altera M9K のコンテンツを 0 (パワーアップ値) にリセットします。
良い一日、
私は M9K ブロック メモリを含む Stratix III FPGA に取り組んでおり、その内容は電源投入時に都合よくゼロに初期化されます。これは私のアプリケーションに非常に適しています。
FPGA の電源サイクル/再フラッシュなどを行わずに内容をゼロにリセットする方法はありますか? megawizard プラグイン マネージャーにはそのようなオプションはないようです。すべてのアドレスにゼロを順番に書き込む一連のロジックを無駄にすることは避けたいと思います...
私は周りを見回しましたが、そのようなメカニズムへの言及はありませんが、誰かが便利なトリックを知っている場合に備えて尋ねると思いました:]ちなみに、私はVHDLで作業していますが、Verilogを翻訳できるはずです。
データシート (答えは含まれていません!) : http://www.altera.com/literature/hb/stx3/stx3_siii51004.pdf
前もって感謝します
- トーマス
PS: これは私の最初の投稿なので、エチケットに違反した場合はお知らせください :)
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か月間見ていません)。
より多くのコードを共有したり、ロジック トレースを表示したりできれば幸いですが、これ以上散らかしたくありません。読んでくれてありがとう。
c - C の乱数
次のように、Cで乱数を生成する独自の方法を書いています。
pCounter
基本的に、私が使用しているデバイスのレジスタへのポインタです。そのレジスタの数字は常に増加しているので、私の考えは最初の桁だけを取ることです.
ある時点で、返される数値が 9 より大きくなり、問題がコードにあるのかデバイス自体にあるのかわかりません。デバイスは Altera DE1 ボードです。
誰でもそれを手伝ってもらえますか?
ありがとう!
vhdl - QuartusIIでピンを割り当てる方法
高速化するために、一部のコードをCPLDまたはFPGAに移動することを検討しています。以前にXilinksとそのツールスイートを使用したことがありますが、何らかの理由で今回はアルテラを使用することにしたので、QuartusIIに慣れようとしています。
特に、使用しているチップにピンを明示的に割り当てる方法を探しています。ザイリンクスでは、ネットリストファイルを編集しますが、Quartusではそのようなものは見つかりません。これを行うプログラム(Assignments => Pin Planner)がありますが、GUIが不格好で、テキストエディターでピンを編集したいので、2つの質問があります。
A:ピン割り当てを保存しているファイルを見つけるにはどうすればよいですか?プロジェクトナビゲータのファイルの下には表示されませんが、Pin Plannerで割り当てたピンはセッションごとに保持されるため、どこかに保存する必要があります。
B:これは恐ろしい考えですか?
IDEはQuartusII10.1開発キットはMAXII開発ボード言語はVHDLです
編集:今、私はUSBを介して開発キットとインターフェースしようとしているという問題に遭遇しました。その上にシリアルデータレシーバーを作成していて、データ入力ピンを付けています。開発キットにはUSBレシーバーがあるので、USBコネクタがオンになっているピンにdinをマップしようとしています。私が持っているファイル(rm_maxII-develop_board-rev1.pdf)によると、USBコネクタは「BoardDesignation U13」にありますが、Pin PLannerに入ってそれを割り当てようとすると、PIN_U13がありません。これはPinPlannerではなくpdfのエラーだと思いますが、これまでアルテラ製品を扱ったことがないので、非常に混乱しています。