Verilog-HDL/SystemVerilog/Bluespec SystemVerilog

vscode下user和system的区别 vscode systemverilog_fpga开发

可实现功能:

  • 语法高亮
  • 自动例化
  • 代码提示和跳转
  • 自动补全

插件配置

如Verilog HDL/SystemVerilog插件欢迎页的说明,支持Ctags功能:

vscode下user和system的区别 vscode systemverilog_自定义_02

配置步骤:

  1. 下载最新版ctags,旧版的有些功能不够齐全;windows可选x64版本;
  2. 将ctags.exe的路径设置到系统环境变量中;
  3. 插件设置中配置ctags路径;
  4. 重启VSCode即可;

vscode下user和system的区别 vscode systemverilog_SystemVerilog_03

 可以选择不同的编译器

vscode下user和system的区别 vscode systemverilog_fpga开发_04

 包括:

  • iverilog
  • xvlog(vivado)
  • modelsim

功能展示

vscode下user和system的区别 vscode systemverilog_fpga开发_05

支持verilog、SV等语法高亮。

vscode下user和system的区别 vscode systemverilog_fpga开发_06

shift+ctrl+p输入verilog,可以直接自动例化模块。

vscode下user和system的区别 vscode systemverilog_自定义_07

鼠标放在信号上,就会有声明显示在悬浮框中。Ctrl+左键,点击信号名,自动跳转到声明处。光标放在信号处,右键选择查看定义(快捷键可自行绑定),可以在此处展开声明处的代码,用于修改声明十分方便,就不用再来回跳转了。


Verilog_Testbench

vscode下user和system的区别 vscode systemverilog_自定义_08

可实现功能:

  • 自动生成testbench 

vscode下user和system的区别 vscode systemverilog_自定义_09

 shift+ctrl+p输入testbench,可以直接生成tb。然后在终端复制即可。

vscode下user和system的区别 vscode systemverilog_vscode_10


SystemVerilog and Verilog Formatter

vscode下user和system的区别 vscode systemverilog_vscode_11

这款工具由谷歌推出,同时支持Verilog和System Verilog,效果非常好,支持自定义的格式化参数也很丰富。个人认为比verilog format好用。

可实现功能

  • 自动格式化文件
  • 自动格式化选定内容
  • 自定义格式

插件配置

vscode下user和system的区别 vscode systemverilog_Verilog_12

如果是windows,systemverilogFormatter.veribleBuild设置为win64

systemverilogFormatter.commandLineArguments可以自定义格式化参数,下面放上我自己用的参数,可以实现大部分常用代码段实现对齐。


--indentation_spaces=4 --named_port_alignment=align  --ort_declarations_alignment=align --module_net_variable_alignment=align


如何使用?如何格式化?

和vscode内置格式化一样,直接shift+ctrl+f就可以格式化文件,ctrl+k可以格式化选定内容。

vscode下user和system的区别 vscode systemverilog_vscode_13

值得注意的是,由于这个插件也是在完善中,还是存在部分问题的。

比如else不会换行。

vscode下user和system的区别 vscode systemverilog_SystemVerilog_14

比如,存在语法问题,或者不能识别语法的时候,格式化会使用不了。这里我将最后一个端口加上","就不能格式化了。

vscode下user和system的区别 vscode systemverilog_vscode_15