使用vim直接同时编译vhdl和verilog

vhdl又用到了verilog,编译时发现,我需要去修改vimrc中的set makprg。每当编译vhdl时,我就要改为vcom,编译verilog,我就要修改为vlog。相当不方便。所以还是研究了一下,做了个函数,使之可以辨别文件的类型了。

 

 

 

今天编代码的时候既用到了

 

修改后相关部分放到下面:

  

1 "建立一个库
2  nmap <F6> <Esc>:!vlib work<CR>
3
4  "编译一个vhd/v文件
5  nmap <silent> <F7> :ModSimComp<cr><cr>
6
7  "------------------------------------------------------------------------------
8 "Function : Model_Sim_Compile()
9 "Description : Compile with ModelSim
10 "------------------------------------------------------------------------------
11 function Model_Sim_Compile()
12 let l:file_type_temp = expand("%:e")
13 if l:file_type_temp == "vhd"
14 set makeprg=vcom\ -work\ work\ %
15 execute ':make'
16 execute ':cw'
17 else
18 if l:file_type_temp == "v"
19 set makeprg=vlog\ -work\ work\ %
20 execute ':make'
21 execute ':cw'
22 else
23 echohl ErrorMsg
24 echo "This filetype can't be compiled by modelsim vcom/vlog!"
25 echohl None
26 endif
27 endif
28 endfunction
29
30 "set error format
31 set errorformat=\*\*\ %tRROR:\ %f(%l):\ %m,\*\*\ %tRROR:\ %m,\*\*\ %tARNING:\ %m,\*\*\ %tOTE:\ %m,%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %f(%l):\ %m,%tRROR:\ %m,%tARNING\[%*[0-9]\]:\ %m

 set errorformat=\*\*\ %tRROR:\ %f(%l):\ %m,\*\*\ %tRROR:\ %m,\*\*\ %tARNING:\ %m,\*\*\ %tOTE:\ %m,%tRROR:\ %f(%l):\ %m,%tARNING\[%*[0-9]\]:\ %f(%l):\ %m,%tRROR:\ %m,%tARNING\[%*[0-9]\]:\ %m 

做了一个函数,调用函数Model_Sim_Compile()就可以编译vhdlverilog了,很方便。

错误识别都是通过modelsim产生的,所以是相同的。

 

posted @ 2010-10-13 15:27  楼心月  阅读(1761)  评论(0编辑  收藏  举报