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.
Open your sources
Section titled “Open your sources”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.
File types
Section titled “File types”| 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.
Keyboard shortcuts in this guide
Section titled “Keyboard shortcuts in this guide”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.
Try it
Section titled “Try it”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.
- Open
rtl/top.sv. Keywords such asmoduleandinputhave one color, names such asclkandcountothers, all different from plain text (the colors depend on your theme; see Syntax highlighting). Theinitial $sdf_annotate(…)line is grey on purpose: it is in an inactive`ifdefbranch (Conditional compilation). If nothing is colored, see If it doesn’t work. - ⌘-click (macOS) / Ctrl-click (Windows/Linux)
counterin the linecounter #(.MAX(20)) u_counter. (Or put the caret oncounterand press ⌘B / Ctrl+B: Navigate | Declaration or Usages.) The filertl/counter.svopens atmodule counter: you jumped from a use to the declaration, in another file. If nothing happens, see If it doesn’t work. - With the caret on
counterinmodule 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: inrtl/top.svthe instancecounter #(.MAX(20)) u_counter; inrtl/counter.svthe end label (the name afterendmodule :); and inrtl/defines.svhthe macroCOUNTER(a`definethat expands to acounterinstance). 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.
If it doesn’t work
Section titled “If it doesn’t work”| 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 |