工欲善其事、必先利其器!要想高效的编写verilog没有一个好的编辑器可不行,所以我这里推荐两款十分好用的编辑器Notepad++和Gvim,这两款编辑器由于其强大的添加插件的功能,所以深受代码工作者的喜爱,那么对于FPGA新手而言,我觉的去学较复杂的gvim编辑指令,那就有点本末倒置了,所以对于初学者来说,编写的代码工程量还不是很大的时候我向各位推荐Notepad++这款编辑器,这款编辑器的便捷性和实用性不用说,接下来我们就来盘点一下使用Notepad++在编写verilog代码时要配置哪些!

第一 括号、双引号自动补全

点击设置——首选项,如图所示

在弹出的窗口中选择自动完成,将下面需要自动完成的各项目勾选,然后就设置完成了。

第二 代码高亮

Notepad++还有一个便捷的功能是,你双击一个代码其他相同的代码也会高亮,这样查找起来信号便十分方便。

第三 代码自动补全

对于一个文件里的代码如果你正在输入的代码本模块出现过,你只需打出前几个字符,便会出现代码提示,然后选择对应的部分按回车即可自动补全,这样就免去了每个代码都要敲完全,大大提高的编写效率。

第四 列编辑

Notepad++还可以进行列编辑,按住alt键,选择你需要编辑的一列代码,便可以同时对整列进行操作

第五 与ISE、Vivado、QuartusII的配置

Notepad++与ISE关联

打开ISE软件,选择菜单栏“Edit——>Preferences…”,在弹出的对话框中,选择ISE General选项卡下的Editors,如图所示。

在Editor下选Custom,并在Command line syntax下输入“{notepad++安装目录/notepad++.exe} $1”,如图所示。注意路径的反斜杠为“/”。点击“OK”完成notepad++与ISE的关联。

Notepad++与Vivado关联

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

选择Text Editor栏目,选择“Custom Editor…”,如图中的所示。

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

Notepad++quartus ii的关联

打开quartus ii软件,选择菜单栏“Tools——>Options…”,在弹出的对话框中,选择General选项卡下的Preferred Text Editor,如图所示。

在Text editor行选Notepad++,在Command-line行通过路径浏览按钮选择notepad++的安装路径,如图6所示。点击“OK”完成notepad++与quartus ii的关联。

以上软件的各个版本大同小异

除了一个方便快捷的编辑器之外,我们还需要有良好代码书写风格习惯,比如给模块端口命名为容易区分明了的名字,对写好的模块进行功能描述注释,代码书写规范多用参数定义,增加代码的可移植性,多复制,少编敲等等。而且我的代码风格也是一直在慢慢改进的,对于如何高效的编写verilog还有什么我不知道或者漏掉了请留言告诉我吧!

转载请注明出处:NingHeChuan(宁河川)

个人微信订阅号:开源FPGANingHeChuan

如果你想及时收到个人撰写的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号

知乎ID:NingHeChuan

微博ID:NingHeChuan

原文地址:http://www.cnblogs.com/ninghechuan/p/7729078.html

