Verilog Assistant — VSCode 全功能 Verilog 开发助手集成 Verible(格式化 & 风格检查)和 Verilator(语义错误检查),提供语法高亮、代码补全、跳转定义、Hover 文档、CodeLens、注释横幅等全套功能。 1. 安装准备工作
验证安装:
安装插件
重启 VSCode,打开 2. 功能速览
3. 语法高亮 & 格式化插件自动为 格式化:保存文件自动调用 Verible:
风格检查:输入时实时检查,违规处黄色波浪线 + 💡 快速修复。 关闭风格检查: 4. Verilator 语义检查保存
手动触发:
|
| 关键词 | 说明 | 示例 |
|---|---|---|
@brief |
主描述 | //! @brief 计数器模块 |
@author |
作者 | //! @author Lixin |
@date |
日期 | //! @date 2026-07-05 |
@param |
参数说明 | //! @param WIDTH 数据位宽 |
@port |
端口说明 | //! @port clk 系统时钟 |
@warning |
注意事项 | //! @warning 不可修改 |
@deprecated |
废弃标记 | //! @deprecated 请用 v2 |
@todo |
待办事项 | //! @todo 加流水线 |
@note |
补充说明 | //! @note 已通过 CDC |
@see |
交叉引用 | //! @see a.v |
@return |
返回值 | //! @return 计算结果 |
@arg |
函数参数 | //! @arg data 输入 |
输入 //! @ 自动弹出补全。@author 值从设置读取,@date 自动填当前日期。
注释就近归属
空行是注释块分界线。hover 时只显示紧邻上方的注释,不会跨空行收集。
横幅注释
选中文字 → Ctrl+Shift+/ 生成 lowRISC 风格居中等宽横幅:
////////////////////////////////////////////
// //
// Counter Module //
// //
////////////////////////////////////////////
8. CodeLens
模块 CodeLens:行上方显示引用计数和文件名,点击跳转。
2 refs b.v:5 top.v:24
module a (...);
变量 CodeLens:行上方显示 2 refs,点击弹出引用位置列表。
9. 端口方向提示
实例化模块时,端口连接自动显示方向箭头:
a inst_name (
.f(←clk), // ← 橙色 = 输入
.h(→j), // → 蓝色 = 输出
);
10. 配置项参考
Verible
| 配置项 | 默认值 | 说明 |
|---|---|---|
verilog.verible.path |
"" |
二进制路径,空则自动查找 PATH |
verilog.verible.lintEnabled |
true |
启用实时风格 Lint |
verilog.verible.formatOnSave |
true |
保存时自动格式化 |
verilog.verible.formatStyle |
align |
对齐风格:align / flush-left / infer |
verilog.verible.trailingAlign |
false |
等长对齐:格式化后对齐尾部分隔符(; , )) |
verilog.verible.formatArguments |
"" |
Verible 格式化额外参数,覆盖 formatStyle |
Verilator
| 配置项 | 默认值 | 说明 |
|---|---|---|
verilog.verilator.enabled |
true |
启用语义检查 |
verilog.verilator.path |
"" |
二进制路径 |
verilog.verilator.onSave |
true |
保存时自动运行 |
verilog.verilator.useWsl |
false |
Windows 通过 WSL 调用 |
verilog.verilator.ignoreMissingModules |
false |
忽略所有找不到的模块 |
verilog.verilator.ignoreModuleList |
[] |
精确排除(支持 * 通配符),推荐替代上面的开关 |
语言 & 注解
| 配置项 | 默认值 | 说明 |
|---|---|---|
verilog.language.standard |
verilog-2001 |
语言标准:verilog-2001 / verilog-2005 / systemverilog |
verilog.annotation.author |
"" |
@author 默认值 |
verilog.annotation.dateFormat |
YYYY-MM-DD |
@date 格式 |
CodeLens & 补全
| 配置项 | 默认值 | 说明 |
|---|---|---|
verilog.codelens.moduleEnabled |
true |
模块 CodeLens |
verilog.codelens.variableEnabled |
true |
变量 CodeLens |
verilog.completion.enabled |
true |
代码补全 |
verilog.completion.snippetsEnabled |
true |
补全含片段 |
11. 命令列表
Ctrl+Shift+P 搜索:
| 命令 | 快捷键 |
|---|---|
| Verilog: Format Document | Shift+Alt+F |
| Verilog: Run Verilator Lint | — |
| Verilog: Wrap with Banner Comment | Ctrl+Shift+/ |
| Verilog: Generate verible.filelist | — |
| Verilog: Toggle Module CodeLens | — |
| Verilog: Toggle Variable CodeLens | — |
12. 常见问题
Q: 格式化不生效? → 确认 verible-verilog-ls --version 有输出,或设置 verilog.verible.path。
Q: Verilator 报 "not found"? → Windows 推荐 MSYS2 安装,或设置 verilog.verilator.useWsl: true。
Q: 代码补全出现 logic/always_ff 干扰? → 设置 verilog.language.standard 为 verilog-2001。
Q: Hover 显示太多注释? → 用空行分隔注释块,每个符号只显示紧邻上方的注释。
Q: Ubuntu 上 Verilator 报 VERILATOR_ROOT 错误? → 不要手动设置 VERILATOR_ROOT 环境变量,插件已在 1.0.1 修复此问题。
Q: 如何修改快捷键? → Ctrl+K Ctrl+S 搜索命令名。
13. 更新日志
v1.1.1
- 修复 "Exiting due to" 汇总行被计入错误总数(解析时直接丢弃)
- 修复
filteredCount计数包含已丢弃的汇总行
v1.1.0
- 重构
.verilator_ignore为 YAML-like 三段格式:module/exclude/library - 新增
exclude文件夹排除(glob 模式),不索引不 lint - 新增
library外部库路径(替代旧libraryFiles设置) - 移除
verilog.verilator.libraryFiles和includePaths配置项
v1.0.1
- 新增 Verible 格式化风格
formatStyle+ 等长对齐trailingAlign - 新增
.verilator_ignore文件 +ignoreModuleList精确模块排除 - 新增 Verilator 输出日志重定向(
.verilator_lint.log) - 修复 Linux
VERILATOR_ROOT误设 - 修复 LSP 格式设置即时生效
v1.0.0
- 初始发布
14. 联系方式
提交 BUG 或需求
发送邮件时请包含以下信息:
**标题:** [BUG/需求] 简短描述
**环境:**
- 操作系统:Windows 11
- VSCode 版本:1.95.0
- 插件版本:0.1.1
**问题描述:**
- 预期行为:
- 实际行为:
- 复现步骤:
**附件(可选):**
- 截图
- 最小可复现的 Verilog 代码片段