Add Murax scripts
This commit is contained in:
parent
2736681be6
commit
087e3dda89
|
@ -264,6 +264,8 @@ Murax ->
|
|||
ICE40-HX -> 53 Mhz 2142 LC (icestorm)
|
||||
```
|
||||
|
||||
There is some scripts to generate the SoC and call the icestorm toolchain there : scripts/Murax/
|
||||
|
||||
## Build the RISC-V GCC
|
||||
|
||||
To install in /opt/ the rv32i and rv32im gcc, do the following (will take hours):
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
|
||||
VERILOG = ../../Murax.v toplevel.v
|
||||
|
||||
|
||||
bin/toplevel.bin : toplevel.pcf ${VERILOG}
|
||||
mkdir -p bin
|
||||
yosys -v3 -p "synth_ice40 -top toplevel -blif bin/toplevel.blif" ${VERILOG}
|
||||
arachne-pnr -p toplevel.pcf -d 8k --max-passes 600 -P ct256 bin/toplevel.blif -o bin/toplevel.asc
|
||||
icepack bin/toplevel.asc bin/toplevel.bin
|
||||
|
||||
generate :
|
||||
(cd ../..; sbt "run-main vexriscv.demo.Murax")
|
||||
|
||||
|
||||
compile : bin/toplevel.bin
|
||||
|
||||
time: bin/toplevel.bin
|
||||
icetime -tmd hx8k bin/toplevel.asc
|
||||
|
||||
prog : bin/toplevel.bin
|
||||
sudo iceprog -S bin/toplevel.bin
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
## ICE40-hx8k breakout board
|
||||
|
||||
set_io io_J3 J3
|
||||
set_io io_H16 H16
|
||||
set_io io_G15 G15
|
||||
set_io io_G16 G16
|
||||
set_io io_F15 F15
|
||||
set_io io_led[0] B5
|
||||
set_io io_led[1] B4
|
||||
set_io io_led[2] A2
|
||||
set_io io_led[3] A1
|
||||
set_io io_led[4] C5
|
||||
set_io io_led[5] C4
|
||||
set_io io_led[6] B3
|
||||
set_io io_led[7] C3
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
`timescale 1ns / 1ps
|
||||
|
||||
module toplevel(
|
||||
input io_J3,
|
||||
input io_H16,
|
||||
input io_G15,
|
||||
output io_G16,
|
||||
input io_F15,
|
||||
output [7:0] io_led
|
||||
);
|
||||
|
||||
wire [31:0] io_gpioA_read;
|
||||
wire [31:0] io_gpioA_write;
|
||||
wire [31:0] io_gpioA_writeEnable;
|
||||
wire io_mainClk;
|
||||
wire io_jtag_tck;
|
||||
|
||||
SB_GB mainClkBuffer (
|
||||
.USER_SIGNAL_TO_GLOBAL_BUFFER (io_J3),
|
||||
.GLOBAL_BUFFER_OUTPUT ( io_mainClk)
|
||||
);
|
||||
|
||||
SB_GB jtagClkBuffer (
|
||||
.USER_SIGNAL_TO_GLOBAL_BUFFER (io_H16),
|
||||
.GLOBAL_BUFFER_OUTPUT ( io_jtag_tck)
|
||||
);
|
||||
|
||||
assign io_led = io_gpioA_write[7 : 0];
|
||||
|
||||
Murax murax (
|
||||
.io_asyncReset(0),
|
||||
.io_mainClk (io_mainClk ),
|
||||
.io_jtag_tck(io_jtag_tck),
|
||||
.io_jtag_tdi(io_G15),
|
||||
.io_jtag_tdo(io_G16),
|
||||
.io_jtag_tms(io_F15),
|
||||
.io_gpioA_read (io_gpioA_read),
|
||||
.io_gpioA_write (io_gpioA_write),
|
||||
.io_gpioA_writeEnable(io_gpioA_writeEnable)
|
||||
);
|
||||
endmodule
|
Loading…
Reference in New Issue