It's a playground fork from https://git.m-labs.hk/M-Labs/HeavyX
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Harry Ho ca8d4142ed Merge remote-tracking branch 'upstream/master' 1 month ago
compilers Initial commit, clone from source 3 months ago
cores upgrade to nmigen 0.1rc1 - NOT pulling from m-labs git upstream 1 month ago
eda upgrade to nmigen 0.1rc1 - NOT pulling from m-labs git upstream 1 month ago
examples upgrade to nmigen 0.1rc1 - NOT pulling from m-labs git upstream 1 month ago
firmware Initial commit, clone from source 3 months ago
heavycomps Initial commit, clone from source 3 months ago
.gitignore Initial commit, clone from source 3 months ago
README.md Initial commit, clone from source 3 months ago
default.nix Initial commit, clone from source 3 months ago
heavycomps.nix Initial commit, clone from source 3 months ago
overlay.nix fix styling 1 month ago
release.nix Initial commit, clone from source 3 months ago
shell.nix fix styling 1 month ago

README.md

HeavyX

A FPGA SoC framework embracing cutting-edge open source technologies (nMigen, Yosys, SymbiFlow, Minerva, Nix, Rust).

This is work in progress!

“Hello World” SoC demo

Softcore system-on-chip on the Lattice ECP5 Versa board, built with a 100% Verilog/VHDL-free and 100% open source toolchain.

  • Everything written in nMigen (https://github.com/m-labs/nmigen/).
  • RISC-V 32-bit pipelined core (Minerva by Lambdaconcept).
  • 100MHz clock frequency.
  • Runs a Rust “hello world” program.

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

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:

substituters = https://cache.nixos.org https://nixbld.m-labs.hk
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nixbld.m-labs.hk-1:5aSRVA5b320xbNvu30tqxVPXpld73bhtOeH6uAjRyHc=

Run nix-build -A simplesoc_ecp5 release.nix

You can also build manually and use your distribution’s packages, but YMMV.

Bypass the ispCLOCK device using the jumpers on your board.

Create a versa.cfg file with:

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

Load the bitstream openocd -f versa.cfg -c "transport select jtag; init; svf result/top.svf; exit".

Watch the UART output at 115200bps.

Questions, comments: https://forum.m-labs.hk/ or IRC #m-labs on Freenode.