如何高效的编写Verilog HDL——进阶版

  博主之前写过一篇文章来谈论如何高效的编写Verlog HDL——菜鸟版,在其中主要强调了使用Notepad++来编写Verilog HDL语言的便捷性,为什么说是菜鸟版呢,因为对于新手来说,在还没有熟悉软件和硬件描述语言的时候,使用Notepad++不需要学习成本,几分钟就能用好,利用其中一些功能,便能相对快捷高效的编写代码。很多人习惯了使用Notepad++,包括我在内。但是当我遇见了它——Vim。相对来说Vim就需要一段时间去适应学习,而且还要合理运用才能发挥出它的最大效率。

  Vim其实一款Linux系统下常用的编辑器,在Windows下叫Gvim,由于它的高度可定制性,操作命令,使得编程者在编写代码的时候双手甚至可以不用离开键盘,只需要输入相应的命令便可以完成整个编程。可以说是程序员的最爱了。那么我这里为什么推荐使用Gvim来编写Verilog HDL呢,首先就是因为它的高度可定制性。

  Gvim的配置文件是可以定制的,这样在写代码的时候,就可以使用简单的几个命令就可以减少大量劳动。比如,我们所编写的代码中其实基本上都是由always块构成的,一般来说我们都是写好一个always块后,然后粘贴复制其他的,那么用gvim,我只需要在插入模式(gvim默认是命令模式,按i进入插入模式,按esc进入命令模式)下,输入Shixu+回车,立马自动生成always块模板。

         这是因为Vim的高度可定制性,你可以在Vim的配置文件里配置出任何需要的“快捷键”输入方法。比如我配置的键入Zhishi+回车,就可以直接生成我的专属代码注释信息,键入Fenge+回车,生成分割线等等,这是我写代码的习惯,而且用户完全可以自定义配置。

         具体的配置方法,也很简单,打开安装目录下的_vimrc文件,这就是gvim的配置文件,具体的一些固定的配置参数,可自行百度,我这里只讲最简单的一种,只需要如下列各式编辑好文件,空格就直接空格,回车用<Enter>,:ab+命令+空格+代码,将编辑好的这段直接复制到_vimrc文件中,就可以使用了。

         除了这些,gvim还有很多好用的命令,我这里简单列举几个在编写Verilog HDL时经常用的命令,真正要用好Vim博主也在学习中。

  1. 命令模式:键盘上所有的按键都是各种不同的操作命令。打开编辑器默认为命令模式
  2. 编辑模式:进行正常编辑,在命令模式下按i切换到编辑模式,按Esc切换到命令模式。
  3. 列操作模式ctrl+q

在命令模式下按ctrl+q进入列操作,将需要进行操作的代码选中按Ctrl+q,便可以对整列进行操作,操作完退出。

   4. 补全命令Ctrl+p

在输入代码的前几个字符时,如果文件内,有和该代码相同的字符串,这时只需要直接按ctrl+p就会显示可自动补全。

  5. 跳转命令

文件内跳转(gg,G,:100)。命令模式下,gg为跳到文件头,G为跳到文件未,:100为跳到100行。

  6. 替换命令

替换命令(:%s/xx/yy/gc, :10,100s/xx/yy/gc)。在命令模式下,键入命令:%s/xx/yy/gc,意思为将xx替换成yy,命令:10,100s/xx/yy/gc表示将10到100行的xx替换成yy。

  7. 列插入方法

进入命令模式,选中需要插入的位置,按ctrl+q进入列编辑,按hjkl分别表示上下左右操作,然后键入大写I,插入数据,按Esc,列插入操作完成。

等等。。

         编辑器里编写代码后用软件自带编辑器打开后,可能会出现中文乱码,所以我建议不要用软件自带编辑器打开代码,直接用Gvim打开,当然Xilinx两款软件也提供了可关联各种第三方编辑器,博主都尝试关联成功,分享如下。

  1. ISE调用GVim编辑器

在ISE主界面菜单栏,点击Eidt——Preference,选择custom,然后在command line syntax输入如下命令行:{D:\Gvim安装路径\gvim.exe} --remote-tab-silent +$2 $1。括号里面是gvim安装的路径。

在VIM的安装目录下,有一个vimrc文件,打开以后,加上colorscheme darkblue这句话,就默认把颜色方案改成了darkblue。在后面加上下面两句话,可以解决有时候出现乱码的情况。

let &termencoding=&encoding set fileencodings=utf-8,gbk,ucs-bom,cp936

注:colorscheme darkblue是改变颜色显示方案,可加可不加,后面这两行是为了解决乱码 的,是必要要加的,加载文本末即可。

  1. Vivado调用GVim编辑器

打开vivado软件,选择菜单栏“Tools——>Setting…”,在弹出的对话框中,选择General选项卡,如图所示。选择Text Editor栏目,选择“Custom Editor…”,如图中的所示。

点击上图中的…,在弹出的对话框中,输入“GVim安装目录/gvim.exe [file name] [line number]”,如图所示。点击“OK”、“OK”完成gvim与vivado的关联。

  Intel家的就算了,目前博主是Xilinx Vivado的死忠粉。很多人都喜欢了使用其他几种第三方编辑器,我之前一直在使用notepad++,所以不管使用什么软件,只要能进行开发就好了。这里也只是提出建议而已。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

基于RequireJS和JQuery的模块化编程——常见问题解析

由于js的代码逻辑越来越重,一个js文件可能会有上千行,十分不利于开发与维护。最近正在把逻辑很重的js拆分成模块,在一顿纠结是使用requirejs还是sea...

314100
来自专栏极致的Java

MyPerf4J 针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具

MyPerf4J 为每个应用收集数十个监控指标,所有的监控指标都是实时采集和展现的。

24430
来自专栏贾老师の博客

【译】进程的内存剖析

18350
来自专栏大前端开发

从编程小白到全栈开发:改造为全栈计算器

上一次,我们编写了一个纯前端实现的简易计算器,这次,我们就假装这个计算器在前端运行起来太吃力,客户端的资源完全不够用来进行1+1等于几这种复杂的计算。我们得借助...

11430
来自专栏知无涯

【教程】快速入门,十天学会ASP

1.5K80
来自专栏Golang语言社区

从websocket看go的应用

Go是互联网时代的通用编程语言。这样它就和命令行时代的C语言、图示界面时代的C++、以及互联网早期的Java语言等有不同的侧重。它强调保持自身的精巧和独立,从而...

38870
来自专栏Golang语言社区

【提高篇】Go语言并发技术详解

有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行。 goroutine goro...

28360
来自专栏枕边书

请求合并哪家强

工作中,我们常见的请求模型都是请求-应答式,即一次请求中,服务给请求分配一个独立的线程,一块独立的内存空间,所有的操作都是独立的,包括资源和系统运算。我们也知道...

10720
来自专栏那些年遇到的坑

前端性能优化(一)

前端是庞大的,包括 HTML、 CSS、 Javascript、Image 、Flash等等各种各样的资源。前端优化是复杂的,针对方方面面的资源都有不同的方式。...

15120
来自专栏GreenLeaves

Web API系列之二WebApi基础框架搭建

本文主要介绍如何搭建一个WebApi的项目.关于如何搭建WebApi的方式一共有两种: 一、通过vs直接新建一个WebApi的项目,步骤如下: 第一步: 新建一...

25490

扫码关注云+社区

领取腾讯云代金券