ZYBOやVivadoの習熟のためにDigilentのサイトからzybo_base_system.zipをダウンロードし、使ってみた。
zipファイルを解凍すると、
zybo_base_systemというディレクトリ以下に展開された。
zybo_base_system直下は以下のようになっていた。
source/vivado/hw/zybo_bsdまで移動し、そこでvivadoを起動した。
vivadoはv2014.2を使っている。
zybo_base_systemのプロジェクトは古いバージョンのvivadoで生成されているので現行バージョンに更新せよというダイアログが出た。
OKボタンをクリックしたら、プロジェクトが更新された。
プロジェクトで使用されているXilinx IPも最新版への更新が必要なようだ。
IP Statusを見ると12種のIPのUpgradeが推奨されている。
Upgradeした。
Upgradeが完了したら、Block Diagramが表示された。
PS(Processing System)をダブルクリックしたら、PS部の詳細Diagramが表示された。この部分はワンチップマイコンと同じようなものなので、内蔵しているファンクションで使うものを選択し、その信号をどのピンに引き出すかの設定がメインのようである。 この設定はボード仕様(ZYBO)と整合しているものなので、今後もこの設定を使うことになる。
再度Block Diagramを見てみる
このプロジェクトはアナログVGA I/FとHDMI I/F用にそれぞれVDMAとDISPLAY CONTROLLERを実装しているようである。
合成とImplementationを実行した。
合成とImplementataionは上手く言ったが、合成に12分位かかった。
PL部はそれほど大きいデザインには見えないのだが。。。
クロック情報も見てみた。HDMIの系は100MHzと500MHzになっているので、解像度はSXGA相当のようだ。 厳密にはSXGAのドットクロックは108MHzなので108MHzと540MHzが必要な筈なので若干低めにしているようだ。
合成が終わったので、BSP(Board Support Package)生成用のハードウェア情報をExportした。
この操作を行うと、zybo_bsd.sdkというディレクトリ下にsystem_wrapper.hdfというファイルが生成された。 SDK (eclipse)でBSPを生成するときにこのファイルが読み込まれるようだ。
次にSDKを立ち上げる。
Hellow world(の文字列をコンソールに出す)プロジェクトを作ってみた。
Buildは通った。
これをDebugモードで動作させようとしたところ、ちょっとした問題が発生した。
このプロジェクトでのSTDOUTはUARTになっており、UARTはFT2232D(USB)経由でPCにつながっている。 私の環境(Linux Mint)の場合はデバイスファイル名はttyUSB1となっている。
そこで、SDKのTerminalをttyUSB1にしてそこに文字列が表示されることを期待した。
設定自体は出来たのだが、プログラムを実行したところSIGSEGVでSDKが落ちた。
どうもこのやり方だと上手く行かない。 Javaの環境に何かあるのかも知れない。
そこで、gtktermというターミナルソフトでやってみたら文字列が表示された。
ということで、Vivado→SDK→実行までの簡単な流れは習得できた。
2014年7月27日日曜日
2014年7月21日月曜日
my_FPGA_BOARD 13
先日公開したMY_FPGA_BOARDの設計データのFPGA実装例に、DVIとカメラの実装例を追加した。
http://www.hi-ho.ne.jp/bravo-fpga/
http://www.hi-ho.ne.jp/bravo-fpga/
2014年7月19日土曜日
my_FPGA_BOARD 12 (カメラ基板の作成 2)
my_FPGA_BOARD 11 (dvi_encの実装とカメラ基板の作成)
レベル変換基板をチップ部品を使って小型化した。
FPGAの中身の方はフレームバッファを組み込み、以下のようなアーキテクチャにした。
dvi_encはこれまでにSpartan3やSpartan6でも動作させている。その時に使用した画像データを今回も表示させてみた。
綺麗に表示されている。長時間表示させても表示が異常になることは無いので、信号レベルに問題無いと思われる。このレベル変換回路は、インターネットでLVTTL IOと抵抗を使ったDVIへのレベル変換回路を作成されている方のブログを見つけ、それをヒントにLVDS版を考えてみたのだが、後から調べたら、FPGAマガジンのNo.1にもこれとほぼ同じ回路(LVDS→DVI)が掲載されている記事があった。(p51,図2)
・カメラ基板
以前予備で購入しておいたVGAカメラ(TCM8230MD)が1個残っていたのでカメラ基板も作ることにした。
ちゃんと動作するかな?
・タイミングエラー
ところで、前回のブログでFPGAの合成結果で1箇所タイミングがMetしない箇所があると書いた。
そのタイミングエラーはまだ解決できていない。
以下のように325MHzの系で1箇所だけタイミングエラーが出ている。
そのエラーの詳細は以下の通りだ。
PT35AのIOLOGICについてエラーと言っているようだ。どうもFmaxの問題のような気もするのだが、それならばエラーが1箇所だけというのは解せない。
PT35Aは上記の通り112番ピンに割り当てていたのだが、試しに、PT25AとPT35Aのピン割り当てを入れ替えて見た。
この場合、112番ピンがPT25Aとなるのでタイミングエラー箇所はPT25Aになると思うのだが、不思議なことにPT35Aがタイミングエラーになる。
念の為、Physical Viewerで確認したが確かにPT35Aは122番ピンになっている。
・・・と言うことで、このエラーはどうも解せない。何が不味いんだろうか???
タイミングエラーは物理的な配線に対して出されるものだと思うのだが、これだと信号名に対して出されているように見える。。。実際の動作は問題無いことも相まって、うーむ。。。解せない。。
FPGAの中身の方はフレームバッファを組み込み、以下のようなアーキテクチャにした。
dvi_encはこれまでにSpartan3やSpartan6でも動作させている。その時に使用した画像データを今回も表示させてみた。
綺麗に表示されている。長時間表示させても表示が異常になることは無いので、信号レベルに問題無いと思われる。このレベル変換回路は、インターネットでLVTTL IOと抵抗を使ったDVIへのレベル変換回路を作成されている方のブログを見つけ、それをヒントにLVDS版を考えてみたのだが、後から調べたら、FPGAマガジンのNo.1にもこれとほぼ同じ回路(LVDS→DVI)が掲載されている記事があった。(p51,図2)
・カメラ基板
以前予備で購入しておいたVGAカメラ(TCM8230MD)が1個残っていたのでカメラ基板も作ることにした。
ちゃんと動作するかな?
・タイミングエラー
ところで、前回のブログでFPGAの合成結果で1箇所タイミングがMetしない箇所があると書いた。
そのタイミングエラーはまだ解決できていない。
以下のように325MHzの系で1箇所だけタイミングエラーが出ている。
そのエラーの詳細は以下の通りだ。
PT35AのIOLOGICについてエラーと言っているようだ。どうもFmaxの問題のような気もするのだが、それならばエラーが1箇所だけというのは解せない。
PT35Aは上記の通り112番ピンに割り当てていたのだが、試しに、PT25AとPT35Aのピン割り当てを入れ替えて見た。
この場合、112番ピンがPT25Aとなるのでタイミングエラー箇所はPT25Aになると思うのだが、不思議なことにPT35Aがタイミングエラーになる。
念の為、Physical Viewerで確認したが確かにPT35Aは122番ピンになっている。
・・・と言うことで、このエラーはどうも解せない。何が不味いんだろうか???
タイミングエラーは物理的な配線に対して出されるものだと思うのだが、これだと信号名に対して出されているように見える。。。実際の動作は問題無いことも相まって、うーむ。。。解せない。。
登録:
投稿 (Atom)
ERROR: Failed to spawn fakeroot worker to run ...
なにかと忙しくてなかなか趣味の時間を確保できない。 ...orz 家の開発機のOSはLinux Mintなのだが、最近バージョンを22に更新したところ、myCNC用のpetalinuxをビルドできなくなってしまった。ビルドの途中で ERROR: Failed to spawn ...
-
ZYBOでLinuxを動かし、その上で X Windowを立ち上げ X アプリを動作させることが出来た。 以下はgnome-terminalとgnome-system-monitorを起動しgnome-screenshotで撮ったscreenshotだ。 これまでDFT ...
-
FT232RというUSB-UART変換ICがある。このICにはBit Bang Modeという機能があって、UART用の端子がGPIO的制御が可能になる。 FT232Rを搭載したUSB-UART変換基板は秋月電子やマルツパーツ等色んなところで売られていて私もSparkfunのF...