前言:

学完了systemverilog和uvm书本知识,之前一直在使用Questasim进行仿真,用notepad++进行编辑代码,后面就用linux平台进行训练了,希望用起来顺手些。

本文就是为了配置systemverilog代码高亮的,完全是照搬参考博客,希望对大家有用。

vim默认没有systemverilog语法高亮,需要自己设置。网上有很多配置方法,但大都是零散的,这篇文章进行了总结。

1)linux系统

linux系统是多用户系统,可以在系统配置文件中设置,设置对每个用户都生效。也可以在/home/用户名目录下设置,只对本用户有效(服务器场景)。

方法1:.系统配置文件(需root权限)

系统的语法配置路径在:/usr/share/vim/vim72/syntax

在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。

—> 将systemverilog.vim 复制到usr/share/vim/vim72/syntax目录下

—> 在/etc/.vimrc中添加 au BufRead,BufNewFile *.sv set filetype=systemverilog

方法2:单用户配置

—>在/home/用户目录下,创建.vim隐藏文件夹。

—>在.vim隐藏文件下,创建一个syntax文件夹

---->将将systemverilog.vim 复制到syntax目录下

—>cd ~进入/home/用户目录,在用户目录下,创建一个.vimrc文件

在.vimrc中设置

set cursorline " 突出显示当前行set ruler " 打开状态栏标尺

au BufRead,BufNewFile *.sv set filetype=systemverilog

—>source .vimrc

注: bshell 可能会报错,但是命令生效了,具体原因,研究不深。

2)windows系统 ,

gvim设置,windows不能对列操作,ctrl+v无效。设置相同的道理。

3)systemverilog.vim 文件

参考http://blog.sina.com.cn/s/blog_629e6a3e01010eox.html

