Skip to content

htminuslab/Questa-Launcher

Repository files navigation

Questa Launcher — VS Code Extension

A VS Code extension that provides a GUI panel for launching Questa EDA flows. Select a tool, fill in the fields, and the extension generates a script file and runs the appropriate command in a VS Code terminal.

A scan option is available to extract information from the design such as the RTL source directories, Testbench and Device Under Test name.

Three tools are included:

Tool Dropdown label Terminal command
Questa Visualizer Run Questa Visualizer qrun … -f qrun_sim.f
Questa Increased Coverage Run Questa Increased Coverage qverify … -do run_cc.do
Questa Inspect (AutoCheck) Run Questa Inspect qverify -c … -do run_ac.do

Install

Install via the vsix file. In VS Code open the Extensions view, click the menu, choose Install from VSIX…, and select tcl-launcher-0.0.1.vsix. The launcher appears in the activity bar as a rocket icon.

Figure: Questa Launcher panel in VS Code

Quick Steps to use

  1. Select the required Questa tool from the top level pull-down menu
  2. Hit the Scan button, this runs an in-process RTL parser over the open workspace. It recursively searches for .vhd, .vhdl, .v, .sv, .svh, and .vh source files and:
  • Identifies the Testbench (Visualizer) or DUT (CoverCheck/AutoCheck) from the design hierarchy.
  • Populates the Source Folders field with a list of discovered source directories.
  • Writes dirList.txt to the workspace root (used by the Automatic compile method).
  • Auto-fills wave, waiver, and exclusion file fields if matching files are found.
  1. Check the Testbench Name or Device Under Test name. Note the parser is not a full VHDL/Verilog parser and hence doesn't always find the right name. Correct if required.

  2. Check that source folders, correct if required. Note that all files in the selected folders will be compiled. If this is a problem either move the non-required files into another folder or use the customer file list option.

  3. Update the Library Name if required, default is work. The library will be compiled to a folder under the Output Directory.

  4. Fill in any other required field before hitting the Run button.

Questa Visualizer

Figure: Questa Visualizer panel

Runs simulation via qrun. The generated script is qrun_sim.f.

Compile/Run Method options:

Option Behaviour
Automatic Click SCAN first. Compiles from dirList.txt.
Custom filelist Compiles with -f <Script Name>.
qrun.f Passes the named file directly to qrun — all other fields except the Output Directory are ignored.

Notable fields:

  • Command Line Run (-c) — runs vsim in headless mode. If unchecked, the Visualizer GUI opens.
  • WaveFile name — a .do file loaded on startup (ignored in command line mode).
  • Enable Code Coverage — adds -coverage and +cover to the compile/run commands; generates coverage.rpt.
  • Log options — multiselect list of signal types passed to -qwavedb.
  • Simulation Resolution — sets -t fs/ps/ns.

CLEAN deletes: the Output Directory, .visualizer/, work/, qrun.log, qwave.db, design.bin, sysinfo.log, qrun_sim.f, and cov_0.ucdb.

If questa.ini does not exist it will be created by the qrun command. A vmap command will be executed prior to running qrun to map the library to the Output Directory.

Questa Increased Coverage (CoverCheck)

Figure: Questa Increased Coverage (CoverCheck) panel

Compiles the design with qrun and runs Increased Coverage via qverify. The generated script is run_cc.do.

Compile Method options are the same as Visualizer (Automatic / Custom file list / qrun.f).

Notable fields:

  • Device Under Test Name — required; used as the compile target (work.<DUT>).
  • Load Coverage UCDB file — merges an existing UCDB into the analysis (covercheck load ucdb).
  • Add waiver file / directives file — TCL scripts sourced before the run.
  • Generate Witness Waveforms — adds -witness_waveforms to covercheck verify.
  • Run Time (min) — sets the -timeout value.
  • Open Report after run — opens icov.rpt in the VS Code editor when the run completes.

Terminal command: qverify [-c] -od <Output Directory> -do run_cc.do

CLEAN deletes: the Output Directory and run_cc.do.

If questa.ini does not exist it will be created by the qrun command. A vmap command will be executed prior to running qverify to map the library to the Output Directory.

Questa Inspect (AutoCheck)

Figure: Questa Inspect panel

Compiles the design with qrun and runs formal lint via qverify. The generated script is run_ac.do.

Compile Method options:

Option Behaviour
Automatic Click SCAN first. Compiles from dirList.txt.
qrun option Passes the Script Name field as extra qrun arguments.
script name Sources the named TCL script for compilation (do <script>).

Notable fields:

  • DUT Name — required; used as the compile target (work.<DUT>).
  • Directives File — TCL script containing AutoCheck directives.
  • Waiver File — suppresses known violations.
  • Run Time (min) — sets the -timeout value.
  • Open Database after run — opens autocheck.db in qverify when the run completes.

Terminal command: qverify -c -od <Output Directory> -do run_ac.do

CLEAN deletes the Output Directory.

Troubleshooting

  • Library error — check modelsim.ini / questa.ini for any work mappings. The launcher maps work inside the Output Directory to keep the project root clean.
  • License error (lmutil reports OK) — look for stale qverify, vsim, or vsimk processes and kill them.
  • Multiple terminal tabs — each RUN opens a new PowerShell terminal. This is intentional so earlier run logs are preserved, but it does accumulate tabs over time.
  • Once the questa.ini file is created it will not be deleted by the Clean button

License

See the LICENSE file for details.

Notice

All logos, trademarks and graphics used herein are the property of their respective owners.

About

Questa Tool Launcher for VSCode/Codium

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors