FC2カウンター FPGAの部屋 2018年01月04日
FC2ブログ

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

FPGAの部屋

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

白線間走行畳み込みニューラルネットワーク のアーキテクチャの図を出力した

@yu4u さんの”畳み込みニューラルネットワークをKeras風に定義するとアーキテクチャを図示してくれるツールを作った”を使わせて頂いて、自分の白線間走行畳み込みニューラルネットワーク のアーキテクチャの図を出力する。

まずは、Github の yu4u/convnet-drawer から Clone or download ボタンをクリックして、Download ZIP を選択して、convert-drawer-master.zip ファイルをダウンロードした。

convert-drawer-master.zip ファイルを展開すると、convert-drawer-master フォルダがあったので、それをWindows 10 のドキュメント・フォルダにコピーした。そして、convert-drawer-master フォルダの名前を convert-drawer フォルダに変更した。

まずは、convert-drawer フォルダに入って、AlexNet.svg を Inkscape で見てみた。
CNN_Figure_1_180104.png

凄い。それらしくアーキテクチャ図が表示される。

それじゃ、AlexNet.py をコピーして、curve_tracing_cnn.py に名前を変更し、白線間走行CNN のアーキテクチャに合うように書き換えた。
CNN_Figure_2_180104.png

Windows Powershell を起動して、python .\curve_tracing_cnn.py を実行した。
すると、curve_tracing_cnn.svg ファイルが生成された。
CNN_Figure_3_180104.png

curve_tracing_cnn.svg ファイルを Inkscape で開いた。
CNN_Figure_4_180104.png

かっこよい図ができた。これは良い。使わせて頂こう。だいぶシンプルな畳み込みニューラルネットワークで白線間走行している。

curve_tracing_cnn.py を貼っておく。

# curve_tracing_cnn.py
# 2018/01/04

import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from convnet_drawer import Model, Conv2D, MaxPooling2D, Flatten, Dense


def main():
    model = Model(input_shape=(10, 56, 1))
    model.add(Conv2D(2, (5, 5), (1, 1)))
    model.add(MaxPooling2D((2, 2), strides=(2, 2)))
    model.add(Flatten())
    model.add(Dense(100))
    model.add(Dense(3))
    model.save_fig(os.path.splitext(os.path.basename(__file__))[0] + ".svg")


if __name__ == '__main__':
    main()

  1. 2018年01月04日 12:40 |
  2. DNN
  3. | トラックバック:0
  4. | コメント:0

ZYBO Z7-20でPcam 5Cを使用する2(pcam-5c プロジェクト)

ZYBO Z7-20でPcam 5Cを使用する1(D-PHYインターフェース)”の続き。

前回は、MIPI のD-PHY インターフェースについて調べた。今回は、Digilent 社のZybo Z7 Pcam 5C Demo プロジェクトをダウンロードして、Vivado 2016.4 のプロジェクトを生成してみよう。

Pcam 5C のリソースセンターから、Zybo Z7 Pcam 5C Demo をクリックする。

Zybo Z7 Pcam 5C DemoDownloadGIT Repo をクリックする。

GitHub のDigilent/Zybo-Z7-20-pcam-5c が開く。

Clone or download ボタンをクリックして、Download ZIP をクリックした。
MIPI_camera_5_180104.jpg

Zybo-Z7-20-pcam-5c-master.zip を Z:\ZYBO_Z7 に保存した。
Zybo-Z7-20-pcam-5c-master.zip を解凍すると、Zybo-Z7-20-pcam-5c-master フォルダが作成された。
MIPI_camera_6_180104.jpg

Zybo-Z7-20-pcam-5c-master フォルダ以下のディレクトリ構造を示す。

