本帖最后由 dongguo100 于 2024-11-8 21:20 编辑
FPGA作为目前比较热门的一个电子器件,正在被越来越多的公司和领域选择使用。学习FPGA的朋友也越来越多,初学者可能会认为FPGA很难学,以前只学过51,或者甚至连51都没学过的,一看到FPGA就懵了。其实,万事开头难,只要掌握了方法,学好FPGA,还是非常简单的,这里我们总结FPGA学习的几个要点: 1、选择一款实用的开发板 开发板是实验的基础,有时候软件仿真通过了,在实际板子上并不一定能跑起来,而且有个开发板在手,什么东西都可以直观的看到,效果不是仿真能比的。但开发板不宜多,多了的话连自己都不知道该学哪个了,觉得这个也还可以,那个也不错,那就这个学半天,那个学半天,结果学个四不像。倒不如从一而终,学完一个再学另外一个。 这里我们推荐大家选择正点原子FPGA开发板,我们从硬件设计、例程和文档开发、视频录制等各方面都做到了极致,比如我们硬件设计都是非常合理美观的,例程也是采用规范和简洁的编写方法,文档和视频也是采用波形图+思维脑图的设计思路,尽量给大家提供一个良好体验,节省大家入门时间。 2、掌握方法,勤学慎思 FPGA不是妖魔鬼怪,大家不要畏难,FPGA的学习和普通单片机一样,基本方法就是: 1)了解FPGA的基本结构。 学习FPGA之前需要先对FPGA的基本结构和其IP功能有个大概的了解,如时钟管理单元PLL、RAM、FIFO等。需要知道时钟管理单元PLL是用来产生不同频率的时钟,RAM是用于数据的存储和更新(需要提供读写地址),FIFO是用于数据的缓存(不需要提供读写地址,数据先进先出)等。 2)了解Verilog HDL基本语法 Verilog HDL的基本语法大家必须要掌握,常用的包括module定义、input和ouput定义、wire和reg定义、assign语句和always语句、if/else和case语句 6个关键语法,我们要搞清楚它们的作用和区别。其他的一些高级语法点可以先不用管,一般使用较少,后续如果需要使用再去看下Verilog语法就好。等大家掌握了Verilog HDL的基本语法和Verilog HDL的并行设计思想后,会觉得Verilog HDL和C语言一样简单。 3)多思考,多动手 所谓熟能生巧,先要熟,才能巧。如何熟悉?这就要靠大家自己动手,多多实操了,光看或说是没什么太多用的。只有在使用FPGA的过程中,才会一点点的熟悉,也只有动手实练,才能对FPGA有切实的感受。 熟悉了之后,就应该进一步思考,也就是所谓的巧了。我们正点原子提供了几十个例程,供大家学习,跟着例程走,无非就是熟悉FPGA的过程,只有进一步思考,才能更好的掌握FPGA,也即所谓的举一反三。例程是死的,人是活的,所以,可以在例程的基础上,自由发挥,实现更多的其他功能,并总结规律,为以后的学习和使用打下坚实的基础,如此,方能信手拈来。 所以,学习一定要自己动手,光看视频,光看文档,是不行的。举个简单的例子,你看视频,教你如何煮饭,几分钟估计你就觉得学会了。实际上你可以自己测试下,是否真能煮好?机会总是留给有准备的人,只有平时多做准备,才可能抓住机会。 3、远离FPGA学习的一些误区 很多新人在学习FPGA时候,经常会有一些学习误区,导致学习时间花了很多,学习效果还不好。为此,阿东总结了几个新人经常遇到的几个学习误区。 误区一:花大量时间学习Verilog语法 很多新人入门的时候就是看Verilog,甚至很多人花了几个月时间用来学习语法。其实,Verilog最常使用的主要有6个语法定义,他们是module定义、input和ouput定义、wire和reg定义、assign语句和always语句、if/else和case语句。下面以正点原子《LED闪烁实验》代码为例给大家展示。 大家可以看一下正点原子的代码,我们的代码结构非常简单,语法也是非常简单,always语句中基本只用到了if、else语句。所以,大家学习语法不需要那么多时间。 误区二、软件思维,把Verilog当C语言使用 很多新人总是把Verilog当C语言使用,只具有软件思维,不知道Verilog会综合出什么电路。我们必须知道,Verilog HDL做为一种硬件描述语言,是对数字电路的一种描述,而数字电路是并行工作的,因而在编写Verilog HDL时要有并行的思想,不同于软件设计语言,软件设计语言是由CPU统一进行处理,一条指令一条指令的串行运行,所以软件设计语言是基于串行的设计思想,因而在写Verilog HDL代码的时候要注意这种差别。 这就是说,我们在做一个FPGA设计之前,应该把电路框架在头脑里面或者文档上绘制出来,我们只是用Verilog把它描述出来而已。 很多同学会问,学了C语言之后,学 Verilog是不是很容易?其实从我们的经验来看,学了C语言之后,学Verilog是更加麻烦,这种思维很难转变。大家也不用很着急,跟着正点原子提供的FPGA开发资料学习就好,我们的开发资料都是按照需求描述->系统框架->详细设计->波形图->代码编写->上板验证这样一个科学高效的流程来编写的。 误区三、追求很复杂的语法,实现很高级的功能 Verilog只是我们描述电路的一个手段,很多新人喜欢使用各种高级语法进行描述,以为非常高级,其实这是大错特错,真正资深有素养的FPGA工程师写出来的代码都是非常简洁易懂的,使用简单的语法实现复杂的功能,这个是我们应该追求的一种设计思想。阿东自己写的代码也是非常简洁易懂的,对团队里面的成员也是这样要求的。 误区四、永远只学习代码,不去动手实践 很多新人学习FPGA都是永远只是看代码和看视频,以为看懂就掌握了,这种想法也是错误的。毛主席说过,“纸上得来终觉浅,绝知此事要躬行”,就是强调要多动手实践,FPGA学习也是如此。虽然我们提供了非常丰富的例子代码,但是新人也要多动手写代码,哪怕一开始慢一点,也要坚持下来。 总结: 大家只要以上四点做好了,学习FPGA基本上就不会有什么太大问题了。如果遇到问题,可以在我们的技术论坛:开源电子网:www.openedv.com提问,论坛FPGA板块有各种主题,很多疑问已经有网友提过了,所以可以在论坛先搜索,很多时候,就可以直接找到答案了。论坛是一个分享交流的好地方,是一个可以让大家互相学习,互相提高的平台,所以有时间,可以多上去看看。
|