It appears that Questa Formal’s AutoCheck’s documentation isn’t up to date. Aside this, it is indeed simple and quick to setup.
Tag Archives: questa
Do not delete Questa’s Excel plugin installer
It caught me by surprise. Questa’s Testplan Tracking Excel plugin installer requires the previously used installer during its update. Unfortunately, it doesn’t even show which version of the installer was previously installed. Thus making hard to first find the correct version of the installed plugin and its installer, prior to the update. Note to self: …
Continue reading “Do not delete Questa’s Excel plugin installer”
Register Assistant feature of the Questa
Just noticed that Questa has a UVM register definition generator, vreguvm. $ vreguvm -autoinstance -block default_top_block -csvin myproject.csv -uvmversion 1.1 -uvmout registers_pkg_uvm.sv
No $time with system task $fatal
On the quest to remove redundant code from my testbenches, $time was among the victims to be dropped from all SV call $fatal. Now I’m using $realtime instead of $time when writing SVAs. Take the following statement along with its output as example: $fatal(`ASSERT_LEVEL, “[%m]: Assertion property pp_ahb_readyout_resp failed @ time %0t”, $time); # …
UVM related command line functions
Some UVM related command line functions on questa: ‘call’ can be used to call any UVM SV function. ‘findregisters, fr’ can be used to find HDL registers for a UVM register model. ‘findsequences, fs’ can be used to find currently active sequences. ‘find insource’ searches through only compiled code to find the given matching string. …
View assertion failures on the waveforms
To view assertion failures, ensure that the following switches are enabled with vsim: -msgmode both -assertdebug -msgmode is a switch used to control where the elaboration and runtime messages are output. It records messages in the waveform database and add a hyperlink to the source code where the message was emitted. As from v10.1, the …
Mismatch when merging UCDBs
$ vcover merge -strip 0 -totals -verbose merge.ucdb testplan.ucdb coverage.ucdb ** Error: (vcover-6823) Can’t read UCDB file testplan.ucdb, the database was generated by a more recent version of Questa, and this version 10.2b can’t read it. Solution: $ sed -i “s|10030047|10020046|” testplan.ucdb
SV: fatal error dpi_get_next_arg_c
# ** Fatal: (vsim-160) /uvm-1.1b/src/dpi/uvm_svcmd_dpi.svh(27): Null foreign function pointer encountered when calling ‘dpi_get_next_arg_c’ # Time: 0 ps Iteration: 0 Process: /uvm_pkg/#INITIAL#614 File: uvm-1.1b/src/dpi/uvm_svcmd_dpi.svh To avoid such fatal errors with UVM, ensure that +define+UVM_NO_DPI is used during the testbench compilation.
SV: compiling UVM based files
To compile and to simulate an UVM based testbench: vlog -64 +define+UVM_NO_DPI -suppress 1194 -quiet -O5 -cover s -nolock -lint -source -mixedsvvh -work work -L ${UVM_LIB} +incdir+TB +incdir+${QUESTA_UVM_HOME} testbench.sv vsim +UVM_VERBOSITY=UVM_LOW -classdebug -msgmode both -uvmcontrol=all -voptargs=+acc work.testbench It is recommended to use ‘all’ option with ‘uvmcontrol’ switch to include all UVM-aware functionality and debug options …
SV: warnings due to anonymous formals
When Questa complains of (vopt-2606) Anonymous formals are allowed with method prototype (pure/extern) only. Treating this as a default type variable. this is due to the most probable unwanted use of anonymous formals in SV method definitions, e.g function new (transmission_reg_t = READ); was written instead of function new (transmission_reg_t transmission_reg = READ);