diff --git a/flow/socsim b/flow/socsim new file mode 100755 index 0000000000000000000000000000000000000000..890bbc3f4d484e334603f602a87d7c878d0746f8 --- /dev/null +++ b/flow/socsim @@ -0,0 +1,24 @@ +#----------------------------------------------------------------------------- +# 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" $@ + +# Find a simulation script in the SoCSim environments of all subrepos +simscript=$(find -E ${SOCSIM_PATH//:/\/} -name "${1}.sh") + +# Run Script if Found +$simscript $@ \ No newline at end of file diff --git a/set_env.sh b/set_env.sh new file mode 100644 index 0000000000000000000000000000000000000000..62d45338584c4c80adf3c29e8808d62664a8a1a9 --- /dev/null +++ b/set_env.sh @@ -0,0 +1,62 @@ +#----------------------------------------------------------------------------- +# SoC Labs Environment Setup Script +# A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. +# +# Contributors +# +# David Mapstone (d.a.mapstone@soton.ac.uk) +# +# Copyright 2023, SoC Labs (www.soclabs.org) +#----------------------------------------------------------------------------- +#!/bin/bash + +# 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 - at root + DESIGN_ROOT=`git rev-parse --show-toplevel` + fi + + # Source Top-Level Sourceme + source $DESIGN_ROOT/set_env.sh +else + # Set Environment Variable for this Repository + export SOCSIM_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" + + # If this Repo is root of workspace + if [ $SOCSIM_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 $SOCSIM_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 + done + + # Add Scripts to Path + export PATH="$PATH:/$SOCSIM_DIR/flow" + + # SoCSim Specific + # Source environment variables for all submodules + for d in $DESIGN_ROOT/* ; do + if [ -f "$d/.git" ]; then + if [ -d "$d/simulate/socsim" ]; then + # If socsim directory exists + SOCSIM_PATH="$d/simulate/socsim:$SOCSIM_PATH" + fi + fi + done + export SOCSIM_PATH +fi +