ひょんなことから見つけた、「Zedroid」(ZedBoardでAndroidを動かす)をやってみようと思う。
環境としてはVivado 2017.1を使用し、XMPなどの過去のツールが使えなくなっているのでいろいろ問題はあるが、行けるところまで行ってみよう。
Zedroid - Android (5.0 and later) on Zedboard from Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
www.slideshare.net
ハードウェアの用意
ZedBoard向けのハードウェアプロジェクトを作成する。これはたぶん普通のやり方だ。
mkdir zedroid cd zedroid git clone https://github.com/analogdevicesinc/hdl.git --recurse-submodules cd hdl/library
Vivado 2017.1で合成するため、以下のように書き換える。
diff --git a/library/scripts/adi_ip.tcl b/library/scripts/adi_ip.tcl index 9d5b5eb..9387c28 100644 --- a/library/scripts/adi_ip.tcl +++ b/library/scripts/adi_ip.tcl @@ -2,7 +2,7 @@ # check tool version if {![info exists REQUIRED_VIVADO_VERSION]} { - set REQUIRED_VIVADO_VERSION "2016.2" + set REQUIRED_VIVADO_VERSION "2017.1" } if {[info exists ::env(ADI_IGNORE_VERSION_CHECK)]} {
adv7511の合成
今度はprojectの合成に移るが、こちらもVivadoのバージョンを書き換えておく。
cd ../project/
IPのバージョンも微妙に違うので書き換えた。
diff --git a/projects/scripts/adi_project.tcl b/projects/scripts/adi_project.tcl index 3e61925..56a02bb 100644 --- a/projects/scripts/adi_project.tcl +++ b/projects/scripts/adi_project.tcl @@ -7,7 +7,7 @@ variable p_prcfg_list variable p_prcfg_status if {![info exists REQUIRED_VIVADO_VERSION]} { - set REQUIRED_VIVADO_VERSION "2016.2" + set REQUIRED_VIVADO_VERSION "2017.1" } if {[info exists ::env(ADI_IGNORE_VERSION_CHECK)]} {
diff --git a/projects/adv7511/common/adv7511_bd.tcl b/projects/adv7511/common/adv7511_bd.tcl index d33aadc..6bfcc65 100755 --- a/projects/adv7511/common/adv7511_bd.tcl +++ b/projects/adv7511/common/adv7511_bd.tcl @@ -24,14 +24,14 @@ create_bd_port -dir O spdif set axi_hdmi_clkgen [create_bd_cell -type ip -vlnv analog.com:user:axi_clkgen:1.0 axi_hdmi_clkgen] set axi_hdmi_core [create_bd_cell -type ip -vlnv analog.com:user:axi_hdmi_tx:1.0 axi_hdmi_core] -set axi_hdmi_dma [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_vdma:6.2 axi_hdmi_dma] +set axi_hdmi_dma [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_vdma:6.3 axi_hdmi_dma] set_property -dict [list CONFIG.c_m_axis_mm2s_tdata_width {64}] $axi_hdmi_dma set_property -dict [list CONFIG.c_use_mm2s_fsync {1}] $axi_hdmi_dma set_property -dict [list CONFIG.c_include_s2mm {0}] $axi_hdmi_dma # audio peripherals -set sys_audio_clkgen [create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:5.3 sys_audio_clkgen] +set sys_audio_clkgen [create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:5.4 sys_audio_clkgen] set_property -dict [list CONFIG.PRIM_IN_FREQ {200.000}] $sys_audio_clkgen set_property -dict [list CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {12.288}] $sys_audio_clkgen diff --git a/projects/common/zed/zed_system_bd.tcl b/projects/common/zed/zed_system_bd.tcl index 25c512f..138baaa 100644 --- a/projects/common/zed/zed_system_bd.tcl +++ b/projects/common/zed/zed_system_bd.tcl @@ -118,14 +118,14 @@ set_property -dict [list CONFIG.C_OPERATION {not}] $sys_logic_inv set axi_hdmi_clkgen [create_bd_cell -type ip -vlnv analog.com:user:axi_clkgen:1.0 axi_hdmi_clkgen] set axi_hdmi_core [create_bd_cell -type ip -vlnv analog.com:user:axi_hdmi_tx:1.0 axi_hdmi_core] -set axi_hdmi_dma [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_vdma:6.2 axi_hdmi_dma] +set axi_hdmi_dma [create_bd_cell -type ip -vlnv xilinx.com:ip:axi_vdma:6.3 axi_hdmi_dma] set_property -dict [list CONFIG.C_M_AXIS_MM2S_TDATA_WIDTH {64}] $axi_hdmi_dma set_property -dict [list CONFIG.C_USE_MM2S_FSYNC {1}] $axi_hdmi_dma set_property -dict [list CONFIG.C_INCLUDE_S2MM {0}] $axi_hdmi_dma # audio peripherals -set sys_audio_clkgen [create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:5.3 sys_audio_clkgen] +set sys_audio_clkgen [create_bd_cell -type ip -vlnv xilinx.com:ip:clk_wiz:5.4 sys_audio_clkgen] set_property -dict [list CONFIG.PRIM_IN_FREQ {200.000}] $sys_audio_clkgen set_property -dict [list CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {12.288}] $sys_audio_clkgen set_property -dict [list CONFIG.USE_LOCKED {false}] $sys_audio_clkgen
cd adv7511/zed
make
Vivadoを立ち上げる。
vivado adv7511_zed.xpr &
次に、XSDKを立ち上げよう。ハードウェアをエクスポートする。
[File]→[Export]→[Export Hardware]を選択する。
[File]→[Launch SDK]をクリックする。