diff --git a/flow/simulators/ivlog_sim.sh b/flow/simulators/ivlog_sim.sh new file mode 100755 index 0000000000000000000000000000000000000000..149b9ceb0d244481a36a5bfc58923965081b2955 --- /dev/null +++ b/flow/simulators/ivlog_sim.sh @@ -0,0 +1,16 @@ +#----------------------------------------------------------------------------- +# SoC Labs icarus verilog simulation script for engine testbench +# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +# +# Contributors +# +# David Mapstone (d.a.mapstone@soton.ac.uk) +# +# Copyright 2022, SoC Labs (www.soclabs.org) +#----------------------------------------------------------------------------- + +#!/usr/bin/env bash + +mkdir -p $SOC_TOP_DIR/simulate/sim/ +iverilog -g2012 -o $SOC_TOP_DIR/simulate/sim/$1.vvp $ACC_WRAPPER_DIR/hdl/verif/tb_$1.sv +cd $SOC_TOP_DIR/simulate/sim/ && vvp $1.vvp $2 \ No newline at end of file diff --git a/flow/socsim b/flow/socsim new file mode 100755 index 0000000000000000000000000000000000000000..4b2d7f1bc9db2453e218a5bc01beaee19b3248c0 --- /dev/null +++ b/flow/socsim @@ -0,0 +1,18 @@ +#----------------------------------------------------------------------------- +# SoC Labs socsim script to run required simulation +# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +# +# Contributors +# +# David Mapstone (d.a.mapstone@soton.ac.uk) +# +# Copyright 2022, SoC Labs (www.soclabs.org) +#----------------------------------------------------------------------------- + +#!/usr/bin/env bash + +DEFAULT_SIMULATOR="ivlog" +if [[ -z "${SIMULATOR}" ]]; then + SIMULATOR=$DEFAULT_SIMULATOR +fi +$SOC_TOP_DIR"/flow/simulators/"$SIMULATOR"_sim.sh" $@ diff --git a/set_env.sh b/set_env.sh index fcc9c40cd1cf8652b0c2fcce06021c4df1378658..8d0c2c3100aed43376ccc385b87d5b5234a798a1 100755 --- a/set_env.sh +++ b/set_env.sh @@ -10,34 +10,40 @@ #----------------------------------------------------------------------------- #!/bin/bash -# Get Root Location of Repository +# Get Root Location of Design Structure if [ -z $DESIGN_ROOT ]; then # If $DESIGN_ROOT hasn't been set yet DESIGN_ROOT=`git rev-parse --show-superproject-working-tree` + if [ -z $DESIGN_ROOT ]; then - # If not in a submodule + # If not in a submodule - at root DESIGN_ROOT=`git rev-parse --show-toplevel` fi -fi -# Set Environment Variable for this Repository -export SHA_2_SOC_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + # Source Top-Level Sourceme + source $DESIGN_ROOT/set_env.sh +else + # Set Environment Variable for this Repository + export SOC_TOP_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" -# If this Repo is root of workspace -if [ $SHA_2_SOC_DIR = $DESIGN_ROOT ]; then - echo "Design Workspace: $SHA_2_SOC_DIR" - export DESIGN_ROOT -fi + # If this Repo is root of workspace + if [ $SOC_TOP_DIR = $DESIGN_ROOT ]; then + echo "Design Workspace: $DESIGN_ROOT" + export DESIGN_ROOT + # Set Default Simulator + export SIMULATOR="ivlog" + fi -# Source environment variables for all submodules -for d in $SHA_2_SOC_DIR/* ; do - if [ -f "$d/.git" ]; then - if [ -f "$d/set_env.sh" ]; then - # If .git file exists - submodule - source $d/set_env.sh + # Source environment variables for all submodules + for d in $SOC_TOP_DIR/* ; do + if [ -f "$d/.git" ]; then + if [ -f "$d/set_env.sh" ]; then + # If .git file exists - submodule + source $d/set_env.sh + fi fi - fi -done + done -# Add Scripts to PAth -export PATH="$PATH:/$SHA_2_SOC_DIR/flow" \ No newline at end of file + # Add Scripts to Path + export PATH="$PATH:/$SOC_TOP_DIR/flow" +fi \ No newline at end of file