搞FPGA也有好几年了,也对自己这几年做FPGA做个总结。
上大学那时还真不知道有FPGA这么个东西。在大学里面只知道玩单片机,想当初看到一个学长拿个51单片机做了个花样流水灯,感觉神奇得不得了。后来自己在老师的指导下也开始动手玩玩51,那时候感觉51真是强大,无所不能,每次看到啥新鲜的电子小玩意都要琢磨下用51如何实现的。呵呵,估计这也就是叫走火入魔了吧。不过这段经历对我大学的学习倒是对后面学习FPGA起到了很大的作用,正是由于对51的热爱使我大学期间的各门专业课都学得不错,比如说数字电路,模拟电路,微机原理等等。
大学毕业后就到一家做检测设备的公司工作了,那时我还是整天想着51,不过公司已经在逐步把项目迁移到ARM平台上了。不过在进行一些项目的时候,也会发现51,ARM似乎不太够用啊,由于公司的行业比较特殊,所以做一些特殊的总线接口的时候,如果只用51或ARM来模拟时序读取数据显然时间是不够的。当时我心里就觉得是不是应该有个做专做时序接口的东西进行一下时序转换呢?不过想法归想法,再加上当时网络也不是很发达也就没有继续往这方面深究。在工作了3年后,我又开始了自己的研究生生涯,一次偶然的机会XILINX公司在学校旁边的宾馆开技术研讨会,当时我们也就抱着去听听看的想法进入到会场拿了点资料慢慢看了起来,不过看着看着觉得这东西似乎挺有意思:居然能够改变芯片的内部结构以适应不同的应用,并且被改变后的芯片内部在运行时是以硬件方式运行的,其速度比纯用软件要快很多。在会后,虚心向XILINX的FAE请教,学到了许多关于FPGA的知识,可以说这次研讨会简直对我的嵌入式生涯起了决定性的作用 :)
回到学校后当晚就在学校图书馆抱回了一大堆关于FPGA的书籍(当时很多都是关于ALTERA的,不过我当时不知道ALTERA也做FPGA,所以看到ALTERA就PASS掉了,直接上XILIX,呵呵)。看了一晚上,完全一头雾水。实在没有办法,本着学习单片机的思想想先弄块板子点个灯看看,上淘宝一查,我的天啊,最便宜都要1000多块,这可是我3个月的生活费呢。。。俗话说天无绝人之路,呵呵,在我非常沮丧的那个瞬间得知实验室有个师兄弄过FPGA,我简直像捡到了根救命稻草,立马向师兄请教怎么开始学习FPGA。在他的指导下在我的“老牛电脑"上装上了ISE和ModelSIM,从此踏上了仿真学习FPGA的不归路。。。
真正开始在硬件上学习FPGA还得感谢XILINX大学计划,由于常逛XILINX的官网,偶然一天看到居然有正版的LICENSE和开发板申请,简直口水都要流下来了,要知道一块Spartan-3E的板子至少要2000多大洋啊。不过XILINX的申请面向的是大学老师,在我的软磨硬泡下我的导师终于肯帮我去申请了,在苦等了4个多月后终于接到了这块梦寐以求的板子。(中间还有不少小插曲,板子还被海关扣住,后来又说等待报关和缴纳关税,不过才300多,呵呵。我已经心满意足了)
结束了学生生涯后,陆陆续续用xilinx完成了大大小小几个项目,接触的XILINX的芯片也越来越高级,从V2到V5,从Spartan 3E到Spartan 6。越用越感觉FPGA真是强大,简直是无所不能了,呵呵。不过FPGA虽然强大,但是要入门却是不太简单的。回想当初开始学习FPGA时,连基本概念都分不清楚,特别是XILINX的工具挺多,每个工具功能又非常强大,要在短时间内理清关系确实不容易,再加上很多学习FPGA的人都是从学习ARM等MCU过来的,编程思想上也无法立刻转变。
那么到底如何学习FPGA呢?我觉得如果有个人能够带着你把开发FPGA系统的整个流程走一遍的话那是最好不过了。如果周围没有这样的人那就到网上去下载一些视频教程或者培训班的课件,这些东西都是非常基础的,只要初学者按照上面的步骤一步一步来就基本没有问题了。