Z:.
├─hw_handoff
├─proj
├─repo
│  ├─cache
│  ├─local
│  │  └─ip
│  │      ├─AXI_BayerToRGB
│  │      │  ├─hdl
│  │      │  └─xgui
│  │      └─AXI_GammaCorrection
│  │          ├─hdl
│  │          └─xgui
│  └─vivado-library
├─sdk
│  ├─pcam_vdma_hdmi
│  │  ├─bootimage
│  │  ├─Debug
│  │  └─src
│  │      ├─hdmi
│  │      ├─ov5640
│  │      └─platform
│  ├─pcam_vdma_hdmi_bsp
│  └─system_wrapper_hw_platform_0
└─src
    ├─bd
    │  └─system
    │      ├─hdl
    │      ├─hw_handoff
    │      ├─ip
    │      │  ├─system_auto_pc_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_auto_pc_1
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_auto_pc_2
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_AXI_BayerToRGB_1_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_AXI_GammaCorrection_0_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_axi_mem_intercon_0
    │      │  ├─system_axi_mem_intercon_1_0
    │      │  ├─system_axi_vdma_0_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_clk_wiz_0_0
    │      │  ├─system_MIPI_CSI_2_RX_0_0
    │      │  │  ├─hdl
    │      │  │  │  ├─cdc_fifo
    │      │  │  │  │  ├─cdc_fifo
    │      │  │  │  │  ├─hdl
    │      │  │  │  │  ├─sim
    │      │  │  │  │  ├─simulation
    │      │  │  │  │  └─synth
    │      │  │  │  ├─ila_rxclk
    │      │  │  │  │  ├─hdl
    │      │  │  │  │  │  └─verilog
    │      │  │  │  │  ├─ila_v6_2
    │      │  │  │  │  │  └─constraints
    │      │  │  │  │  ├─sim
    │      │  │  │  │  └─synth
    │      │  │  │  ├─ila_rxclk_lane
    │      │  │  │  │  ├─hdl
    │      │  │  │  │  │  └─verilog
    │      │  │  │  │  ├─ila_v6_2
    │      │  │  │  │  │  └─constraints
    │      │  │  │  │  ├─sim
    │      │  │  │  │  └─synth
    │      │  │  │  ├─ila_vidclk
    │      │  │  │  │  ├─hdl
    │      │  │  │  │  │  └─verilog
    │      │  │  │  │  ├─ila_v6_2
    │      │  │  │  │  │  └─constraints
    │      │  │  │  │  ├─sim
    │      │  │  │  │  └─synth
    │      │  │  │  └─line_buffer
    │      │  │  │      ├─hdl
    │      │  │  │      ├─line_buffer
    │      │  │  │      ├─sim
    │      │  │  │      ├─simulation
    │      │  │  │      └─synth
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_MIPI_D_PHY_RX_0_0
    │      │  │  ├─hdl
    │      │  │  │  ├─ila_scnn_refclk
    │      │  │  │  │  ├─hdl
    │      │  │  │  │  │  └─verilog
    │      │  │  │  │  ├─ila_v6_2
    │      │  │  │  │  │  └─constraints
    │      │  │  │  │  ├─sim
    │      │  │  │  │  └─synth
    │      │  │  │  ├─ila_sfen_refclk
    │      │  │  │  │  ├─hdl
    │      │  │  │  │  │  └─verilog
    │      │  │  │  │  ├─ila_v6_2
    │      │  │  │  │  │  └─constraints
    │      │  │  │  │  ├─sim
    │      │  │  │  │  └─synth
    │      │  │  │  └─ila_sfen_rxclk
    │      │  │  │      ├─hdl
    │      │  │  │      │  └─verilog
    │      │  │  │      ├─ila_v6_2
    │      │  │  │      │  └─constraints
    │      │  │  │      ├─sim
    │      │  │  │      └─synth
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_processing_system7_0_0
    │      │  │  ├─hdl
    │      │  │  │  └─verilog
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_ps7_0_axi_periph_0
    │      │  ├─system_rgb2dvi_0_0
    │      │  │  ├─sim
    │      │  │  ├─src
    │      │  │  └─synth
    │      │  ├─system_rst_clk_wiz_0_50M_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_rst_vid_clk_dyn_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_video_dynclk_0
    │      │  │  ├─sim
    │      │  │  ├─src
    │      │  │  └─synth
    │      │  ├─system_vtg_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_v_axi4s_vid_out_0_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  ├─system_xbar_0
    │      │  │  ├─sim
    │      │  │  └─synth
    │      │  └─system_xlconcat_0_0
    │      │      ├─sim
    │      │      └─synth
    │      └─ipshared
    │          ├─01bf
    │          │  └─hdl
    │          ├─04b4
    │          │  └─hdl
    │          ├─0b6b
    │          │  └─hdl
    │          ├─0ba0
    │          │  └─hdl
    │          ├─100a
    │          ├─1923
    │          │  └─hdl
    │          ├─1f32
    │          │  └─hdl
    │          ├─20df
    │          │  └─src
    │          ├─2e37
    │          ├─38e8
    │          │  └─hdl
    │          ├─39ba
    │          │  └─hdl
    │          ├─3c71
    │          │  └─hdl
    │          ├─40b8
    │          │  └─hdl
    │          ├─4e69
    │          │  └─hdl
    │          ├─52cb
    │          │  └─hdl
    │          ├─564d
    │          │  ├─hdl
    │          │  └─simulation
    │          ├─5ab6
    │          │  └─hdl
    │          ├─6039
    │          │  └─hdl
    │          ├─6273
    │          │  ├─hdl
    │          │  └─simulation
    │          ├─7dd0
    │          │  └─hdl
    │          ├─7e3a
    │          │  └─hdl
    │          ├─7ee0
    │          │  └─hdl
    │          ├─832a
    │          │  └─hdl
    │          ├─896d
    │          │  └─hdl
    │          ├─8c13
    │          │  └─hdl
    │          │      └─verilog
    │          ├─bf41
    │          │  └─hdl
    │          ├─d9f8
    │          │  └─hdl
    │          ├─df1b
    │          │  └─hdl
    │          ├─ed72
    │          │  └─hdl
    │          └─f822
    │              └─src
    ├─constraints
    ├─hdl
    ├─ip
    └─others


