Skip to content

Commit

Permalink
[sim] cleanup GHDL scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
stnolting committed Dec 21, 2024
1 parent 45a0219 commit 3df2f4e
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 50 deletions.
46 changes: 0 additions & 46 deletions sim/ghdl.run.sh

This file was deleted.

43 changes: 39 additions & 4 deletions sim/ghdl.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,46 @@
#!/usr/bin/env bash

# Abort if any command returns != 0
set -e

cd $(dirname "$0")
GHDL="${GHDL:-ghdl}"

echo "[TIP] Compile application with USER_FLAGS+=-DUART[0/1]_SIM_MODE to enable UART[0/1]'s simulation mode (redirect UART output to simulator console)."
# Prepare UART SIM_MODE output files
touch neorv32.uart0_sim_mode.out neorv32.uart1_sim_mode.out
chmod 777 neorv32.uart0_sim_mode.out neorv32.uart1_sim_mode.out

# Run simulation (pass down more than 1 parameter to GHDL)
/bin/bash ghdl.run.sh $@
# Prepare testbench UART log files
touch neorv32_tb.uart0_rx.out neorv32_tb.uart1_rx.out
chmod 777 neorv32_tb.uart0_rx.out neorv32_tb.uart1_rx.out

# GHDL build directory
mkdir -p build

# GHDL import
find ../rtl/core ../sim -type f -name '*.vhd' -exec \
ghdl -i --std=08 --workdir=build --ieee=standard --work=neorv32 {} \;

# GHDL analyze
$GHDL -m --work=neorv32 --workdir=build --std=08 neorv32_tb

# GHDL run parameters
if [ -z "$1" ]
then
GHDL_RUN_ARGS="${@:---stop-time=10ms}"
else
# Let's pass down all the parameters to GHDL
GHDL_RUN_ARGS=$@
fi
echo "GHDL simulation run parameters: $GHDL_RUN_ARGS";

# GHDL run
runcmd="$GHDL -r --work=neorv32 --workdir=build --std=08 neorv32_tb \
--max-stack-alloc=0 \
--ieee-asserts=disable \
--assert-level=error $GHDL_RUN_ARGS"

if [ -n "$GHDL_DEVNULL" ]; then
$runcmd >> /dev/null
else
$runcmd
fi

0 comments on commit 3df2f4e

Please sign in to comment.