From 55fae46b24cd1ec6e93347e553ad3d5e88fc0064 Mon Sep 17 00:00:00 2001 From: David Mapstone <david@mapstone.me> Date: Thu, 16 Mar 2023 11:12:42 +0000 Subject: [PATCH] SOC1-121: Update SoCSim Flow --- flow/socsim | 24 +++++++++++++++++++++ set_env.sh | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100755 flow/socsim create mode 100644 set_env.sh diff --git a/flow/socsim b/flow/socsim new file mode 100755 index 0000000..890bbc3 --- /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 0000000..62d4533 --- /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 + -- GitLab