✎ 编 者 按
最近因为工作原因在用 systemverilog 去写些东西,对于 systemverilog,一直缺乏一个在 IDEA 里写 SpinalHDL 的环境。在 VScode 中关于 Systemverilog 的插件有不少,每个插件都有各种各样完善的功能,但使用起来要么配置繁琐,要么功能不及个人预期,最近发现了 Verilog/SystemVerilog Tools 这个插件,很符合我的需求。
需要什么
之前习惯了在 IDEA 里面敲 SpinalHDL,用起来很丝滑,现在写回 SystemVerilog,对于个人而言,不需要一栈化的编译仿真能力,主要的诉求是:
- 能够代码自动补全。
- 能够实时全局 lint 检查。
对于 VSCode 上的各种插件,代码自动补全、做 Lint 的工具不在少数,然而对于全局 lint,要么支持有限,要么配置繁琐。作为一个懒人,个人一直所希望的就是开箱即用,接受一点简单的配置。然而之前并没有类似让我眼前一亮的插件,能够享受像写 SpianlHDL 那样的丝滑,哪怕接近也行。
Verilog/SystemVerilog Tools
看下这个插件的介绍:
The extension leverages the "-y" flag found on most tools, pointing it to a symlink index of the repo. This makes for almost zero per-project config when modules match each file name.
不需要做过多的配置,在 VSCode 上就能像打开 Vivado 一样看工程的层次结构,自动补全、自动全局 lint 等功能,对于我这等懒人简直不要太爽。
打开一个工程,选中顶层,可以很清晰的看清工程模块的层次路径:
在代码中选中一个例化模块,可以很清晰的看清楚他的端口方向,位宽:
在例化模块是,只需要敲出模块的名字然后加#号,按回车键即可自动例化:
这简直不要太爽!
更为简单的是,它自动做全局lint简直太方便。对于package不需要自己设置参数即可自动索引检错,这才是真正的写代码工作方式。
setting.json
在设置上,Verilog/SystemVerilog Tools 建议安装 universal-ctags 和 slang。slang 的安装比较复杂,不太建议使用。个人体验使用 ctags 以及 verilator 即可,两者在 mac 上均可通过 homebrew 进行命令行安装,简单便捷。对于一个工程,可打开 VSCode 的 Setting 对工作区做如下设置:
{
"verilog.includes": [
"src"
],
"verilog.ctags.path": "/usr/local/bin/ctags",
"verilog.index.indexAllIncludes": true,
"verilog.inlayHints.ports": "hover",
"verilog.languageServer.path": "/usr/local/bin/ctags",
"verilog.lint.slang.enabled": false,
"verilog.lint.verilator.args": "",
"verilog.lint.verilator.enabled": true,
"verilog.lint.verilator.path": "/usr/local/bin/verilator",
"verilog.lint.verilator.projectEnabled": true,
"verilog.lint.verilator.runAtFileLocation": true
}
verilog.include 用于设置工程中 include 的头文件相对工程打开位置的目录,package 则不需要放进去,其他 path 换成自己相应的位置即可。
设置完成后重新打开 VSCode 即可丝滑的 Coding 了。
END
作者:玉骐
文章来源:Spinal FPGA
推荐阅读
- 致老 IC 工程师:你记忆中的"天经地义",可能已是年轻人的奢侈品
- ICer 的生存指南:如何打破年龄魔咒与转型困局?
- PCIe gen6 数据链路层总结(一)
- 芯片设计全流程工程师的崛起:国产化背景下的“全能型人才”需求解析
- 搞芯片不懂 cell 别乱用!看看 Vt cell 都是啥?
更多 IC 设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。