@ajlennon asked for instructions on using SaxonSoc with Blackice Mx.
You will need the latest USB-CDC-Issue3 firmware for this.
Here are the instructions for doing it from the Linux command line.
First you need to install SpinalHDL. You can follow the instructions in the SpinalTemplatreSbt.
You will also need a version of the Risc-V gcc toolchain. I have several of these installed.
One possibility it to follow the instructions in the VexRiscvSocSoftware and get the Sifive version.
Or you can build the riscv32i version from the picorv32 project.
Once you have SpinalHDL running and the Risc-V compiler installed, you will need the Bmb branch of the SaxonSoc project:
git clone -b Bmb https://github.com/SpinalHDL/SaxonSoc
git submodule init
git submodule update
There are several different makefiles there for different SaxonSoc configurations. Lets start with the minimal one.
First you need to compile the software you are going to use. That requires a RISCV_BIN environment variable. For example if using riscv32i
You will then need to compile the software you are going to run. Lets run the blinkAndEcho example.
First you will need edit SaxonSoc/blob/Bmb/hardware/scala/saxon/board/blackicemx/BlackiceMxMinimal.scala line 56 to:
Then you can generate the verilog and board support package (BSP) for BlackiceMxMinimal:
cp makefile.minimal makefile
You can then compile the software:
The BSP parameter specifies the Board Support Package which specifies the linker files and header files for the specific board and configuration.
You can now change line 56 to specify the software to run:
Then again do;
and it will now generate the correct Verilog under hardware/netlist/blackicemx.
It should then be possible to to build and run the bitstream.
In one terminal do:
stty -F /dev/ttyACM0 raw -echo 115200
and in another terminal do:
That should run blinkAndEcho and you should see the leds blinking.
If you do
echo "Hello" >/dev/ttyACM0
you should see if come out on the first terminal.