FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Amazon AMI でRISC-V Rocket-Chipを合成したい(微妙に挫折)

Rocket-ChipはXilinx FPGAを使って合成することができるが、Xilinx Vivadoと言えば、 Amazon AMI だ(身勝手)。

Amazon AMIのインスタンスを使えばVivadoをAWSで簡単に使用することができるらしい、と聞いて早速やってみた。

と思ったら、単体のVivadoが入っているわけではなくて、 SDx の Vivadoが入っているのか。 サポートしているデバイスも削られているようだ。

というわけで Rocket-Chip の fpga-zynq をダウンロードして、 デバイスを変更して実行してみた。

いくつかCentOS用にパッケージのインストールが必要だ。

sudo yum install java-1.8.0-openjdk
sudo yum install java-1.8.0-openjdk-devel

fpga-zynqリポジトリをダウンロードする。

git clone https://github.com/ucb-bar/fpga-zynq.git --recurse-submodules

Rocket-Chip のリポジトリをダウンロードする。

diff --git a/rocket-chip b/rocket-chip
--- a/rocket-chip
+++ b/rocket-chip
@@ -1 +1 @@
-Subproject commit f3299ae91d3f01d0349eb4746886e303e8fb1b41
+Subproject commit f3299ae91d3f01d0349eb4746886e303e8fb1b41-dirty
diff --git a/zc706/fpga-images-zc706 b/zc706/fpga-images-zc706
--- a/zc706/fpga-images-zc706
+++ b/zc706/fpga-images-zc706
@@ -1 +1 @@
-Subproject commit c2ece5e916a8f4205ab70163be9a2aa1766fab6a
+Subproject commit c2ece5e916a8f4205ab70163be9a2aa1766fab6a-dirty
diff --git a/zedboard/src/tcl/zedboard_bd.tcl b/zedboard/src/tcl/zedboard_bd.tcl
index 27d7e74..1b78f49 100644
--- a/zedboard/src/tcl/zedboard_bd.tcl
+++ b/zedboard/src/tcl/zedboard_bd.tcl
@@ -20,7 +20,7 @@ set script_folder [_tcl::get_script_folder]
 ################################################################
 # Check if script is running in correct Vivado version.
 ################################################################
-set scripts_vivado_version 2016.2
+set scripts_vivado_version 2017.1_sdxop
 set current_vivado_version [version -short]

 if { [string first $scripts_vivado_version $current_vivado_version] == -1 } {
@@ -43,7 +43,8 @@ if { [string first $scripts_vivado_version $current_vivado_version] == -1 } {

 set list_projs [get_projects -quiet]
 if { $list_projs eq "" } {
-   create_project project_1 myproj -part xc7z020clg484-1
+#   create_project project_1 myproj -part xc7z020clg484-1
+   create_project project_1 myproj -part xcvu9p-flga2104-1-e
    set_property BOARD_PART em.avnet.com:zed:part0:1.0 [current_project]
 }

と思ったらFPGA-ZynqのリポジトリはARMコアが入っている必要があるんだな。 別の構成を試してみよう。

っていうか SDx ってAWSのディスク領域食いすぎじゃない?

/usr/bin/install: cannot create regular file ‘/home/centos/riscv64/lib/gcc/riscv64-unknown-elf/7.1.1/plugin/include/wide-int-print.h’: No space left on device
/bin/sh: line 15: echo: write error: No space left on device
/usr/bin/install: cannot create regular file ‘/home/centos/riscv64/lib/gcc/riscv64-unknown-elf/7.1.1/plugin/include/xcoff.h’: No space left on device
/bin/sh: line 15: echo: write error: No space left on device
/usr/bin/install: cannot create regular file ‘/home/centos/riscv64/lib/gcc/riscv64-unknown-elf/7.1.1/plugin/include/xcoffout.h’: No space left on device
gmake[2]: *** [install-plugin] Error 1

2018/01/21 追記: freedomの構成を試してみたけれども、MIGの構成を変えなければならないのか。

ERROR: [Coretcl 2-1132] No IP matching VLNV 'xilinx.com:ip:mig_7series:*' is accessible for the current part 'xcvu9p-flga2104-1-e'.

AWSでは、DDRをどのように処理すればよいのか、分からない。DDRインスタンスを配置していること自体が良くないのか。