FC2カウンター FPGAの部屋 白線追従走行用畳み込みニューラルネットワーク・システムの製作1

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

白線追従走行用畳み込みニューラルネットワーク・システムの製作1

dmar4resize_gray, resize_gray, straight_conv_nn2_axis2 をVivado HLS 2017.2 で IP化”でIP が揃ったので、白線追従走行用畳み込みニューラルネットワーク・システムの製作を行うことにした。
これは、白線追従走行用畳み込みニューラルネットワークを搭載して、カメラ画像から進む方向(左旋回、直進、右旋回)を決定し、モーターを駆動して、ミニ・ロボットカーに白線間を走行させるシステムである。

さて、今まで作ってきたミニ・ロボットカーのシステムを使用して改造していこう。
Zybot に超音波距離センサを搭載する7(ZYBO_0_162_7 に 2 つのIP を追加)”で使っていたZYBO_0_162_7 を Vivado 2017.2 に変換した ZYBO_0_172_7 をコピーして ZYBO_0_172_8 とした。
wlt_cnn_166_170914.png

ZYBO_0_172_8 フォルダに各IP のフォルダを作成して、そのフォルダ内にIP のファイル(solution1/impl/ip フォルダのZIP ファイルの中身)をコピー&ペーストした。
wlt_cnn_169_170914.png

ZYBO_0_172_8 フォルダの ZYBO_0_153 プロジェクトを立ち上げた。
wlt_cnn_179_170915.png

最初に、IP Catalog にdmar4resize_gray, resize_gray, straight_conv_nn2_axis2 を登録しよう。
左のFlow Navigator のIP Catalog をクリックして、IP Catalog を開く。
IP Catalog 内で右クリックし、右クリックメニューから、Add Repository... を選択し、各IP のフォルダを指定して、IP を追加した。
wlt_cnn_170_170914.png

Gabor filter はDSPをたくさん使用しているので、置いておくとリソース使用量がオーバーしてしまうため、削除する。
wlt_cnn_167_170914.png

Gabor filter を削除した後は、AXI4 Stream のポート間を配線でつないでおく。
wlt_cnn_168_170914.png

dmar4resize_gray, resize_gray, straight_conv_nn2_axis2 のIP をAdd IP し、Run Block Automation を使用して自動配線を行った。出来上がりを下の図に示す。
wlt_cnn_171_170914.png

Validate Design をやったみたところ、成功したので、ブロックデザインは完成したようだ。
全体のブロックデザインはこれだ。
wlt_cnn_181_170915.png

アドレス・エディタの内容を示す。
wlt_cnn_172_170914.png

さて、ブロックデザインが完成したので、論理合成、インプリメント、ビットストリームの生成を行った。
結果を示す。
wlt_cnn_173_170914.png

タイミングエラーだった。

Flow Navigator のOpen Implemented Design をクリックして、Implemented Design を開く。
Timing Summary を見ると、Intra-Clock Paths の clk_fpga_0 でエラーが発生している。
From 、To 共にstraight_conv_nn2_axis2_0 でタイミングエラーが発生している。これは、straight_conv_nn2_axis2 のFF 間のディレイを短くする必要があるようだ。
wlt_cnn_174_170914.png

このようにVivado HLSでPlace and Route までやって、うまく行くと言われてもダメな場合がある。いろいろなIP が入ってきて、タイミング制約を満たすために、あちらは立ってもこちらが立たない状況に追い込まれるからだと考えられる。
次は、Vivado HLSでstraight_conv_nn2_axis2 のClock Period を変更して、再度合成してみよう。
  1. 2017年09月15日 05:12 |
  2. Zybot
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
http://marsee101.blog19.fc2.com/tb.php/3915-813e3f39
この記事にトラックバックする(FC2ブログユーザー)