传说这个世界上只有代码三种编辑器,Vim , Emacs 和其他编辑器,其中Vim被称作编辑器之神,Emacs被称为神的编辑器,当然,其他编辑器永远只能是其他编辑器。
博主是坚定的Vim党,GVim即Gui Vim。Vim is the best text editor!
各大编辑器的学习曲线
本文要再次分享的是基于Gvim的开源插件,我愿称之为我见过的最强的GVim上的开源的编写Verilog插件。(定语足够多)
autoinst自动例化
支持任意跨文件夹例化,需要在endmodule最后写图示代码标识,路径指定任意位置支持相对路径、绝对路径(注意End后面必须再加一行空行)
支持Verilog1995和Verilog2001的端口描述语法,默认是关闭的需要自行配置选项打开
支持例化模块端口修改后,注释哪些被修改,哪些新增
使用方式,光标放在autoinst的位置,在Gvim命令模式,键入AI。在命令模式键入AIall,还可以一键将当前.v的所有autoinst标志的地方全部刷新。
autodef自动定义
直接写assign或者直接写always。然后完全可以自动定义wire或reg。尤其是做顶层的集成的时候,几千根wire连线,根本不是人做的。工作效率提高1000%
如果有些定义你想自己写,写在自动生成的注释段外面就行了,工具会自动查重。将当前顶层所有的wire刷新一遍,同时显示新增或删除
使用方式,在代码定义段编写标识/ autodef /,在命令模式下键入AD
autopara自动para例化
支持例化parameter变量名和自动例化数字两种方式。
在参数例化模块段编写标识/ autoinstparam /,在命令模式下键入AP,可以将子模块的parameter例化出来。在参数例化模块段编写标识/ autoinstparam_value /,键入APV,可以直接将parameter的数值例化出来
同时也支持一键例化刷新当前.v所有instance。命令分别对应为APall和APVall
autoarg自动定义端口
如果你喜欢标准1995的端口描述写法。直接帮你自动定义端口,不过我个人更喜欢2001以后的端口描述写法,端口描述写一次就够了,所以autoarg我基本没用
在端口定义段编写标识/autoarg/,在命令模式下键入AR,可以将端口自动提到port上,并区分output段和input段
支持显示RtlTree
在命令模式下键入RtlTree,可以直接显示rtl tree,点击对应的模块可以实现跳转,简直就是一个小型的IDE
支持snippet用户自定义代码段
命令模式键入HD,直接生成文件头,格式都可以自定义,文件发生更改会自动更新last modified时间
命令模式键入ALB生成组合逻辑代码段,键入ALBPN会生成时序逻辑代码段,倒数第二个P代表时钟是上升沿还是下降沿,最后一个N表示复位的高低有效。
这些commad用户都可以自定义,这些是我加的几个常用的。
snippet的代码段也是可以用户自定义,感兴趣的朋友自己研究下。
上面说的已经是可以将编码效率提高1000%了,还有其他更多的功能。这里就不一一展示了,感兴趣的朋友可以自己去探索。
安装使用
安装使用方法也很简单,直接放到vim安装目录的plugin路径中,如果有没有这个目录就新建一个。更重要的是,支持Windows、Linux、MacOs全平台。操作完全相同。
那么怎么样才能得到这个工具呢?整理编写这个脚本的网友,已经全部开源,而且还在持续更新开发。你甚至可以自己在这个基础上再开发,做出符合自己的全部需求的Verilog插件。
GitHub链接如下:
https://github.com/HonkW93/automatic-verilog
他的个人网站有更加详细的介绍和使用方法。
https://blog.honk.wang/posts/AutoMatic/
这套脚本是原生的,本文涉及到的commad是我自己加的,一些选项也有调整,经过调教,可以说胜任上亿门级别的IP开发或者集成工作都没有问题。
脚本我上gitee托管了,感兴趣的朋友可以在公众号后台回复siliconpeasant,或者上gitee搜索siliconpeasant/xuanwu9000/tools/vim仓库,就可以获得我的仓库链接啦。
最后
听我说,所有用GVim的都必须得用它,没用GVim的希望早点用。最后祝大家代码写得快,下班下得早!给我点赞,在看,分享三连!
作者:硅农
文章来源:硅农
推荐阅读
更多IC设计干货请关注IC设计专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。