Line 1... |
Line 1... |
|
|
CUR_DIR=$(shell pwd)
|
CUR_DIR=$(shell pwd)
|
PROJECT_ROOT=$(CUR_DIR)/../..
|
PROJECT_ROOT=$(CUR_DIR)/../..
|
|
|
|
# Define these tests if none were on the command line
|
#TESTS ?= basic-nocache cbasic-nocache-O2 dhry-nocache-O2 except-nocache mmu-nocache mul-nocache-O2 syscall-nocache tick-nocache uart-nocache basic-icdc cbasic-icdc-O2 dhry-icdc-O2 except-icdc mmu-icdc mul-icdc-O2 syscall-icdc tick-icdc uart-icdc
|
TESTS ?= basic-nocache cbasic-nocache-O2 dhry-nocache-O2 except-nocache mmu-nocache mul-nocache-O2 syscall-nocache tick-nocache uart-nocache basic-icdc cbasic-icdc-O2 dhry-icdc-O2 except-icdc mmu-icdc mul-icdc-O2 syscall-icdc tick-icdc uart-icdc
|
TESTS = basic-nocache cbasic-nocache-O2
|
#TESTS = basic-nocache cbasic-nocache-O2
|
|
|
SIM_DIR=$(PROJECT_ROOT)/sim
|
SIM_DIR=$(PROJECT_ROOT)/sim
|
SIM_RUN_DIR=$(SIM_DIR)/run
|
SIM_RUN_DIR=$(SIM_DIR)/run
|
SIM_BIN_DIR=$(SIM_DIR)/bin
|
SIM_BIN_DIR=$(SIM_DIR)/bin
|
SIM_RESULTS_DIR=$(SIM_DIR)/results
|
SIM_RESULTS_DIR=$(SIM_DIR)/results
|
Line 35... |
Line 35... |
@$(MAKE) -C $(SW_DIR)/support
|
@$(MAKE) -C $(SW_DIR)/support
|
@$(MAKE) -C $(SW_DIR)/utils
|
@$(MAKE) -C $(SW_DIR)/utils
|
|
|
test-make: prepare_sw prepare_rtl
|
test-make: prepare_sw prepare_rtl
|
@if [ ! -d $(SIM_RESULTS_DIR) ]; then mkdir -p $(SIM_RESULTS_DIR); fi
|
@if [ ! -d $(SIM_RESULTS_DIR) ]; then mkdir -p $(SIM_RESULTS_DIR); fi
|
@echo "Beginning tests"
|
@echo
|
|
@echo "Beginning loop that will complete the following tests: $(TESTS)"
|
|
@echo
|
@for TEST in $(TESTS); do \
|
@for TEST in $(TESTS); do \
|
echo; echo "\t#### Current test: $$TEST ####"; echo; \
|
echo "################################################################################"; \
|
|
echo; \
|
|
echo "\t#### Current test: $$TEST ####"; echo; \
|
echo "\t#### Compiling software ####"; echo; \
|
echo "\t#### Compiling software ####"; echo; \
|
CURRENT_TEST_SW_DIR=$(SW_DIR)/`echo $$TEST | cut -d "-" -f 1`; \
|
CURRENT_TEST_SW_DIR=$(SW_DIR)/`echo $$TEST | cut -d "-" -f 1`; \
|
$(MAKE) -C $$CURRENT_TEST_SW_DIR $$TEST; \
|
$(MAKE) -C $$CURRENT_TEST_SW_DIR $$TEST; \
|
rm -f $(SIM_RUN_DIR)/$(SIM_MEM_FILE); \
|
rm -f $(SIM_RUN_DIR)/$(SIM_MEM_FILE); \
|
ln -s $$CURRENT_TEST_SW_DIR/$$TEST.hex $(SIM_RUN_DIR)/$(SIM_MEM_FILE); \
|
ln -s $$CURRENT_TEST_SW_DIR/$$TEST.hex $(SIM_RUN_DIR)/$(SIM_MEM_FILE); \
|
Line 59... |
Line 62... |
echo "\t#### Compiling RTL ####"; \
|
echo "\t#### Compiling RTL ####"; \
|
rm -f $(SIM_RUN_DIR)/a.out; \
|
rm -f $(SIM_RUN_DIR)/a.out; \
|
$(ICARUS) -c $(SIM_RUN_DIR)/$(ICARUS_COMMAND_FILE).generated $(RTL_SIM_FLAGS); \
|
$(ICARUS) -c $(SIM_RUN_DIR)/$(ICARUS_COMMAND_FILE).generated $(RTL_SIM_FLAGS); \
|
echo; \
|
echo; \
|
echo "\t#### Beginning simulation ####"; \
|
echo "\t#### Beginning simulation ####"; \
|
$(ICARUS_VVP) a.out > $(SIM_RESULTS_DIR)/$$TEST-vvp-out.log; \
|
time -p $(ICARUS_VVP) -l $(SIM_RESULTS_DIR)/$$TEST-vvp-out.log a.out ; \
|
TEST_RESULT=`tail -n 1 $(SIM_RESULTS_DIR)/$$TEST-general.log | grep $(SIM_SUCCESS_MESSAGE) -c`; \
|
TEST_RESULT=`tail -n 1 $(SIM_RESULTS_DIR)/$$TEST-general.log | grep $(SIM_SUCCESS_MESSAGE) -c`; \
|
echo; echo "\t####---------------------####"; \
|
echo; echo "\t####"; \
|
if [ ! -z $$TEST_RESULT ]; then \
|
if [ ! -z $$TEST_RESULT ]; then \
|
echo "\t#### Test $$TEST PASSED ####";\
|
echo "\t#### Test $$TEST PASSED ####";\
|
else echo "\t#### Test $$TEST FAILED ####";\
|
else echo "\t#### Test $$TEST FAILED ####";\
|
fi; \
|
fi; \
|
echo "\t####---------------------####"; echo; \
|
echo "\t####"; echo; \
|
done
|
done
|
|
|
|
|
|
|
|
|
#ps aux | grep "xterm -e $(SIM_BIN_DIR)/monitor.sh $(SIM_RESULTS_DIR)/$$TEST-executed.log" | awk '{ print $2 }' | xargs kill; \
|
#ps aux | grep "xterm -e $(SIM_BIN_DIR)/monitor.sh $(SIM_RESULTS_DIR)/$$TEST-executed.log" | awk '{ print $2 }' | xargs kill; \
|
|
|
# if [ ! -z $OR1K_MONITOR ]; then \
|
# if [ ! -z $OR1K_MONITOR ]; then \
|
if [ ! -z $DISPLAY ]; then \
|
if [ ! -z $DISPLAY ]; then \
|
$(SIM_BIN_DIR)/monitor.sh $(SIM_RESULTS_DIR)/$$TEST-executed.log; \
|
$(SIM_BIN_DIR)/monitor.sh $(SIM_RESULTS_DIR)/$$TEST-executed.log; \
|