win7+vim搭建+verilog HDL IDE

 

参考地址:http://www.huangdc.com/421

参考文章为2016年,部分更新贴于文章内了

  • 安装下载vim

vim在win下叫gvim,下载地址:https://www.vim.org/download.php

安装时可以选择更改目录(我把安装目录设置为E:\gvim)

1.安装时注意选择‘Full’ option。

2.在vimfiles 文件夹下,会有许多空文件夹。将它们全删掉。

3.将vim81文件夹下的“autoload”文件夹 剪切 到 vimfiles 文件夹下。

4.在vimfiles 文件夹下新建文件夹 bundle

  • vim插件管理工具vundle

一开始我按照参考链接来进行,却出现错误:error:1407742E

解决办法:

 1.下载最新版本的git,据说是 GitHub 不再支持TLSv1/TLSv1.1了,并配置curl

2.先设置vim环境变量

我的电脑->属性->高级系统设置->高级->环境变量->新建,如图(指向gvim的安装目录vim81文件夹)

3.用新的git clone地址

目标路径为bundle文件夹路径

4.出现错误RPC fail;curl 56 openssl......

原因:http缓存不够或者网络不稳定等

解决办法:

(1)增大buffer:git config --global http.postBuffer 524288000

(2)压缩配置:git config --global core.compression -1(好像可以不加)

(3)查询git配置信息:git config -l

(另外吐槽一句,百度搜索引擎真的是垃圾。。很多问题谷歌一搜索关键词就能解决了)

到这里Vundle算clone完成了(另外记得把墙断开再clone)

  • 插件安装

在vim启动配置文件_vimrc添加配置

PS:其他插件下载到bundle文件夹下相应路径,添加配置,安装后即可在vim里使用

  • 常用插件

1.vundle插件管理工具

配置vimrc后,安装插件

 

相关指令:

安装插件:BundleInstall
更新插件:BundleUpdate
清除不再使用的插件:BundleClean
列出所有插件:BundleList
查找插件:BundleSearch

2.NerdTree文件目录插件

(安装NerdTree以后重启gvim总是会报一个变量缺失的错误,最后没弄出来就把NerTree卸载了,以后有空的时候再倒腾吧)

  •  verilogHDL IDE定制

原参考链接:https://www.cnblogs.com/ninghechuan/p/8505942.html

1.新建.v、.sv文件时自动加载头文件

在_vimrc添加

$VIM为在环境变量设置的gvim全局路径,新建template文件夹并添加v.tlp

v.tlp为新建.v文件加载头文件模板(打码处为个人信息,自己改过来就行了)

修改完后,保存,下次新建.v文件时就会自动加载模板的内容

2.ab定制关键词插入模板

在_vimrc添加

那么在文件插入模式下输入关键字就会显示对应的模板,编辑格式为:ab+空格+关键词+空格+模板,换号为<Enter>,把Tab改为自动空4格,<Tab>就是自动空四格

3.vivado\ISE自动调用gvim编辑器

个人用的是vivado2017.1版本,调用gvim跟链接提供的方法有点不一样,设置方法依然是tool->setting->text editor

注意找对gvim的位置

4.简化版的_vimrc

最后贴一下我自己的vimrc配置吧,属于一个初步可以使用版本,然后后续会做一些sv插件或者个性化的配置再慢慢扩展一下,简化版本是应急用的

source $VIMRUNTIME/vimrc_example.vim

"插件配置
set nocompatible
filetype off
set rtp+=$VIM/vimfiles/bundle/Vundle.vim
call vundle#begin('D:\gvim\Vim\vimfiles\bundle')
" add your plugin here
Plugin 'VundleVim/Vundle.vim' " required
Plugin 'scrooloose/nerdtree' " file/directory treee
Plugin 'scrooloose/nerdcommenter' " code commenter
Plugin 'kien/ctrlp.vim' " Fuzzy file, buffer, mru, tag, etc finder
Plugin 'altercation/vim-colors-solarized' " solarized theme
call vundle#end() " required
filetype plugin indent on " required

set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg1 = substitute(arg1, '!', '\!', 'g')
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg2 = substitute(arg2, '!', '\!', 'g')
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let arg3 = substitute(arg3, '!', '\!', 'g')
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
if empty(&shellxquote)
let l:shxq_sav = ''
set shellxquote&
endif
let cmd = '"' . $VIMRUNTIME . '\diff"'
else
let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
let cmd = substitute(cmd, '!', '\!', 'g')
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
if exists('l:shxq_sav')
let &shellxquote=l:shxq_sav
endif
endfunction

"显示方案
set shortmess=atI "不显示乌干达
syntax enable
syntax on "语法高亮
colorscheme darkblue "配色方案
set showmode "显示模式
set showcmd "显示命令
set nu "显示行号
set cursorcolumn "高亮光标所在行列
set cursorline
let &termencoding=&encoding "防止乱码
set fileencodings=utf-8,gbk,ucs-bom,cp936
set lines=70 columns=155 "设定窗口大小
set mouse=a "支持鼠标复制粘贴

"个性化
set tabstop=4 "tab代表4个空格键
set shiftwidth=4
set expandtab
set softtabstop=4
set showmatch "自动匹配括号
set nobackup "不创建备份文件
set noai "取消自动缩进和智能缩进
set noci "取消自动缩进和智能缩进
set nosi "取消自动缩进和智能缩进


"新建.v文件自动加载头文件模板
autocmd BufNewFile *.v 0r $VIM/vimfiles/template/v.tlp

"HDL定制
:ab fenge //==============================
:ab shixu always @(posedge clk or negedge rst_n) begin<Enter>if (rst_n == 1'b0) begin<Enter>end<Enter>else begin<Enter>end<Enter>end
:ab zuhe always @(*) begin<Enter>end

 5.模块端口自动例化脚本

脚本下载链接:http://bbs.eetop.cn/viewthread.php?tid=344036

新发现一个比较好用的模块例化脚本,非常nice

跟参考链接的设置一样,在vimrc添加

在所需要例化的模块用指令输入

自动在粘贴板生成例化模块

 

posted @ 2018-12-11 15:17  DesmondChan  阅读(3124)  评论(0编辑  收藏  举报