Verilog语法不亮主因是未加载语法定义:必须精确安装VerilogHighlighter插件(大小写敏感、无空格连字符)、重启Sublime后手动将.sv文件绑定为SystemVerilog语法,且状态栏须显示SystemVerilog而非Plain Text。

Verilog语法在Sublime里不亮,90%不是配置错,而是根本没加载语法定义——插件名拼错、.sv没绑对语法、状态栏还显示Plain Text,三者占绝大多数失败原因。
必须装VerilogHighlighter,不是其他名字的插件
Sublime默认完全不认识.v或.sv文件。所谓“高亮失效”,其实是压根没加载任何语法规则。网上搜到的Verilog Syntax、Verilog-HDL、Verilog-SystemVerilog基本都无效。
- 真正起作用的是
VerilogHighlighter(首字母大写、无空格、无连字符、结尾无s,作者hobofan) - 按
Ctrl+Shift+P→ 输入Package Control: Install Package→ 回车 → 在弹出框中**逐字输入VerilogHighlighter**(大小写敏感!)→ 回车安装 - 装完必须重启Sublime Text,插件不会热加载
- 如果之前装过其他Verilog相关插件(如
Verilog-HDL),建议先禁用或卸载,避免scope冲突
.sv文件必须手动绑定为SystemVerilog语法
.v文件通常能自动识别为Verilog,但.sv是硬编码未映射的扩展名——这是卡住最多人的关键点。不手动切,logic、always_ff、interface这些关键字永远是灰色。
- 新建或打开
test.sv后,右下角状态栏显示Plain Text?立刻点击它 → 选SystemVerilog(不是Verilog,也不是VHDL) - 想让所有
.sv默认生效:菜单View → Syntax → Open all with current extension as… → SystemVerilog - 检查
Preferences → Settings – User中是否误加了类似"extensions": ["sv"]映射到"Plain Text"的规则,有就删掉 - 验证方式:
Ctrl+Shift+P→ 输入Developer: Show Scope Name→ 光标停在module上,状态栏应显示source.systemverilog
代码片段(mod / alw / if)只在正确scope下按Tab触发
Sublime不提供语义感知补全,缩写不会自动弹窗,必须严格满足条件才能触发。
- 右下角状态栏必须显示
SystemVerilog(不是Verilog、VHDL或Plain Text) - 输入
mod后光标必须停在末尾,**立刻按Tab** —— 不是空格、不是回车、不是鼠标点击 - 不能在注释、字符串、
/* */块、已缩进行首敲缩写;那些位置的scope是comment.block或string.quoted,不匹配source.systemverilog - 自定义snippet时,
<scope>字段必须设为source.systemverilog或source.verilog,写成source.verilog.systemverilog会失效
构建系统里$file等变量必须加双引号
路径含空格或中文时,不加引号会导致iverilog命令直接报错或静默失败,尤其Windows下默认安装路径如C:\Program Files\,不加引号必崩。
- 正确写法:
"cmd": ["iverilog", "-o", "$file_base_name", "$file"] - 错误写法:
"cmd": ["iverilog", "-o", "$file_base_name", $file]($file未包裹) - 验证方式:运行构建后看Sublime底部状态栏是否显示
[Finished];若闪退或无输出,大概率是路径解析失败
最容易被忽略的是:每次装完VerilogHighlighter后不重启Sublime,以及把.sv文件当成.v一样期待自动识别——这两点几乎覆盖了全部“高亮不生效”的真实场景。


















