😊

LiteXではじめる自作SoC(2) インストール

2021/09/05に公開

https://zenn.dev/tanakmura/articles/first_article_konnnichiwa 第1回

FPGA環境

手元にあるのがArty(初代)なので、それで説明していく。

これのマイナーチェンジである Arty A7-35T とかは、わずかな変更で動くはず。基本的には、変更が必要なのはSPIに付いてるFlashだけで、他は変更しなくても動く気がする(よくわからなければそのまま動くはず)

Arty A7-35T は、誰でも使えるACRi ルームで時間単位で借りれるので、
https://gw.acri.c.titech.ac.jp/wp/
少し試してみたい場合はそれを使ってみるのもよいと思う。(動作確認はそのうちしてみるのでちょっと待って)

Arty, Arty A7-35T以外については、各自でうまいこと対応してください。

LiteX と SymbiFlow のインストール

aptとかに慣れてしまってると少しめんどうだが、サクっとインストールしてしまおう。

LiteX と SymbiFlow のインストールは独立しているが、SymbiFlow は Anaconda 用の環境が用意されていて、LiteXはPython環境にインストールされるので、SymbiFLowから先にインストールするのがよいと思う。

LiteX は、SymbiFlow が無くても、Vivado などベンダ依存のツールがあれば使えるようになっている。そちらを使うのであれば、SymbiFlow のインストールは必要ない。SymbiFlowでは Xilinx の FPGA の機能を使えない部分が一部あるようなので、Vivado もインストールしておくのがよいと思う。

SymbiFlow のインストール

https://github.com/SymbiFlow/symbiflow-examples

symbiflow-examples という symbiflow のサンプルコードを集めたプロジェクトに、Anaconda 上に SymbiFlow の環境を構築する enviroments.yml が置いてある。これを使うのがいいと思う。

https://symbiflow-examples.readthedocs.io/en/latest/getting-symbiflow.html#toolchain-installation

この手順に従えばよい。

  1. conda のインストール
  2. $ conda env create -f symbiflow-examples/xc7/environment.yml
  3. $ conda activate xc7
  4. https://storage.googleapis.com/symbiflow-arch-defs/artifacts/prod/foss-fpga-tools/symbiflow-arch-defs/continuous/install/367/20210822-000315/symbiflow-arch-defs-install-709cac78.tar.xzhttps://storage.googleapis.com/symbiflow-arch-defs/artifacts/prod/foss-fpga-tools/symbiflow-arch-defs/continuous/install/367/20210822-000315/symbiflow-arch-defs-xc7a50t_test-709cac78.tar.xz を取得して、展開して、中に入っているbinにPATHを通す

恥ずかしながら、私ははじめてAnacondaを使ったので、同じようにこういうのをよく知らない人のために書いておくと、AnacondaはPythonで作られた小さいLinuxディストリビューションみたいなやつで、必要なライブラリとかを全て管理することで、もとのLinux環境やpip環境をあまり汚すことなく色々インストールできるというものだ。

conda をインストールして、

$ conda activate <環境名>
$ pip install xyzzy
$ conda deactivate

とかすると、特定の環境だけに色々なものをインストールできる。(それ以上の詳しい使い方は私も知らない)

これで、うまくいっていれば、

(base) $ conda activate xc7
(xc7) $ yosys
yosys> exit
(xc7) $ symbiflow_pack --help
(xc7) $ conda deactivate
(base) $ 

とかすれば、yosys と SymbiFlow が使える環境が確認できるはず。

あと dtc がいりますね…普通にaptとかでインストールしておく。

$ sudo apt intsall device-tree-compiler

LiteX のインストール

色々インストールしないといけないが、一発でインストールできるスクリプトがあるので、それを使おう。

https://github.com/enjoy-digital/litex/blob/master/litex_setup.py

これをダウンロードして、実行すれば、実行したディレクトリに依存ライブラリが全て置かれて、Python環境にインストールされる。

(SymbiFlowをインストールしている場合は、conda activate xc7 してから litex_setup.py を実行する)

インストール後、

(xc7) $ python
import litex

などして、litex モジュールがロードできればインストールに成功している。

sbt のインストール

あとsbtがいるっぽい。

sbtのインストールは SDKMAN を使うのがいいらしい。(よく知らないので各自で説明を読んでなんとかして)

https://www.scala-sbt.org/1.x/docs/ja/Installing-sbt-on-Linux.html

次回、とりあえず Linux が動く SoC を作る編に続く。

https://zenn.dev/tanakmura/articles/litex_linux_ae3feff0b48ede 第3回

GitHubで編集を提案

Discussion