此篇为终篇,介绍所有安装好的定制功能。
开始之前先看个有趣的。据说各编辑器的学习难度是这样的。

本文延续上两篇的内容。
初篇|环境配置(几乎所有参考的插件和脚本在此篇)
中篇|使用手册(部分功能的使用说明)
与之前篇的不同?
- 将verilog相关的内容从vimrc配置文件全部移动到了automatic.vim文件中
- 添加emacs verilog-mode的调用快捷键
- 根据自己习惯调整了菜单栏和工具栏的一些结构,重新定义了快捷键方便自己操作(比如
header和al改为了;header和;al) - 新增ASCII画部分功能
下面演示部分Gvim写Verilog功能。
PS:快捷键单独配置,只针对博主自用版的Gvim有效。
Wave
Gvim中添加&调整时序波形

参考中篇|使用手册。波形的起始位置、时钟间隔空格长度、时钟偏移及上升沿或下降沿触发等均可在脚本中自行配置。
快捷键:
<C-F8>翻转波形
Code
Generate
代码段快速生成,包括头部信息,always块,单行多行注释,状态机,当前时间等,可以通过快捷键或者直接点击的方式生成代码。

鼠标点击的方式参考中篇|使用手册。
快捷键:
header和al快捷键已经改为带Leader的;header和;al,主要为了不影响h和a键的操作速度。头部的作者、芯片、网站等信息在_vimrc中配置状态机的
fsm快捷键暂时删除,现在有更新的自动生成方法
<F2>添加单行注释,<F3>选中区域添加多行注释,<F4>行末添加注释
插入模式下使用<F2>插入当前时间
Load Template
每次在代码里添加新模板太麻烦了,可以直接导入整个写好的.v文件作为模板

快捷键:
输入
:LoadTemplate后输入数字选择.v文件的模板即可,模板可自行编写
New
新建.v文件自动套用模板

Auto Update
写入文件时修改时间自动更新

Multi Channel
多通道批量命名

参考中篇|使用手册,功能源自vim插件VisIncr。
快捷键:
列可视模式选定后输入:I<CR>(递增)或:I -1<CR>(递减)
Declaration
进行端口和寄存器等的声明并自动对齐

参考中篇|使用手册和初篇|环境配置,功能源自快捷键的对齐操作。
快捷键:
;di产生input信号声明,;dow产生output wire 信号声明,;dor产生output reg信号声明(注意声明时不能带位宽,不然会被截位。)
F7对齐输入输出端口的格式;F8对齐reg/wire的格式;通过快捷键F6调整例化模块的端口对齐
Align
一键自动对齐所有格式(包括输入输出端口、注释位置、always块、assign块等)。
特殊原因,暂缓。
Auto
automaic.vim插件本身包含的自动化功能包含自动例化(Autoinst),自动例化端口更新(AutoinstUpdate),自动例化端口顺序更新(AutoinstUpdateOrder),自动例化模块信号对齐(AutoPortReAlign),自动例化端口添加输入or输出的注释(AutoinstPortDirectionToInst),自动定义wire和reg(AutoDef),自动定义端口连接线(AutoArg)
Emacs的verilog-mode插件的自动化功能包括自动例化(AutoInst),自动wire(AautoWire),自动reg(AutoReg),自动例化参数(AutoParam)

只展示自动例化和自动添加参数。
有关automatic.vim参考vim auto script for verilog & RtlTree - (like Emacs, Verdi) - FPGA/ASIC资料共享 - EETOP 创芯网论坛 -。
有关Emacs的verilog-mode 参考ExASIC: RTL顶层自动连线的秘武器:Emacs verilog-mode介绍以及如何高效的编写Verilog—终极版 Gvim自动化插件分享_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
快捷键:
自动例化:插入
/*autoinst*/后使用<S-F3>自动生成所有wire/reg:插入
/*autodef*/后使用<S-F2>自动例化parameter:插入
/*autoinstparam*/后使用:EmacsAuto<CR>调用Emacs的verilog-mode即可其余不常用,自行菜单栏调用
Jump
Rtl树,搜索module/instance,进/出子模块,搜索驱动信号

类似Verdi的跳转功能,Rtl树生成参考中篇|使用手册,功能仍然参考vim auto script for verilog & RtlTree - (like Emacs, Verdi)。
Syntax
语法检查,快速跳转错误位置

参考中篇|使用手册,功能源自vim插件SyntasticCheck,另需要外置iverilog作为Linter。
快捷键:
:SyntasticCheck<CR>
Ascii
(2020/8/16更新)最近发现了ASCII画,稍微研究了一下。主要有表格、图像和字符画这几个。
Table
快速生成ASCII表格,快捷调整表头、表格位置。

参考stormherz/tablify。功能源自vim插件tablify。
快捷键:
可视模式下选中编辑好的文本后\tlor\tt生成表格(左对齐),\tc生成表格(居中对齐),\tr生成表格(右对齐)
\tu还原已转换的表格
\tS已转换的表格按当前列排序(数字或字母顺序)
\tRL重新右对齐当前行,\tRR重新左对齐当前行,\tRC重新居中对齐当前行
\tK当前行上移\tJ当前行下移\tL当前列左移\tH当前列右移
DrawIt
画带箭头的ASCII结构图

参考vim-scripts/DrawIt以及How To Create ASCII Drawings in Vim Editor。功能源自vim插件DrawIt。
\di开启DrawIt,\ds关闭DraIt。开启后直接移动方向键<Up>,<Down>,<Right>,<Left>即可画线通过
>,<,v,^画箭头,通过\>,\<,\V,\^画大箭头。\b绘制长方形盒,\e绘制椭圆其余快捷键过多,见参考链接
Text2ASCII
通过Text to ASCII Art Generator (TAAG)直接生成即可。
比如我的名字HonkW:
1 | // _ _ _ __ __ |
Summary
Gvim的折腾到此为止,基本整合完之前看到的所有内容。
如果有推荐或新发现的插件或脚本,会在这篇文章中额外添加。感谢阅读。