" Vim syntax file
" Language: SystemVerilog
" Maintainer: Stephen Hobbs <stephenh@cadence.com>
" Last Update:  Wed Jun 14 15:56:00 BST 2006
" Built on verilog.vim from vim63" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600syntax clear
elseif exists("b:current_syntax")finish
endif" Set the local value of the 'iskeyword' option
if version >= 600setlocal iskeyword=@,48-57,_,192-255
elseset iskeyword=@,48-57,_,192-255
endif" Taken from the SystemVerilog 3.1a Annex B:
syn keyword systemverilogStatement   alias always always_comb always_ff always_latch
syn keyword systemverilogStatement   and assert assign assume automatic before begin
syn keyword systemverilogStatement   bind bins binsof bit break buf bufif0 bufif1
syn keyword systemverilogStatement   byte case casex casez cell chandle class clocking
syn keyword systemverilogStatement   cmos config const constraint context continue cover
syn keyword systemverilogStatement   covergroup coverpoint cross deassign default
syn keyword systemverilogStatement   defparam design disable dist do edge else end
syn keyword systemverilogStatement   endcase endclass endclocking endconfig endfunction
syn keyword systemverilogStatement   endgenerate endgroup endinterface endmodule
syn keyword systemverilogStatement   endpackage endprimitive endprogram endproperty
syn keyword systemverilogStatement   endspecify endsequence endtable endtask enum event
syn keyword systemverilogStatement   expect export extends extern final first_match for
syn keyword systemverilogStatement   force foreach forever fork forkjoin function generate
syn keyword systemverilogStatement   genvar highz0 highz1 if iff ifnone ignore_bins
syn keyword systemverilogStatement   illegal_bins import incdir include initial inout
syn keyword systemverilogStatement   input inside instance int integer interface intersect
syn keyword systemverilogStatement   join join_any join_none large liblist library local
syn keyword systemverilogStatement   localparam logic longint macromodule matches medium
syn keyword systemverilogStatement   modport module nand negedge new nmos nor
syn keyword systemverilogStatement   noshowcancelled not notif0 notif1 null or output
syn keyword systemverilogStatement   package packed parameter pmos posedge primitive
syn keyword systemverilogStatement   priority program property protected pull0 pull1
syn keyword systemverilogStatement   pulldown pullup pulsestyle_onevent pulsestyle_ondetect
syn keyword systemverilogStatement   pure rand randc randcase randsequence rcmos
syn keyword systemverilogStatement   real realtime ref reg release repeat return
syn keyword systemverilogStatement   rnmos rpmos rtran rtranif0 rtranif1 scalared sequence
syn keyword systemverilogStatement   shortint shortreal showcancelled signed small solve
syn keyword systemverilogStatement   specify specparam static string strong0 strong1 struct
syn keyword systemverilogStatement   super supply0 supply1 table tagged task this
syn keyword systemverilogStatement   throughout time timeprecision timeunit tran
syn keyword systemverilogStatement   tranif0 tranif1 tri tri0 tri1 triand trior trireg type
syn keyword systemverilogStatement   typedef union unique unsigned use var vectored virtual
syn keyword systemverilogStatement   void wait wait_order wand weak0 weak1
syn keyword systemverilogStatement   while wildcard wire with within wor xnor xor" LRM 3.7 String methods:
syn keyword systemverilogStatement   len getc putc toupper tolower compare
syn keyword systemverilogStatement   icompare substr
syn keyword systemverilogStatement   itoa hextoa octtoa bintoa realtoa
syn keyword systemverilogStatement   atoi atohex atooct atobin atoreal
" LRM 3.8 events:
syn keyword systemverilogStatement   triggered
" LRM 3.10 methods for enumerated types:
syn keyword systemverilogStatement   first last next prev num name
" LRM 4.6 Dynamic Arrays:
syn keyword systemverilogStatement   delete
" LRM 4.10 Associative Array methods:
syn keyword systemverilogStatement   num exists
" LRM 4.15.1 Array locator methods:
syn keyword systemverilogStatement   find find_index find_first find_first_index
syn keyword systemverilogStatement   find_last find_last_index min max unique unique_index
" LRM 4.15.2 Array ordering methods:
syn keyword systemverilogStatement   reverse sort rsort shuffle
" LRM 4.15.3 Array reduction methods:
syn keyword systemverilogStatement   sum product
" LRM 4.15.4 Array iterator query:
syn keyword systemverilogStatement   index
"" LRM 7.10.1 Builtin package:
syn keyword systemverilogStatement   std
" LRM Annex C standard library
syn keyword systemverilogStatement   get put try_get try_put peek try_peek
syn keyword systemverilogStatement   status kill self await suspend resume
" LRM Annex D List methods
syn keyword systemverilogStatement   next prev eq neq data
syn keyword systemverilogStatement   size empty push_front push_back
syn keyword systemverilogStatement   front back pop_front pop_back
syn keyword systemverilogStatement   start finish insert insert_range
syn keyword systemverilogStatement   erase erase_range set swap clear purge" New time specification:
" #1step or #1ps
syn match   systemverilogNumber "\<[0-9_]\+\([munpf]\|\)s\>"
syn match   systemverilogNumber "\<[0-9_]\+step\>"" Original systemverilog syntax below heresyn keyword systemverilogTodo contained TODOsyn match   systemverilogOperator "[&|~><!)(*#%@+/=?:;}{,.\^\-\[\]]"syn region  systemverilogComment start="/\*" end="\*/" contains=systemverilogTodo
syn match   systemverilogComment "//.*" contains=systemverilogTodo"syn match   systemverilogGlobal "`[a-zA-Z0-9_]\+\>"
syn match systemverilogGlobal "`celldefine"
syn match systemverilogGlobal "`default_nettype"
syn match systemverilogGlobal "`define"
syn match systemverilogGlobal "`else"
syn match systemverilogGlobal "`elsif"
syn match systemverilogGlobal "`endcelldefine"
syn match systemverilogGlobal "`endif"
syn match systemverilogGlobal "`ifdef"
syn match systemverilogGlobal "`ifndef"
syn match systemverilogGlobal "`include"
syn match systemverilogGlobal "`line"
syn match systemverilogGlobal "`nounconnected_drive"
syn match systemverilogGlobal "`resetall"
syn match systemverilogGlobal "`timescale"
syn match systemverilogGlobal "`unconnected_drive"
syn match systemverilogGlobal "`undef"
syn match   systemverilogGlobal "$[a-zA-Z0-9_]\+\>"syn match   systemverilogConstant "\<[A-Z][A-Z0-9_]\+\>"syn match   systemverilogNumber "\(\<\d\+\|\)'[bB]\s*[0-1_xXzZ?]\+\>"
syn match   systemverilogNumber "\(\<\d\+\|\)'[oO]\s*[0-7_xXzZ?]\+\>"
syn match   systemverilogNumber "\(\<\d\+\|\)'[dD]\s*[0-9_xXzZ?]\+\>"
syn match   systemverilogNumber "\(\<\d\+\|\)'[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
syn match   systemverilogNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"syn region  systemverilogString start=+"+ skip=+\\"+ end=+"+ contains=systemverilogEscape
syn match   systemverilogEscape +\\[nt"\\]+ contained
syn match   systemverilogEscape "\\\o\o\=\o\=" contained" Directives
syn match   systemverilogDirective   "//\s*synopsys\>.*$"
syn region  systemverilogDirective   start="/\*\s*synopsys\>" end="\*/"
syn region  systemverilogDirective   start="//\s*synopsys dc_script_begin\>" end="//\s*synopsys dc_script_end\>"syn match   systemverilogDirective   "//\s*\$s\>.*$"
syn region  systemverilogDirective   start="/\*\s*\$s\>" end="\*/"
syn region  systemverilogDirective   start="//\s*\$s dc_script_begin\>" end="//\s*\$s dc_script_end\>""Modify the following as needed.  The trade-off is performance versus
"functionality.
syn sync lines=80" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
if version >= 508 || !exists("did_systemverilog_syn_inits")if version < 508let did_systemverilog_syn_inits = 1command -nargs=+ HiLink hi link <args>elsecommand -nargs=+ HiLink hi def link <args>endif" The default highlighting.HiLink systemverilogCharacter       CharacterHiLink systemverilogConditional     ConditionalHiLink systemverilogRepeat   RepeatHiLink systemverilogString   StringHiLink systemverilogTodo   TodoHiLink systemverilogComment  CommentHiLink systemverilogConstant  ConstantHiLink systemverilogLabel   LabelHiLink systemverilogNumber   NumberHiLink systemverilogOperator  SpecialHiLink systemverilogStatement  StatementHiLink systemverilogGlobal   DefineHiLink systemverilogDirective  SpecialCommentHiLink systemverilogEscape   Specialdelcommand HiLink
endiflet b:current_syntax = "systemverilog"" vim: ts=2

linux下sv高亮设置的详细教程相关推荐

  1. Linux下利用python实现语音识别详细教程

    Linux下python实现语音识别详细教程 语音识别工作原理简介 选择合适的python语音识别包 安装SpeechRecognition 识别器类 音频文件的使用 英文的语音识别 噪音对语音识别的 ...

  2. mysql5.715 安装在d盘_mysql5.7.15在windows环境下的安装设置图文详细教程

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  3. linux下安装mysql5.7.25详细教程

    前言 最近项目上线,开始给用户测试了.搞下来好多台服务器,自然要装一个mysql的服务器.想想广大博友应该都会遇到如何装mysql的问题,就此分享,给大家一个安装指南.供大家以后安装的时候,提高效率, ...

  4. linux下Oracle 10g安装(超级详细图解教程)

    linux下Oracle 10g安装(超级详细图解教程) 一,基本配置: 1.以root登录,挂载linux iso文件 [root@oracle ~]# hostnameoracle.junjie. ...

  5. ramdisk和linux PE,PE下建立Ramdisk盘的详细教程

    如何在PE下建立一个Ramdisk盘呢?之前我们有介绍过如何在PE下安装系统ghost,有看过教程的朋友应该都会安装了吧.但是如果要在PE下建立一个Ramdisk盘,要如何建立呢?今天U大侠小编就和大 ...

  6. Linux系统双网卡聚合超详细教程

    Linux系统双网卡聚合超详细教程 将多个物理网卡聚合在一起,从而实现冗错和提高吞吐量 网络组不同于旧版中bonding技术,提供更好的性能和扩展性 网络组由内核驱动和teamd守护进程实现. 主要分 ...

  7. Linux驱动框架及详述(详细教程)

    Linux驱动框架及详述(详细教程) 1.前言 2.驱动程序的分类 3.设备驱动程序功能 4.驱动的基本框架 5.Hello驱动的编写 6.字符设备(LED)驱动程序编写实例 6.1 定义file_o ...

  8. linux添加nginx,linux下安装Nginx1.16.0的教程详解

    因为最近在倒腾linux,想安装新版本的nginx,找了一圈教程没有找到对应的教程,在稍微倒腾了一会之后终于成功的安装了最新版. 服务器环境为centos,接下来是详细步骤: 安装必要依赖插件 ? 创 ...

  9. linux下mysql-5.5.15安装详细步骤

    linux下mysql-5.5.15安装详细步骤 注:该文档中用到的目录路径以及一些实际的值都是作为例子来用,具体的目录路径以各自安装时的环境为准 mysql运行时需要一个启动目录.一个安装目录和一个 ...

最新文章

  1. 分享一些自己常用的科研/软件工具
  2. 服务器连接超时不响应怎么回事,勇者斗恶龙x服务器没有响应连接超时解决方法...
  3. MSSQLSERVER数据库- SQL交叉表
  4. 如何避免jps中一大堆spark-submit+Spark交互模式启动速度+正确的退出spark-shell/pyspark/SparkR/hbase的习惯
  5. 在腾讯云控制台上对域名进行续费
  6. 前端学习(1774):前端调试之local storage原理和查看
  7. 29 WM配置-策略-出库策略2-定义“紧急FIFO”策略(Stringent FIFO)
  8. 操作系统学习(三)-- CPU调度
  9. python3.3psutil模块安装_详解Python3.6安装psutil模块和功能简介
  10. Python 如何在csv中定位非数字和字母的符号
  11. vue-cli3安装遇到的问题,卸载不掉旧版本,导致更新不了
  12. wifi×××破解的密码查看方式
  13. 2021江苏高考成绩查询:声讯台,2021年江苏高考成绩几点钟可以查询,附具体查询时间安排...
  14. php微信支付接口开发的实现程序
  15. Photoshop-为图层添加一个镜头光晕
  16. tersorrt安装_pytorch/mxnet模型tensorrt部署
  17. 每周一喂丨图说WiFi安全
  18. 理解CPU/寄存器/内存之间的关系
  19. 双链路是什么意思_实时备份什么意思
  20. input type 类型

热门文章

  1. tcp短连接TIME_WAIT问题解决方法大全(1)——高屋建瓴
  2. Unity游戏开发工具的下载与安装
  3. svn没有绿色的对勾处理
  4. 自然数幂和伯努利数(Bernoulli)
  5. Linux无法删除只读文件的解决方案
  6. MFC_改变窗口大小,随着鼠标的拖动改变
  7. JAVA大数据(二) Hadoop 分布式文件系统HDFS 架构,MapReduce介绍,Yarn资源调度
  8. 物种多样性学习之Beta多样性
  9. 华为手机 绑定MAC 无法上网
  10. 通过按键精灵实现mc自动钓鱼