Porting PicoSoC with PicoRV32 to Sipeed Tang Primer

picosoc-picorv32-tang-primer

Luffcaでは、32-bit RISC-VのPicoRV32を用いたPicoSoCをSipeed社のローコストFPGAボードのTang Primerに移植しました。
このSoCは、github.com/cliffordwolf/picorv32をベースにしています。

PicoRV32/PicoSoC

PicoRV32は、省サイズのオープンソースの32-bit RISC-Vソフトコアです。
PicoSoCは、PicoRV32を用いたシンプルなSoCの例であり、iCE40-HX8K Breakout BoardとiCEBreaker Boardの実装が、上記リポジトリに公開されています。

Sipeed Tang Primer

Sipeed社のTang Primerは、Anlogic社のFPGA EG4S20BG256を用いた、ローコストFPGA(Field-Programmable Gate Array)ボードです。
Tang PrimerのFPGAには、予めRISC-VのHummingbird E203が書き込まれており、別売のRV Debugger等を用いて、RISC-Vソフトウェアの開発を行うことができます。
今回は、このボードにPicoRV32/PicoSoCを移植しました。

PicoSoC for Tang Primer

今回の移植では、オリジナル実装のFlash XIP(Execute-in-Place)の代わりに、Anlogic IPの32KiB ROMを使用しています。
また、picosoc_mem(RAM)をAnlogic IPの16KiB RAMに変更しています。
なお、Flashのモード制御が動作しておらず、spiモードでのみ動作しています。

まとめ

Luffcaでは、CPUとして32-bit RISC-VのPicoRV32を用いたPicoSoCをSipeed社のローコストFPGAボードのTang Primerに移植しました。