Windows系统支持Verilog自动实例化等功能的Vim插件的安装及使用教程

概述

VIM的官方网站中给出了一款由Gavin Ge[1]编写的专门针对Verilog语言的automatic插件:

类别详情
插件automatic for Verilog : Automatic generator for Verilog HDL[2]
作者Gavin Ge
博客http://blog.sina.com.cn/arrowroothover
邮箱arrowroothover@hotmail.com
描述支持像Emacs那样为Verilog HDL语言加入自动填充功能
功能自动填充参数、自动例化、自动生成敏感列表、自动定义信号、自动添加文件头、自动注释

注:[1]和[2]的链接需要进行简单注册才能显示内容

automatic插件原理

原理如下:

  1. 在Verilog代码中添加特定格式的注释
  2. 利用插件脚本,用正则表达式去匹配特定格式的注释
  3. 根据特定格式的注释,执行特定的操作。

安装Vim

Vim官方下载地址中点击下图所示红框位置下载Windows版最新的Vim安装文件并安装。
若加载过慢,可点击此网盘链接地址

VIM百度网盘下载地址

下载automatic插件

插件官方下载地址中点击下图所示红框位置下载automatic插件。
若加载过慢,可点击此网盘链接地址

在这里插入图片描述

安装automatic插件

以Vim8.1版本为例,将下载的automatic.vim文件放在 $安装目录/vim81/plugin 文件夹下,重启Vim,可以看到Vim界面菜单栏按钮中新出现了一个Verilog按钮,如下图:
新的Verilog按钮

使用automatic插件

更多使用功能,可以参加插件官方下载地址中的vim.rar文件,各子文件夹名与其代表的功能相对应,其中before.v是使用插件之前的代码,after.v是使用插件之后的代码。
在这里插入图片描述

下面,只介绍最为常用的自动例化自动生成always块

自动例化

  1. 保证文件名和模块名一致;
    保证文件名和模块名一致

  2. 在代码中加入如下格式的注释,用以注明要例化的模块的代码文件所在的路径在代码中加入如下格式的注释,用以注明要例化的模块的代码文件所在的路径

// Instance: folderName/module.v
  1. 模块的端口连接列表中加入如下格式注释
moduleName instanceName(/*autoinst*/);

例如:

// Instance:    ahb/ahb_slave.v 
module example; 
	ahb_slave u_slave(/*autoinst*/); 
endmodule 
  1. 点击Verilog按钮中的AutoInstance按钮

自动例化按钮

  1. 自动生成的代码块如下:
// Instance:    ahb/ahb_slave.v
module example;
ahb_slave u_slave(/*autoinst*/        
	//Inputs        
	.ahbm_ahbs_HWDATA   (ahbm_ahbs_HWDATA[31:0] ),        
	.arb_ahbs_HMASTLOCK (arb_ahbs_HMASTLOCK     ),        
	.ahbm_ahbs_HWRITE   (ahbm_ahbs_HWRITE       ),        
	.ahbm_HBURST        (ahbm_HBURST[2:0]       ),        
	.ahbm_HADDR         (ahbm_HADDR[31:0]       ),        
	.ahbm_ahbs_HSIZE    (ahbm_ahbs_HSIZE[2:0]   ),        
	.HSEL               (HSEL                   ),        
	.HCLK               (HCLK                   ),        
	.ahbm_HTRANS        (ahbm_HTRANS[1:0]       ),        
	.HRESETn            (HRESETn                ),        
	.arb_ahbs_HMASTER   (arb_ahbs_HMASTER[3:0]  ),        
	//Outputs        
	.ahbs_arb_HSPLIT    (ahbs_arb_HSPLIT[15:0]  ),        
	.ahbs_HREADY        (ahbs_HREADY            ),        
	.ahbs_ahbm_HRDATA   (ahbs_ahbm_HRDATA[31:0] ),        
	.ahbs_HRESP         (ahbs_HRESP[1:0]        ));
endmodule

自动生成always块

  1. 在模块端口用clock注释和reset注释分别注明时钟信号名复位信号名
module example(    
input clk,  //clock    
input rst_n //reset); 
endmodule
  1. 光标移到要添加always块的位置

光标位置

  1. clockreset各有上升沿和下降沿两种情况,此为四种组合。加上仅用clock的两情况,以及组合逻辑块,共有7中情况可选,可根据实际情况,点击Verilog按钮中的下图部分:

在这里插入图片描述

  1. 自动生成的代码块如下:
module example(    
	input clk,      // clock    
	input rst_ n    // reset
); 
always @(posedge clk or negedge rst_ n) begin    
	if (!rst_ n) begin    
	end    
	else begin    
	end
end

always @(posedge clk) begin
end


always @(*) begin
end

endmodule

总结

Vim结合automatic插件可以大大提高编程效率。

但是!!!Vim的颜值真的不高,相比之下微软的Visual Studio Code不仅颜值高,还有大量的Verilog插件可用,而且自动补全的功能也比Vim优秀。
后续将会推出VSCode编写Verilog的相关插件介绍(例如自动生成testbench、自动例化,自动填充各种for case always 等常用语句块),以大大提高编程效率。

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值