Skip to content

Your first project

With SystemVerilog Studio you work on your design or testbench in a normal IDE project: colored code, a jump from any name to its declaration, every use of a name listed, and safe renaming, all without a simulator or a build. This page opens your sources and checks that this works. To try the features on a ready-made project first, use the sample project.

The plugin must be installed first. Choose File | Open… (on the welcome screen, Open) and select the nearest folder above all your source directories (often your repository root), not a sub-folder of it. If the IDE asks whether to trust the project, choose Trust Project. No build or simulator configuration is needed. A compile file (a .f list of source files and +define+ macros, like sim.f in the sample project) is optional: add one when your design depends on defines or include paths. If your project has exactly one .f file, the plugin uses it by itself (Conditional compilation).

The IDE then indexes the project: it scans the files so that it can look names up. A progress bar (or the text “Indexing…”) at the bottom right shows it; on a small project it is over in seconds. Navigation and rename work across files once indexing has finished.

Extension Treated as
.sv SystemVerilog
.svh SystemVerilog
.v SystemVerilog (Verilog sources are parsed with the SystemVerilog grammar, which accepts them)

Files with another extension are plain text until you add the extension to SystemVerilog: open Settings (⌘, / Ctrl+Alt+S), go to Editor | File Types, select SystemVerilog, click + in the list of file name patterns below, add a pattern such as *.vh and press OK.

Shortcuts are given as macOS / Windows and Linux (for example ⌥F7 / Alt+F7). If you use another keymap (for example GNOME or KDE on Linux), some shortcuts differ; the menu paths are the same everywhere, and Navigate, Edit and Code hold the actions. On a laptop keyboard the F-keys may need Fn. The caret is the text cursor. A keymap is the set of shortcuts chosen in Settings | Keymap.

The steps use the sample project; open it first and wait for indexing (the check on that page is the same as step 2). Nothing is edited here. To try the same on your own project, use any module name in an instantiation for step 2 and any module name in its declaration for step 3.

  1. Open rtl/top.sv. Keywords such as module and input have one color, names such as clk and count others, all different from plain text (the colors depend on your theme; see Syntax highlighting). The initial $sdf_annotate(…) line is grey on purpose: it is in an inactive `ifdef branch (Conditional compilation). If nothing is colored, see If it doesn’t work.
  2. ⌘-click (macOS) / Ctrl-click (Windows/Linux) counter in the line counter #(.MAX(20)) u_counter. (Or put the caret on counter and press ⌘B / Ctrl+B: Navigate | Declaration or Usages.) The file rtl/counter.sv opens at module counter: you jumped from a use to the declaration, in another file. If nothing happens, see If it doesn’t work.
  3. With the caret on counter in module counter, press ⌥F7 (macOS) / Alt+F7 (Windows/Linux), or choose Edit | Find Usages | Find Usages. The Find tool window (a panel at the bottom) lists three usages, grouped by file: in rtl/top.sv the instance counter #(.MAX(20)) u_counter; in rtl/counter.sv the end label (the name after endmodule :); and in rtl/defines.svh the macro COUNTER (a `define that expands to a counter instance). Press Escape or use the panel’s close icon to return to the editor.

If all of this works, the plugin is active. Go to Declaration, Find Usages and Rename (which changes a name everywhere it is used) have more.

You see Likely cause What to do
Nothing is colored, or ⌘-click does nothing The plugin is not installed or is disabled (check Settings | Plugins | Installed), or indexing is not finished See Installation; wait for the progress bar to finish
A name does not resolve although it is in your sources You opened a sub-folder, so the file that declares it is not in the project Open the root of your design
The IDE shows a banner about a project that is not trusted The project was opened in restricted mode Choose Trust Project
Find Usages is grey or lists nothing The caret is not on a name, or indexing is not finished Click the name counter itself and wait for the progress bar
Code you expect to be active is grey It is in an inactive `ifdef branch See Conditional compilation
A file is plain text Its extension is not .sv, .svh or .v Add it under Settings | Editor | File Types
A name from a library (UVM) does not resolve The library sources are not in the project See Known limitations and Troubleshooting