81 lines
1.9 KiB
Bash
Executable File
81 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
FILENAME=$1
|
|
BASENAME=`basename $1`
|
|
DUMPFILE=$BASENAME.vcd
|
|
PREPROCFILE=$BASENAME.preproc
|
|
OUTFILE=$BASENAME.out
|
|
|
|
echo "\n"
|
|
|
|
# modul nevének kinyerése
|
|
MODULENAME=$(grep -E "^module (.)+" "$FILENAME" | cut -d\; -f1 | awk '{print $2}')
|
|
|
|
echo "Module: '$MODULENAME'"
|
|
|
|
# szimulációban szerepeltetendő jelek kinyerése
|
|
SIMSIGNALS=$(grep -E '^([^/]+)( `s )' "$FILENAME" | sed 's/[#(;][.]*//' | awk '{print $NF}')
|
|
|
|
if [ "$SIMSIGNALS" ] # ha vannak kiválasztott jelek
|
|
then
|
|
VARSTODUMP=""
|
|
|
|
# szimulálandó jelek összeírása a $dumpvars-hoz
|
|
for SIGNAME in $SIMSIGNALS
|
|
do
|
|
if [ "$VARSTODUMP" ]
|
|
then
|
|
VARSTODUMP="$VARSTODUMP, $MODULENAME.$SIGNAME"
|
|
else
|
|
VARSTODUMP="$MODULENAME.$SIGNAME"
|
|
fi
|
|
done
|
|
|
|
echo "Signals to display: $VARSTODUMP"
|
|
|
|
else # ha nincsenek
|
|
echo "No signals marked explicitly to simulate. Dumping all."
|
|
|
|
VARSTODUMP=$MODULENAME
|
|
fi
|
|
|
|
# szimulációs kiírási sorrend kinyerése
|
|
SIGSORT=$(grep -E '^(//# )' "$FILENAME" | sed 's|//# ||' | sed 's/, /,/g')
|
|
|
|
if [ "$SIGSORT" ] # ha meg van adva lista, akkor TCL-scriptet generál belőle
|
|
then
|
|
TCLSCRIPT="gtkwave::deleteSignalsFromListIncludingDuplicates [ gtkwave::getDisplayedSignals ]\n\n"
|
|
|
|
for line in $SIGSORT # parancs generálása soronként
|
|
do
|
|
TCLSCRIPT="$TCLSCRIPT gtkwave::addSignalsFromList [split \"$line\" ,]\n"
|
|
done
|
|
|
|
TCLFILENAME="$BASENAME.tcl";
|
|
|
|
# TCL-script kimentése
|
|
echo "$TCLSCRIPT" > "sims/$TCLFILENAME"
|
|
|
|
echo "Signal sorting TCL-file saved in 'sims/$TCLFILENAME'"
|
|
fi
|
|
|
|
|
|
# $dumpvars(...) beírása a fájlba
|
|
sed "/initial begin/a \$dumpfile(\"$DUMPFILE\");\n \$dumpvars(0, $VARSTODUMP);" "$FILENAME" > "$PREPROCFILE"
|
|
|
|
echo "\n"
|
|
|
|
# Verilog-fájl fordítása
|
|
iverilog -Wall "$PREPROCFILE" -o "sims/$OUTFILE"
|
|
|
|
rm "$PREPROCFILE"
|
|
|
|
#cd sims
|
|
|
|
# szimuláció futtatása
|
|
vvp "sims/$OUTFILE"
|
|
|
|
mv $DUMPFILE "sims/$DUMPFILE"
|
|
|
|
#cd -
|