数字逻辑设计,一项很高大上的技术,相较于软件设计,数字逻辑设计要更加底层,更加的注重每一个时钟的细节。FPGA,一个新生的高科技宠儿。虽然是80年代才面世,但经过30多年的发展,技术已经相当成熟,应用也十分广泛,从航空航天到军工到民用,甚至消费电子,FPGA无处不在。从今年因特尔斥巨资收购世界最大FPGA厂商之一的Altera就可以看出,未来,FPGA将具有更加广阔的应用。
FPGA的技术特性也决定了其相对于软件开发,想要掌握好,难度大很多。首先,FPGA设计的实际实现严重依赖于开发工具,虽然编码通常使用标准的Verilog来实现,但是涉及到很多细节,只有厂家各自的工具才能够很好的处理。越是底层的东西,需要考虑的问题就越多,因此也就需要更多的工具来配合完成。因此学习FPGA,第一个困难就是工具的使用。为了开发FPGA,各个厂家都提供了其专用的开发工具,例如Altera的Quartus II软件,Xilinx的ISE和Vivado软件。每个软件都又包含了很多小工具,不同的环节需要用到不同的工具。因此,掌握好各种工具的使用本身就是一件复杂的事情。而学习好工具的最简单有效的方式就是通过视频直接演示,这样最直观,也最不容易错过细节。
作为一个从小学就开始接触电子的骨灰级发烧友,学好电子技术一直是我的梦想,由于FPGA从很大程度上能够替代MCU(暂不考虑成本差异)众多功能,因此学好FPGA也是一个一举多得的事情,MCU能做到的,FPGA基本都能做到,MCU做不到的,FPGA往往也能做到。所以,从大二开始,我就选择了学习FPGA。由于当时学校教学条件也很有限,因此大部分时间都是在自学,为了学习,我购买过很多FPGA相关的书籍,也购买或借用过很多不同厂家的FPGA开发板。学了两年多,真正学习的有效时间大约5个月吧,但总是不得要领,虽然在学习的过程中了解了很多基础性的东西,也调试了很多代码,但始终无法拥有独立设计编码的能力。所以逐渐的也就丧失了信心,觉得FPGA学习实在是太难了。
现在的学习者,在学习FPGA之前,都有一定的C语言和单片机基础,然而开发FPGA,和传统的使用C开发单片机程序还是有较大的差异,很多学习者容易按照单片机的学习方式和学习思路来进行FPGA的学习和开发。最常见的两大误区就是C式Verilog代码和轻视仿真。反观自己的自学之路,曾在这两个地方浪费了大量的时间和精力,也没有很好的效果。在担任发烧友论坛版主期间,我回答了很多朋友的提问。最后总结发现,他们之所以存在这样那样的问题无法自主解决,问题也正是出在学习方法上。结合本人参加培训的经历与感悟,因此决定出一套从零开始,一步一步教会初学者学习方法和思想的视频教程。
当做出这个决定之后,我就简单录制了一集视频教程,并发布在发烧友论坛上开展试看活动,征集大家的意见。在众多的回复中,都提到一个问题,没有实际的硬件平台,因此无法进行板级验证。虽然学习FPGA,从很大程度上来说,不依赖于专用硬件平台。但是考虑到众多的初学者,对于FPGA硬件系统不是很熟悉,如果使用不同的平台,在最开始学习时,容易在平台迁移上遇到困难,从而导致初学者学习受阻,信心被打击。因此,在多位朋友的建议下,我决定为这套教程专门做设计一套开发平台,以供0基础的学习者入门学习之用。
这个社会,做事情从来都不是单打独斗能够成功的,每个人精力有限,如果什么事情都自己来做,不但辛苦,而且效率极低,容易失败。因此,当决定设计开发板之后,第一件事情就是组建团队。设计硬件,第一时间就想到了王工,王工是我的师兄,现在在一家高科技公司做layout工程师,设计过不少ARM和FPGA的电路板PCB,而且也学习过FPGA技术,因此找他做电路板是最合适不过的了,更加可贵的是,他也一直都有着创业的心,只是一直苦于没有合适的机会。另外,由于我们的开发板,后期会开发基于NIOS的相关DEMO,为了保证软件设计质量,因此邀请了具有四年软件开发经验的汪工加入,汪工是个思维很活跃的人,总能想到各种新奇好玩儿的东西。这对于学习来说,是非常重要的,如果学习的内容太枯燥无味,没有吸引力,那么很多的朋友就没有了学习下去的动力。所以,我们希望我们的教程是通过比较有趣的实例,来达到吸引学习者坚持学习下去的目的。
为了给我们的开发板留足升级的潜力,我们采用了核心板加外设模块的方式进行设计,这样,只要核心板插接不同的外设模块,就能实现不同的功能。为了配合开发板主板进行示范功能设计,到目前为止,我们共设计了5个外设模块,分别为数码管_VGA_PS2学生模块,4*4矩阵按键模块,4通道10位串行ADC和4通道8位串行DAC模块,USB2.0模块以及4.3寸TFT触摸液晶组件。通过这些模块,配合我们所出的视频教程,就能将FGPA设计的基础打牢,并初步体验FPGA设计系统的无限魅力。
好了,进度帖第一帖,开了个头,这里对于为什么要设计这样一块FPGA板卡进行了简单介绍,我们所设计的,与其说是FPGA板卡,更不如说是一个低成本的FPGA学习平台,学习者能够通过这样一个平台,配合高质量的视频教程,快速打牢FPGA设计基础,为后面使用FPGA进行复杂数字系统设计埋下基石。真心希望大家都能够找到正确的学习方法,快速学好FPGA。
欢迎大家加入芯航线FPGA学习平台技术支持群:472607506