作为一个硬件攻城狮,我到现在也算是和FPGA/CPLD有缘的,从MaxplusII到Q uart us,从ISE到Vivado。从门电路和 寄存器 原理图输入,到使用Verilog写了一个分屏器,当时我是有骂过Verilog是什么狗屁玩意,不直观也不符合我的思维,还是原理图输入最好用。直到有一天,我要用门电路和 寄存器 设计一个电子表24小时计时功能的时候,我大骂了一句,真X蛋,这玩意得画多久呀。
当时我大脑里浮现的是小时候2块钱一个,够我装逼一个星期的电子表还有电子表上精美的图案,两块钱,只要两块钱,买不了吃亏,更不会上当。再想想当时做实验用的那块Al te ra开发板,要将近一千大洋,我想这玩意怎么可能会有市场,以后找工作哪会有SB会要我。当时作为一个懵懂本科生的我,内心是崩溃的,没有几乎!
再后来,我觉着那玩意没啥用,我就学习了当年很流行还一度从6块钱一片涨到8块钱一片的51 单片机 ,我当时觉着这玩意真是好呀,程序网上一摞摞,学的很快,装逼也实在。有一天,老板让我做一些加减乘除运算,还要并行,还要实时,我当时一想,装逼好一段时间的51程序是顺序执行的呀,老板,你就不能再让我装逼更久么?
这时候我又想起当年那款老旧的CPLD,他仍然躺在似乎要说这什么,但是终究什么也没说。那款CPLD是FLASH类型的,管脚数目是144个,可用IO 116个,宏单元440个,工业等级,然而当时的我并不知道这些玩意有什么用。
再后来,我离开了那个美丽的城市,也很少有时间回去,来到现在这个地方,老板对我很信任,两年给了我两个项目。我也有幸认识到了Actel那款被称做FPGA的ASIC。开始了第一个独立项目的研制,FPGA选型当然是已经固定了,我就围着这款FPGA给他添油加醋,希望能让他满足我所有的设计需求,有了原理图,后来又出了PCB,和ME的人给他设计了外壳,装上了实验平台开始调试,虽然坑着一个老师和我一块加班,但这次装逼显然是成功的,我用了六个月完成了一个小系统和上位机调试软件的设计。
后来,老板看我过的太清闲,让我做一个高速数据交换的玩意,其实这个玩意是可以用专用PHY芯片、DCM芯片、SERDES和一片成本较低的FPGA等搭建起来的,但是本着老板是不差钱的原则,我选了一款X公司的高端FPGA。后来我就作为小硕毕业了。现在去做System/SI/ PI 了,应验了我当年找不到FPGA相关工作的那句气话。
总体来讲,学习FPGA最需要的可能还是你自己的需求。当然如果只做了解我建议你可以按照上面诸位大神所说的那样:
1:学习硬件描述语言语法;
2:买一块便宜的开发板,跟着配套资料Step BY Step;
3:不断的思考为什么,然后有兴趣的话,山寨一下你买的那块那块开发板,如果你喜欢,你再添加一些功能。
4:好好想一想我当年学的数电和硬件描述语言有什么关系呀?
5:从系统的层面考虑你的需求,想想FPGA能干什么,相比于MCU的优缺点在哪;
6:你可能觉着系统设计可以玩了,那么EDA软件是怎么工作的?FPGA里面是什么鬼?再后来我也不知道了。