diff --git a/docs/docker/README.md b/docs/docker/README.md index d9826114f..c5c89ab64 100644 --- a/docs/docker/README.md +++ b/docs/docker/README.md @@ -13,6 +13,7 @@ - `--network=host` for docker run - `xhost +localhost:${USER}` for host - [ ] Regression Script +- [ ] Configure the license for Questa ## TL;DR diff --git a/docs/docker/get_images.sh b/docs/docker/get_images.sh index a78fa51b4..17b1567c9 100755 --- a/docs/docker/get_images.sh +++ b/docs/docker/get_images.sh @@ -10,7 +10,7 @@ fi # if UBUNTU_BUILD is 0, then call function fetch_ubuntu_image # otherwise, call function build_ubuntu_image if [ $UBUNTU_BUILD -eq 0 ]; then - ${DOCKER_EXEC} pull wallysoc/wally + ${DOCKER_EXEC} pull wallysoc/ubuntu_wally else ${DOCKER_EXEC} build -t ubuntu_wally -f Dockerfile.ubuntu . ${DOCKER_EXEC} tag ubuntu_wally:latest wallysoc/ubuntu_wally:latest diff --git a/docs/docker/run_regression.sh b/docs/docker/run_regression.sh index 90e7f9bf9..72e7c7668 100755 --- a/docs/docker/run_regression.sh +++ b/docs/docker/run_regression.sh @@ -1,11 +1,17 @@ +#!/bin/bash # this script is used to run regression inside the Dockerfile.regression # of course, you can run it in the current environment as soon as # - RISCV is defined # - QUESTA is defined -QUESTA="/cad/mentor/questa_sim-xxxx.x_x" +export QUESTA="/cad/mentor/questa_sim-xxxx.x_x" + +export MGLS_LICENSE_FILE=27002@zircon.eng.hmc.edu # Change this to your Siemons license server +export SNPSLMD_LICENSE_FILE=27002@zircon.eng.hmc.edu # Change this to your Synopsys license server +export QUESTAPATH=/cad/mentor/questa_sim-xxxx.x_x/questasim/bin # Change this for your path to Questa +export SNPSPATH=/cad/synopsys/SYN/bin # Change this for your path to Design Compiler # now only main branch is supported -if [ -z "${CVW_GIT+x}" ]; then +if [ -z "${CVW_GIT}" ]; then echo "No CVW_GIT is provided" CVW_GIT="https://github.com/openhwgroup/cvw" fi @@ -13,17 +19,20 @@ fi export PATH="${RISCV}/bin:${PATH}" git config --global http.version HTTP/1.1 -# if cvw is not available or new cvw is required -if [ ! -f "/home/${USERNAME}/cvw/setup.sh" ] || [ -z "${CLEAN_CVW+x}" ]; then +# if cvw is not available or CLEAN_CVW(empty string) is defined +if [[ ! -f "/home/${USERNAME}/cvw/setup.sh" ]] || [[ -z "${CLEAN_CVW-x}" ]]; then cd /home/${USERNAME} && rm -rf /home/${USERNAME}/cvw git clone --recurse-submodules ${CVW_GIT} /home/${USERNAME}/cvw # if failed to clone submodules for some reason, please run `git submodule update` fi cd /home/${USERNAME}/cvw && chmod +x ./setup.sh && ./setup.sh -make install && make riscof && make testfloat +# build it only if BUILD_RISCOF is defined with empty string +if [[ -z "${BUILD_RISCOF-x}" ]]; then + make install && make riscof && make testfloat +fi -if [ -z "${RUN_QUESTA+x}" ] ; then +if [[ -z "${RUN_QUESTA-x}" ]] ; then if [ ! -f "${QUESTA}/questasim/bin/vsim" ]; then echo "Cannot find vsim with ${QUESTA}/questasim/bin/vsim" else @@ -32,6 +41,5 @@ if [ -z "${RUN_QUESTA+x}" ] ; then fi fi -cd sim && verilator -GTEST="\"arch64i\"" -DVERILATOR=1 \ - --timescale "1ns/1ns" --timing --binary --top-module testbench -I../config/shared -I../config/rv64gc ../src/cvw.sv ../testbench/testbench.sv ../testbench/common/*.sv ../src/*/*.sv ../src/*/*/*.sv --relative-includes -./obj_dir/Vtestbench 2>&1 > ./regression_verilator.out +cd sim && verilator -GTEST="\"arch64i\"" -DVERILATOR=1 --timescale "1ns/1ns" --timing --binary --top-module testbench -I../config/shared -I../config/rv64gc ../src/cvw.sv ../testbench/testbench.sv ../testbench/common/*.sv ../src/*/*.sv ../src/*/*/*.sv --relative-includes +/home/${USERNAME}/cvw/sim/obj_dir/Vtestbench > ./regression_verilator.out diff --git a/docs/docker/start.sh b/docs/docker/start.sh index 504433267..027c17b68 100755 --- a/docs/docker/start.sh +++ b/docs/docker/start.sh @@ -4,6 +4,7 @@ else DOCKER_EXEC=$(which docker) fi CVW_MOUNT=${CVW_MOUNT:$(pwd)/../../} +USERNAME="cad" UBUNTU_WALLY_HASH=$(${DOCKER_EXEC} images --quiet wallysoc/ubuntu_wally) TOOLCHAINS_HASH=$(${DOCKER_EXEC} images --quiet wallysoc/toolchains_wally)