verilog 定义位宽为1的_Sublime与Verilog【二】:几款提升搬砖效率的插件!

5e5a0d8837827d271a006e636295fee0.png

前文简单介绍了Sublime Text 3的下载安装、几款基本的插件以及与Vivado的关联使用,这次就介绍下几款真的可以提升编写Verilog代码效率的插件!

虽说网上已有很多相关文章,但是大多未详细介绍插件使用方法,所以本文就详细介绍一下!

当然,使用其他编辑器也可能达到同样效果

6c90dcca08438fc71b3d1ee798504c5d.png
“秃头加速器”

之前介绍了Package Control、ChineseLocalizations、Verilog、ConvertToUTF8四款插件,这里就不再多说,至于插件的安装方法可详见前文:

十二点过九分:Sublime与Verilog【一】:从安装到使用,提高FPGA开发效率!​zhuanlan.zhihu.com
3839e55b09ae8885075486994160ae5b.png

几款比较实用的插件

  • Snippet Maker

对于Verilog搬砖工来说,最需要的就是代码自动补全功能,毕竟像是always、generate等语句一敲就是一大段,这谁受得了。当然在前面的Verilog插件已经实现了一些必要语句的补全,但若想一键搭个状态机的框架出来、或一键生成常用的代码结构,前面的插件似乎就无能为力了,而Sublime的Snippet(代码片段)功能可以很好的实现想要的效果。

对于Snippet功能和编写不多介绍,可详见:手把手教你写Sublime中的Snippet

推荐一个快速编写Snippet的插件“Snippet Maker”,在install package中可以下载安装,如下图所示:

79665a406765d991a98061a17028f6ce.png

该插件的具体使用方式为:

  1. 选中一段代码片段,比如选择always块
  2. 使用快捷键“ctrl + shift + p”进入控制台并输入“make snippet”进行代码片段的生成;
  3. 在界面下方的Trigger框中输入触发命令并回车(即之后输入该命令即可调出该代码片段),比如为al
  4. 在界面下方的Description框中输入该代码片段的描述并回车,比如为alwaysblock
  5. 在界面下方的Scope框中输入“source.verilog”并回车(即在Verilog下触发该片段);
  6. 在界面下方的File Name框中输入该代码片段的保存名称并回车(注意需要以sublime-snippet结尾),比如al.sublime-snippet

上述操作可如下动图所示:

f3d00dc4d44c60b4fb2ec4f2e404df37.gif

然后得到下图的片段后进行保存,需要按照需求进行一定的修改,修改方式可以参考手把手教你写Sublime中的Snippet

7d564140377e65bad7a0041d06b5ac17.png

笔者在这里修改为下图所示:

c08f22bb06f3a95bf6cd8463daa29efc.png

修改完保存后,在需要使用的时候直接输入“al”即可调出该代码段,如下图所示:

7a20027163a738e3b015a4d1ef9929af.gif

有了这一绝技之后可以自定义其他很多的代码片段,例如下列操作:

c90ae809491fc4a3e2317585a9f8f899.gif
三段式状态机

bd38e5dc195efd3d2ce22b7462d821a4.gif
添加文件头注释

a251916a162c60147e1f1516ea92b16e.gif
生成Module
  • Verilog Gadget

在写Verilog中除了需要代码补齐外,还需要的一个功能是自动生成例化模板和自动生成可供仿真使用的TestBeach,对于输入输出信号多的模块而言尤为重要,而插件“Verilog Gadget恰好具有这个功能

同样直接在install package里搜索“Verilog Gadget”,如下图所示:

2a929ccd1df9fd038bd9153a1ec16b63.png

安装好后弹出说明页面如下图所示:

ac99a657afdd6b04605ab3160515cd1b.png

从图中可以看出其功能主要是:

  1. 生成模块的实例化模板,快捷键“ctrl+shift+c”,然后“ctrl + v”粘贴到相应的地方即可;
  2. 生成模块的仿真TestBeach,生成的文件加以修改和保存就可以使用;
  3. 生成模块的简单仿真模型,可用于modelsim或者vcs(不过这个功能目前笔者没有使用过,所以不与说明了);
  4. 生成模块头部注释说明,快捷键“ctrl+shift+insert”;
  5. 生成多个需要重复的代码,例如多位宽的信号赋值使用,快捷键“ctrl + F12”;
  6. 代码对齐功能,快捷键“ctrl+shift+x”;
  7. 插入代码片段,快捷键“ctrl+alt+p”;
  8. 将.vcd格式的时序图转为WaveDrom使用,快捷键“ctrl+alt+v”(目前笔者也没有使用过,所以不与说明了);

此外,该插件还提供部分设置选项,在首选项--package settings -- verilog Gadget -- settings中可以查看修改

3a654cde83ecab6ec0df1a7039e5ad2e.png

包括:界面、例化名、对齐、代码片段、仿真模板等设置选项,根据需求设置即可,像是一些菜单栏可以选择关闭。

另外,对于其快捷键修改,可以到插件安装的路径下寻找,一般插件的安装路径在:

C:UsersAppDataRoamingSublime Text 3Packages

e2834276e7ecf5820becd8cee3dd682f.png

