FC2カウンター FPGAの部屋 Zybo Z7-20上の白線間走行CNNシステムのプロジェクトが動作しないバグ

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

FPGAの部屋

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

Zybo Z7-20上の白線間走行CNNシステムのプロジェクトが動作しないバグ

Zybo Z7-20上の白線間走行CNNシステムのプロジェクトでUbuntu 14.04 起動”でZybo Z7-20上の白線間走行CNNシステムのVivado 2017.2 プロジェクトを使用してUbuntu 14.04 を起動することができたが、肝心のZybo Z7-20上の白線間走行CNNシステムのVivado 2017.2 プロジェクトがベアメタル・アプリケーションとして動作しない。これはなぜなのか?をVivado Analyzer で確認してみた。

プローブを仕掛けたのは、カメラの入力の cam_data{7:0] (ただし cam_data_1 の1ビットのみとなってしまった。8ビット全部にプローブしたつもりなのだが、これはVivado 2017.2 のバグなのかもしれない?)、href, vsync とビットマップ・ディスプレイ・コントローラのレジスタ設定用AXI4 Lite Slave、カメラ・インタフェースのレジスタ設定用AXI4 Lite Slave、ビットマップ・ディスプレイ・コントローラのAXI4 Master、カメラ・インタフェースのAXI4 Master だ。

なお、特にレジスタ設定用AXI4 Lite Slave を見る場合は、最初だけしかアクセスが来ない。その場合は、FPGA部分をコンフィギュレーションしてもPS からのクロックが来ないのでVivado Analyzer で見ることができない。その対策としては、本命の cam_disp3_axis プロジェクトのほかにHelloWorld プロジェクトを作っておいて、HelloWorld を起動してPS のクロックを起動してから、Vivado Analyzer のトリガを仕掛けて、そして本命の cam_disp3_axis を起動すれば良い。
ZYBO_Z7_97_171011.png

Vivado Analyzer を起動し、トリガを掛けて、表示されたところを示す。
ZYBO_Z7_95_171011.png

波形のみを示す。
ZYBO_Z7_96_171011.png

む。。。これは。。。WVALID のアサートが AWVALID よりも前に来ている。AXI プロトコル的にはこれであっているが、自作のAXI4 Lite Slave インタフェースはどうだったか?
下の図のAXI4 Lite Slave Write Transaction State Machine を見ると、Write が 1 つのステートマシンになってしまっている。これではだめだ。。。orz
WVALID がAWVALID の前ではバグってしまう。。。
ZYBO_Z7_101_171011.png

少なくともアドレスを処理するステートマシンとデータを処理するステートマシンに分ける必要がある。
ちなみにRead はシーケンシャルに処理すれば良いので、ステートマシンは 1 つでよい。
しかしなぜ、ZYBO Z7 からこうなったのだろう?ZYBO でもPYNQ でもビットマップ・ディスプレイ・コントローラもカメラ・インタフェースも動作していたので、WVALID はAWVALID の後だったはずだ。ZYBO Z7 からPS のリビジョンが変わっていたりして?

カメラ・インタフェースの入力の波形を示す。いずれもちゃんと出ていた。
cam_data_1
ZYBO_Z7_98_171011.png

href
ZYBO_Z7_99_171011.png

vsync
ZYBO_Z7_100_171011.png
  1. 2017年10月11日 05:10 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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