問題タブ [zynq]
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.
ubuntu - カーネル パニック - 同期していません: 動作中の init が見つかりません
SD カードを介して zynq 7000 で Linaro Ubuntu デスクトップを動作させようとしています。SD カードに 2 つのパーティションを作成し、FPGA に挿入した後、ホスト PC に次のメッセージが表示されます (UART を使用してシリアル ポート経由でカードにリンクされています)。
また、VGA 接続のモニターには何も表示されません。誰かがこの問題の原因を理解するのを手伝ってくれますか?
user-interface - FPGA ロジックの GUI 制御の実用的な方法は何ですか?
ハードウェア コアで Linux を実行している Zynq 開発ボード (Z7020) の 1 つがあります。ハードウェア コアで実行され、接続されたタッチ ディスプレイ画面に表示される GUI インターフェイスを使用して、Zynq の FPGA 部分にプログラムするロジックを制御したいと考えています。
オプションを選択したり、GUI インターフェイスからタスクを開始/停止したりするときに、FPGA に割り込みを送信するだけでよいでしょうか?
また、FPGA からハードウェア コアまたは場合によっては何らかのデータに、タスクが終了したという指示を返すにはどうすればよいですか?
ubuntu - board_f ファイルでの Petalinux 2014.4 ビルド エラー
プロジェクトの petalinux カーネルを構築しようとしています。vivado のビットストリームは問題なくコンパイルされます。いくつかの警告がありますが、意図的なものです (暗黙のラッチ、センシティビティ リストにないものなど)。
HDF をすべて正常に取得すると、プロジェクトは正常に初期化されます。プロジェクトを構成すると、すべてがスムーズに進みます。異常なことは何もありません。基本的なセットアップをインスタンス化しています。変更はありません。
を実行するpetalinux-build -v
と、board_f ファイルに到達するまでは問題ありません。これらは、このエラーが原因で失敗します。
Ubuntu 14.04 と 15.10 の両方で試しましたが、エラーはどちらも同じです。
ビルド ログ全体を投稿することはできませんが、pastebin のログへのリンクをここに示します [2375 行でエラーが発生します] http://pastebin.com/zFkXs8wb
vhdl - AXI4 バスから大量のデータを読み取る方法
私は zybo ボードで何かを構築しているので、Zynq デバイスを使用しています。
CPU からメイン メモリに書き込み、FPGA で読み込んで、CPU の結果を別のデバイスに書き込みたいと考えています。
これを行うには AXI バスを使用する必要があると確信していますが、問題に対する最善のアプローチを見つけることができません。私は:
- 完全な AXI ペリフェラルを自分で作成しますか? おそらく、メインメモリに読み取り要求を発行し、それらを実行するマスター。AXI ペリフェラルを実際に作成する方法に関するリソースを見つけるのは非常に難しいと感じています。どこから簡単な説明を探し始めればよいでしょうか。
- ザイリンクス IP コアの 1 つを使用して AXI バスを処理しますが、かなりの数があり、どれを使用するのが最適かわかりません。
それが何であれ、高速である必要があり、ボード上の DDR メモリから大量の読み取りを実行できる必要があります。そのメモリは、CPU からも書き込み可能である必要があります。
ありがとう!
verilog - AXI IP の合成中の不明なエラー
ザイリンクス Vivado の IP パッケージ ツールを使用して、AXI-Lite インターフェイスを備えたコプロセッサを作成し、それをデジタル システム エンジニアリング クラスの Zynq SoC デザインで使用しようとしています。コプロセッサは、以前の課題の一部として既に開発した GCD 計算機です。インストラクターの指示に従って、GCD 計算機から IP を作成しました。ここにある PDF のチュートリアル 4A に大まかに従って、AXI インターフェイスを作成しました (I/O 宣言は、GCD 計算機に合わせて明らかに変更されています)。計算機に値を送信するために、AXI IP と GCD IP から実行される「data」というデータ バスがあります。しかし、デザインを合成しようとすると、次のエラー メッセージが表示されます。
[Synth 8-685] variable 'data' should not be used in output port connection'
このエラーは、データ ポートが定義されている AXI バス インターフェイス インスタンシエーションの行に表示されます。
このエラーの解決策を何時間もオンラインで検索してきましたが、ザイリンクスの Web サイトや入手可能なザイリンクスのドキュメントでさえ、このエラーに関する情報はなく、見つけることもできませんでした。同じエラーが発生した人からのアカウント。
私は教授に何かアイデアがあるかどうかを確認するために電子メールを送りましたが、彼はおそらくあと 6 時間は起きておらず、課題の提出期限は今日 (明日?) です。
誰かがこのエラーについて聞いたことがありますか、またはそれを修正する方法を知っていますか?
エラーのソースを含むコードの一部を次に示します。
ありがとう、
-アンドリュー
vhdl - zynq デバイスの RAM にデータを保存
現在、 Zynqの PS 部分で生成されたイメージをボードの DDR3 に格納する際に問題が発生し、そのイメージをボードの PL 側に読み込んで、そこで作成された VGA ドライバーができるようにします。
PS は、理想的にはドラムに保存したい 640x480 の画像を作成します。私はこれまで、DMA を使用してデータを前後に転送し、何らかの方法で (すべてのピクセルを保存するのではなく) システムのブロック RAM に保存していました。しかし、それは理想的な解決策ではなく、私もそう知っています..
私の質問は、zynq ボードの DDR RAM にアクセスする方法です。PS 側にあることはわかっていますが、インターフェイス方法を説明するドキュメントが見つからないようです。
verilog - 異なる周波数のLEDカウンタープログラム(0 - 15)
0 から 15 までカウントする Zybo ボード上の 4 つの LED でカウンターを作成したいと考えています。また、ボードの 4 つのボタンを、LED の変化の異なる周波数 (0.5Hz、1Hz、2Hz、 4Hz)。固定周波数の単純なカウンターは既に達成していますが、ボタン周波数が変化する2番目の部分は達成していません。
ブロック デザインには、Zynq プロセッシング システム、ボタン データを読み取る AXI GPIO、および LED のドライバー、クロック分周器、周波数チェンジャーとして機能するカスタム IP があります。
カスタム IP
クロック分周器モジュールコード。
レジスタ定数番号は、クロック周波数を変更するために対応する値を取ります。
カスタム IP ロジックの残りの部分。
ボタン データはカスタム IP (slv_reg0) の最初のレジスタに送信され、Clock_Divider モジュールの reg0 に送信されます。
メイン C プログラム
ボタン データが AXI GPIO によって正しく読み取られていることを確認できます。これは、ボタンを押すと正しい行がターミナルに出力されるためです。しかし、ボタンを押しても周波数は変わりません。また、ボタン データがカスタム IP に送信されなかった場合でも、デフォルトの 1 Hz よりもはるかに遅い、非常に遅い周波数で実行されます。
問題は、カスタム IP の reg0 ケース ロジック、または CPU からカスタム IP のレジスタへのボタン データの送信のいずれかにあるはずです。
xilinx - Zynq7000 PS DMA の「完了」信号が早すぎる
TL;DR: Zynq7000 PS ビルトイン DMA が「Done」信号を返すのが早すぎます。内部の「MFIFO」がいっぱいになり、データソースへのアクセスが不要になるとすぐに通知するようです。しかし、SW は、データの送信が実際にいつ終了したかを知る必要があります。
PS DMA には、送信が終了したかどうかを示すステータス ビットがありますか? ザイリンクスのドキュメントでは、これらの DMA レジスタのいくつかについて不明確です ( http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf、276 ページ) 。
次の C コードを使用して、DMA を使用してデータのチャンクを DDR メモリから PL IP に送ります。
次に、DMA転送を開始します...
IP から結果を読み取る前に、それが完了するのを待ちます。
私が抱えている問題は、データ転送が完了する前に、この結果があまりにも早く読み戻されることが多いことです。どうやら、DMA は、DMA 転送がまだ進行中である間に完了したと言うことがあります (チップスコープから、書き込みバーストがまだ発生している間に読み取りが発生していることがわかるため、わかります)。
DMA が実際にデータ転送を完了するまで待機するようにソフトウェアを設定するにはどうすればよいですか?