systemverilog语法高亮设置

1:打开家目录下的.vimrc文件配置: gvim .vimrc

syntax on
filetype on
filetype plugin on
filetype indent on

2:在家目录下新建.vim文件夹

mkdir .vim

3:进入.vim文件夹 ,并建立ftdetect、syntax文件夹

mkdir ftdetect syntax

4:进入ftdetect文件夹,并新建sv.vim文件

au BufRead,BufNewFile *.sv set filetype=verilog_systemverilog

5:将systemverilog的高亮检测文件(verilog_systemverilog.vim)放置到syntax目录下

6:在终端输入

source .vimrc

note:filetype=verilog_systemverilog 与高亮检测文件verilog_systemverilog.vim 名称需一致

          verilog_systemverilog.vim如下:

"-------------------------------------------------------------------------------------
" Vim syntax file
" Language:     Verilog/SystemVerilog HDL + UVM
"-------------------------------------------------------------------------------------

if version < 600
   syntax clear
elseif exists("b:current_syntax")
   finish
endif


" Read in Verilog syntax files
if version < 600
   so syntax/verilog.vim
else
   runtime! syntax/verilog.vim
endif


syn sync lines=1000

"##########################################################
"       SystemVerilog Syntax
"##########################################################

syn keyword verilogStatement   module endmodule
syn keyword verilogStatement   always_comb always_ff always_latch
syn keyword verilogStatement   class endclass
syn keyword verilogStatement   virtual local const protected
syn keyword verilogStatement   package endpackage
syn keyword verilogStatement   rand randc constraint randomize
syn keyword verilogStatement   with inside dist
syn keyword verilogStatement   randcase
syn keyword verilogStatement   sequence endsequence randsequence 
syn keyword verilogStatement   get_randstate set_randstate
syn keyword verilogStatement   srandom
syn keyword verilogStatement   logic bit byte time
syn keyword verilogStatement   int longint shortint
syn keyword verilogStatement   struct packed
syn keyword verilogStatement   final
syn keyword verilogStatement   import export
syn keyword verilogStatement   context pure
syn keyword verilogStatement   void shortreal chandle string
syn keyword verilogStatement   clocking endclocking
syn keyword verilogStatement   interface endinterface modport
syn keyword verilogStatement   cover covergroup coverpoint endgroup
syn keyword verilogStatement   property endproperty
syn keyword verilogStatement   program endprogram
syn keyword verilogStatement   bins binsof illegal_bins ignore_bins
syn keyword verilogStatement   alias matches solve static assert
syn keyword verilogStatement   assume super before expect bind
syn keyword verilogStatement   extends null tagged extern this
syn keyword verilogStatement   first_match throughout timeprecision
syn keyword verilogStatement   timeunit priority type union unique
syn keyword verilogStatement   uwire var cross ref wait_order intersect
syn keyword verilogStatement   wildcard within
syn keyword verilogStatement   semaphore triggered
syn keyword verilogStatement   std
syn keyword verilogStatement   new

syn keyword verilogTypeDef     typedef enum

syn keyword verilogConditional iff

syn keyword verilogRepeat      return break continue
syn keyword verilogRepeat      do while foreach

syn keyword verilogLabel       join_any join_none forkjoin

syn match   verilogGlobal      "`begin_\w\+"
syn match   verilogGlobal      "`end_\w\+"
syn match   verilogGlobal      "`remove_\w\+"
syn match   verilogGlobal      "`restore_\w\+"

syn match   verilogGlobal      "`[a-zA-Z0-9_]\+\>"

syn match   verilogNumber      "\<[0-9][0-9_\.]\=\([fpnum]\|\)s\>"
syn match   verilogNumber      "\<[0-9][0-9_\.]\=step\>"

