发布网友 发布时间:2024-10-01 11:30
共1个回答
热心网友 时间:2024-10-28 07:00
工具没有绝对最好,只有最适合的。Verilog行为级描述虽然抽象度高,但在大规模电路设计中,Verilog代码往往存在冗余,如自动定义和自动实例化等。尤其是在Top集成时,上万行的连线,手动操作既低效又易出错。
为了提高Verilog代码编写效率,许多工具提供了自动化插件。本文将分享两个Gvim的自动化插件。
博主找到了两个插件:verilog-mode和vim.org/scripts/script...
使用verilog-mode插件,需要安装Emacs。各个版本的Emacs下载安装地址为:gnu.org/savannah-checko...
MacOS、CentOS和Windows安装Emacs的详细步骤请参考以下链接:
在安装目录的bin文件夹下找到emacs.exe运行。
自动化前,实例化的文件和top在一个目录下直接运行。如果不在一个目录下,就在endmole后添加如下命令:
在相应的位置写好命令,测试了下不区分大小写。然后在Vim命令模式输入命令行。*号可以替换成对应的文件名。
即可自动化定义和自动实例化。这个插件在Mac和Linux下可以直接输入上面的命令使用,在Windows下设置一下环境变量即可。
设置第三行执行文件的emacs.exe的路径。
这个插件有些小问题,autoinst执行时,如果修改了端口名称,则会恢复到默认。autowire和autoreg,只能对output和实例化的端口进行操作,直接写一个always块或assign,如果操作的变量,不在output或实例化端口中,也不会自动定义。本文开始的那段代码中的变量doutx就没有被自动定义。在Emacs-菜单栏-Verilog-AUTO Help中打开这两个auto的详细介绍,所以读者在使用的过程中应该注意。
对于这两个问题,我找到了另外一个插件:vim.org/scripts/script....
直接下载这个文件。
在Windows中使用,直接放在安装目录下plugin文件夹下,重启Gvim在菜单栏加载插件菜单。
MacOS与CentOS下需要安装这个插件,在用户根目录下新建一个文件夹为.vim/plugin/,然后这个插件复制进去,重新打开Gvim,就可以看到插件自动加载。
autoinst使用的过程中需要注意的是,光标必须放在需要操作位置对应的那一行,然后使用快捷键或者点击菜单栏图形界面就可以直接运行。这个插件的问题是不能跨文件夹实例化,不过对于平时做些小练习绰绰有余了,效率提高100%。
还可以添加always块,编写代码时,直接写assign和always块给变量进行赋值,使用autodef,则会自动声明变量成对应的wire或者reg。
Emacs verilog-mode只能自动声明输出和实例化端口的变量,而且在Windows平台下,会出现自动对齐参差不齐,但是可以自定义跨文件夹实例化。而automatic.vim弥补了Emacs verilog-mode自动定义功能的不足,但是却没有跨文件夹实例化的功能。所以两个可以配合着用,对于做个小练习,甚至做工程开发也完全没有问题。最常用的就这几个功能,还有其他功能读者可以自己去尝试,提高编码效率。
最后,编辑器这个东西,找个自己用的顺的,能跨多个平台的,多人协作尽量保持统一的就行了。没有最好,只有最适合你的。