Skip to content

Commit 1ebc208

Browse files
authored
allow Xcelium, Modelsim, Questa as experimental simulators (#732)
* support for more experimental simulators (xcelium, questa, modelsim) * more simulators in Makefile, PSLSE version checking, more export_sim files * xcelium part of NVMe simulators * remove ncsim support, irun is still avail * add modelsim/questa as experimental simulators to README, xcelium as supported simulator Signed-off-by: jkayser <[email protected]>
1 parent 1f3eaec commit 1ebc208

11 files changed

+188
-77
lines changed

Diff for: check_pslse.sh

+6-5
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@
1818
cd ${PSLSE_ROOT}
1919
version=`git describe --tags`
2020
branch=`git branch`
21-
echo "checking PSLSE_ROOT=${PSLSE_ROOT} card=$FPGACARD version=$version branch=$branch"
22-
case $FPGACARD in
23-
"N250SP") if [ $branch != "\* capi2" ];then echo "WARNING: PSLSE branch=$branch should be capi2";fi;;
24-
*) if [ $version != "v3.1" ];then echo "WARNING: PSLSE version=$version should be v3.1";fi;;
25-
esac
21+
echo "checking PSLSE_ROOT=${PSLSE_ROOT}"
22+
echo "card=$FPGACARD version=$version branch=$branch PSLVER=$PSLVER"
23+
#case $FPGACARD in
24+
# "N250SP") if [ $branch != "\* capi2" ];then echo "WARNING: PSLSE branch=$branch should be capi2";fi;;
25+
# *) if [ $version != "v3.1" ];then echo "WARNING: PSLSE version=$version should be v3.1";fi;;
26+
#esac
2627
cd -

Diff for: hardware/Makefile

+4-4
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ SNAP_HDL_HLS=$(SNAP_HARDWARE_ROOT)/hdl/hls
104104
SNAP_SIM_CORE=$(SIM_DIR)/core
105105
SNAP_SIM_NVME=$(SIM_DIR)/nvme
106106

107-
SNAP_SIMULATORS += irun xsim
107+
SNAP_SIMULATORS += irun xsim questa modelsim xcelium
108108
SNAP_MODELS += .model_irun .model_xsim
109109

110110
SNAP_PP_FILES_VHD=$(SNAP_HDL_CORE)/psl_fpga.vhd \
@@ -190,7 +190,7 @@ check_snap_settings:
190190

191191
check_nvme:
192192
@if [ "$(SIMULATOR)" != "nosim" ] && [ "$(NVME_USED)" == "TRUE" ]; then \
193-
if [ "$(SIMULATOR)" != "irun" ]; then \
193+
if [ "$(SIMULATOR)" != "irun" ] && [ "$(SIMULATOR)" != "xcelium" ]; then \
194194
echo " NVMe simulation is not supported for SIMULATOR $(SIMULATOR)"; \
195195
exit -1; \
196196
fi; \
@@ -203,7 +203,7 @@ check_nvme:
203203
fi
204204

205205
check_simulator:
206-
@if [ "$(SIMULATOR)" != "irun" ] && [ "$(SIMULATOR)" != "xsim" ] && [ "$(SIMULATOR)" != "nosim" ]; then \
206+
@if [ "$(SIMULATOR)" != "irun" ] && [ "$(SIMULATOR)" != "xsim" ] && [ "$(SIMULATOR)" != "questa" ] && [ "$(SIMULATOR)" != "xcelium" ] && [ "$(SIMULATOR)" != "modelsim" ] && [ "$(SIMULATOR)" != "nosim" ]; then \
207207
echo " unknown simulator=$SIMULATOR"; \
208208
exit -1; \
209209
fi
@@ -502,7 +502,7 @@ clean:
502502
@echo -e " IPs";
503503
@$(RM) -r ip
504504
@echo -e " sim files";
505-
@$(RM) -r sim/ies sim/xsim hdl/nvme/component.xml hdl/nvme/xgui
505+
@$(RM) -r sim/ies sim/xsim sim/modelsim sim/questa sim/xcelium hdl/nvme/component.xml hdl/nvme/xgui
506506
@echo -e " log files";
507507
@$(RM) -r logs
508508
@echo -e " action / application";

Diff for: hardware/setup/create_framework.tcl

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ puts " setting up project settings"
7878
set_property target_language VHDL [current_project]
7979
set_property default_lib work [current_project]
8080
# Simulation
81-
if { ( $simulator == "ncsim" ) || ( $simulator == "irun" ) } {
81+
if { ( $simulator == "irun" ) } {
8282
set_property target_simulator IES [current_project]
8383
set_property compxlib.ies_compiled_library_dir $::env(IES_LIBS) [current_project]
8484
set_property -name {ies.elaborate.ncelab.more_options} -value {-access +rwc} -objects [current_fileset -simset]

Diff for: hardware/setup/export_modelsim.tcl

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#-----------------------------------------------------------
2+
#
3+
# Copyright 2016, International Business Machines
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
#-----------------------------------------------------------
18+
19+
set vivadoVer [version -short]
20+
set root_dir $::env(SNAP_HARDWARE_ROOT)
21+
set mentor_libs $::env(MENTOR_LIBS)
22+
set log_dir $::env(LOGS_DIR)
23+
set log_file $log_dir/compile_$::env(SIMULATOR).log
24+
25+
puts " export simulation for version=$vivadoVer"
26+
open_project $root_dir/viv_project/framework.xpr >> $log_file
27+
export_simulation -force -directory "$root_dir/sim" -simulator modelsim -lib_map_path "$mentor_libs" -ip_user_files_dir "$root_dir/viv_project/framework.ip_user_files" -ipstatic_source_dir "$root_dir/viv_project/framework.ip_user_files/ipstatic" -use_ip_compiled_libs >> $log_file
28+
close_project >> $log_file

Diff for: hardware/setup/export_xcelium.tcl

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#-----------------------------------------------------------
2+
#
3+
# Copyright 2016, International Business Machines
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
#-----------------------------------------------------------
18+
19+
set vivadoVer [version -short]
20+
set root_dir $::env(SNAP_HARDWARE_ROOT)
21+
set ies_libs $::env(IES_LIBS)
22+
set log_dir $::env(LOGS_DIR)
23+
set log_file $log_dir/compile_$::env(SIMULATOR).log
24+
set nvme_used $::env(NVME_USED)
25+
26+
puts " export simulation for version=$vivadoVer"
27+
open_project $root_dir/viv_project/framework.xpr >> $log_file
28+
export_simulation -force -directory "$root_dir/sim" -simulator xcelium -lib_map_path "$ies_libs" -ip_user_files_dir "$root_dir/viv_project/framework.ip_user_files" -ipstatic_source_dir "$root_dir/viv_project/framework.ip_user_files/ipstatic" -use_ip_compiled_libs >> $log_file
29+
close_project >> $log_file

Diff for: hardware/setup/patch_sim.sh

+35-24
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,39 @@ set -e
2020
NAME=`basename $2`
2121
if [ "$NAME" == "top.sh" ]; then
2222
echo " patch $NAME for $SIMULATOR"
23-
if [ "$SIMULATOR" == "xsim" ]; then
24-
sed -i "s/ simulate/# simulate/g" $1/$2 # run up to elaboration, skip execution
25-
sed -i "s/-log elaborate.log/-log elaborate.log -sv_lib libdpi -sv_root ./g" $1/$2
26-
fi
27-
if [ "$SIMULATOR" == "irun" ]; then
28-
sed -i "s/93 -relax/93 -elaborate -relax/gI" $1/$2 # run irun up to elaboration, skip execution
29-
sed -i "s/-top xil_defaultlib.top/-top work.top/gI" $1/$2 # build top in work library
30-
if [[ "$NVME_USED" == "TRUE" && -n "$DENALI" ]]; then :
31-
echo " patch $irun include denali files for NVMe"
32-
perl -i.ori -pe 'use Env qw(DENALI);s/(glbl.v)/$1 \\\n +incdir+"${DENALI}\/ddvapi\/verilog"/mg' $1/$2 # add denali include directory
33-
perl -i.ori -pe 'use Env qw(DENALI);s/(-namemap_mixgen)/$1 -disable_sem2009 -loadpli1 ${DENALI}\/verilog\/libdenpli.so:den_PLIPtr/mg' $1/$2 # add denali .so
34-
fi
35-
if [ -f ${SNAP_HARDWARE_ROOT}/sim/ies/run.f ]; then
36-
# perl -i.ori -pe 's/(.*\/verilog\/top.v)/ -sv $1/mg' ${SNAP_HARDWARE_ROOT}/sim/ies/run.f; # compile top.v with system verilog, not needed anymore, since we work now with top.sv
37-
perl -i.ori -pe 'BEGIN{undef $/;} s/(^-makelib.*\n.*glbl.v.*\n.*endlib)//mg' ${SNAP_HARDWARE_ROOT}/sim/ies/run.f; # remove glbl.v from compile list
38-
fi
39-
fi
40-
if [ "$SIMULATOR" == "ncsim" ]; then
41-
sed -i "s/ simulate/# simulate/g" $1/$2 # run ncsim up to elaboration, skip execution
42-
sed -i "s/opts_ver=/set -e\nopts_ver=/g" $1/$2 # use set -e to stop compilation on first error
43-
fi
44-
if [ "$SIMULATOR" == "questa" ]; then
45-
sed -i "s/ simulate/# simulate/g" $1/$2 # run up to elaboration, skip execution
46-
fi
23+
case $SIMULATOR in
24+
"xsim") sed -i "s/ simulate/# simulate/g" $1/$2 # run up to elaboration, skip execution
25+
sed -i "s/-log elaborate.log/-log elaborate.log -sv_lib libdpi -sv_root ./g" $1/$2
26+
;;
27+
"irun") sed -i "s/93 -relax/93 -elaborate -relax/gI" $1/$2 # run irun up to elaboration, skip execution
28+
sed -i "s/-top xil_defaultlib.top/-top work.top/gI" $1/$2 # build top in work library
29+
if [[ "$NVME_USED" == "TRUE" && -n "$DENALI" ]]; then :
30+
echo " patch $irun include denali files for NVMe"
31+
perl -i.ori -pe 'use Env qw(DENALI);s/(glbl.v)/$1 \\\n +incdir+"${DENALI}\/ddvapi\/verilog"/mg' $1/$2 # add denali include directory
32+
perl -i.ori -pe 'use Env qw(DENALI);s/(-namemap_mixgen)/$1 -disable_sem2009 -loadpli1 ${DENALI}\/verilog\/libdenpli.so:den_PLIPtr/mg' $1/$2 # add denali .so
33+
fi
34+
if [ -f ${SNAP_HARDWARE_ROOT}/sim/ies/run.f ]; then
35+
# perl -i.ori -pe 's/(.*\/verilog\/top.v)/ -sv $1/mg' ${SNAP_HARDWARE_ROOT}/sim/ies/run.f; # compile top.v with system verilog, not needed anymore, since we work now with top.sv
36+
perl -i.ori -pe 'BEGIN{undef $/;} s/(^-makelib.*\n.*glbl.v.*\n.*endlib)//mg' ${SNAP_HARDWARE_ROOT}/sim/ies/run.f; # remove glbl.v from compile list
37+
fi
38+
;;
39+
"xcelium")
40+
sed -i "s/93 -relax/93 -elaborate -relax/gI" $1/$2 # run irun up to elaboration, skip execution
41+
sed -i "s/-top xil_defaultlib.top/-top work.top/gI" $1/$2 # build top in work library
42+
if [[ "$NVME_USED" == "TRUE" && -n "$DENALI" ]]; then :
43+
echo " patch $irun include denali files for NVMe"
44+
perl -i.ori -pe 'use Env qw(DENALI);s/(glbl.v)/$1 \\\n +incdir+"${DENALI}\/ddvapi\/verilog"/mg' $1/$2 # add denali include directory
45+
perl -i.ori -pe 'use Env qw(DENALI);s/(-namemap_mixgen)/$1 -disable_sem2009 -loadpli1 ${DENALI}\/verilog\/libdenpli.so:den_PLIPtr/mg' $1/$2 # add denali .so
46+
fi
47+
if [ -f ${SNAP_HARDWARE_ROOT}/sim/xcelium/run.f ]; then
48+
# perl -i.ori -pe 's/(.*\/verilog\/top.v)/ -sv $1/mg' ${SNAP_HARDWARE_ROOT}/sim/xcelium/run.f; # compile top.v with system verilog, not needed anymore, since we work now with top.sv
49+
perl -i.ori -pe 'BEGIN{undef $/;} s/(^-makelib.*\n.*glbl.v.*\n.*endlib)//mg' ${SNAP_HARDWARE_ROOT}/sim/xcelium/run.f; # remove glbl.v from compile list
50+
fi
51+
;;
52+
"questa"|"modelsim")
53+
sed -i "s/ simulate/# simulate/g" $1/$2 # run up to elaboration, skip execution
54+
;;
55+
*) echo "unknown simulator=$SIMULATOR, terminating"
56+
;;
57+
esac
4758
fi

Diff for: hardware/sim/README.md

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Simulation
2-
SNAP supports *Xilinx xsim* and *Cadence irun* tools for simulation.
3-
The environment variable `SIMULATOR` (see make snap_config) selects the simulator and can be set to `xsim` or to `irun`.
2+
SNAP supports *Xilinx xsim* and *Cadence irun or xcelium* tools for simulation.
3+
Other simulators like Mentor Modelsim or questa are supported by the respective Xilinx Vivado version and can be used as well,
4+
but due to lack of licenses this support is not tested and is built into the SNAP framework as "experimental use" without warranty.
5+
The environment variable `SIMULATOR` (see make snap_config) selects the simulator.
46

57
## Building a model
68
see [Image and model build](../#image-and-model-build) for further instructions
@@ -42,7 +44,7 @@ the variable `PSLSE_ROOT` (defined in `${SNAP_ROOT}/snap_env.sh`) needs to point
4244
```
4345
export PSLSE_ROOT= # path for the PSL simulation environment
4446
export PSLVER= # PSLSE functionality for POWER8 or POWER9
45-
export PSL_DCP= # path to the PSL checkpoint fitting your target card
47+
export PSL_DCP= # path to the PSL checkpoint fitting your target card. For Simulation this is not needed and usually commented out
4648
```
4749

4850
## Cadence irun

Diff for: hardware/sim/ncrun.tcl

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16-
version ;# show ncsim version
16+
version ;# show irun version
1717
assertion -off -all ;# Disable all assertion fails prior to reset done.
1818
input ncaet.tcl ;# enabled through run_sim
1919
set intovf_severity_level {warning};

Diff for: hardware/sim/run_sim

+45-26
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,22 @@
4545
HOSTNAME=`hostname -s`; echo "hostname=$HOSTNAME arguments=$@"
4646
TS=`date +%Y%m%d_%H%M%S`; if [ "$TST_TITLE" != "" ];then TS="${TS}_${TST_TITLE}";fi
4747
export SNAP_ROOT=${PWD%/hardware/sim*};echo "SNAP_ROOT=$SNAP_ROOT" # default root, in case its not overwritten
48-
[ -f "${SNAP_ROOT}/snap_env.sh" ] && . ${SNAP_ROOT}/snap_env.sh
4948
[ -f "${SNAP_ROOT}/.snap_config.sh" ] && . ${SNAP_ROOT}/.snap_config.sh
49+
[ -f "${SNAP_ROOT}/snap_env.sh" ] && . ${SNAP_ROOT}/snap_env.sh # snap_env at the end allows late overrides
5050
export PATH=$PATH:$SNAP_ROOT/software/tools:$ACTION_ROOT/sw
51-
5251
if [ -z $PSLSE_ROOT ];then echo "variable PSLSE_ROOT not found, leaving"; exit 11; fi
5352

5453
# ARGUMENTS #############
5554
runsim_args=$@
5655
while [[ $# > 0 ]]; do # consume multiple args per loop with shift
5756
# echo "arg1=$1 arg2=$2"
5857
case $1 in
59-
ncsim|xsim|irun) SIM_OVER="$1";;
58+
xsim|irun|questa|modelsim|xcelium) SIM_OVER="$1";;
6059
-xsim) SIM_OVER="xsim";;
6160
-irun) SIM_OVER="irun";;
62-
-ncsim) SIM_OVER="ncsim";;
61+
-questa) SIM_OVER="questa";;
62+
-xcelium) SIM_OVER="xcelium";;
63+
-modelsim) SIM_OVER="modelsim";;
6364
-app) TST_NAME="$2";shift
6465
if [[ ! -f ${SNAP_ROOT}/software/${TST_NAME} ]];then echo "file ${SNAP_ROOT}/software/${TST_NAME} not found, leaving";exit 11;fi;;
6566
-list) TST_NAME='LIST';LISTNAME="$2";shift
@@ -117,21 +118,33 @@
117118
shift
118119
done
119120

120-
if [[ -z $SIMDIR && -z $SIMULATOR ]];then SIMULATOR="ncsim"; fi # simulator determined by environment variable
121+
if [[ -z $SIMDIR && -z $SIMULATOR ]];then SIMULATOR="irun"; fi # simulator determined by environment variable
121122
if [[ -n $SIM_OVER ]];then echo "force simulator overwrite from $SIMULATOR to $SIM_OVER";SIMULATOR=$SIM_OVER;fi
122-
if [[ "$SIMULATOR" == "ncsim" || "$SIMULATOR" == "irun" ]];then
123-
if [ -z $CDS_INST_DIR ];then echo "CDS_INST_DIR not defined for $SIMULATOR"; exit 1; fi
124-
SIMDIR="ies" # simulation directory generated by vivado
125-
if [ -z $SIMTOP ];then SIMTOP="work.top";fi # default top structure
126-
elif [ "$SIMULATOR" == "xsim" ];then
127-
SIMDIR=$SIMULATOR # simulation directory generated by vivado
128-
if [ -z $SIMTOP ];then SIMTOP="top";fi # default top structure
129-
elif [[ "$SIMULATOR" == "questa" || "$SIMDIR" == "questa" ]];then
130-
if [ -z $MODELSIM_DIR ];then echo "MODELSIM_DIR not defined for questa"; exit 1; fi
131-
SIMDIR="questa" # simulation directory generated by vivado
132-
SIMULATOR="vsim"
133-
if [ -z $SIMTOP ];then SIMTOP="top";fi # default top structure
134-
else echo "simulator=$SIMULATOR is not supported"; exit 1; fi
123+
case $SIMULATOR in
124+
irun)
125+
if [ -z $CDS_INST_DIR ];then echo "CDS_INST_DIR not defined for $SIMULATOR"; exit 1; fi
126+
SIMDIR="ies" # simulation directory generated by vivado
127+
if [ -z $SIMTOP ];then SIMTOP="work.top";fi # default top structure
128+
;;
129+
xcelium)
130+
if [ -z $CDS_INST_DIR ];then echo "CDS_INST_DIR not defined for $SIMULATOR"; exit 1; fi
131+
SIMDIR="xcelium" # simulation directory generated by vivado
132+
SIMULATOR="xrun"
133+
if [ -z $SIMTOP ];then SIMTOP="work.top";fi # default top structure
134+
;;
135+
xsim)
136+
SIMDIR=$SIMULATOR # simulation directory generated by vivado
137+
if [ -z $SIMTOP ];then SIMTOP="top";fi # default top structure
138+
;;
139+
questa|modelsim)
140+
if [ -z $MODELSIM_DIR ];then echo "MODELSIM_DIR not defined for questa"; exit 1; fi
141+
SIMDIR="questa" # simulation directory generated by vivado
142+
SIMULATOR="vsim"
143+
if [ -z $SIMTOP ];then SIMTOP="top";fi # default top structure
144+
;;
145+
*) echo "simulator=$SIMULATOR is not supported"; exit 1
146+
;;
147+
esac
135148
echo "simulator=$SIMULATOR simdir=$SIMDIR simtop=$SIMTOP"
136149

