From 4e34f6e135a0560c711161cee60b4ca951174500 Mon Sep 17 00:00:00 2001
From: David Mapstone <david@mapstone.me>
Date: Wed, 15 Mar 2023 16:47:56 +0000
Subject: [PATCH] SOC1-124: Updated set_env script

---
 flow/simulators/ivlog_sim.sh | 16 +++++++++++++
 flow/socsim                  | 18 ++++++++++++++
 set_env.sh                   | 46 ++++++++++++++++++++----------------
 3 files changed, 60 insertions(+), 20 deletions(-)
 create mode 100755 flow/simulators/ivlog_sim.sh
 create mode 100755 flow/socsim

diff --git a/flow/simulators/ivlog_sim.sh b/flow/simulators/ivlog_sim.sh
new file mode 100755
index 0000000..149b9ce
--- /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 0000000..4b2d7f1
--- /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 fcc9c40..8d0c2c3 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
-- 
GitLab