news 2026/6/12 21:53:55

VS Code 阅读 SystemVerilog 代码的跳转/索引插件推荐

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VS Code 阅读 SystemVerilog 代码的跳转/索引插件推荐

VS Code 中有多款插件可以实现类似 ctags 的定义跳转(Go to Definition)、引用查找、符号索引功能,以下按推荐度排序介绍。


一、主流插件推荐

1.Verilog-HDL/SystemVerilog(mshr-h)★ 最流行

插件 IDmshr-h.veriloghdl

功能支持情况
语法高亮
定义跳转✓(依赖 ctags)
悬停提示
代码片段
Linting✓(可接 iverilog/verilator/xvlog/modelsim)

配置方法(需要先装 Universal Ctags):

# macOS brew install universal-ctags # CentOS/RHEL yum install ctags # 或从源码编译 universal-ctags # Ubuntu apt install universal-ctags

VS Code 设置(settings.json):

{ "verilog.ctags.path": "/usr/local/bin/ctags", "verilog.linting.linter": "verilator" }

之后即可:

  • F12/Ctrl+点击—— 跳转到定义
  • Ctrl+T—— 搜索符号

本质就是ctags 的 VS Code 封装,符合你的使用习惯。


2.SystemVerilog - Language Support(eirikpre)★ 适合纯 SV

插件 IDeirikpre.systemverilog

功能支持情况
内置索引器(无需 ctags)✓ 自动扫描工作区建索引
定义跳转
查找引用
文档符号大纲(Outline)
模块实例化模板

特点

  • 自带索引引擎,开箱即用,不依赖外部工具
  • 对 class、interface、package 等 SV 验证结构支持较好
  • 大型工程首次索引稍慢

配置示例:

{ "systemverilog.includeIndexing": ["**/*.{sv,v,svh,vh}"], "systemverilog.excludeIndexing": "**/sim_results/**" }

3.Verible(Google 出品 LSP)★ 最专业

插件 IDchipsalliance.verible

基于Language Server Protocol的工业级工具链:

功能支持情况
定义跳转
语法检查(真正的 SV 解析器)
代码格式化
Lint
重命名符号

安装

# 下载 verible 二进制 # https://github.com/chipsalliance/verible/releases
{ "verible.path": "/opt/verible/bin/verible-verilog-ls" }

由 Google/CHIPS Alliance 维护,解析最准确,且自带格式化(verible-verilog-format),缺点是对超大工程索引配置略复杂。


4.Verilog Language Server (veridian / svls / svlangserver)

LSP特点
svlangserver(IMC 出品)索引快,支持自动补全、跳转,配合插件 IMperiousGroup.svlangserver
veridian基于 slang 解析器,精度高
svlsRust 编写,轻量

svlangserver配置示例:

{ "systemverilog.disableIndexing": false, "systemverilog.includePaths": ["rtl/", "tb/"] }

二、通用方案:直接用 ctags(任何语言通吃)

如果你就想要纯 ctags 体验:

插件:C/C++ GNU Globalctagsx

# 1. 生成 tags 文件(在工程根目录) ctags -R --languages=SystemVerilog --extras=+q . # universal-ctags 对 SV 支持的 kind: ctags --list-kinds=SystemVerilog # module, class, task, function, interface, package, typedef ...
  1. 安装 VS Code 插件ctagsx,即可用 tags 文件跳转。

Universal Ctags(注意不是老的 Exuberant Ctags)对 SystemVerilog 支持良好,包括 class/interface/package。


三、方案对比

方案索引方式跳转精度配置难度适用场景
mshr-h Verilog-HDLctags★ 简单习惯 ctags 的用户
eirikpre SystemVerilog内置索引中高★ 简单纯阅读 SV/UVM 代码(推荐首选)
Verible LSP真实解析器★★ 中工程规范团队
svlangserver内置索引中高★★ 中大型工程
ctagsx + universal-ctagsctags★★ 中跨编辑器统一习惯

四、推荐组合(阅读 UVM/SV 验证代码)

eirikpre.systemverilog ← 主力:索引 + 跳转 + Outline mshr-h.veriloghdl ← 辅助:语法高亮 + lint

设置示例:

{ "systemverilog.includeIndexing": ["**/*.{sv,svh,v,vh}"], "systemverilog.excludeIndexing": "**/{work,csrc,simv*}/**", "verilog.linting.linter": "verilator", "editor.gotoLocation.multipleDefinitions": "peek" }

常用快捷键:

快捷键功能
F12跳转到定义
Alt+F12Peek 定义(不离开当前文件)
Shift+F12查找所有引用
Ctrl+T全工程符号搜索
Ctrl+Shift+O当前文件符号列表
Alt+←跳回原位置(类似 ctags 的 Ctrl+T)

五、大型工程优化建议

  1. 排除仿真产物目录(work/、csrc/、*.daidir 等),否则索引极慢
  2. UVM 源码也加入工作区,可跳转到uvm_pkg内部定义
  3. 远程服务器代码用Remote-SSH 插件+ 上述插件,体验与本地一致
  4. 若工程有 filelist(.f 文件),svlangserver 等支持按 filelist 索引,精度更高

一句话总结:想要 ctags 式体验就用mshr-h.veriloghdl+ universal-ctags;想开箱即用、对 SV class/UVM 支持更好就选eirikpre.systemverilog;追求最高解析精度选Verible LSP

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 21:52:58

MC68HC908GR8微控制器在线编程(ICP)原理与实战指南

1. 项目概述与核心价值 如果你手头有一批基于MC68HC908GR8微控制器的电路板,无论是研发阶段的样机调试,还是产线上的批量烧录,甚至是已经部署在现场的设备需要固件升级,都绕不开一个核心问题:如何把编译好的程序代码写…

作者头像 李华
网站建设 2026/6/12 21:51:53

Flink 1.17 vs 1.13:Kafka数据源Watermark配置的演进与最佳实践

Flink 1.17 vs 1.13:Kafka数据源Watermark配置的深度解析与实战优化 1. 事件时间处理的核心挑战 在现代流处理系统中,事件时间(Event Time)语义的正确实现始终是开发者面临的核心难题。当数据源来自分布式消息系统如Kafka时&…

作者头像 李华
网站建设 2026/6/12 21:49:58

TimesNet模型精讲:为什么说它把时间序列变成了“图像”来预测?

TimesNet模型精讲:为什么说它把时间序列变成了“图像”来预测?想象一下,你每天记录气温变化,数据像一条蜿蜒的曲线。传统方法会直接分析这条曲线,但TimesNet却像一位魔术师,将曲线展开成一张温度变化的“地…

作者头像 李华
网站建设 2026/6/12 21:46:07

从零构建FOC:深入解析磁场定向控制的核心原理与实现

1. 磁场定向控制(FOC)是什么? 第一次听说FOC时,我也是一头雾水。这玩意儿听起来像是某种黑魔法,能让电机乖乖听话。后来才发现,它其实就是让电机转得更顺溜的一种高级控制方法。想象一下骑自行车&#xff1…

作者头像 李华
网站建设 2026/6/12 21:45:28

OpenCV与MediaPipe:从零构建实时多手势交互系统

1. 环境准备与工具安装 想要玩转手势识别,首先得把开发环境搭建好。我这里推荐使用Python 3.9和PyCharm的组合,实测下来兼容性最好。安装Python时有个小细节要注意:记得勾选"Add Python 3.9 to PATH"选项,这个选项能让系…

作者头像 李华