Running 32-bit RISC-V Linux with Octa-core SMP in LiteX/VexRiscv on Qmtech Wukong Board

linux-litex-vexriscv-wukong

tux-on-octo-core-soc

Luffcaでは、Qmtech社のFPGAボードのWukongボード上に、LiteX/VexRiscvを用いて、8コア + FPU + AESを備えたSoCを構成し、32-bit RISC-V Linuxを実行することに成功しました。
また、32-bit Linuxを実行するため、Digilent社のFPGAボードのArty A7-35上に、2コア + FPU + AESを備えたSoCを構成しました。
これらシステムは、github.com/litex-hub/linux-on-litex-vexriscvをベースにしています。

VexRiscv

VexRiscvは、SpinalHDLというハードウェア記述言語で書かれたオープンソースの32-bit RISC-Vソフトコアです。
VexRiscvは、プラグインにより機能が拡張できるようになっています。
2020年12月にAES(Advanced Encryption Standard)プラグイン、2021年3月にFPU(Floating Point Unit)プラグインが追加されました。

LiteX

LiteXは、Python DSL(Domain Specific Language)であるMigenで書かれたオープンソースのSoC(System on Chip)ビルダーとIP(Intellectual Property)コンポーネントのライブラリから構成されています。

Qmtech Wukong Board

Wukongボードは、Xilinx社のArtix-7を用いたQmtech社のFPGA(Field-Programmable Gate Array)ボードです。
以前のボードは、HDMIディスプレイインターフェース、GMIIイーサネットインターフェース、USB-UART等を備えていました。
現行ボードは、マイクロSDカードスロットが追加され、XC7A200Tモデルが選択できるようになりました。
現在使用しているボードは、XC7A100Tモデルです。
なお、Wukongは日本語の悟空に対応し、ボード上に孫悟空のイラストが描かれています。

まとめ

SoCビルダーとIPコンポーネントのライブラリから構成されるLiteXと、プラグインにより機能が拡張できるオープンソースの32-bit RISC-VソフトコアであるVexRiscvを使用することで、Qmtech社のWukongボードとDigilent社のArty A7-35上に、FPGAの規模に合わせたSoCを構成し、32-bit Linuxを実行することに成功しました。