使用Sublime开发Verilog
插件安装
Sublime开发Verilog的优势在此就不赘述了,网上有很多讲解。
个人不建议在Sublime的Package Control中直接安装名为“Verilog"的插件,原因是找不到这个插件相关的模板文件,也就无法修改(比如always块的模板,用Everything搜索“always”后没有相关结果)。直接从Github上下载压缩包,然后放在C:\Users\Shaun\AppData\Roaming\Sublime Text 3\Packages\User
路径下,解压即可。下面是解压后可以看到.tmSnippet
模板文件,修改这些文件即可实现自定义模板。


除了“Verilog”插件,还有“Verilog-Automatic”、“sublimetext-Verilog”,“Sublime-Text-Snippets-for-Verilog”这三个插件。“Verilog-Automatic”插件提供自动添加端口、自动例化、自动添加端口连线、自动添加文件头的功能。“sublimetext-Verilog”插件提供语法高亮功能。“Sublime-Text-Snippets-for-Verilog”插件提供丰富的模板。
最后我保留除“Verilog”插件外的其他三个插件。
参考链接:
[1]使用模板加快编码效率(三)——sublime [更新]
模板修改
打开一个always async.sublime-snippet
文件,如下。
绿色部分为代码段,可自定义。其中“${数字}”表示跳转的位置,举个例子。Sublime中输入“al”,选择“always asynchronous”后会生成绿色部分的代码段。此时,光标停留在“${0}”处,按下Tab键,光标会定位到“${1}”处,以此类推。相同的数字可以多处出现,比如多处为“${1}”,那么你在一处输入时,剩余的所有“${1}”处都会同时修改。大大减少开发时间和犯错机率。

在Sublime中输入关键字即可出现相应模板,如下。第①处为模板名,可以在.sublime-snippet
文件的<tabTrigger>处修改。第②处为对应.sublime-snippet
文件的文件名。

“Verilog-Automatic”插件的使用
第一步:ctags
从官网下载ctags的安装包,将压缩包解压到相应路径。
在Sublime中通过Package Control安装CTags插件。安装完成后将“Preferences-Package Settings-CTags-Settings Default”中的内容复制到“…-CTags-Settings User”中,在“…-CTags-Settings User”中第31行添加ctags的安装路径,如下。
至此ctags设置完毕。
第二步 用CTags编译文件夹
创建一个名为“ctag_test”工程为例,包含两个源文件ctag_test.v和led.v。在ctag_test.v中例化LED模块。LED模块如下:
module LED(
input clk,
input rst_n,
output led
);
assign led = 1'b1;
endmodule
首先打开ctag_test.v或led.v,点击代码段的任意一处,然后按Ctrl+T、Ctrl+R,会要求选择要编译tag的文件夹,一般选择源文件所在的文件夹。编译后会在相应文件夹里生成.tags
文件和.tags_sorted_by_file
文件。



第三步 使用“Verilog-Automatic”插件
接下来可以开始使用“Verilog-Automatic”的所有功能了。下面介绍自动例化功能(只有自动例化功能需要用到ctags,其他三个功能不需要用到)。
首先要使用自动例化功能,前提条件是前一步骤编译的文件夹内的所有.v
文件不能有中文注释(更准确地说,是.tags
文件中不能出现中文。某些情况下写中文注释,编译tag后生成的.tags
文件中不会有中文。建议干脆不写中文注释。手动删除.tags
文件中的中文似乎不可行,因为可能涉及到.tags_sorted_by_file
文件)。例化时需要把光标放在模块名上,这里我尝试了好久,发现需要先把光标停留在模块名的最后,然后鼠标悬浮在模块名上(此时会出现提示信息),再按Shift+F7,才能成功例化。

例化后的效果如下。

自动添加端口连线的效果如下。

有一个没有解决的问题是,我直接从Github上下载“Verilog-Automatic”插件的话无法正常使用,只能通过Package Control安装。但是从Package Control安装的话我就没有办法修改这个插件自带的Verilog Automatic.py
文件(可以修改文件头的格式)。
参考链接:
[1]sublime text verilog-automatic插件使用方法
[2]解决:sublime text ctags 不能正常跳转 can’t find any relevent tags file 【附ctags插件完整安装步骤】
[3]Sublime 3.0 Verilog-Automatic-master 插件AddHeader自定义
[4]Sublime text 3 追踪函数插件:ctags