Sublime与Verilog

Sublime与Verilog【二】:几款提升搬砖效率的插件! - 知乎

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

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

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

“秃头加速器”


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

十二点过九分:Sublime与Verilog【一】:从安装到使用,提高FPGA开发效率!81 赞同 · 22 评论文章正在上传…重新上传取消

几款比较实用的插件

  • Snippet Maker

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

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

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

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

  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

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

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

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

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

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

三段式状态机

添加文件头注释

生成Module

  • Verilog Gadget

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

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

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

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

  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中可以查看修改

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

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

C:\Users\AppData\Roaming\Sublime Text 3\Packages

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

模块的例化模板:

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

快捷键“ctrl+shift+c”和“ctrl+v”

生成TestBeach:

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

插入头部注释:

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

快捷键“ctrl+shift+insert”

生成多个重复信号:

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

快捷键“ctrl+F12”

代码对齐:

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

快捷键“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;

上述的操作如下图所示:

“ctrl+shift+p”install package

使用效果如下图所示:

语法检查1

语法检查2

语法检查3

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

  • Transparency

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

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

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

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

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

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

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

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


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

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sublime3 Verilog Gadget是一个用于Verilog和VHDL代码开发的插件。它提供了一些方便的功能,可以帮助程序员更高效地编写代码。通过引用和,我们可以了解到其中包含了一些功能,比如生成测试平台、插入顶部注释文档、插入代码片段、实例化模块等。这些功能可以帮助程序员快速生成代码结构、添加注释、重复代码等,提高开发效率。此外,引用提到了该插件对于状态机设计的技巧,可以帮助设计出高效且优先级合理的状态机。综上所述,Sublime3 Verilog Gadget是一个实用的开发插件,可以帮助Verilog和VHDL程序员更轻松地编写代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Verilog | Sublime Text 中 Verilog Gadget插件说明](https://blog.csdn.net/florence_jz/article/details/129584739)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [状态机的论文with verilog and vhdl](https://download.csdn.net/download/FullofWater/739505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值