Line 18... |
Line 18... |
# Suppressed warnings - 8598: Non-positive replication multiplier inside concat. Replication will be ignored
|
# Suppressed warnings - 8598: Non-positive replication multiplier inside concat. Replication will be ignored
|
VSIM_ARGS= -suppress 7 -suppress 3009 -suppress 8598 -c $(QUIET) -do "set StdArithNoWarnings 1; run -all; exit"
|
VSIM_ARGS= -suppress 7 -suppress 3009 -suppress 8598 -c $(QUIET) -do "set StdArithNoWarnings 1; run -all; exit"
|
|
|
# VPI debugging interface set up
|
# VPI debugging interface set up
|
VPI_SRC_C_DIR=$(COMMON_BENCH_VERILOG_DIR)/vpi/c
|
VPI_SRC_C_DIR=$(COMMON_BENCH_VERILOG_DIR)/vpi/c
|
VPI_SRC_VERILOG_DIR=vpi/verilog
|
|
VPI_SRCS=$(shell ls $(VPI_SRC_C_DIR)/*.[ch])
|
VPI_SRCS=$(shell ls $(VPI_SRC_C_DIR)/*.[ch])
|
|
|
# Modelsim VPI compile variables
|
# Modelsim VPI compile variables
|
MODELTECH_VPILIB=msim_jp_vpi.sl
|
MODELTECH_VPILIB=msim_jp_vpi.sl
|
|
|
Line 95... |
Line 94... |
|
|
# Compile DUT into "work" library
|
# Compile DUT into "work" library
|
work: modelsim_dut.scr
|
work: modelsim_dut.scr
|
$(Q)if [ ! -e $@ ]; then vlib $@; fi
|
$(Q)if [ ! -e $@ ]; then vlib $@; fi
|
$(Q)echo; echo "\t### Compiling Verilog design library ###"; echo
|
$(Q)echo; echo "\t### Compiling Verilog design library ###"; echo
|
$(Q)vlog $(QUIET) -f $< $(DUT_TOP)
|
$(Q)vlog $(QUIET) -f $< $(DUT_TOP_FILE)
|
|
$(Q)if [ "$(RTL_VHDL_SRC)" != "" ]; then \
|
|
echo; echo "\t### Compiling VHDL design library ###"; \
|
|
echo; \
|
|
vcom -93 $(QUIET) $(RTL_VHDL_SRC); \
|
|
fi
|
|
|
#
|
#
|
# Run rule
|
# Run rule, one for each vendor
|
#
|
#
|
|
|
.PHONY : $(MODELSIM)
|
.PHONY : $(MODELSIM)
|
ifeq ($(FPGA_VENDOR), actel)
|
ifeq ($(FPGA_VENDOR), actel)
|
$(MODELSIM): modelsim_bench.scr $(TEST_DEFINES_VLG) $(BACKEND_LIB) $(VPI_LIBS) work
|
$(MODELSIM): modelsim_bench.scr $(TEST_DEFINES_VLG) $(BACKEND_LIB) $(VPI_LIBS) work
|
$(Q)echo; echo "\t### Compiling testbench ###"; echo
|
$(Q)echo; echo "\t### Compiling testbench ###"; echo
|
$(Q)vlog $(QUIET) -nologo -incr $(BENCH_TOP) -f $<
|
$(Q)vlog $(QUIET) -nologo -incr $(BENCH_TOP_FILE) -f $<
|
$(Q)vopt $(QUIET) $(RTL_TESTBENCH_TOP) $(VOPT_ARGS) -L $(BACKEND_LIB) \
|
$(Q)vopt $(QUIET) $(RTL_TESTBENCH_TOP_NAME) $(VOPT_ARGS) \
|
-o tb
|
-L $(BACKEND_LIB) -o tb
|
$(Q)echo; echo "\t### Launching simulation ###"; echo
|
$(Q)echo; echo "\t### Launching simulation ###"; echo
|
$(Q)vsim $(VSIM_ARGS) tb
|
$(Q)vsim $(VSIM_ARGS) tb
|
endif
|
endif
|
|
|
ifeq ($(FPGA_VENDOR), xilinx)
|
ifeq ($(FPGA_VENDOR), xilinx)
|
$(MODELSIM): modelsim_bench.scr $(TEST_DEFINES_VLG) $(VPI_LIBS) work
|
$(MODELSIM): modelsim_bench.scr $(TEST_DEFINES_VLG) $(VPI_LIBS) work
|
$(Q)echo; echo "\t### Compiling Xilinx support libs, user design & testbench ###"; echo
|
$(Q)echo; echo "\t### Compiling Xilinx support libs, user design & testbench ###"; echo
|
$(Q)vlog $(QUIET) -nologo -incr $(BENCH_TOP) -f $<
|
$(Q)vlog $(QUIET) -nologo -incr $(BENCH_TOP_FILE) -f $<
|
$(Q)vopt $(QUIET) glbl $(RTL_TESTBENCH_TOP) $(VOPT_ARGS) -o tb
|
$(Q)vopt $(QUIET) glbl $(RTL_TESTBENCH_TOP_NAME) $(VOPT_ARGS) -o tb
|
$(Q)echo; echo "\t### Launching simulation ###"; echo
|
$(Q)echo; echo "\t### Launching simulation ###"; echo
|
$(Q)vsim $(VSIM_ARGS) tb
|
$(Q)vsim $(VSIM_ARGS) tb
|
endif
|
endif
|
|
|
|
ifeq ($(FPGA_VENDOR), altera)
|
|
$(MODELSIM): modelsim_bench.scr $(TEST_DEFINES_VLG) $(BACKEND_LIB) $(VPI_LIBS) work
|
|
$(Q)echo; echo "\t### Compiling testbench ###"; echo
|
|
$(Q)vlog $(QUIET) -nologo -incr $(BENCH_TOP_FILE) -f $<
|
|
$(Q)vopt $(QUIET) $(RTL_TESTBENCH_TOP_NAME) $(VOPT_ARGS) \
|
|
-L $(BACKEND_LIB) -o tb
|
|
$(Q)echo; echo "\t### Launching simulation ###"; echo
|
|
$(Q)vsim $(VSIM_ARGS) tb
|
|
endif
|
No newline at end of file
|
No newline at end of file
|