HeavyX/README.md

58 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

2019-06-10 14:49:55 +08:00
HeavyX
======
A FPGA SoC framework embracing cutting-edge open source technologies (nMigen, Yosys, SymbiFlow, Minerva, Nix, Rust).
2019-06-10 15:01:58 +08:00
This is work in progress!
2019-06-10 14:49:55 +08:00
"Hello World" SoC demo
2019-06-10 14:51:34 +08:00
----------------------
2019-06-10 14:49:55 +08:00
2019-06-24 18:25:44 +08:00
Softcore system-on-chip on the Lattice ECP5 Versa board, built with a 100% Verilog/VHDL-free and 100% open source toolchain.
2019-06-24 18:26:44 +08:00
* Everything written in nMigen (https://github.com/m-labs/nmigen/).
2019-06-24 18:25:44 +08:00
* RISC-V 32-bit pipelined core (Minerva by Lambdaconcept).
* 100MHz clock frequency.
* Runs a Rust "hello world" program.
2019-06-10 14:49:55 +08:00
Use nixpkgs 19.03. If you are unfamiliar with Nix and just installed it on another (non-NixOS) distribution, simply run:
```
$ nix-channel --remove nixpkgs
$ nix-channel --add https://nixos.org/channels/nixos-19.03 nixpkgs
$ nix-channel --update
```
2019-06-10 14:49:55 +08:00
Optional: set up the M-Labs key and binary substituter for Nix (otherwise Nix will recompile LLVM, rustc, etc. on your machine).
Create the file ``~/.config/nix/nix.conf`` with the following contents:
2019-06-10 14:51:07 +08:00
```
substituters = https://cache.nixos.org https://nixbld.m-labs.hk
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nixbld.m-labs.hk-1:5aSRVA5b320xbNvu30tqxVPXpld73bhtOeH6uAjRyHc=
```
2019-06-10 14:49:55 +08:00
Run ``nix-build -A simplesoc_ecp5 release.nix``
You can also build manually and use your distribution's packages, but YMMV.
2019-06-10 14:49:55 +08:00
Bypass the ispCLOCK device using the jumpers on your board.
Create a ``versa.cfg`` file with:
2019-06-10 14:51:07 +08:00
```
interface ftdi
ftdi_vid_pid 0x0403 0x6010
ftdi_channel 0
ftdi_layout_init 0xfff8 0xfffb
reset_config none
adapter_khz 5000
jtag newtap ecp5 tap -irlen 8 -expected-id 0x01112043
```
2019-06-10 14:49:55 +08:00
Load the bitstream ``openocd -f versa.cfg -c "transport select jtag; init; svf result/top.svf; exit"``.
Watch the UART output at 115200bps.
2019-06-10 15:01:58 +08:00
Questions, comments: https://forum.m-labs.hk/ or IRC #m-labs on Freenode.