接下来就是演示该插件比较常用的功能:

模块的例化模板:

打开被例化模块的.v文件,单击右键选择“Instantiate Module”,然后到需要例化的模块下直接粘贴,就得到例化模板了,直接“ctrl+shift+c”和“ctrl+v”也行。不过存在的问题是,得到的例化模板没有定义信号和位宽,不过可以从自动生成的TB里复制也行。

107283899d5c19aed4e82b67c1c33f1f.gif
快捷键“ctrl+shift+c”和“ctrl+v”

生成TestBeach:

打开需要仿真的模块单击右键,选择“Generate Testbench”,将产生一个TB文件,直接另存为然后按照需求进行修改就可以使用。

86df735ec332105696a946e72258e004.gif

插入头部注释:

打开需要加入头部注释的模块,单击右键选择“Insert Header”,这个相较于snippet的好处是可以按当前时间生成,对于模块的修改可以到插件的安装路径下Verilog Gadgettemplateverilog_header.v进行修改。

21961ebdfe3692954ff9e3d614b59ed3.gif
快捷键“ctrl+shift+insert”

生成多个重复信号:

选择需要复制成多行的代码,单击右键选择“Repeat Code with Numbers”,在下面框中输入复制多少次。

9a39deed22cd95f269a29483559c7a93.gif
快捷键“ctrl+F12”

代码对齐:

选中需要对齐的代码,使用快捷键“ctrl+shift+x”,即可完成代码的对齐。

5ff663aadf17f3514277fd1582b58773.gif
快捷键“ctrl+shift+x”

不过这个插件比较迷的一点是可修改的内容不是很多,最核心部分的代码是python编译后的代码、没法直接改(也可能是笔者没找到正确方式),这样一来,像是例化模板和生成TB这两项重要的功能就没法再定制化了。

  • SublimeLinterSublimeLinter-contrib-modelsim

对于编写Verilog最重要的是代码检查了,在Sublime中提供一系列代码检测的插件是SublimeLinter,而针对Verilog的检测也是基于SublimeLinter的一些插件,目前已知的有Sublime​Linter-contrib-iverilogSublime​Linter-contrib-verilatorSublime​Linter-contrib-modelsim,针对这三个插件的主要区别在于利用的检测软件不同,鉴于笔者只安装了ModelSim,所以果断选择最后一个。

SublimeLinter的特点在于支持边写边检查,而Sublime​Linter-contrib-modelsim只需要提前安装好Modelsim就可以完成检查操作,使用这一工具可以大大提高编码效率(至少不需要等到每次综合或者仿真编译的时候才发现)。

安装步骤:

  1. 首先在install package里搜索安装“SublimeLinter
  2. 其次在install package里搜索安装“SublimeLinter-contrib-modelsim”;
  3. 如若选择SublimeLinter-contrib-modelsim则需要确保已经安装Modelsim(即包含vcom/vlog);
  4. 当然如果选择安装Sublime​Linter-contrib-iverilog或者Sublime​Linter-contrib-verilator,则需要确保已经安装了iverilog或者verilator;

上述的操作如下图所示:

2d78cd323f86b682b052a3067453d4b9.gif
“ctrl+shift+p”install package

使用效果如下图所示:

18005531681fe3ab635a905f1be61327.gif
语法检查1

4cfd41666e83db9bc651009971559148.gif
语法检查2

e1c81f0e5f107e49d848dd1b4fde59fc.gif
语法检查3

不过这个插件有个问题就是,会在工程文件夹下生成一个work文件夹,如下图所示,插件的文档并未说明怎么解决这个问题。

e9512f5a86cc29440458f048ba68b73a.png
  • Transparency

sublime有一点不好的就是没法像VS Code等一样设置图片背景,要知道一张好的背景图片可以极大的提高生产力,既然没办法设置背景,只好曲线救国,可以把界面的透明度降低,这样一来,桌面的壁纸就成了sublime的背景了,而插件“Transparency”刚好可以实现透明度调整。

同样直接在install package里搜索“Transparency”,点击安装即可,如下图所示:

feb5c56873b97f82896a0e26912c72c1.png

安装好之后可以使用快捷键“ctrl + shift + 1/2/3/4/5/6”调整界面的透明度,其中“ctrl + shift + 1”为不透明,“ctrl + shift + 6”透明度最高。

上述快捷键也可以到插件安装的路径下进行修改,如下图所示:

4dfe0c4d0492f5e705eb067ba7a813ef.png

此外也可以到“首选项--Package Settings--sublimeTextTrans--Settings-Default”中设置每一级的透明度,如下图所示:

f4be5f65d7497b507a7c59878ed27a2b.png

其中255为不透明0为全透明,然后每一级自行设置即可,至于设置透明度为多少合适就自行体会了。

最终实现效果如下图所示,有了动态壁纸和透明背景加持,搬砖都能多搬几块了~

ea877d675c9a7d9cf274857592196546.gif
这个插件极大的提升了搬砖效率

大概就是以上几款插件,另外像是SystemVerilogSublimerge、Alignment等插件由于用的不多就等改天熟悉后再补充,另外如果发现新的插件将持续更新!

如有不足之处还望批评指正~

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值