Zynq SoCプログラミング

以前の投稿で、実験のための私のSBCは勇敢な死であると述べました。 もちろん、問題は新しい実験的な主題から生じました。



どういうわけか、単純なシングルボードプレーヤーを購入したくなかったので、SoCを選択しました。 ZynqとCyclone Vのどちらかを選択しました。トピックの名前から、彼らは私が選択したものを推測したと思います。







この出版物は、タイトル画像からのスカーフの小さな概要と、そのようなハードウェアを「プログラム」および「構成」する方法で構成されます。 誰にそれが面白いか私はキャットの下でお願いします。



ボード



Myir Z-turn Board スカーフ購入しました 。 その上には、Zynq 7020ストーン、85kの論理セル、2つのCortex-A9コア、1 GB DDR3があります。 ボードに表示されるインターフェイスは、JTAG、HDMI、マイクロSDホスト、イーサネット、UART、USB OTG、および〜100 GPIOピンです。 周辺には、LED、RGB LED、ブザー、慣性センサー、温度センサーがあります。



リンクでより詳細な説明を見ることができます。



このような石を使用する場合は、対応するボード用にラジエーターとラックを必ず購入してください。 これで十分でない場合は、ファンもそこにねじ込みます。 この獣は非常に熱くなっています。



プログラミング



実際には、Zynqを2つの方法でプログラムできます。1)通常のMCUベアメタルとして2)OSから。



ベアメタル



この場合、すべてが非常に簡単です。プログラムを投げる--->コンパイル---> JTAG'omを石に埋めます。 このストーンには、ファームウェア用に256 KBのフラッシュがあります。 なぜなら JTAGデバッガーを取得できなかったため、ここに表示するものはありません=)



OS



私の場合、マイクロSDカード上のLinuxのアセンブリ。 つまり プログラムを作成、検証、およびデバッグする方法は、以前の出版物で説明されているものと似ています。



初歩:プログラムを配布--->ツールチェーンでコンパイルしてボードにコピー/ボードでコンパイル/ボードにスクリプトをコピー--->デバッグ/実行--->利益がある!



これに集中する必要はないので、<< Hello Zynq!>>:



bash>$ touch hellozynq.py bash>$ echo '#!/bin/python > print "Hello Zynq!" > ' > hellozynq.py bash>$ cat hellozynq.py #!/bin/python print "Hello Zynq!"
      
      





ファイルをボードにコピーします。



 bash>$ scp hellozynq.py root@<ip_address>:/root/hellozynq.py root@<ip_address>'s password: hellozynq.py 100% 35 0.0KB/s 00:00
      
      





以下を開始します。



 root@localhost:~# chmod +x hellozynq.py root@localhost:~# python hellozynq.py Hello Zynq! root@localhost:~# uname -a Linux localhost.localdomain 3.15.0-xilinx #9 SMP PREEMPT Tue May 26 17:26:14 CST 2015 armv7l armv7l armv7l GNU/Linux
      
      





構成



そして、ここで注目を集めます。 このSoCのFPGA部分を構成する方法は、おおよそ次のとおりです。



  1. ザイリンクスIDEでプロジェクトを作成する
  2. 構成開発
  3. ビットストリーム生成
  4. ファームウェア


ザイリンクスIDEでプロジェクトを作成し、プログラムを単独で開発すると、この記事が表示されます。 したがって、私は理事会と一緒に行った完成したプロジェクトを取ります。



最初にプロジェクトを実行します。 次に、合成と実装を開始します。 ビットストリームファイルを生成した後。



ボードにコピーします。



 bash>$ scp another_blink.bit root@192.168.100.9:/root/ablink.bit root@192.168.100.9's password: hw.bit 100% 3951KB 3.9MB/s 00:00
      
      





ディレクトリの確認:



 root@localhost:~# ls -lahs *.bit 3.9M -rw-r--r-- 1 root root 3.9M Mar 5 10:35 ablink.bit 3.9M -rw-r--r-- 1 root root 3.9M Mar 1 18:17 blink_conf.bit 3.9M -rw-r--r-- 1 root root 3.9M Mar 2 03:13 hw.bit 0 -rw-r--r-- 1 root root 3.9M Mar 2 18:50 uf.bit
      
      





FPGAを構成します。



 root@localhost:~# cat hw.bit > /dev/xdevcfg
      
      





やれやれ! LEDが点灯しています!









もちろん、デバッガを使用してFPGAを構成できます。 持っていないのは私だけです。 Vivadoは非常に強力で、多くのメモリとCPUリソースを必要とします。 私のi5および4GB RAMでは、常にスワップしています。



また、気配りのある開発者である必要もあります。 FPGAの出力を不適切に調整することで、石がどのように焼けたのかという話をいくつか聞きました。 おそらくこれはZynqには無効です。



PS

私はこのスカーフを取ることに決めました 最も安価でアクセスしやすい FPGAは、デジタルインターフェイスを合成し、出力マルチプレクサーを作成し、何よりも計算機(オートマトン、プロセッサー、FPUなどのコプロセッサーなど)を合成できるという点で興味深いです。 また、プロセッサ部分にLinuxがあるコンパートメントでは、最もクールなことができます。



All Articles