2021-05-21 10:46:29 +08:00
|
|
|
TOP := hazard3_cpu_2port
|
2021-05-21 09:34:16 +08:00
|
|
|
CDEFINES := DUAL_PORT
|
|
|
|
|
|
|
|
CPU_RESET_VECTOR := 32'hc0
|
|
|
|
EXTENSION_C := 1
|
|
|
|
EXTENSION_M := 1
|
2021-07-11 04:02:18 +08:00
|
|
|
DEBUG_SUPPORT := 0
|
2021-05-22 18:18:56 +08:00
|
|
|
MULDIV_UNROLL := 2
|
|
|
|
MUL_FAST := 1
|
2021-05-21 09:34:16 +08:00
|
|
|
REDUCED_BYPASS := 0
|
|
|
|
|
|
|
|
.PHONY: clean tb all
|
|
|
|
|
|
|
|
all: tb
|
|
|
|
|
2021-05-23 18:59:46 +08:00
|
|
|
SYNTH_CMD += read_verilog -I ../../../hdl $(shell listfiles ../../../hdl/hazard3.f);
|
2021-05-21 09:34:16 +08:00
|
|
|
SYNTH_CMD += chparam -set EXTENSION_C $(EXTENSION_C) $(TOP);
|
|
|
|
SYNTH_CMD += chparam -set EXTENSION_M $(EXTENSION_M) $(TOP);
|
2021-07-11 04:02:18 +08:00
|
|
|
SYNTH_CMD += chparam -set DEBUG_SUPPORT $(DEBUG_SUPPORT) $(TOP);
|
2021-05-21 09:34:16 +08:00
|
|
|
SYNTH_CMD += chparam -set CSR_COUNTER 1 $(TOP);
|
|
|
|
SYNTH_CMD += chparam -set RESET_VECTOR $(CPU_RESET_VECTOR) $(TOP);
|
|
|
|
SYNTH_CMD += chparam -set REDUCED_BYPASS $(REDUCED_BYPASS) $(TOP);
|
|
|
|
SYNTH_CMD += chparam -set MULDIV_UNROLL $(MULDIV_UNROLL) $(TOP);
|
|
|
|
SYNTH_CMD += chparam -set MUL_FAST $(MUL_FAST) $(TOP);
|
2021-07-18 23:45:48 +08:00
|
|
|
SYNTH_CMD += hierarchy -top $(TOP); proc; opt_clean;
|
2021-07-18 21:30:38 +08:00
|
|
|
SYNTH_CMD += splitnets -driver;
|
2021-05-21 09:34:16 +08:00
|
|
|
SYNTH_CMD += write_cxxrtl dut.cpp
|
|
|
|
|
|
|
|
dut.cpp:
|
|
|
|
yosys -p "$(SYNTH_CMD)" 2>&1 > cxxrtl.log
|
|
|
|
|
|
|
|
clean::
|
|
|
|
rm -f dut.cpp cxxrtl.log tb
|
|
|
|
|
|
|
|
tb: dut.cpp
|
|
|
|
clang++ -O3 -std=c++14 $(addprefix -D,$(CDEFINES)) -I $(shell yosys-config --datdir)/include tb.cpp -o tb
|