vscode的Verilog/SystemVerilog Tools(Andrew Nolte)插件简单配置
//=====================================================================
//=====================================================================
【功能】
1、自动补全(无需设置)
2、工程的树状结构(无需设置)
3、将悬停在变量上显示声明(设置"verilog.includes")
4、跳转到变量/parameter/define定义查看定义("verilog.includeGlobs")
5、模块自动例化(无需设置,输入#)
6、内联显示例化模块的的输入输出(Inlay Hints:port选项on)
.vscode/setting.json
{"verilog.includes": [//设置头文件的文件夹静态路径,不会递归子文件夹"hdl/include"//搜索include文件夹],"verilog.excludeGlob": "**/*.fsdb",//搜索排除.fsdb,提高性能"verilog.includeGlobs": [//设置头文件的文件夹动态路径,会递归子文件夹"hdl/INCLUDE/*.sv"],"verilog.lint.modelsim.args": "+define+SIMULATION -svinputport=relaxed",//vlog的参数"verilog.lint.modelsim.includes": [ "hdl/INCLUDE" ],//vlog的头文件 类似于 +incdir+/path
}
//=====================================================================
//=====================================================================
【JSON】
概要数据在名称/值对中数据由逗号 , 分隔大括号 {} 保存对象,一个无序的名称/值对的集合。中括号 [] 保存的数组是值(value)的有序集合。双引号 "" 代表字符串反斜杆 \ 来转义字符 值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array),它们是可以嵌套。JSON 名称/值对key : value
JSON 值数字(整数或浮点数)字符串(在双引号中)逻辑值(true 或 false)数组(在中括号中)对象(在大括号中)null
JSON 数字 可以是整型或者浮点型:{ "age":30 }
对象在大括号 {} 中书写{key1 : value1, key2 : value2, ... keyN : valueN }
数组在中括号 [] 中书写:{"sites": [{ "name":"菜鸟教程" , "url":"www.runoob.com" }, { "name":"google" , "url":"www.google.com" }, { "name":"微博" , "url":"www.weibo.com" }]}
//=====================================================================
//=====================================================================
【vscode】
1.修改配置后需重启 VSCode 或重新加载窗口(Ctrl+Shift+P→ Reload Window)。
2.命令面板输入“Preferences: Open Settings (JSON)”来打开
project-root/
├── src/
├── .vscode/
│ ├── settings.json # 项目级配置
│ └── launch.json # 调试配置
└── package.json
//=====================================================================
//=====================================================================
插件:Verilog/SystemVerilog Tools(Andrew Nolte)
1.不能点击例化名字跳转打开文件?–文件名与模块名要一致。
2.不能跳转到include文件内?–verilog.include没有设置
2.define参数不能跳转?–
//=====================================================================
//=====================================================================
【配置项 exclude glob】 (glob:通配符)
排除特定文件或目录在代码分析、索引和自动补全等场景中的参与。其核心作用是通过glob 模式匹配精准控制插件需要处理的文件范围,从而提升性能并避免无关文件的干扰。
Glob 模式语法:
**:匹配任意层级的子目录。
:匹配任意字符(不含路径分隔符)。
?:匹配单个字符。
[abc]:匹配括号内的任意字符。
!:取反(需配合其他规则使用)。
【expandMacroScript配置项】
用于自定义宏展开逻辑,其核心作用是通过脚本动态解析和替换代码中的宏定义(define),从而提升代码可读性和调试效率。需要自己编写脚本,暂不使用。
【verilog.formatDirs配置项】
指定格式化规则文件的搜索路径,用于加载自定义的代码风格模板或配置文件。
【verilog.includeGlobs配置项】–会递归查子文件夹
通过通配符模式指定需要索引的 Verilog 头文件(.h/.svh/…等任何后缀)路径,从而增强插件对跨文件模块、参数和宏的解析能力。"include/"
【verilog.includes配置项】–不会递归查子文件夹
指定 Verilog 头文件(特定后缀.h或 .svh)的搜索路径,使插件能够正确解析跨文件的模块声明、参数定义和宏引用
【verilog.index.enableSymlinks配置项】
控制是否通过符号链接(Symlink)加速模块和文件的索引过程。
插件会在项目根目录下创建 .sv_cache/files目录,并为所有 Verilog 源文件(.v/.sv)和头文件(.h/.svh)生成符号链接。
这些符号链接会被传递给 Linter 工具(如 Verilator、Slang),使工具能快速定位模块定义,无需依赖复杂的路径配置。
【verilog.index.indexAllIncludes配置项】
控制是否递归索引所有包含路径(include指令)中的头文件,从而扩大插件对模块、参数和宏的解析范围。
当设置为 true(默认值)时,插件会递归扫描 verilog.includes中指定的所有目录及其子目录,自动索引其中的头文件(.h/.svh),建立全局符号索引。
【verilog.inlayHints.wildcardPorts配置项】
控制是否在模块实例化时显示通配符端口(.*)的智能提示,帮助开发者快速识别可用的端口名称和方向,提升代码编写效率。???
【verilog.lint.modelsim.args配置项】
为 ModelSim 的 vlog编译器传递额外的命令行参数,以控制语法检查(Lint)的行为。
+incdir+/path/to/includes 指定头文件搜索路径多级目录下的头文件索引
+define+SIMULATION定义宏 SIMULATION,用于条件编译测试平台区分仿真与综合代码
【verilog.lint.modelsim.include 配置项】
指定 ModelSim 工具在进行语法检查(linting)时需要额外包含的目录路径。注意:是路径,不是文件