欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

gvim使用:ab命令快速制作verilog模板

程序员文章站 2022-05-11 22:50:39
...

最近刚学习gvim,然后发现有个神奇的功能,可以快速制作verilog模板,但是网上没有相应的分享,所以自己制作了一个,分享出来(windows下)。
模板包括:module,时序逻辑块,组合逻辑块,testbench,计数器和三段式状态机。
使用方法:
1.将以下代码拷贝到 _vimrc文件中(该文件在安装目录中):

:ab Module module module_name(<enter>clk     ,<enter>rst_n    ,<enter>in      ,<enter>out <enter>);<enter><enter>  parameter   DATA_W =    8;<enter><enter>input                  clk     ;<enter>input                  rst_n    ;<enter><enter>output [DATA_W-1:0]    out     ;<enter><enter>reg    [DATA_W-1:0]    out     ;  <enter><enter>reg                    signal1 ;<enter><enter>aaa@qq.com( * ) begin<enter>end<enter><enter>always @(posedge clk or negedge rst_n) begin <enter>if(~rst_n) begin <enter>end<enter>else begin<enter>end<enter>end<enter><enter>endmodule
      
:ab Zuhe always @(*) begin<Enter>if(  )begin<Enter>end<Enter>else begin<Enter>end<Enter>end
     
:ab Shixu always @( posedge clk or negedge rst_n) begin<enter>if( ~rst_n ) begin<enter>end<enter>else begin<enter>end<enter>end      
      
:ab Jsq always @( posedge clk or negedge rst_n ) begin<enter>if ( ~rst_n ) begin<enter>cnt    <= 0;<enter>end<enter>else if ( &cnt ) begin<enter>cnt    <= 0;<enter>end<enter>else begin<enter>cnt    <=  cnt + 1;<enter>end<enter>end
     
:ab Ztj reg       [2:0]   cs;<enter>reg       [2:0]   ns;<enter>parameter [2:0]  IDLE   = 3'b000,<enter>S1     = 3'b001,<enter>S2     = 3'b010,<enter>ERROR  = 3'b100;<enter>always @( posedge clk or negedge rst_n ) begin<enter>if ( !rst_n ) begin<enter>cs <= IDLE;<enter>end<enter>else begin<enter>cs <= ns;<enter>end<enter>end<enter><enter>always @( * ) begin<enter>ns = IDLE;<enter>case ( cs )<enter>IDLE : begin<enter>if (  ) begin<enter>ns  = IDLE;<enter>end<enter>end<enter>S1 : begin<enter>if (  ) begin<enter>ns  = S1;<enter>end <enter>end <enter>S2 : begin <enter>  if (  ) begin<enter>ns  = S2; <enter>end <enter>end <enter>ERROR : begin <enter>  if (  ) begin<enter>ns  = ERROR; <enter>end<enter>end <enter>endcase <enter>end<enter><enter>always @( posedge clk or negedge nrst ) begin <enter>if ( !nrst ) begin <enter>end<enter>else begin <enter>case ( ns )<enter>endcase <enter>end <enter>end      

:ab TB `timescale 1ns/100ps<enter><enter>module dff_tb();<enter><enter>  reg                 t_clk;<enter>reg                 t_rst_n;<enter>reg     [3:0]       t_d;<enter>wire    [3:0]       t_q;<enter><enter>syn_dff  dut1 (.clk(t_clk),.rst_n(t_rst_n));    <enter><enter>initial begin<enter>t_clk = 0;<enter>end<enter>always #20 t_clk = ~t_clk;<enter><enter>initial begin<enter>t_rst_n = 1;<enter>@( posedge t_clk );<enter>t_rst_n = 0;<enter>@( posedge t_clk );<enter>t_rst_n = 1;<enter>end<enter><enter>initial begin<enter>t_d = 1;<enter>#25      t_d = 0;<enter>#20     $finish;<enter>end<enter>endmodule

2.打开gvim,敲入模板名字,敲回车即可,如图。

Module模块:
gvim使用:ab命令快速制作verilog模板
时序逻辑块和组合逻辑块
gvim使用:ab命令快速制作verilog模板
testbench模块
gvim使用:ab命令快速制作verilog模板
计数器和三段式状态机
gvim使用:ab命令快速制作verilog模板
_vimrc文件路径:
gvim使用:ab命令快速制作verilog模板
gvim使用:ab命令快速制作verilog模板
自己制作模板方法:

:ab name  code

:ab 为命令,name为你要制作的模板名字,code为代码,如果需要换行使用< enter >即可。

Tips:
我的gvim自动缩进2空格,tab也为2空格,如果将代码复制进去格式不太好看的话可能是这个引起的,将以下代码复制到_vimrc文件中即可:

"设置缩进
"设置Tab长度为2空格
set tabstop=2
"设置自动缩进长度为2空格
set shiftwidth=2

使用模板可以减少不必要的重复,大量缩短时间,希望我的分享对你有帮助,转载请说明出处~

相关标签: gvim 编程语言