Forum Discussion

GLous's avatar
GLous
Icon for New Contributor rankNew Contributor
7 years ago

how to see all signals without optimization in modelsim 10.7

I'm simulating with modelsim 10.7 a design created with Quartus Prime Pro 18, but I don't know hot to do the simulation with no optimizations with this new version.

I attach the simScript.do where now is the -O0 option I'v tried multiple options from vopt but without success.

So, what I'm doing wrong? what would be the correct set of options in order that Modelsim shows all signals including the ones for debug?

Thanks,

set QPRJ_DIR D:/LHCb/FPGAPrjs/UTDataProcV01
set QSYS_SIMDIR $QPRJ_DIR/sims
set QSRC_DIR D:/LHCb/FPGAPrjs/src
 
source $QSYS_SIMDIR/mentor/msim_setup.tcl
dev_com
com
 
# #################################################################
#			TEST BENCHS
# ################################################################# 
vcom -work work $QPRJ_DIR/TestBenchs/UTDPtestBench.vhd
# #################################################################
#			CUSTOM PACKAGES
# #################################################################
vcom -O0 -work work $QSRC_DIR/HwSrc/UTDataProcSimTop.vhd 
vcom -O0 -work work $QSRC_DIR/HwSrc/UT_DataProcessing.vhd
vcom -O0 -work work $QSRC_DIR/HwSrc/UT_DP_PreProc.vhd
 
set TOP_LEVEL_NAME Compactor_tb
elab
 
view structure
view signals
 
add wave -noupdate -group DP_C sim:/compactor_tb/CompactorDUT/CompBasic/DP_C/*
 
restart
run 2 us

7 Replies

  • Tricky's avatar
    Tricky
    Icon for Occasional Contributor rankOccasional Contributor

    I cant see the vopt or vsim commands.

    If -novopt vsim option has finally been deprecated (like they threatened 3 years ago) then you will need to use +acc=<path> args to vopt to get visibility inside your modules.

    You will probably need to read the modelsim manual for full explination of the +acc arguments.

  • GLous's avatar
    GLous
    Icon for New Contributor rankNew Contributor

    in the simscript.do generated with Quartus there is no vsim, also modelsim recomends not to use +acc, so I tried to use the vopt -assertdebug but continues not showing the signals that I don't read anywhere. Also there no error nor warning.

    In the VOPT chapter on modelsim 10.7 manual:

    Mentor recommends moving away from using the +acc argument with vopt for the

    following reasons:

    • It may reduce simulation speed.

    • The +acc argument and many of its values have been replaced by a collection of

    individual arguments listed in Using vopt for Access Control for Visibility During

    Optimization.

    The +acc argument is still supported for backward compatibility, but you should use the

    replacement arguments instead.

  • Abe's avatar
    Abe
    Icon for Frequent Contributor rankFrequent Contributor

    You can turn off optimization using the -novopt switch like below:

    vcom -novopt ....

    then run the simulation using vsim command.

    The other way is to disable optimizatio globally using the Modelsim.ini file in your work folder.

    [vsim]
    ; vopt flow
    ; Set to turn on automatic optimization of a design.
    ; Default is on
    VoptFlow = 1

    Change this VoptFlow = 1 to VoptFlow = 0. This will disable optimization for further compiles and simulations. This modelsim.ini file should be modified only for the project , ie, in your source/working directory

  • KhaiChein_Y_Intel's avatar
    KhaiChein_Y_Intel
    Icon for Regular Contributor rankRegular Contributor

    Hi,

    Use +acc with vopt to preserve visibility of all objects in the design or vsim -voptargs with +acc for selective design object visibility during debugging.

  • GLous's avatar
    GLous
    Icon for New Contributor rankNew Contributor

    Hi,

    @Abe​ if I change VoptFlow to 0 I get an error when runing:

    # [exec] dev_com
    # Model Technology ModelSim SE-64 vcom 10.7 Compiler 2017.12 Dec  7 2017
    # ** Error (suppressible): (vcom-12110) All optimizations are disabled because the -novopt option is in effect. This will cause your simulation to run very slowly. If you are using this switch to preserve visibility for Debug or PLI features, please see the User's Manual section on Preserving Object Visibility with vopt. -novopt option is now deprecated and will be removed in future releases.
    # Errors: 1, Warnings: 0
    # ** Error: C:/modeltech64_10.7/win64/vcom failed.
    # Error in macro ./simScript.do line 26
    # C:/modeltech64_10.7/win64/vcom failed.
    #     while executing
    # "vcom C:/intelfpga_pro/18.0/quartus//eda/sim_lib/altera_syn_attributes.vhd -work altera"
    #     ("eval" body line 1)
    #     invoked from within
    # "eval  vcom $USER_DEFINED_VHDL_COMPILE_OPTIONS $USER_DEFINED_COMPILE_OPTIONS        "$QUARTUS_INSTALL_DIR/eda/sim_lib/altera_syn_attributes.vhd"       ..."
    #     invoked from within
    # "if [string is false -strict [modelsim_ae_select $FORCE_MODELSIM_AE_SELECTION]] {
    #     eval  vcom $USER_DEFINED_VHDL_COMPILE_OPTIONS $USER_DEFINED_COMPI..."
    #     ("eval" body line 5)
    #     invoked from within
    # "dev_com"

    @KhaiY_Intel​ in the simscript.do generate from quartus where I have to put the the parameters to void optimization?

    What I do is from modelsim transcript, I go to the folder inside the project /mentor where is the simscript.do and the I execute via: do simscript.do

    Thanks

    in the cript file there is no vsim

  • Abe's avatar
    Abe
    Icon for Frequent Contributor rankFrequent Contributor

    well, I've set it up on my system this way and it works for me.. not on 10.7 SE edition but lower one 10.5c

    [vsim]
    ; Simulator resolution
    ; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 100.
    Resolution = ps
     
    ; vopt flow
    ; Set to turn on automatic optimization of a design.
    ; Default is on
    VoptFlow = 0
     
    ; User time unit for run commands
    ; Set to default, fs, ps, ns, us, ms, or sec. The default is to use the
    ; unit specified for Resolution. For example, if Resolution is 100ps,
    ; then UserTimeUnit defaults to ps.
    ; Should generally be set to default.
    UserTimeUnit = default
     
    ; Default run length
    RunLength = 100

    I didnt use the -novopt option after setting this in the modelsim.ini file though.