Sublime Text配置Verilog-FPGA开发环境Package推荐
【代码】Sublime Text配置Verilog环境Package推荐。
1.Package Control
插件管理,必装
2. ChineseLocalizations
中文支持
## 3.ZZZZZZZZ-Localization
不再需要
4.ConvertToUTF8
将当前打开的文件转换为UTF-8编码格式
5.CTags
生成代码标签,以便于快速定位和跳转到代码中的函数、类、变量
6.SublimeLinter
需要先安装一个iverilog:http://bleyer.org/icarus/
在默认安装模式下,似乎并不需要额外的配置?
如果不对iverilog进行配置,会遇到iverilog:Unknown module type: XXX问题
参考iverilog插件官网的描述:https://packagecontrol.io/packages/SublimeLinter-contrib-iverilog
需要对iverilog添加“-i”参数进行抑制(当然,你也可以通过添加include,这里不表)
具体配置如下:
// SublimeLinter Settings - User
{
// "debug": true,
"linters": {
"iverilog": {
"disable": false,
"args": ["-i"], // add the "-i" flag
"working_dir": "${file_path}",
"excludes": [],
},
}
}
7.SublimeLinter-contrib-iverilog
语法检查
8.SystemVerilog
高亮、例化、自动生成代码片段
此外,如果是针对Verilog开发,该插件还需要进行一定修改:
{
"sv.completion.core":
[
["if" , "block" , "if (${1:/* condition */}) begin\n\t${0:/* code */}\nend" , [], []],
["case" , "block" , "case (${1:/* switch */})\n\n\tdefault : ${0:/* default */};\nendcase" , [], []],
["begin" , "block" , "begin\n\t$0\nend" , [], []],
["localparam" , "declaration" , "localparam", ],
["parameter" , "declaration" , "parameter", ],
["generate" , "block" , "generate\n\t$0\nendgenerate" , [], []],
["for" , "loop" , "for (int ${2:i} = 0; $2 < ${1:count}; ${3:$2++}) begin\n\t${0:/* code */}\nend" , [], []],
["foreach" , "loop" , "foreach ($1) begin\n\t$0\nend", [], []],
["class" , "declaration" , "class ${1:${TM_FILENAME/(.+)\\..+|.*/$1/:name}} extends ${2: /* base class*/};\n\t$0\nendclass : ${1}" , [], []],
["uvmclass" , "declaration" , "class ${1:${TM_FILENAME/(.+)\\..+|.*/$1/:name}} extends ${2: /* base class*/};\n\n/*-------------------------------------------------------------------------------\n-- Interface, port, fields\n-------------------------------------------------------------------------------*/\n\t${0}\n\n/*-------------------------------------------------------------------------------\n-- UVM Factory register\n-------------------------------------------------------------------------------*/\n\t// Provide implementations of virtual methods such as get_type_name and create\n\t`uvm_component_utils(${1})\n\n/*-------------------------------------------------------------------------------\n-- Functions\n-------------------------------------------------------------------------------*/\n\t// Constructor\n\tfunction new(string name = \"${1}\", uvm_component parent=null);\n\t\tsuper.new(name, parent);\n\tendfunction : new\n\nendclass : ${1}", [], []],
["constraint" , "declaration" , "constraint ${1:c} {\n\t${0}\n}" , [], []],
["covergroup" , "declaration" , "covergroup ${1:cg}();\n\t${0}\nendgroup : ${1:cg}" , [], []],
["function" , "declaration" , "function ${1:void} ${2:funcname}($3);\n\t$0\nendfunction : ${2}" , [], []],
["interface" , "declaration" , "interface ${1:${TM_FILENAME/(.+)\\..+|.*/$1/:name}} ();\n\t$0\nendinterface : $1", [], []],
["module" , "declaration" , "module ${1:${TM_FILENAME/(.+)\\..+|.*/$1/:name}} (\n\tinput clk, // Clock\n\tinput clk_en, // Clock Enable\n\tinput rst_n, // Asynchronous reset active low\n\t${0}\n);\n\nendmodule " , []],
["package" , "declaration" , "package ${1:${TM_FILENAME/(.+)\\..+|.*/$1/:name}};\n\t$0\nendpackage : $1" , [], []],
["task" , "declaration" , "task ${1:taskname}($2);\n\t$0\nendtask : ${1}", [], []],
["import" , "declaration" , "import ${1:pkgname}::${2:*};\n$0", [], []],
["typdefenum" , "declaration" , "typedef enum logic [$1:0] {$0} e_$2;\n", [], []],
["forkj" , "fork..join" ,"fork\n\t$0\njoin" , [], []],
["forkn" , "fork..none" ,"fork\n\t$0\njoin_none" , [], []],
["forka" , "fork..any" ,"fork\n\t$0\njoin_any" , [], []],
["posedge" , "event" ,"posedge ${0:clk}" , ["sensitivity"], []],
["negedge" , "event" ,"negedge ${0:rst_n}" , ["sensitivity"], []],
],
"sv.always_label" : false,
}
9.Verilog Gadget
提供了自动生成例化模板、自动生成tb模板(Systemverilog)、插头信息、对齐操作等操作
10.Smart VHDL
提供VHDL语言支持
11.首选项-》设置
另外系统配置中还有一些实用功能:鼠标丢失焦点自动保存、更改光标闪烁、缩小光标长度等等
{
"ignored_packages":
[
"Vintage" //关闭Vim模式
/*"CTags",*/
/*"SystemVerilog",*/
/*"CTags",*/
/*"Insert Nums",*/
/*"SublimeLinter",*/
/*"Package Control",*/
],
"save_on_focus_lost": true,
"font_size": 18,
//文件索引解析侧边栏中的所有文件,并构建其符号的索引。这是“转到定义”工作所必需的。
"index_files": true,
//光标闪烁
"caret_style": "smooth",
//光标变小
"caret_extra_top":1,
"caret_extra_bottom":1,
"caret_extra_width":1,
//关闭自动换行
"word_wrap": "none",
// 一个Tab等于4个空格
"tab_size": 4,
// 将Tab键转化为空格
"translate_tabs_to_spaces": true,
}
12.深色主题
偶然在官网发现有深色主题:
1.首选项-》主题-》Default Dark
2.首选项-》配色方案-》Mariana
3.背景色由灰改为黑:
3.1使用压缩工具打开:D:\Program Files\Sublime Text\Packages\Color Scheme - Default.sublime-package
3.2复制一份Mariana.sublime-color-scheme
3.2.1定义一种与侧边栏相同的黑色:
"variables":
{
"black2": "hsl(210, 11%, 15%)",
},
3.2.2 更改背景色
"globals":
{
"background": "var(black2)",
},
13.AutoMatlab
用于支持Matlab语法高亮与关键词索引
注:Matlab2014a之后的版本才支持utf-8
14.Beyond Compare
虽然sublime提供有内部进行对比的插件,但是得益于Beyond Compare强大的对比功能还是推荐使用Beyond Compare插件
使用时需要在插件中配置自行安装的Beyond Compare程序路径:
{
//Define a custom path to beyond compare
“beyond_compare_path”: “D:/Program Files/Beyond Compare/BCompare.exe”
}`
15.Insert Num
用于FPGA开发中列选择后快速插入序号:
快捷键:
ctrl + alt +N
默认从1开始,每次递增1
插入后输入0即可从0开始
16.河蟹
通常,你需要河蟹他:https://www.cnblogs.com/xyida/p/14932186.html
另,分享一个交流论坛
Sublime Text中文论坛:https://sublimetext.iaixue.com/
关闭自动更新:
第一种方法:
首选项-》设置-》
“update_check”:false
第二种方法:
在host文件中插入下面这一行
127.0.0.1 www.sublimetext.com
如果是Linux,则host在 /etc/hosts
如果是Windows,则host在 C:\Windows\System32\Drivers\etc\hosts
如果你想在浏览器上打开sublime官网,需要撤销以上操作,因为以上操作是把官网DNS解析到本机,肯定是找不到的,所以也就不会出现更新提示了。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)