これで、Vivado 2016.4 のプロジェクトの作成を試みたのだが、IP のソースが足りないというエラーでプロジェクトを作成することができなかった。
Twitter でプロジェクトができないとつぶやいていたら、@torix3g さんが、Zybo-Z7-20-pcam-5c/repo/vivado-library@4c77837の中にIP のソースがあると教えてくれた。ありがとうございました。

Zybo-Z7-20-pcam-5c/repo/ には、vivado-library @ 4c77837 があるが、その下は別のGitHub のプロジェクトとなっているようだった。
MIPI_camera_7_180104.jpg

vivado-library @ 4c77837 をクリックすると、Digilent Vivado library に移動した。これは別のGitHub のプロジェクトだ。
MIPI_camera_8_180104.jpg

ip フォルダをクリックすると、2つのMIPI 関連のIP があるのが確認できる。
MIPI_camera_9_180104.jpg

ちなみに、通常のDigilent 社のGitHub のvivado-library ではMIPI の 2 つのIP は存在しない。リンクされていないディレクトリのようだ。

Digilent Vivado library に戻って、Download ZIPで vivado-library-4c77837154a3dd90ef1ed9feacdce41dbfc6e538.zip をダウンロードすることができた。
MIPI_camera_10_180104.jpg

Z:\ZYBO_Z7\vivado-library-4c77837154a3dd90ef1ed9feacdce41dbfc6e538.zip\vivado-library-4c77837154a3dd90ef1ed9feacdce41dbfc6e538 の下のすべてのファイルとフォルダをZ:\ZYBO_Z7\Zybo-Z7-20-pcam-5c-master\repo\vivado-library にコピーした。
MIPI_camera_11_180104.jpg

これでファイルがそろったので、Vivado 2016.4 を立ち上げた。

Tcl Console で、

cd z:/ZYBO_Z7/Zybo-Z7-20-pcam-5c-master/proj

を入力した。
MIPI_camera_12_180104.jpg

Tcl Console で、

source ./create_project.tcl

を入力した。
MIPI_camera_13_180104.jpg

すると、pcam-5c プロジェクトが作成された。
MIPI_camera_14_180104.jpg
  1. 2018年01月04日 05:23 |
  2. ZYBO Z7
  3. | トラックバック:0
  4. | コメント:0