如何高效的编写Verlog HDL——菜鸟版的更多相关文章

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

    博主之前写过一篇文章来谈论如何高效的编写Verlog HDL——菜鸟版,在其中主要强调了使用Notepad++来编写Verilog HDL语言的便捷性,为什么说是菜鸟版呢,因为对于新手来说,在还没有熟 ...

  2. 如何高效的编写与同步博客 (.NET Core 小工具实现)

    一.前言 写博客,可以带给我们很多好处,比如可以让我们结识更多志同道合的人:在写博客过程中去查技术资料或者实践可以让我们对知识的掌握和理解更加深刻:通过博客分享能帮助他人收获分享的快乐等等.写博客真的 ...

  3. USBasp制作资料及全过程(菜鸟版)

    源:USBasp制作资料及全过程(菜鸟版) 一.usbasp 的一般性介绍: 1.下载线,是“ISP”(In System Programmability:“在系统编程”)或“IAP”(In Appl ...

  4. [转载] 已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy(C++版)

    已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串.不调用C++/C ...

  5. Qt编写输入法V2019终极版

    一.前言 之前写过的V2018版本的输入法,本来已经很完善了,不打算更新升级了,最近有个朋友找我定制一个输入法,需要高仿一个苹果MAC电脑的输入法,MAC操作系统的审美无疑是相当棒的,于是乎直接拿以前 ...

  6. 前端、HTML+CSS+JS编写规范(终极版)

    HTMLCSS文档规范 HTML和CSS文档必须采用UTF-8编码格式: HTML文档必须使用HTML5的标准文档格式: HTMLCSS编写规范 HTML和CSS的标签.属性.类名.ID都必须使用小写 ...

  7. 咱们来聊聊JS中的异步,以及如何异步,菜鸟版

    为什么需要异步?why?来看一段代码. 问题1: for(var i=0;i<100000;i++){ } alert('hello world!!!'); 这段代码的意思是执行100...次后 ...

  8. 菜鸟版JAVA设计模式—从买房子看代理模式

    今天学习了代理模式. 相对于适配器模式,或者说装饰器模式,代理模式理解起来更加简单. 代理这个词应该比較好理解,取代去做就是代理. 比方,我们买卖房子,那么我们会找中介,我要卖房子,可是我们没有时间去 ...

  9. 一场刺激的游戏——很文艺的山东省第四届ACM赛总结(菜鸟版)

               人生就像一个个节点,节点中或许有成功,失败,满足,遗憾,但是只要它是不可复制的,在日后,便是美好.                                         ...

随机推荐

  1. 201521123005 《Java程序设计》 第十一周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 Q1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  2. 201521123014 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 异常(Exception)处理 异常(Exception)的概念:在程序运行的时候可能出错,Java中把程序出现的错 ...

  3. MyEclipse中Source Folder,package,folder的区别

    1.在eclipse下,package, source folder, folder都是文件夹. 但它们有区别如: 2. package:当你在建立一个package时,它自动建立到source fo ...

  4. MyBatis Mapper.xml文件中#{selector}和${selector}的区别

    1.优先使用#{paramName,jdbcType=VARCHAR} 写法,除了可以防止sql注入以外,它还能在参数里含有单引号的时候自动转义, 而${paramName}由于是类似于拼接sql的写 ...

  5. EntityFramework 6.x多个上下文迁移实现分布式事务

    前言 自从项目上了.NET Core平台用上了EntityFramework Core就再没碰过EntityFramework 6.x版本,目前而言EntityFramework 6.x是用的最多,无 ...

  6. Ubuntu16.04.1上搭建分布式的Redis集群

    为什么要集群: 通常为了,提高网站的响应速度,总是把一些经常用到的数据放到内存中,而不是放到数据库中,Redis是一个很好的Cache工具,当然了还有Memcached,这里只讲Redis.在我们的电 ...

  7. Microsoft Visual Studio调试监视器(MSVSMON.EXE)未能启动

    在启动VS2010项目时,遇到如图所示"Microsoft Visual Studio调试监视器(MSVSMON.EXE)未能启动"的问题. 原因是VS2010安装路径(我的是D: ...

  8. servlet文件上传2——复合表单提交(数据获取和文件上传)

    上传文件时表单enctype属性必须要更改为<enctype='multipart/form-data'>:采用post提交表单,元素需要有name属性: 利用第三方jar包(common ...

  9. 【POJ】2115 C Looooops(扩欧)

    Description A Compiler Mystery: We are given a C-language style for loop of type for (variable = A; ...

  10. PHP 生成毫秒时间戳

    PHP的time()函数生成当前时间的秒数,但是在一些情况下我们需要获取当前服务器时间和GMT(格林威治时间)1970年1月0时0分0秒的毫秒数,与Java中的currentTimeMilis()函数 ...