Skip to content

Latest commit

 

History

History
20 lines (12 loc) · 1.05 KB

HartTransplant.md

File metadata and controls

20 lines (12 loc) · 1.05 KB

Quasi SoC -- Hart Transplant

It's not hard to use Quasi SoC peripherals with other/better/self-written RISC-V cores. Usually little change is required on software side.

Main hardware modifications:

  • Clock and reset -- running at 62.5 MHz is recommended
  • Bus interface -- bridging required, pay significant attention to endian problems
  • PC start address -- ∂CPU has 0xf0000000
  • Interrupt -- this is tricky ...

See rtl/hart_transplant/picorv32/. PicoRV32 uses simple valid-ready bus and bus bridging is not hard. But "misaligned"(non-32-bit, sb/sh, a.k.a. mem_wstrb != 4'b1111) store need manual processing(read then write). The core itself needs zero modification. Interrupt disabled.

With mul/div enabled, all three examples(tests, coremark, renderer) run without any modification. Coremark is ~0.22 CoreMark/MHz, which is very low compared with this, seems my crappy bus converter chopped performance half.

TODO