两年前我写过一篇vscode配置fpga开发环境的博客,近期发现查看的人数还是比较多的,经过两年的使用,优化了代码模板以及删减了一些插件等等,因此有了本文。
目前我的vscode只有下图中的九个插件,相比前文已经减少了一些了。其中CTags Support用于语法检测、higtligt -words主要用于高亮选定的部分、indent-rainbow方便查看缩进、local History用于保存历史文件、partial Diff用于对比代码差异、todo tree用于标记一些关键内容、Verilog Highlight用于Verilog的语法高亮、Verilog_TestBench用于调用modelsim进行仿真、Vscode-icons就不用说了。
其实只有三个插件与Verilog开发有关,除higtligt -words外的其余插件在前文都有配置方式,本文不再赘述。
1、配置higtligt -words
搜索该插件,然后点击安装即可,如下图所示。
该插件的功能其实很多,但是我常用的就是通过快捷键用不同颜色的方框框选内容,方便查看某些信号的编码。该功能的快捷键设置如下所示,首先通过vscode左下角的齿轮进入快捷键设置界面。
然后在搜索框中输入highlight,把Highlight Toggle Current的快捷键设置成自己习惯用的(注意不要覆盖其他快捷键的功能,我设置的是Shift+X)。
使用方式如下所示,鼠标选中需要高亮的信号,然后使用上述设置快捷键(Shift+X),即可高亮该信号。重点是可以使用不同颜色框选不同信号,便于在模块中查找相关的信号。在次按下快捷键就可以取消框选。
高亮插件使用
2、代码片段
两年前我使用的是Verilog-HDL/SystemVerilog/Bluespec SystemVerilog这个插件实现代码补全和代码模板设计,但是后面发现个问题,就是这个插件每次更新都会替换之前的配置文件,导致模板失效,就很麻烦。
后来发现vscode本身就有代码片段的功能,因此只需要把配置文件添加到vscode本身的代码片段里面就好了,这个插件也就没有使用的必要了。
首先在vscode的设置处选中用户代码片段,如下图所示。
然后在弹出的搜索框中输入verilog.json,点击进入该文件,把我提供的verilog.json文件(文末会有获取链接)内容复制到该文件中,然后点击ctrl+s保存即可。
verilog.json的配置内容如下所示,其实就是在上述插件的配置内容上做了一些修改,添加了一些我自己习惯用的东西,读者也可以根据自己的喜好进行修改。
我写模块一般就是采用以下方式,首先通过module关键字调出我的模板,然后使用Shixu来调用常见的时序模块。因为xilinx和altera的芯片都在用,两种芯片推荐的复位方式不一样,因此模板会有两种,用户可以根据自己的喜好选择保留。
计数器模块
可能在不使用FPGA开发的人看我们的代码风格可能会觉得奇怪,为什么端口信号、冒号这些都要对齐,这其实是为了方便例化。一个模块端口信号可能有几十上百个,例化不可能手动去打,都是使用软件的列选操作,然后粘贴复制。
例化操作如下所示,该模块端口信号有五六十个,直接使用列选操作进行粘贴复制,然后进行修改。首先鼠标停留在界面的起始位置,然后键盘按住Shift和alt键,鼠标点击结束位置,可以选中起始位置和结束位置的连线作为对角线的矩形区域。
例化
这种方式比使用插件更简单,插件的例化容易让信号错乱,会很烦。
大概内容就这么多,其中代码模板中计数器,状态机等也做了相应修改,使用更加简介,模板在公众号后台回复“Verilog配置文件”(不包括引号)即可获取。