diff --git a/.circleci/config.yml b/.circleci/config.yml index 0c2121a5..73fe147d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -111,7 +111,7 @@ jobs: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the example subproject using Verilator - command: .circleci/do-rtl-build.sh SUB_PROJECT=example + command: .circleci/do-rtl-build.sh example no_output_timeout: 120m - save_cache: key: example-{{ .Branch }}-{{ .Revision }} @@ -140,7 +140,7 @@ jobs: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the boomexample subproject using Verilator - command: .circleci/do-rtl-build.sh SUB_PROJECT=example CONFIG=DefaultBoomConfig + command: .circleci/do-rtl-build.sh boomexample no_output_timeout: 120m - save_cache: key: boomexample-{{ .Branch }}-{{ .Revision }} @@ -169,7 +169,7 @@ jobs: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the boomrocketexample subproject using Verilator - command: .circleci/do-rtl-build.sh SUB_PROJECT=example CONFIG=DefaultBoomAndRocketConfig + command: .circleci/do-rtl-build.sh boomrocketexample no_output_timeout: 120m - save_cache: key: boomrocketexample-{{ .Branch }}-{{ .Revision }} @@ -198,7 +198,7 @@ jobs: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the boom subproject using Verilator - command: .circleci/do-rtl-build.sh SUB_PROJECT=boom + command: .circleci/do-rtl-build.sh boom no_output_timeout: 120m - save_cache: key: boom-{{ .Branch }}-{{ .Revision }} @@ -227,7 +227,7 @@ jobs: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the rocketchip subproject using Verilator - command: .circleci/do-rtl-build.sh SUB_PROJECT=rocketchip + command: .circleci/do-rtl-build.sh rocketchip no_output_timeout: 120m - save_cache: key: rocketchip-{{ .Branch }}-{{ .Revision }} @@ -256,7 +256,7 @@ jobs: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: name: Building the hwacha subproject using Verilator - command: .circleci/do-rtl-build.sh SUB_PROJECT=hwacha + command: .circleci/do-rtl-build.sh hwacha no_output_timeout: 120m - save_cache: key: hwacha-{{ .Branch }}-{{ .Revision }} @@ -284,7 +284,7 @@ jobs: keys: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: - name: Run example benchmark tests + name: Run example tests command: .circleci/run-tests.sh example boomexample-run-tests: docker: @@ -308,7 +308,7 @@ jobs: keys: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: - name: Run boomexample benchmark tests + name: Run boomexample tests command: .circleci/run-tests.sh boomexample boomrocketexample-run-tests: docker: @@ -332,7 +332,7 @@ jobs: keys: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: - name: Run boomrocketexample benchmark tests + name: Run boomrocketexample tests command: .circleci/run-tests.sh boomrocketexample boom-run-tests: docker: @@ -356,7 +356,7 @@ jobs: keys: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: - name: Run boom benchmark tests + name: Run boom tests command: .circleci/run-tests.sh boom rocketchip-run-tests: docker: @@ -380,7 +380,7 @@ jobs: keys: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: - name: Run rocketchip benchmark tests + name: Run rocketchip tests command: .circleci/run-tests.sh rocketchip hwacha-run-tests: docker: @@ -404,7 +404,7 @@ jobs: keys: - verilator-installed-v3-{{ checksum "sims/verisim/verilator.mk" }} - run: - name: Run hwacha benchmark tests + name: Run hwacha tests command: export RISCV=/home/riscvuser/esp-tools-install; export LD_LIBRARY_PATH=$RISCV/lib; .circleci/run-tests.sh hwacha # Order and dependencies of jobs to run diff --git a/.circleci/defaults.sh b/.circleci/defaults.sh index 39a0c9a3..a17dca78 100755 --- a/.circleci/defaults.sh +++ b/.circleci/defaults.sh @@ -32,3 +32,12 @@ LOCAL_ESP_DIR=$HOME/esp-tools-install LOCAL_CHIPYARD_DIR=$LOCAL_CHECKOUT_DIR LOCAL_VERILATOR_DIR=$HOME/verilator LOCAL_SIM_DIR=$LOCAL_CHIPYARD_DIR/sims/verisim + +# key value store to get the build strings +declare -A mapping +mapping["example"]="SUB_PROJECT=example" +mapping["boomexample"]="SUB_PROJECT=example CONFIG=DefaultBoomConfig" +mapping["boomrocketexample"]="SUB_PROJECT=example CONFIG=DefaultBoomAndRocketConfig" +mapping["boom"]="SUB_PROJECT=boom" +mapping["rocketchip"]="SUB_PROJECT=rocketchip" +mapping["hwacha"]="SUB_PROJECT=hwacha" diff --git a/.circleci/do-rtl-build.sh b/.circleci/do-rtl-build.sh index 8ead657b..c99c490e 100755 --- a/.circleci/do-rtl-build.sh +++ b/.circleci/do-rtl-build.sh @@ -31,7 +31,7 @@ copy $LOCAL_VERILATOR_DIR/ $SERVER:$REMOTE_VERILATOR_DIR # enter the verisim directory and build the specific config on remote server run "make -C $REMOTE_SIM_DIR clean" -run "export RISCV=\"$REMOTE_RISCV_DIR\"; export VERILATOR_ROOT=$REMOTE_VERILATOR_DIR/install/share/verilator; make -C $REMOTE_SIM_DIR VERILATOR_INSTALL_DIR=$REMOTE_VERILATOR_DIR JAVA_ARGS=\"-Xmx8G -Xss8M\" $@" +run "export RISCV=\"$REMOTE_RISCV_DIR\"; export VERILATOR_ROOT=$REMOTE_VERILATOR_DIR/install/share/verilator; make -C $REMOTE_SIM_DIR VERILATOR_INSTALL_DIR=$REMOTE_VERILATOR_DIR JAVA_ARGS=\"-Xmx8G -Xss8M\" $mapping[$1]" run "rm -rf $REMOTE_CHIPYARD_DIR/project" # copy back the final build diff --git a/.circleci/run-tests.sh b/.circleci/run-tests.sh index a2b63f01..bd49f17a 100755 --- a/.circleci/run-tests.sh +++ b/.circleci/run-tests.sh @@ -9,13 +9,13 @@ set -ex SCRIPT_DIR="$( cd "$( dirname "$0" )" && pwd )" source $SCRIPT_DIR/defaults.sh +export VERILATOR_ROOT=$LOCAL_VERILATOR_DIR/install/share/verilator + run_bmark () { - export VERILATOR_ROOT=$LOCAL_VERILATOR_DIR/install/share/verilator make run-bmark-tests-fast -C $LOCAL_SIM_DIR VERILATOR_INSTALL_DIR=$LOCAL_VERILATOR_DIR $@ } run_asm () { - export VERILATOR_ROOT=$LOCAL_VERILATOR_DIR/install/share/verilator make run-asm-tests-fast -C $LOCAL_SIM_DIR VERILATOR_INSTALL_DIR=$LOCAL_VERILATOR_DIR $@ } @@ -26,22 +26,22 @@ run_both () { case $1 in example) - run_bmark SUB_PROJECT=example + run_bmark $mapping[$1] ;; boomexample) - run_bmark SUB_PROJECT=example CONFIG=DefaultBoomConfig + run_bmark $mapping[$1] ;; boomrocketexample) - run_bmark SUB_PROJECT=example CONFIG=DefaultBoomAndRocketConfig + run_bmark $mapping[$1] ;; boom) - run_bmark SUB_PROJECT=boom + run_bmark $mapping[$1] ;; rocketchip) - run_bmark SUB_PROJECT=rocketchip + run_bmark $mapping[$1] ;; hwacha) - run_bmark SUB_PROJECT=hwacha + make run-rv64uv-p-asm-tests-fst -C $LOCAL_SIM_DIR VERILATOR_INSTALL_DIR=$LOCAL_VERILATOR_DIR $mapping[$1] ;; *) echo "No set of tests for $1. Did you spell it right?"