Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SoftCore RISC-V Support for PicoRV32 or VexRiscv platforms. #948

Open
trevor403 opened this issue Mar 10, 2020 · 3 comments
Open

SoftCore RISC-V Support for PicoRV32 or VexRiscv platforms. #948

trevor403 opened this issue Mar 10, 2020 · 3 comments
Labels
enhancement New feature or request

Comments

@trevor403
Copy link

trevor403 commented Mar 10, 2020

It looks like it should be possible to get TinyGo running on an FPGA softcore without too much trouble.
I was reading this article earlier that describes using linker scripts for the HiFive1 and startup code for the fe310, which already exist in the TinyGo project.
https://blog.adacore.com/ada-on-fpgas-with-picorv32

The tricky part would be the machine package. There are several "machines" or SoCs that are currently in use in the RISC-V softcore world including

So building out a machine package may be difficult.

It seems the most commonly used pairs are VexRiscv+LiteX and PicoRV32+PicoSoC
There is a great simulator called Renode that can emulate both of these configurations.
Here is a great guide
https://risc-v-getting-started-guide.readthedocs.io/en/latest/zephyr-litex.html#running
I will try to hack on getting a program running. It would be great if FPGAs could be a supported platform for Golang

@aykevl
Copy link
Member

aykevl commented Mar 11, 2020

This sounds very interesting!

What the machine package does is give a common abstraction over specific hardware. In this case, the abstraction would probably cover one set of hardware peripherals.
Perhaps the best way to start is to implement support for one specific softcore and then see what kind of abstraction is needed to also support other softcores?

@deadprogram deadprogram added the enhancement New feature or request label Mar 13, 2020
@deadprogram
Copy link
Member

This is in fact possible. Check out my PR #4631 where I am doing exactly this.

@deadprogram
Copy link
Member

That PR has now been merged into the dev branch. Let the FPGA games begin!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants