# ModelSim simulation error

#### garvind25

##### Full Member level 2
Hi,

I am trying to simulate a simple inverter in ModelSim10.7 Windows 64 bit edition. I am getting the ‘novopt’ error. I tried by forcing the variable as ‘voptflow=0!’ in the modelsim.ini file. But the error remains. I am attaching a copy of the error pop up.

Pls. advice how to remove the error.

Thanks,
Arvind Gupta

##### Super Moderator
It states how to remove the error in the text showed. The voptflow is for enabling/disabling the use of the separate vopt program.

1) you can suppress the error: Error (suppressible) by using the 12110 number.
2) you can use vopt (separate program) or -voptargs (vsim switch) or +acc (vlog swith) with appropriate options to enable visibility of the objects of interest.
e.g.
r: registers/memories
n: nets
p: ports
are the typical basic ones you want to always use for debugging

If you need detailed information use the Modelsim documentation it's not hard to find the information.

#### garvind25

##### Full Member level 2
Thanks for the reply. I did check the user guide. As per it, it -novopt is to be removed from the vlog, vcom and vsim commands and the -voptflow variable is to be reset in the modelsim.ini file (snapshot attached). I was able to reset the variable in modelsim .ini file but I dont know where to find these commands for removing the switch. It would be there somewhere in the user guide but that is 1900+ pages long and I am new to this tool. Hence asking.

Arvind Gupta.

##### Super Moderator
Search the guide for voptarg and/or acc, which is what I was hoping you would do as I gave those two options in my previous post.

#### garvind25

##### Full Member level 2
OK. I did that. As I understood from the user manual, the -voptarg is used to pass command line instructions to the tool. For eg: vsim mydesign -voptargs="+acc=rn". Most probably the tool for the GUI mode also gets such instructions when the compile/simulate icons are clicked. Hence as asking in my previous post, where are these commands located for the GUI mode (like the voptflow option which is present in modelsim.ini file)? If I know that, I will be able to manually edit the same to remove the -novopt switch.

Thanks and Regards,
Arvind Gupta

##### Super Moderator
It should be under something like:

Simulate => Start Simulation => Others(tab) => Other Vsim Options(box)

You should really start writing do scripts to perform your compilation and launching the simulation. It makes it much easier to transition to developing regression suites to retest the design if you ever modify a design.

I've probably used the Compile and Simulate menus twice in the last 15 years, because someone who only uses the GUI flow never learned how to script a simulation. First thing I did was script the flow if I had more than a single simulation to run (which was the case every time).

#### garvind25

##### Full Member level 2
It should be under something like:

Simulate => Start Simulation => Others(tab) => Other Vsim Options(box)

You should really start writing do scripts to perform your compilation and launching the simulation. It makes it much easier to transition to developing regression suites to retest the design if you ever modify a design.
No joy. The vsim options box in my case is empty. Screenshot attached.

I would consider writing scripts if I can run atleast a few simulations from the GUI mode.

Arvind Gupta.

##### Super Moderator
Uh...

You do understand that empty box under "Other Vsim Options" can be typed in. That is where you would add the command switches like +acc=npr.

I think you should switch to using scripts as your GUI-fu seems to be very weak. Trying to develop expertise in the GUI is pointless IMO as it is way easier to script a simulation run.

Also if you aren't using an SE version (which I'm not sure Mentor even sells anymore) or Questa you don't even get optimization. The standard DE version doesn't include optimization. I actually miss having optimization (DE) as it can really improve simulation performance on a large design if you are only interested in having visibility inside only a block or two.

#### garvind25

##### Full Member level 2
Uh...

You do understand that empty box under "Other Vsim Options" can be typed in. That is where you would add the command switches like +acc=npr.

Also if you aren't using an SE version (which I'm not sure Mentor even sells anymore) or Questa you don't even get optimization. The standard DE version doesn't include optimization. I actually miss having optimization (DE) as it can really improve simulation performance on a large design if you are only interested in having visibility inside only a block or two.
OK thanks. Which switches should I use to avoid this problem (apart from +acc). I am first time to this tool.

Which version do you recommend using then; PE or something else?

Regards,
Arvind Gupta.

##### Super Moderator
OK thanks. Which switches should I use to avoid this problem (apart from +acc). I am first time to this tool.

Which version do you recommend using then; PE or something else?

Regards,
Arvind Gupta.
I've been trying to help, but you don't seem to understand anything I post!? No version of Modelsim (from their website they only have PE now) supports vopt (i.e. optimization beyond the basic -O1). If you want to use optimization you have to have a Questa license. Do not use -novopt on the vsim command line it is not supported.

To avoid the message you need to make sure your vsim command line has only options like:
-L <lib_option>
-do <do_file>
-t <sim_resolution>
-g/G <parameter/generic>
-l <simulation log file>

most of the other options are for specific uses and being a novice you likely won't need them.

Also make sure you don't have something in the Simulate => Start Simulation => Verilog (tab) => User Defined Arguments (+<plusarg>) box.

Like I've said before...better yet just write a script to run the simulation...it's less of a headache than what you are doing now.

Modelsim does output the vlog/vcom/vsim command lines used when running a simulation. Post them if this problem persists.

#### garvind25

##### Full Member level 2
Thanks for the description. I am new to Modelsim and Verilog. Maybe thereby this gap in understanding your posts. I am using ModelSim SE (10.7). It is a fresh install. I am using it for the purpose of learning Verilog. Hence I will prefer the GUI mode. Hence presently I wont need optimization and Questasim.

As understood from your previous posts, I need to add arguments in the’ Other VSim Options’ box to avoid the error. I am unable to decide which argument(s) to add in it. So could you pls. type out the exact string so that I can put it in the other vsim option box as it is? I suppose that would solve the entire problem.

BTW I checked. The Simulate => Start Simulation => Verilog (tab) => User Defined Arguments (+<plusarg>) box is empty.

Regards,
Arvind Gupta.

##### Super Moderator
You don't have to run Modelsim from a command line, I'm only telling you to write a do script (which is basically just tcl) to compile and run a simulation. Doing so will be better for you in the long run.
e.g.
file: compile.do
Code:
# Start all fresh and clean
if [file exists work] {vdel -lib work -all;vlib work} else {vlib work}

# some sv packages
vlog ../rtl/pkg1.sv
vlog sim_pkg2.sv

# Design files
vcom ../../rtl/vhdl1.vhd
vcom -2008 ../rtl/vhdl2.vhd
vlog ../rtl/verilog1.sv
vlog ../rtl/verilog2.sv

# testbench
vlog ../tb/testbench.sv

# fw core repo simulation models
vlog ../sim/model1/bus_model1.v
vlog ../sim/model2/bus_model2.sv

# simulation testcase
vlog testcase.sv
and to run it
file: simulate.do
Code:
vsim -t ps +define+MY_DEFINE -L some_lib testcase simulation_tasks
run -all
You can run these at the ModelSim> command prompt (Transcript window) using the following commands:
do compile.do
do simulate.do

This is a lot easier and a lot easier to describe, I don't use the gui menus (I only use the "gui" to get my waveforms displayed and to make it easier to select the signals in the waveform), so setting up a Modelsim project via the gui menus takes way too much effort for me and I don't have the time to write up a tutorial to assist you.