FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

「Zedroid - Android (5.0 and later) on Zedboard」をやってみる(1. ZedBoardターゲットハードウェアの作成)

ひょんなことから見つけた、「Zedroid」(ZedBoardでAndroidを動かす)をやってみようと思う。

環境としてはVivado 2017.1を使用し、XMPなどの過去のツールが使えなくなっているのでいろいろ問題はあるが、行けるところまで行ってみよう。

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 &

f:id:msyksphinz:20170430214843p:plain

次に、XSDKを立ち上げよう。ハードウェアをエクスポートする。

[File]→[Export]→[Export Hardware]を選択する。

[File]→[Launch SDK]をクリックする。

f:id:msyksphinz:20170430214853p:plain

関連記事

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com

msyksphinz.hatenablog.com