首页->【FPGA/CPLD助学小组】

3 0

勇敢的芯伴你玩转Altera FPGA连载29:语法学习的经验之谈

特权同学,版权所有

配套例程和更多资料下载链接:

http://pan.baidu.com/s/1i5LMUUD

1.jpg

 

FPGA器件的设计输入有很多种方式,如绘制原理图、编写代码或是调用IP核。早期的工程师对原理图的设计方式情有独钟,这种输入方式应付简单的逻辑电路还凑合,应该算得上简单实用,但随着逻辑规模的不断攀升,这种落后的设计方式已显得力不从心。取而代之的是代码输入的方式,当今绝大多数的设计都采用代码来完成。FPGA开发所使用的代码,我们通常称之为硬件描述语言(Hardware Description Language),目前最主流的是VHDL和Verilog。VHDL发展较早,语法严谨;Verilog类似C语言,语法风格比较自由。IP核调用通常也是基于代码设计输入的基础之上,今天很多EDA工具的供应商都在打FPGA的如意算盘,FPGA的设计也在朝着软件化、平台化的方向发展,也许在不久的将来,越来越多的工程只需要设计者从一个类似苹果商店的IP核库中索取组件进行配置,最后像搭积木一样完成一个项目,或者整个设计都不需要见到一句代码。当然了,未来什么情况都有可能发生,但是底层的代码逻辑编写方式无论如何还是有其生存空间的,毕竟一个个IP核组件都是从代码开始的,所以对于初入这个行当的新手而言,掌握基本代码设计的技能是必须的。

         我们不过多谈论VHDL和Verilog语言孰优孰劣,总之这两种语言是当前业内绝大多数开发设计所使用的语言,从二者对电路的描述和实现上看,有许多相通之处。无论是VHDL还是Verilog,建议初学者先掌握其中一门,至于到底先下手哪一门,则需要读者根据自身的情况做考量。对于没有什么外部情况限制的朋友,若之前有一定的C语言基础,不妨先学Verilog,这有助于加快对语法本身的理解。在将其中一门语言学精、用熟之后,最好也能够着手掌握另一门语言。虽然在单个项目中,很少需要大家“双语齐下”,但在实际工作中,还是很有可能需要去接触另一门语法所写的工程。网络上有很多很好的开源实例,若你只会Verilog,而参考实例却是VHDL的,那么就让你很尴尬了;忽然有一天A同事离职,老板把他写个半半的Verilog工程扔给只会VHDL的你维护,那你可就被动难堪了……所以嘛,对于VHDL和Verilog的取舍问题,建议先学精一门,也别忘了兼故另一门,无论哪一种语言,至少咱也要能看懂别人的设计。

         HDL语言虽然和软件语言有许多相似之处,但由于其实现对象是硬件电路,所以他们之间的设计思想存在较大差异。尤其是那些做过软件编程的朋友,很喜欢用软件的顺序思想来驾驱HDL语言,岂不知HDL实现的硬件电路大都是并行处理的。也许就是这么个大弯转不过来,所以很多朋友在研究HDL语言所实现的功能时常常百思不得其解。对于初学者,尤其是软件转行过来的初学者,笔者的建议是不要抛开实际电路而研究语法,在一段代码过后,多花些精力比对实际逻辑电路,必要时做做仿真,最好能再找些直观的外设在实验板上看看结果。长此以往,若能达到代码和电路都心中有数,那才证明真真正正掌握HDL语言的精髓了。




楼主可见