新闻  |   论坛  |   博客  |   在线研讨会
FPGA开发板DIY活动准备工作(七)——硬件描述语言
51FPGA | 2012-05-09 16:05:58    阅读:1929   发布文章

硬件描述语言是一种形式化方法描述数字电路和系统的语言,发展至今已经有20多年的历史。现在主要的语言VHDL和Verilog HDL适应了历史发展的趋势和要求,先后成为IEEE标准。关于VHDL和Verilog HDL,这里不多做介绍,附件的资料里会有详细介绍,这里重点谈一下硬件描述语言的学习。
    选择VHDL还是verilog HDL?这是一个初学者最常见的问题。其实两种语言的差别并不大,他们的描述能力也是类似的。掌握其中一种语言以后,可以通过短期的学习,较快的学会另一种语言。 选择何种语言主要还是看周围人群的使用习惯,这样可以方便日后的学习交流。当然,对于初学者还是推荐首先掌握Verilog HDL,Verilog HDL是类C风格,它非常容易掌握,只要有C语言的编程基础,通过比较短的时间,经过一些实际的操作,可以在2~3个月内掌握这种设计技术。而VHDL设计相对要难一点,这个是因为VHDL不是很直观,需要有Ada编程基础,一般认为至少要半年以上的专业培训才能掌握。学习Verilog HDL的几个需要注意的地方。
1、了解Verilog HDL的可综合性
附件资料里有详细介绍,大家认真学习一下。
2、要建立硬件意识
要明白的是软件设计和逻辑设计的不同,并理解什么是硬件意识。软件代码的执行是一个顺序的过程,编绎以后的机器码放在存储器里,等着CPU一条一条的取指并执行;因此软件设计中经常会带有顺序处理的思维。而逻辑设计则不同,我们设计的是数字电路,它是由很多很多的与非门及D触发器构成的,上电之后所有与非门和D触发器都同时工作,不会因为A触发器的代码描述在 B触发器之前A触发器就是先工作,事实上,RTL级代码的代码先后顺序在综合成网表文件后这种顺序就消失了,取代的是基本逻辑电路之间的互联关系描述;因此逻辑设计需要的是一种并发的思维,我们也需要用并发的思维去考虑电路的设计。当然,我们设计的电路功能一般都有先后顺序的关系,如果这种顺序不能通过代码的先后顺序来实现,那么要怎么完成这一功能呢?在逻辑设计中,我们所说的先后顺序都是基于时间轴来实现:它的承载体就是时序逻辑,也就是那些触发器。
3、熟练掌握基本数字电路
基本的电路不是很多,也就是D触发器、计数器、移位寄存器、状态机、多路选择器、译码器等几种,所有复杂的电路都可由这些基本的电路构成。高手水平高的体现并不是他能写出一些很奇特的电路,相反,水平高是体现在他们总能将复杂的电路用这些很朴素的基本电路去描述。甚至,你会发现他们的代码基本上是由 if...else、case这些语句构成的,朴素的让你觉得奇怪。我认为,初学者在入门的时候,对于基本电路的设计应该固定化、标准化,每种电路该用什么样的代码描述,应该要固定、统一,尽量少一些花哨的东西。
4、要养成良好的编码风格
很多的细节,比如缩进、命名、参数化、组合逻辑和时序逻辑分离、注释等等,也就是大家说的代码风格。这个其实很重要,最好在一开始就养成好的习惯,这样会为你以后的工作节省很多时间,也会大大提高工作的质量。不注意这个将很吃很多的苦头,细节决定成败啊。Coding Style是逻辑设计人员的一个基本业务素质。而且Coding Style不是看几篇文章,学几条原则就能够成为高手的,他需要你在工作中不断的体会和积累,在学习的最初,有Coding Style的意识,设计者就会有意的积累,对日后发展很有好处。反之则后患无穷。
这是我对学习硬件描述语言的一些体会,分享给家。

——回复可见——
  
Verilog HDL程序设计与实践(云创工作室)
 
http://share.eepw.com.cn/share/download/id/70973
设计与验证Vrilog HDL
http://share.eepw.com.cn/share/download/id/70971
谈VHDL_Verilog的可综合性以及对初学者的一些建议.pdf

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
theskyofsnail  2012-09-29 17:38:48 

支持51FPGA,干过硬件设计的都不可能把电路SCH,PCB原稿发出来,这点都不懂,还出来混,真想要的话,自己照着做不就行了么?

zhulei0517  2012-09-11 12:29:48 

楼主,你好,对于上面说的话先给你道赚。但是我说的话并没有恶意啊,这与我不真心学习有什么关系,我是在公司做研发工作的,做纺织电控和激光电控,讲究工作效率,能直接拿来用的花钱买也行,不给就不给吧,说我那么多坏话干什么啊?真是的!这不是挖苦人吗?

forark  2012-09-03 15:16:45 

虽然学过VHDL语言,但是感觉还是得从零学起,哎,大学的光阴虚度了很多

zhulei0517  2012-08-30 23:25:58 

你这个人有点不地道啊,你应该给大家SCH原理图和PCB图,PDF资料要它何用?

推荐文章
最近访客