LiteXはSoCを半自動的に生成するための総合環境で、自作CPUのSoC生成環境もLiteXを使用している。
LiteXでのFPGA合成環境は情報があまりなく、まとめておきたいと思う。 先ずはサンプルプログラムを動かす。いろいろ調査した結果、以下の環境を利用できる。
もう少しビルド環境を調査する。ビルドコマンドは以下であった。
./make.py --board=arty --cpu-count=1 --build
それぞれのオプションの意味を見てみる。特に--build
の役割だ。
make.py
# Build ------------------------------------------------------------------------------------ build_dir = os.path.join("build", board_name) builder = Builder(soc, output_dir = os.path.join("build", board_name), bios_console = "lite", csr_json = os.path.join(build_dir, "csr.json"), csr_csv = os.path.join(build_dir, "csr.csv") ) builder.build(run=args.build, build_name=board_name)
ここがポイントのようだ。Builder
によりSoC環境を構築しており、builder.build()
のオプションにより論理合成を走らせる仕組みになっているのだと思う。
同じことをLiteXのコマンドでできるかというところだが、どうも同じオプションが適用できるような様子がない。特に--toolchain
のオプションなどはコマンドラインから指定できそうにないので、make.py
と同様にPythonのスクリプトを組しかなさそうだ。