![a76175df77e09d99f77adc19b788cadf.png](https://i-blog.csdnimg.cn/blog_migrate/d0a8e9134ba4188ad087d3c4f9cccb34.jpeg)
环境:RedHat Linux,工具:GVim,Emacs
为了高效的编写Verilog,通常有些编辑器插件可以自动生成代码,比如自动端口定义,自动连线,自动实例化等等。公司的环境有很好用的自动化插件,想给自己的电脑也整个怎么做。比如Emacs中有个插件叫verilog-mode。但是博主习惯了用Vim,查询后发现Vim也可以调用这个插件来实现自动化。
verilog-mode开发者网站在这里,更多内容去上网查询。
https://www.veripool.org/wiki/verilog-mode
自动化前
module
自动化后
module
在相应的位置写好命令,测试了下不区分大小写。然后在Vim命令模式下按 < Leader > + a,< Leader>在Vim中默认是 ,也就是按 + a,就OK了。这个对于写顶层的来说大大提高了效率。
实例化的文件和top在一个目录下直接运行就行,如果不在一个目录下,就在endmodule后添加如下
//Local Variables:
如何安装
- 确保自己的环境Emacs安装完整,最新的Emacs版本会自带这个插件
- 从git上下这个文件到本地
git clone https://github.com/zhuzhzh/verilog_emacsauto.vim
- 把这个插件放在/home/xxx/.vim/plugin/verilog_emacsauto.vim,plugin这个文件夹默认是没有,可以自己新建一个。
- 然后打开verilog_emacsauto.vim里面的文件verilog_emacsauto.vim/plugin/systemverilog_emacs_auto.vim
- 把其中所有的%.emacsautotmp全部替换成%.tmp.v
- 把-l ~/.elisp/verilog-mode.el全部去掉
没去掉之前是这个亚子的
![106d001967e56a651251a4f7c38c152b.png](https://i-blog.csdnimg.cn/blog_migrate/defa23239ad3e08ccc933fb5e51ccfd7.jpeg)
去掉之后是这个亚子的
![3ef109450ee18dac50aab2fd49f8dead.png](https://i-blog.csdnimg.cn/blog_migrate/aca5223fbc29c5a354c743f9a5aa421e.jpeg)
- 然后就大功告成了,还有图形界面可以使用
![d99f88d19b98f59e09ec204ed6d8cbb2.png](https://i-blog.csdnimg.cn/blog_migrate/26092080182794b3fff102dd648b838f.jpeg)
常用的就这几个,还有更多的自动化读者可以自己去本文开始的开发者网站探索。或者打开Emacs,菜单栏-Verilog-AUTO Help,
![b799ae7f3081aac8cec564ff47051e4d.png](https://i-blog.csdnimg.cn/blog_migrate/112cb5e92104760feaff1a8fc3947449.jpeg)
点击对应的auto会有下详细解释。
我也试了一下,这个autowire和autoreg,只能对output和实例化的端口进行操作,直接写一个always块或assign,如果操作的变量,不在output或实例化端口中,也不会自动定义。本文开始的那段代码中的变量doutx就没有被自动定义。在Emacs-菜单栏-Verilog-AUTO Help中打开这两个auto的详细介绍,貌似就是这样的。所以读者在使用的过程中应该注意。
![f3c9d5fb3153b31a8e0918e262c8068b.png](https://i-blog.csdnimg.cn/blog_migrate/fe7df9d6963013691ce61d4baac6bd96.jpeg)
![4093e06073fcf889c2ad2543344c59b3.png](https://i-blog.csdnimg.cn/blog_migrate/e842441eff66da786fcbb4d1bf436b36.jpeg)
本操作只在RedHat下操作成功,其他平台感兴趣的读者可以自己试试,有人有疑惑为什么不直接用Emacs呢,这就是习惯,编辑器用习惯了其实也都一样,并不是要说哪个更好用。听说Sublime Text中也有类似这样的插件,不过编辑器这个东西,找个自己用的顺的,能跨多个平台的就可以了。
关于写代码还有哪些便捷,提高效率的工具,欢迎留言区分享出来。
感谢订阅号 ExASIC提供的这个方法,并帮助我进行配置修改。
Reference
在Vim中集成emacs下的verilog-mode功能mp.weixin.qq.com![f20f5def47d953bfadc657fc34bc25d7.png](https://i-blog.csdnimg.cn/blog_migrate/7b61fd97119ea176e86ee28896d28069.jpeg)
![0c73782d9f85f14523c14b8df1ee1af1.png](https://i-blog.csdnimg.cn/blog_migrate/c7b04af0913a16757283015d7f9366b5.jpeg)
![d55ba60183b19142f5f0573f45d182ae.png](https://i-blog.csdnimg.cn/blog_migrate/1023ed81cc1ba2f33bd70aa756238b3f.jpeg)