FPGA開発日記

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

LiteXでのFPGA論理合成環境を調査する (2. FPGAのbitstream生成のための調査)

LiteXはSoCを半自動的に生成するための総合環境で、自作CPUのSoC生成環境もLiteXを使用している。

github.com

LiteXでのFPGA合成環境は情報があまりなく、まとめておきたいと思う。 先ずはサンプルプログラムを動かす。いろいろ調査した結果、以下の環境を利用できる。

github.com

もう少しビルド環境を調査する。ビルドコマンドは以下であった。

./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スクリプトを組しかなさそうだ。