137150
P3=`basename $PWD`
@@ -144,7 +157,7 @@
144157
fi
145158

146159
P3=`basename $PWD`
147-
if [ "$P3" == "ies" ] || [ "$P3" == "xsim" ]|| [ "$P3" == "questa" ];then # contains files from Vivado and sim output, no GIT release
160+
if [ "$P3" == "ies" ]||[ "$P3" == "xsim" ]||[ "$P3" == "questa" ]||[ "$P3" == "modelsim" ]||[ "$P3" == "xcelium" ];then # contains files from Vivado and sim output, no GIT release
148161
echo "prepare simout directory from pwd=$PWD p3=$P3"
149162
# P3=`basename $PWD`
150163
# P4=`dirname $PWD`
@@ -162,7 +175,7 @@
162175
else echo "cannot find list=${filename}.sh";exit 1
163176
fi
164177
fi
165-
if [ "$SIMDIR" == "ies" ];then
178+
if [ "$SIMDIR" == "ies" ]||[ "$SIMDIR" == "xcelium" ];then
166179
# cp run_* cds.lib hdl.var $SIMOUT
167180
cp ../nc*.tcl $SIMOUT
168181
# cp nc*.log $SIMOUT # compile output in case of debug questions
@@ -174,8 +187,14 @@
174187
cd $SIMOUT
175188
# ln -s $SNAP_ROOT/hardware/support support # to easier get to waveform signallists
176189
if [ "$SIMDIR" == "ies" ];then
177-
ln -s $SNAP_ROOT/hardware/sim/ies/ies # point to compiled model
178-
ln -s $SNAP_ROOT/hardware/sim/ies/INCA_libs # point to compiled model
190+
ln -s $SNAP_ROOT/hardware/sim/ies/ies # ?
191+
ln -s $SNAP_ROOT/hardware/sim/ies/INCA_libs # point to compiled model
192+
ln -s $SNAP_ROOT/hardware/sim/ies/ies_libs # point to compiled library
193+
ln -s $SNAP_ROOT/hardware/sim/nvme denali # point to denali runtime files
194+
elif [ "$SIMDIR" == "xcelium" ];then
195+
ln -s $SNAP_ROOT/hardware/sim/xcelium/xcelium # ?
196+
ln -s $SNAP_ROOT/hardware/sim/xcelium/xcelium.d # point to compiled model
197+
ln -s $SNAP_ROOT/hardware/sim/xcelium/xcelium_lib # point to compiled library
179198
ln -s $SNAP_ROOT/hardware/sim/nvme denali # point to denali runtime files
180199
elif [ "$SIMDIR" == "xsim" ];then
181200
ln -s $SNAP_ROOT/hardware/sim/xsim/xsim.dir
@@ -207,8 +226,8 @@
207226
if [[ "$NVME_USED" == "TRUE" && -n "$DENALI" ]]; then
208227
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DENALI/verilog # to find libvpi.so and libdenpli.so
209228
fi
210-
if [ "$SIMDIR" == "ies" ];then
211-
# if [ "$SIM_INIT" == "" ];then SIM_INIT='-ncinitialize x';fi # default init value for ncsim
229+
if [ "$SIMDIR" == "ies" ]||[ "$SIMDIR" == "xcelium" ];then
230+
# if [ "$SIM_INIT" == "" ];then SIM_INIT='-ncinitialize x';fi # default init value for irun
212231
# SIM_ARG='-gui' # interactive, stop @cyc0
213232
# SIM_ARG='-gui -tcl' # interactive with simvision
214233
# SIM_ARG='-gui -run -tcl' # non_interactive, with simvision
@@ -283,8 +302,8 @@
283302
echo "run_sim sim_arg=${SIM_ARG}, tst_arg=${TST_ARG}, AET=$AET"|tee -a sim.log
284303

285304
##### call Simulator
286-
echo "**** call simulator=$SIMULATOR in background, wait for socket in $SIMULATOR.log->shim_host.dat"|tee -a sim.log &
287-
if [ "$SIMULATOR" == "irun" ];then SIM_ARG+=" -r";fi
305+
if [ "$SIMULATOR" == "irun" ]||[ "$SIMULATOR" == "xrun" ];then SIM_ARG+=" -r";fi
306+
echo "**** call simulator=$SIMULATOR $SIM_ARG $SIMTOP in background, wait for socket in $SIMULATOR.log->shim_host.dat"|tee -a sim.log &
288307
$SIMULATOR $SIM_ARG $SIMTOP |tee -a sim.log &
289308
SIMLOG_PID=$! # sim.log records 1st socket
290309
SIMLOG_PPID=`ps -ef|grep $SIMLOG_PID |grep tee |awk '{print $3}'`

0 commit comments

Comments
 (0)