json简介+vscode的Verilog插件简单配置
//=====================================================================
//=====================================================================
【vscode常用快捷键】
| 快捷键 | 功能描述 |
|---|---|
Ctrl + Shift + K |
删除当前行 |
Alt + ↓ |
向下移动当前行 |
Shift + Alt + ↓ |
向下复制当前行 |
Ctrl + J |
合并当前行到下一行 |
Ctrl + L |
选中整行(可扩展多行选择) |
Ctrl + Enter |
在当前行下方插入新行 |
ctrl+shift+Alt+方向键 |
列选择模式 |
Shift+ Alt+ 鼠标左键拖动 |
列选择模式 |
Alt+点击 |
多光标 |
Ctrl + Shift + [ |
折叠当前层次 |
Ctrl + Shift + ] |
展开当前层次 |
Alt + ← |
回溯 |
Alt + → |
前进 |
Alt + 点击 |
递归折叠:可递归折叠该层级下的所有子代码块 |
Ctrl + K, Ctrl + [数字] |
折叠/展开到指定层级 |
Ctrl + K, Ctrl + J |
展开所有层级 |
Ctrl+] |
增加缩进 |
Ctrl+[ |
减少缩进 |
用户快捷键迁移
复制下面这个路径的json文件到新设备的这个路径就行。快捷键配置都在此json
【插件功能】
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语法】
值的类型:字符串、数字、布尔true、布尔false、null、对象{}、数组[]
反斜杆 \ 来转义字符。
换行
结构中换行:不影响,当作空白字符,换行等同空格和制表符。
字符串中换行:不允许。要改成\n或\r\n转义。
JSON只有两种核心结构:
1.对象(Object) {} 表示键值对集合
要求:
1.字符串值必须加双引号。数字、布尔、null不能加引号。
1.因为键必须是字符串,所以必须有双引号。
2.多个键值对用逗号分隔,最后一个元素后不能有逗号。
举例:
{
"name": "Alice",
"hight": 160,
"age": 25
}
2.数组(Array) [] 表示有序值列表
举例:
[
"apple",
"banana",
"orange"
]
//=====================================================================
//=====================================================================
【verilator告警】
告警1:vscode内使用verilator作为verilog的lint工具,Cannot find file containing module: 'xx.sv’verilator(MODMISSING)
解决办法:没有将xx.sv传给verilator。
“verilog.lint.verilator.runAtFileLocation”: false ,
// “verilog.lint.verilator.args”: " --timing +incdir+hdl ",
“verilog.lint.verilator.args”: " --timing -Ihdl ",
【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)时需要额外包含的目录路径。注意:是路径,不是文件
更多推荐
所有评论(0)