SystemVerilog
SystemVerilog plugin for Sublime Text
Install / Use
/learn @TheClams/SystemVerilogREADME
Sublime Text SystemVerilog Package
Description
Syntax Highlighting:
- SystemVerilog / Verilog
- UCF (Xilinx Constraint file)
Note: the default color scheme (Monokai) is missing a lot of scope, and might not give the best results. You can try my personal variation of Sunburst : https://gist.github.com/TheClams/5811d7bc8829abe58c11d4c98e729dc0
Code Navigation:
- Show signal declaration in tooltip or status bar
- Goto declaration : move cursor to the declaration of the selected signal
- Goto driver : select a signal a go to the driver (port, assignement, connection)
- Find Instances: find all instance of a module inside a project
- Move cursor / select text between start/end of block (like [], {}, begin/end, function/endfunction, ...)
- Show hierarchy of a module (all its sub-module)
- Navigation side-bar:
- Displaying a class members/method, module port/signal/instances, ...
- Double click on instance/type to jump to it
Code Completion :
- Smart Autocompletion: method for standard type, field for struct/interface/class, system task, ...
- Smart snippet for always, case
- 'begin end' macro to surround a text by begin/end (cf Keymapping section to see how to use it)
- Various Snippets (module, interface, class, for, ...)
- Insert template for FSM
Module Instance helper:
- Instantiation: Select a module from a list and create instantiation and connection
- Reconnect: remove connection to deleted port, add connection to new port
- Toggle .* in module binding (similar to the auto-star feature of Emacs verilog-mode)
Code Alignement:
- Reindent
- Align module port
- Align signal declaration
- Align module instantiation
- Align assignement
Linting:
- Find/Remove all unused signals
- List all undeclared signals
Configuration
To see all existing configuration option and edit your configuration, go to Preferences->Package Settings->SystemVerilog->Settings.
Detail documentation
For a detail documentation on the different features, check online documentation: http://sv-doc.readthedocs.org/en/latest .
Keymapping example
To map key to the different features, simply add the following to your user .sublime-keymap file:
{
"keys": ["f10"], "command": "verilog_type",
"context":
[
{ "key": "num_selections", "operator": "equal", "operand": 1 },
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
{
"keys": ["ctrl+f10"], "command": "verilog_module_inst",
"context":
[
{ "key": "num_selections", "operator": "equal", "operand": 1 },
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
{
"keys": ["ctrl+shift+f10"], "command": "verilog_toggle_dot_star",
"context":
[
{ "key": "num_selections", "operator": "equal", "operand": 1 },
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
{
"keys": ["ctrl+shift+a"], "command": "verilog_align",
"context":
[
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
{
"keys": ["alt+shift+a"], "command": "verilog_align", "args":{"cmd":"reindent"},
"context":
[
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
{
"keys": ["ctrl+f12"], "command": "verilog_goto_driver",
"context":
[
{ "key": "num_selections", "operator": "equal", "operand": 1 },
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
{
"keys": ["shift+f12"], "command": "verilog_goto_declaration",
"context":
[
{ "key": "num_selections", "operator": "equal", "operand": 1 },
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
// Begin/End
{
"keys": ["ctrl+'"],
"command": "insert_snippet", "args": {"contents": "begin\n\t$0\nend"},
"context": [{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }]
},
{
"keys": ["ctrl+'"],
"command": "run_macro_file",
"args": {"file": "Packages/SystemVerilog/beginend.sublime-macro"},
"context": [{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }]
},
{
"keys": ["ctrl+m"], "command": "verilog_goto_block_boundary", "args":{"cmd":"move"},
"context":
[
{ "key": "num_selections", "operator": "equal", "operand": 1 },
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
{
"keys": ["ctrl+shift+m"], "command": "verilog_goto_block_boundary", "args":{"cmd":"select"},
"context":
[
{ "key": "num_selections", "operator": "equal", "operand": 1 },
{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}
]
},
{ "keys": ["f1"], "command": "verilog_toggle_navbar", "args":{"cmd":"toggle"}},
{ "keys": ["ctrl+f1"], "command": "verilog_toggle_lock_navbar"},
{
"keys": ["alt+f1"], "command": "verilog_show_navbar",
"context":[{ "key": "selector", "operator": "equal", "operand": "source.systemverilog"}]
}
Related Skills
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
343.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
343.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
