最近实验室要做FPGA相关的工作,于是笔者开始自学相关技术。目前市面上最成熟的工具应该是VCS+Verdi,但是考虑到该工具链仅支持Linux,而且软件画面过于古早,安装和使用都过于冗杂,并且对新手来说学习成本实在太高。
因此我整理了各种资料,记录了本人使用vscode搭建轻量级Verilog开发环境的全过程,以供他人和自己将来参考。
此步骤略
注意,本人在实际使用时发现了vscode关于登录账户的一个bug:如果首次登陆选择使用GitHub登陆,那么无法直接注销账户再用Microsoft账户登陆。反之,若首次登陆选择使用Microsoft账户登陆,那么如果之后想换用GitHub账户登陆,也是不行的。它注销后再次登录会直接跳转到原来的登录方式验证网址,并且没有切换登陆渠道的选项(在2023年6月当前版本还未修复)。
在这种情况下,如果想切换登陆账户,只能在设置中,先关闭云同步,注销账户,再重新打开云同步:
可以直接点击左下角设置中的“设置同步已打开”将其关闭,也可以通过命令将其关闭(如下):
按住CTRL+shift+P,召唤出vscode命令输入框(顶部弹出),在输入框中输入turnoff即可查找到【设置同步关闭】选项。
如果还从未使用过vscode可以暂时跳过此步。
vscode本身是不支持Verilog语言开发的,要想在vscode中顺利的编写Verilog源码,需要安装如下插件:
在左栏的插件“extension”栏目中,搜索Chinese即可看到这个插件,安装后按照提示重启vscode,整个软件大部分界面即可变为中文。
vscode默认的资源管理器界面全部以文本显示,很多时候难以区分不同文件类型,安装图标包可以显著地区分开各种源码文件以及各种配置信息文件。
在vscode拓展插件市场中,本人推荐使用图中的这俩icon pak
搜索安装此插件:
这个插件提供了Verilog开发环境的绝大多数基础功能,例如:
这个插件虽然是vscode拓展市场下载量最高的插件,但是部分功能仍然残缺不全,很多高级功能无法开箱即用,需要我们进一步配置(这个细节配置将在第四节详细介绍。)
此插件配合上面的Verilog-HDL/systemVerilog插件使用,能够完善.v文件和.sv文件的代码高亮功能。
搜索ctags,下载安装此插件:
注意:此插件本身不带ctags组件,它只是作为ctags到vscode的桥梁,将两者联系起来,使得vscode中的其他插件能够自动调用ctags相关功能。
虽然上文3.3中安装的【Verilog-HDL/systemVerilog插件】已经有Verilog模块实例化功能,但是它只能生成一个空的例化模块(读者可以自行研究尝试),其功能并不完善。
通过3.6安装的testbench插件,不仅可以生成完整的例化代码,还可以生成信号比较完善的testbench测试代码。
注意:这个插件的功能需要依赖python3,并且安装过程会产生许多错误,不建议新手尝试。
当然,笔者既然写这篇文章,后文肯定会介绍安装和调试的过程。
如果你只是一个新手,那么安装完上面的3.1,3.2,3.3,3.4插件已经足够简单的学习使用。
如果这些功能都不能满足你,可以继续往下看,进行更复杂的环境配置。通过下面的配置,可以在vscode中实现代码声明跳转、静态语法检查、模块自动例化、生成测试模块等高阶功能。
如果你在打开含有中文注释的源码时发现中文变为乱码,100%的情况是因为文本字符编码和系统不兼容。
如果在使用的过程中,出现中文字符乱码,请参考上述推荐编码模式进行配置。
如图所示,这个插件依赖于 universal ctags
,在该插件的详情页有各种操作系统的ctags安装网址,对应自己的操作系统选择对应的安装方式即可。
特别注意: Verilog-HDL/SystemVerilog/Bluespec SystemVerilog插件只兼容universal ctags
,并不兼容其他的ctags实现!!!
如果安装完以后,发现出现ctags索引不全,大概率安装的ctags并非这里所说的最新版universal ctags
。
点击插件Verilog-HDL/SystemVerilog/Bluespec SystemVerilog详情页中的:
进入该网址,从release page选择最新版下载:
下载到本机,建议解压到一个不含空格和特殊字符的纯英文路径,例如:
然后将路径添加到Windows系统环境变量中的Path
中,以我为例:
打开cmd终端,输入ctags --version
,观察输出是否正常:
出现对应的版本信息,特别注意显示的ctags信息是universal ctags,说明安装正常,顺利结束。
打开对应的下载官网:
universal ctags
从源码安装universal ctags
参考官方最上面的教程:
$ git clone https://github.com/universal-ctags/ctags.git
$ cd ctags
$ ./autogen.sh
$ ./configure --prefix=/where/you/want # defaults to /usr/local
$ make
$ make install # may require extra privileges depending on where to install
注意,最后两步骤make
和make install
请务必在root权限下执行(加上sudo执行)!
在make install安装完成之后,ctags可执行文件将生成于$prefix/bin/
路径下。默认为/usr/local/bin/ctags
同样,安装完成之后(没报错),随意在任何一个路径下打开终端,输入ctags --version
观察回显是否正常。
至此,两大主流平台Windows和Linux安装ctags的教程介绍完毕。
(什么??你说还有macOS??)
上一步我们只是在本机操作系统中成功安装了universal ctags组件,但是vscode中的拓展插件还不会自动调用ctags命令,需要我们在拓展设置中填入一些配置信息()
打开vscode拓展插件栏,找到ctags support,右键,点【拓展设置】:
在拓展设置中,按下图设置:
ctags support配置完成!
由于前面我们安装universal ctags的时候添加了系统环境变量,因此这里只需要填入“ctags”即可。
该插件支持以上静态语法检查工具(需要额外安装对应的软件),在Windows上笔者推荐使用Xilinx vivado自带的xvlog,在Linux上笔者推荐开源的轻量级iverilog。
对于vivado的安装以及iverilog,或者verilator的安装,不在本文范围之内,否则本文将过于冗长啰嗦,若有需要这两者的安装和使用教程,等后面笔者有时间再更新新的文章。
最后特别注意:linter工具只会在保存(CTRL+S)之后进行语法检查,因此,在编写源码的过程中没有红色波浪线提示,是正常的,如果你需要立刻进行一次语法检查,可以立即保存一次,或者通过rerun lint tool命令强制执行一次。
按照前文所述,安装好vscode环境后。启动vivado,按照如下所示,配置默认的 text editor:
*特别注意: 图中第五个框处的vscode调用代码应该写为:
cmd /S /K "code -g [file name]:[line number]"
如果直接写code -g [file name]:[line number]
会造成打开的vscode界面卡死!!!!
最终的使用效果,就不放展示视频了,基本上可以还原verdi端的50%的常用功能吧,各种鼠标悬停显示,代码声明跳转,静态语法检查,基本上都有了。总的来说,作为学习和科研使用,这套配置的体验是非常优秀的~
本文完·····························································Write by tsukimi @2023