Vscode中自动生成Verilog/VHDL模板以及代码自动联想-FPGA常见问题社区-FPGA CPLD-ChipDebug

Vscode中自动生成Verilog/VHDL模板以及代码自动联想

为了高效开发VHDL/Verilog,使用的编辑器一般会有很多的插件便于用户的开发,比如自动生成测试文件的插件(我当初也发过相关的脚本),语法的检测,模块的联想自动补充,这些插件提供的都属于通用的功能,那么如何设计自己定制化的模板和代码片段联想呢?Vscode提供了自己的接口,这个接口使用json写的。

Vscode提供非常方便的接口来供用户自己实现这些小的功能,相比较我之前发的生成TB脚本,这篇文章要讲的更加简单。我以VHDL的json文件为例(实现Verilog的联想一致)

 

模板的开头,实现调用文件名,调用当前年份,开始写代码的时间

 

图片[1]-Vscode中自动生成Verilog/VHDL模板以及代码自动联想-FPGA常见问题社区-FPGA CPLD-ChipDebug

代码如下:

{
  "VHDL module": {
// "scope": "VHDL",
    "prefix": "VHDL Aries",
    "body": [
      "------------------------------------------------------------------------------------------------", 
      "--",
      "-- Coding: UTF-8", 
      "-- @File : $TM_FILENAME",
      "-- @Version : 1.0",
      "-- @Author : AriesOpenFPGA",
      "-- @Email : 2577802337@qq.com",
      "-- @License : (C)Copyright 2019-$CURRENT_YEAR,AriesOpenFPGA",
            "-- @Time : $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
      "-- Description:",
      "--",
      "------------------------------------------------------------------------------------------------", 
      " ", 
      "library ieee;",
      "use ieee.std_logic_1164.all;",
      "",
      "",
      "entity $TM_FILENAME_BASE$1 is",
      "tgeneric (width :positive := 8);t-- ",
      "tport (",
          "ttclk : in std_logic;",
          "ttrst : in std_logic;",
          "ttDate_i : in std_logic_vector (width-1 downto 0);",
          "ttDate_o : out std_logic_vector (width-1 downto 0)",
          "t);",
      "end $TM_FILENAME_BASE$1;",
      "",
      "architecture rtl$2 of $TM_FILENAME_BASE$1 is",
      "signal",
      "signal",
      "",
      "begin",
      "end rtl$2;", 
    ],
    "description": "VHDL module"
  },

部分命令:

调取文件名(包含扩展):

$TM_FILENAME

调取时间命令代码:

$CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND

调用文件名(不包含扩展)

$TM_FILENAME_BASE

光标定位处(主要为了方便修改文件内不同处的相同文本,摁Tab切换光标位置):

$1(第一处光标)
$2(第二处光标)

例如:VHDL的实体名会多次在不同地方出现(如视频中所示)。

空格(有几个t就空几空格):

tt

有其它命令需求,请读者自行查阅资料。

如何插入到Vscode?

打开文件-首选项-用户片段

 

图片[2]-Vscode中自动生成Verilog/VHDL模板以及代码自动联想-FPGA常见问题社区-FPGA CPLD-ChipDebug

 

可以选择全局的文件,如下图提示,也可以选择为特定拓展名设置代码片段,我上面选的是全局,选择完会给一个简单的例子教你怎么做,然后就可以根据自己的需求写代码了。

 

图片[3]-Vscode中自动生成Verilog/VHDL模板以及代码自动联想-FPGA常见问题社区-FPGA CPLD-ChipDebug

总结

根据自己的习惯可以定义规范化的代码风格,比如,很多人都会写自己的模块库,每次例化可能都要重新敲一遍,但有这种联想的功能,只需要自己先写好json便可以在文件中非常快速的调用自己的子模块,当然这仅限于是自己写的接口。如果需要对别人的代码进行例化(命名规则和自己完全不同)或生成TB,则需要使用脚本文件,我之前发过关于Python 生成Verilog测试文件的脚本,感兴趣可以看看。

请登录后发表评论

    没有回复内容