syn match   verilogMethod      "\.atobin\>"
syn match   verilogMethod      "\.atohex\>"
syn match   verilogMethod      "\.atoi\>"
syn match   verilogMethod      "\.atooct\>"
syn match   verilogMethod      "\.atoreal\>"
syn match   verilogMethod      "\.await\>"
syn match   verilogMethod      "\.back\>"
syn match   verilogMethod      "\.bintoa\>"
syn match   verilogMethod      "\.clear\>"
syn match   verilogMethod      "\.compare\>"
syn match   verilogMethod      "\.data\>"
syn match   verilogMethod      "\.delete\>"
syn match   verilogMethod      "\.empty\>"
syn match   verilogMethod      "\.eq\>"
syn match   verilogMethod      "\.erase\>"
syn match   verilogMethod      "\.erase_range\>"
syn match   verilogMethod      "\.exists\>"
syn match   verilogMethod      "\.find\>"
syn match   verilogMethod      "\.find_first\>"
syn match   verilogMethod      "\.find_first_index\>"
syn match   verilogMethod      "\.find_index\>"
syn match   verilogMethod      "\.find_last\>"
syn match   verilogMethod      "\.find_last_index\>"
syn match   verilogMethod      "\.finish\>"
syn match   verilogMethod      "\.first\>"
syn match   verilogMethod      "\.front\>"
syn match   verilogMethod      "\.get\>"
syn match   verilogMethod      "\.getc\>"
syn match   verilogMethod      "\.hextoa\>"
syn match   verilogMethod      "\.icompare\>"
syn match   verilogMethod      "\.index\>"
syn match   verilogMethod      "\.insert\>"
syn match   verilogMethod      "\.insert_range\>"
syn match   verilogMethod      "\.itoa\>"
syn match   verilogMethod      "\.kill\>"
syn match   verilogMethod      "\.last\>"
syn match   verilogMethod      "\.len\>"
syn match   verilogMethod      "\.max\>"
syn match   verilogMethod      "\.min\>"
syn match   verilogMethod      "\.name\>"
syn match   verilogMethod      "\.neq\>"
syn match   verilogMethod      "\.new\>"
syn match   verilogMethod      "\.next\>"
syn match   verilogMethod      "\.num\>"
syn match   verilogMethod      "\.octtoa\>"
syn match   verilogMethod      "\.peek\>"
syn match   verilogMethod      "\.pop_back\>"
syn match   verilogMethod      "\.pop_front\>"
syn match   verilogMethod      "\.prev\>"
syn match   verilogMethod      "\.product\>"
syn match   verilogMethod      "\.purge\>"
syn match   verilogMethod      "\.push_back\>"
syn match   verilogMethod      "\.push_front\>"
syn match   verilogMethod      "\.put\>"
syn match   verilogMethod      "\.putc\>"
syn match   verilogMethod      "\.rand_mode\>"
syn match   verilogMethod      "\.realtoa\>"
syn match   verilogMethod      "\.resume\>"
syn match   verilogMethod      "\.reverse\>"
syn match   verilogMethod      "\.rsort\>"
syn match   verilogMethod      "\.self\>"
syn match   verilogMethod      "\.set\>"
syn match   verilogMethod      "\.shuffle\>"
syn match   verilogMethod      "\.size\>"
syn match   verilogMethod      "\.sort\>"
syn match   verilogMethod      "\.start\>"
syn match   verilogMethod      "\.status\>"
syn match   verilogMethod      "\.stop\>"
syn match   verilogMethod      "\.substr\>"
syn match   verilogMethod      "\.sum\>"
syn match   verilogMethod      "\.suspend\>"
syn match   verilogMethod      "\.swap\>"
syn match   verilogMethod      "\.tolower\>"
syn match   verilogMethod      "\.toupper\>"
syn match   verilogMethod      "\.try_get\>"
syn match   verilogMethod      "\.try_peek\>"
syn match   verilogMethod      "\.try_put\>"
syn match   verilogMethod      "\.unique\>"
syn match   verilogMethod      "\.unique_index\>"
syn match   verilogMethod      "\.xor\>"

syn match   verilogAssertion   "\<\w\+\>\s*:\s*\<assert\>\_.\{-});"

"-------------------------------------------------------------------------------
" UVM
"syn match   uvmClass           "\<uvm_\w\+\>"
"syn match   uvmClass           "\<uvm_tlm_\w\+\>"
"syn keyword uvmClass             
"syn keyword uvmMethod            
"syn keyword uvmMethodGlobal      
"syn keyword uvmDeprecatedMethod  

"-------------------------------------------------------------------------------
" uvm
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值