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
+