微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 初学者学习Verilog HDL的步骤和经验技巧

初学者学习Verilog HDL的步骤和经验技巧

时间:02-11 来源:网络整理 点击:

3. 需要一些什么书?

这个问题,可能不同的人回答有不同的答案,每个人推荐的书也不一样。不过关于Verilog,夏宇闻老师绝对是中国的泰斗级人物,我推荐的几本书都和他有一定的关系。这个不是因为我个人和他关系好,而是确实这几本书不错。我建议大家最好有纸版的书,一个方面是支持夏老师的辛勤工作,另外一个方面也是便于阅读和学习。
(1)没有学过数字电路的同学,建议首先购买一本STEPHEN BROWN编写、夏老师翻译的《数字逻辑基础与VERILOG设计(原书第2版)》。这本书在【Altera FPGA/CPLD资料专版】有电子书可以下载。本书可以作为数字电路的课本,也讲了Verilog的,是一本不可多得的好书。本来我这个学期准备在学校以这本书为教材开全校选修课的,结果领导不知道什么原因把这个课给卡擦了……
(2)有没有学过数字电路的同学,都应该有一本《Verilog HDL数字设计与综合(第二版) 》,该书由Samir Palnitkar 编著,夏老师翻译。该书的英文原版被视为Verilog的经典著作,美国很多大学的研究生课程的课本,中文版我也看了一部分,觉得还是不错的书,【Altera FPGA/CPLD资料专版】有中英文两个版本的电子书。网上有很人攻击这本书翻译的不好,不过看了那些评论和书之后,自然有定论,流言自然会不攻自破。
(3)第三本是夏老师编著的《VERILOG数字系统设计教程(第2版)》。这本书在Altera FPGA/CPLD资料专版】有下载,我看过第一版我没看过,现在这本书还经常翻翻,都已经被我弄得非常破旧了。这本书刚出来的时候国内还没有很好的Verilog方面的书,我是托人在北京帮我买的(那会儿好像网上书店还没有呢)。书中对于语法和实际应用都讲的非常非常好,强烈建议大家好好阅读和学习。
书就推荐这么多,可能还需要一些资料,否则光是语言,没有实战,不容易有实际的感受。后面我还会推荐一些资料和某些书的一些章节,到了具体的地方再说。

4. 硬件工具

在学习语言的同时,我觉得应该要学习硬件的使用,毕竟我们是为了设计硬件电路才学习语言的。在本站的教程专版有相应的硬件工具,可以从本站购得PCB自己焊接,也可以自己制作相应的电路模块进行学习。
硬件上必须要花一些钱,不能总是觉得有些东西好像很贵,舍不得。其实现在更多的人宁愿把钱花在玩游戏、吃吃喝喝,也不肯把钱花在学习上。我很喜欢那种自己去找办法学习知识,自己买硬件或做硬件学习的学生。我遇上这样的学生,有时候还会主动给他们硬件来学习。而对于那种有惰性的学生,我觉得可能没几个老师会喜欢的。

5. 软件

Altera公司的Quartus II,设计软件。
Mentor Graphics公司的ModelSim,仿真软件,Altera的软件里面也有相应的AE版本。
其它的一些综合工具、程序编写工具,可以等到学习的差不多了再弄。

6. 资料篇

软件的使用,我觉得最直接的方法是看厂商的Help,其次就是上面提到的有两本书的附录中也有相应的资料。
DE2板子的10个例子,在【FPGA与SOPC设计教程:DE2实践 】这本书的第六章有中文版的翻译,大家可以到下载区找这本书。
其它的学习资料或教程——我也准备写这么个东西,但是一直在思考是该从编程、硬件应用还是数字逻辑的角度来进行讲述,迟迟没有动笔是因为把握不好方向,一旦方向错了,会让很多人走弯路,我可负不起这个责任。
其实,资料并不在多,关键是精,另外一个就是找的资料一定要看,不要以自己有多少资料为荣,应该是以自己看了多少资料为荣。

7. 学习的过程

学习的过程,每个人都不太相同。我以个人经验随便说两句吧。
首先是软件的使用,比如QuartusII的使用应该放在所有的学习之前(学过数字电路的同学,如果没有学过的话,先把一些基本概念学一下,在学习到《数字逻辑基础与VERILOG设计》的时候开始用原理图设计的方法学习使用该软件),然后就是学习Verilog了,建议在学习的过程中把书中的例子都用软件做一次,也利用Quartus提供的仿真功能进行仿真。
基本的语法知识学习的同时,书上很多仿真的例子在Quartus里面并不能实行,这个时候就需要学习使用ModelSim了。
进一步学习Verilog的高级编程知识,利用软件多做一些例子程序。
上面推荐的后两本书看的差不多的时候(夏老师那本书的中级篇CPU设计之前的内容,另外那本第一部分结束),就可以到板子上编一些实际的应用程序了。这个时候就可以参考DE2那本书的几个例子,或者是参考电路板上的硬件,针对不同的部件进行编程和验证。
然后就是根据自己的兴趣爱好和专业方向,找一个题目用Verilog去实现(或者找相关的老师,看他们手上有没有这样的方向,你可以去帮忙做点什么的),这个过程中需要学习更多其他方面的知识,这样才能做成真正的应用系统。
这个时候可能手上的CPLD的资源可能就不那么够了,也许就该用FPGA来做了。此外FPGA和CPLD还是有区别的,两个器件应用的场合有所不同,这个在学习的过程中也要逐步积累这些知识和经验。此外,还可以学习一些SOC方面的知识,这里不仅仅是指的Nios II。
后面继续学习,不断学习,持续学习——学习是一辈子的事情,不是花上那么几个月你就能把所有的技能学到手,更多的时候是通过实践不断提升自己的能力,这就是所谓的实践出真知。我想从大二开始学习到大三结束,两年的时间基本能掌握这门技能,大四的毕业设计应该可以做出自己的优秀设计来。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top