FPGA開発日記

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

LiteXによるSoC環境構築を試行する (2. Rocketでの試行とConfigurationのチェック)

LiteXは自分でSoC環境を構成することができるツール。自作CPUをSoCに組み込んでみたいので、今回はこれを試行してみる。

github.com

Rocketでのコンフィグレーションもできるらしい。以下でチェックしてみる。

下記のコマンドで、Rocket用のパッケージをインストールする必要がある。

pip3 install git+https://github.com/litex-hub/pythondata-cpu-rocket.git
litex_sim --cpu-type=rocket
        __   _ __      _  __
       / /  (_) /____ | |/_/
      / /__/ / __/ -_)>  <
     /____/_/\__/\__/_/|_|
   Build your hardware, easily!

 (c) Copyright 2012-2022 Enjoy-Digital
 (c) Copyright 2007-2015 M-Labs

 BIOS built on Dec 13 2022 00:32:20
 BIOS CRC passed (84e9536b)

 LiteX git sha1: fe7e70ba

--=============== SoC ==================--
CPU:            RocketRV64[imac] @ 1MHz
BUS:            WISHBONE 32-bit @ 4GiB
CSR:            32-bit data
ROM:            128KiB
SRAM:           8KiB

--============== Boot ==================--
Booting from serial...
Press Q or ESC to abort boot completely.
sL5DdSMmkekro
Timeout
No boot medium found

--============= Console ================--

litex>

このコンフィグレーションだが、以下のリポジトリで作成できるらしい。

github.com

CPUのvexriscvに必要なPython以外のファイルは、Pythonのライブラリやツールで使用できるように、Pythonモジュールにパッケージ化されています。 これは、LiteXのようなツールで使用する際に便利です。 データファイルはpythondata_cpu_vexriscvというPythonモジュールで見つかります。pythondata_cpu_vexriscv.data_locationの値は、ファイルシステム上でファイルを見つけるために使用することができます。 データファイルを直接取得する例

import pythondata_cpu_vexriscv

my_data_file = "abc.txt"

with open(os.path.join(pythondata_cpu_vexriscv.data_location, my_data_file)) as f:
    print(f.read())

これのテンプレートファイルは、以下から入手すればいいらしい。

github.com

これを改造してみよう。