続々・ZyboでDVI出力
前回に引き続き、ソフトウェアベースだが、簡単な描画テストを行ってみた。
Linux に対して、DRAMの一部をVRAMとして確保した上で、物理アドレスでアクセスする必要があるわけだが、なんだかんだでその辺に時間を要してしまった。
結局のところ
http://keitetsu.blogspot.jp/2015/02/zynq-linux.html を参考にさせていただいて、Linux用のメモリを一旦 384M で制限。
(128Mも要らないが、今後のために多めに確保。なお、上記記事では u-boot の fdt_high を書き換えているが、printenvしてみると initrd_high という変数も同じアドレスを指していたので、一応書き換えておいた)
http://www.sweetcafe.jp/?p=172 を参考にさせていただいて、Userspace I/O でDMAのレジスタやら、VRAMやらにアクセス。
というところに落ち着いた。
一応環境は github に放り込みながら開発中なので
https://github.com/ryuz/zybo_dvi_tx.git
にあります。
WebPack だと ChipScope の類使えないし(必要なときはPMOD端子に引っ張り出してロジアナ)、DMA動いてる状態でPLだけ入れ替えるわけにも行かないし、bitファイルの更新のたびに、shutdown して再起動なので、意外に手順が多く、RTLのデバッグが手間な状態になってしまっている。
(PL単体でも起動できるが、DRAM使う時点で少なくともPS起動して無いと行けないので、最低限xmdから tcl スクリプトは走らせないといけないわけで。ついでに言うとPSの設定はVivadoなのに、tcl 吐くのがxsdkなのもどうしたものかと)
一応JTAGだけでブートできるので、ある程度は自動化できそうではあるが、本質的にはPS周りのモデルをそこそこ真面目に書いて、シミュレーションしっかりやって、bitファイルの更新回数を抑えるようにするのが正しい方針な気がする。
ちなみに余談だが、個人で開発する場合、期限1年のChipScopeのライセンス買うのに比べて、USBなロジアナはそこそこの低価格で買えるので、個人的にはこちらの方が潰しが効く気がする。
« 続・ZyboでDVI出力 | トップページ | GPUのお勉強 »
「FPGA」カテゴリの記事
- LUT-Networkの蒸留とMobileNet風構成とセマンティックセグメンテーション(2020.03.09)
- LUT-Networkの蒸留(Distillation)について(2019.12.29)
- FPGAでのDNN(Deep Neural Network)の整理(LUT-Netまとめ)(2019.12.15)
- LUT-NetのFPGAリソースについて(2019.12.08)
- MNIST認識のリアルタイム動作環境更新(2019.09.02)
この記事へのコメントは終了しました。
コメント