バージョン: 2025/02/20
目次:
ubuntu 公式イメージをそのまま使用
Dockerfile をビルドして利用
git clone https://github.com/sifive/freedom.git
submodule の展開 → エラー発生
cd freedom
git submodule update --init --recursive
エラー発生個所
git submodule status --recursive
-65cc4d2748a2c2e6f2... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/dtc
-87eea99e443b389c97... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/pixman
-e3d05727a074619fc1... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/SLOF
-04186319181298083e... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/ipxe
-c5542f226c0d3d61e7... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/openbios
-c559da7c8eec5e45ef... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/openhackware
+99d9b4dcf27d7fbcba... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/qemu-palcode (heads/master)
-e2fc41e24ee0ada60f... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/seabios
-23d474943dcd55d055... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/sgabios
-2072e7262965bb48d7... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/u-boot
-19ea12c230ded95928... rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/roms/vgabios
rocket-chip/riscv-tools/riscv-gnu-toolchain/riscv-qemu/.gitmodules
git submodule sync –recursive
git submodule update --init --recursive
rocket-chip/firrtl/project/plugins.sbt
rocket-chip/chisel3/project/plugins.sbt
以下の先頭1行を削除 (理由:URLが無効のため、エラーとなる)
resolvers += Resolver.url("scalasbt", new
URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))
(Resolver.ivyStylePatterns)
resolvers += Classpaths.sbtPluginReleases
resolvers += "jgit-repo" at "http://download.eclipse.org/jgit/maven"
addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "1.0.0")
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1")
...
| 名称 | version | 説明 |
|---|---|---|
| sbt | 1.2.1 |
Chisel のビルドに必要 バージョンの特定:scala 2.12.4に対応したバージョンを検索 |
| Java (openjdk) | 11 |
バージョンの特定:以下のサイトに記載あり https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html Ubuntu 18.04 では、openjdk-11をapt-get で取得可能 |
| verilator | 3.922 |
Verilogのシミュレーション用 バージョンの特定:README.md に記載あり |
| RISC-V toolchain | 10.2.0 |
バージョンの特定:SiFive社のツールチェーンの最新版 https://github.com/sifive/freedom-tools/releases |
sudo apt-get update
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | ¥
sudo -H gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/scalasbt-release.gpg --import
sudo chmod 644 /etc/apt/trusted.gpg.d/scalasbt-release.gpg
sudo apt-get update
sbtの特定バージョンをダウンロード
apt-get download sbt=1.2.1
git clone https://github.com/verilator/verilator
v3.922 のチェックアウト
cd verilator
git checkout -b verilator_3_922 v3.922
https://github.com/sifive/freedom-tools/releases
December 2020 Tools Release の取得wget https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv64-
unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
適切なフォルダに展開(コンテナと共有するディレクトリ以下)
tar xzf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linuxubuntu14.
tar.gz –c <コンテナからアクセス可能なディレクトリ>
| <user> | ユーザアカウント(sudo,およびdocker グループに入っていること) |
| <project> | プロジェクト名 |
| <group> | ユーザが所属するグループ |
| <uid> | ユーザのuser id <uid>は、”id –u” で取得、 |
| <gid> | ユーザのgroup id <gid>は、”id –g” で取得 |
cd /home/<user>/<project>
docker run –it –v $PWD/$PWD ubuntu:18.04 /bin/bash
| パラメータ | 意味 |
|---|---|
| docker run | dokcer コンテナの起動 |
| -it | i: interactive t: tty |
| -v $PWD:$PWD | コンテナとホストが/home/<user>/<project>を共有 |
| ubuntu:18.04 | Ubuntu 18.04LTSの起動(docker hubからダウンロード) |
| /bin/bash | /bin/bashを起動 |
apt-get update
apt-get install -y sudo ca-certificates curl wget locales
<user> の作成(sudo権限をもたせる)
groupadd -g <gid> <group>
useradd -g<gid> -m -s /bin/bash -u <uid> <user>
usermod -G sudo <user>
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
<user> に変更
su <user>
cd <sbtのダウンロード場所>
sudo dpkg –i sbt_1.2.1_all.deb
sbt に必要なパッケージのインストール(下記の全部が必要か不明)
sudo apt-get install –y openjdk-11-jdk git scala device-tree-compiler
sudo apt-get install -y autoconf automake autotools-dev bison flex build-essential
sudo apt-get install -y bc gawk texinfo gperf libtool patchutils python pkg-config
sudo apt-get install -y libmpc-dev libmpfr-dev libgmp-dev zlib1g-dev libexpat-dev
cd <verilatorのローカルリポジトリ>
unset VERILATOR_ROOT
autoconf
./configure
make
sudo make install
RISC-Vツールチェーンのパス設定
cd <RISC-Vツールチェーンの親ディレクトリ>
export RISCV=$PWD/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14
PATH=$PATH:$RISCV/bin
cd /home/<user>/<project>/freedom
sbt
sbt:freedom> exit
make の実行
make -f Makefile.e300artydevkit verilog
diff --git a/Makefile.e300artydevkit b/Makefile.e300artydevkit
index 110c08a..3476a60 100644
--- a/Makefile.e300artydevkit
+++ b/Makefile.e300artydevkit
@@ -6,7 +6,7 @@ MODEL := E300ArtyDevKitFPGAChip
PROJECT := sifive.freedom.everywhere.e300artydevkit
export CONFIG_PROJECT := sifive.freedom.everywhere.e300artydevkit
export CONFIG := E300ArtyDevKitConfig
-export BOARD := arty
+export BOARD := arty_a7_100
ボードバージョンを1.1に変更(フォルダ fpga-shells)
diff --git a/xilinx/arty_a7_100/tcl/board.tcl b/xilinx/arty_a7_100/tcl/board.tcl
index 70635da..552d70f 100644
--- a/xilinx/arty_a7_100/tcl/board.tcl
+++ b/xilinx/arty_a7_100/tcl/board.tcl
@@ -1,5 +1,5 @@
# See LICENSE for license details.
set name {arty-a7-100}
set part_fpga {xc7a100ticsg324-1L}
-set part_board {digilentinc.com:arty-a7-100:part0:1.0}
+set part_board {digilentinc.com:arty-a7-100:part0:1.1}
make -f Makefile.e300artydevkit romgen
vivado –mode tcl
(2)get_board_parts でボード情報を取得する
xhub::refresh_catalog [xhub::get_xstores xilinx_board_store]
get_port_parts
...
digilentinc.com:arty-a7-100:part0:1.0 digilentinc.com:arty-a7-100:part0:1.1 ...
Red: arty-a7-100がある場合 このまま終了arty-a7-100がない場合 -> 追加する
xhub::install [xhub::get_xitems "*arty-a7*"]
ここでvivado を一旦、終了追加したボード情報は、ホームディレクトリにインストールされているため、
vivado 起動時に設定が必要
echo ¥
“set_param board.repoPaths [get_property LOCAL_ROOT_DIR [xhub::get_xstores xilinx_board_store]]” ¥
>>~/.Xilinx/Vivado/2024.1/Vivado_init.tcl
(5)ボード情報の再確認
arty-a7-100が追加されていることを確認する
get_port_parts
vivado を再起動して以下を実行
make -f Makefile.e300artydevkit mcs
Copyright © Japan Embedded Systems Technology Association All Rights Reserved.