|
|
@ -77,13 +77,17 @@ soc_reset_tb: fpga/soc_reset_tb.vhdl fpga/soc_reset.vhdl
|
|
|
|
$(GHDL) -c $(GHDLFLAGS) fpga/soc_reset_tb.vhdl fpga/soc_reset.vhdl -e $@
|
|
|
|
$(GHDL) -c $(GHDLFLAGS) fpga/soc_reset_tb.vhdl fpga/soc_reset.vhdl -e $@
|
|
|
|
|
|
|
|
|
|
|
|
# Hello world
|
|
|
|
# Hello world
|
|
|
|
GHDL_IMAGE_GENERICS=-gMEMORY_SIZE=8192 -gRAM_INIT_FILE=hello_world/hello_world.hex
|
|
|
|
MEMORY_SIZE=8192
|
|
|
|
|
|
|
|
RAM_INIT_FILE=hello_world/hello_world.hex
|
|
|
|
|
|
|
|
|
|
|
|
# Micropython
|
|
|
|
# Micropython
|
|
|
|
#GHDL_IMAGE_GENERICS=-gMEMORY_SIZE=393216 -gRAM_INIT_FILE=micropython/firmware.hex
|
|
|
|
#MEMORY_SIZE=393216
|
|
|
|
|
|
|
|
#RAM_INIT_FILE=micropython/firmware.hex
|
|
|
|
|
|
|
|
|
|
|
|
# OrangeCrab with ECP85
|
|
|
|
# OrangeCrab with ECP85
|
|
|
|
GHDL_TARGET_GENERICS=-gRESET_LOW=true -gCLK_INPUT=50000000 -gCLK_FREQUENCY=50000000
|
|
|
|
RESET_LOW=true
|
|
|
|
|
|
|
|
CLK_INPUT=50000000
|
|
|
|
|
|
|
|
CLK_FREQUENCY=50000000
|
|
|
|
LPF=constraints/orange-crab.lpf
|
|
|
|
LPF=constraints/orange-crab.lpf
|
|
|
|
PACKAGE=CSFBGA285
|
|
|
|
PACKAGE=CSFBGA285
|
|
|
|
NEXTPNR_FLAGS=--um5g-85k --freq 50
|
|
|
|
NEXTPNR_FLAGS=--um5g-85k --freq 50
|
|
|
@ -91,13 +95,18 @@ OPENOCD_JTAG_CONFIG=openocd/olimex-arm-usb-tiny-h.cfg
|
|
|
|
OPENOCD_DEVICE_CONFIG=openocd/LFE5UM5G-85F.cfg
|
|
|
|
OPENOCD_DEVICE_CONFIG=openocd/LFE5UM5G-85F.cfg
|
|
|
|
|
|
|
|
|
|
|
|
# ECP5-EVN
|
|
|
|
# ECP5-EVN
|
|
|
|
#GHDL_TARGET_GENERICS=-gRESET_LOW=true -gCLK_INPUT=12000000 -gCLK_FREQUENCY=12000000
|
|
|
|
#RESET_LOW=true
|
|
|
|
|
|
|
|
#CLK_INPUT=12000000
|
|
|
|
|
|
|
|
#CLK_FREQUENCY=12000000
|
|
|
|
#LPF=constraints/ecp5-evn.lpf
|
|
|
|
#LPF=constraints/ecp5-evn.lpf
|
|
|
|
#PACKAGE=CABGA381
|
|
|
|
#PACKAGE=CABGA381
|
|
|
|
#NEXTPNR_FLAGS=--um5g-85k --freq 12
|
|
|
|
#NEXTPNR_FLAGS=--um5g-85k --freq 12
|
|
|
|
#OPENOCD_JTAG_CONFIG=openocd/ecp5-evn.cfg
|
|
|
|
#OPENOCD_JTAG_CONFIG=openocd/ecp5-evn.cfg
|
|
|
|
#OPENOCD_DEVICE_CONFIG=openocd/LFE5UM5G-85F.cfg
|
|
|
|
#OPENOCD_DEVICE_CONFIG=openocd/LFE5UM5G-85F.cfg
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GHDL_IMAGE_GENERICS=-gMEMORY_SIZE=$(MEMORY_SIZE) -gRAM_INIT_FILE=$(RAM_INIT_FILE) \
|
|
|
|
|
|
|
|
-gRESET_LOW=$(RESET_LOW) -gCLK_INPUT=$(CLK_INPUT) -gCLK_FREQUENCY=$(CLK_FREQUENCY)
|
|
|
|
|
|
|
|
|
|
|
|
clkgen=fpga/clk_gen_bypass.vhd
|
|
|
|
clkgen=fpga/clk_gen_bypass.vhd
|
|
|
|
toplevel=fpga/top-generic.vhdl
|
|
|
|
toplevel=fpga/top-generic.vhdl
|
|
|
|
dmi_dtm=dmi_dtm_dummy.vhdl
|
|
|
|
dmi_dtm=dmi_dtm_dummy.vhdl
|
|
|
@ -115,7 +124,7 @@ microwatt.v: $(synth_files)
|
|
|
|
|
|
|
|
|
|
|
|
# Need to investigate why yosys is hitting verilator warnings, and eventually turn on -Wall
|
|
|
|
# Need to investigate why yosys is hitting verilator warnings, and eventually turn on -Wall
|
|
|
|
microwatt-verilator: microwatt.v verilator/microwatt-verilator.cpp verilator/uart-verilator.c
|
|
|
|
microwatt-verilator: microwatt.v verilator/microwatt-verilator.cpp verilator/uart-verilator.c
|
|
|
|
verilator -O3 --assert --cc microwatt.v --exe verilator/microwatt-verilator.cpp verilator/uart-verilator.c -o $@ -Wno-CASEOVERLAP -Wno-UNOPTFLAT #--trace
|
|
|
|
verilator -O3 -CFLAGS "-DCLK_FREQUENCY=$(CLK_FREQUENCY)" --assert --cc microwatt.v --exe verilator/microwatt-verilator.cpp verilator/uart-verilator.c -o $@ -Wno-CASEOVERLAP -Wno-UNOPTFLAT #--trace
|
|
|
|
make -C obj_dir -f Vmicrowatt.mk
|
|
|
|
make -C obj_dir -f Vmicrowatt.mk
|
|
|
|
@cp -f obj_dir/microwatt-verilator microwatt-verilator
|
|
|
|
@cp -f obj_dir/microwatt-verilator microwatt-verilator
|
|
|
|
|
|
|
|
|
|
|
|