Gvim-Verilog-Final
此篇为终篇,介绍所有安装好的定制功能。
开始之前先看个有趣的。据说各编辑器的学习难度是这样的。
本文延续上两篇的内容。
初篇|环境配置(几乎所有参考的插件和脚本在此篇)
中篇|使用手册(部分功能的使用说明)
与之前篇的不同?
- 将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
。
快捷键:
可视模式下
选中编辑好的文本后\tl
or\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的折腾到此为止,基本整合完之前看到的所有内容。
如果有推荐或新发现的插件或脚本,会在这篇文章中额外添加。感谢阅读。