中级会员
 
- 积分
- 374
- 金钱
- 374
- 注册时间
- 2012-6-20
- 在线时间
- 100 小时
|
以本人经验,只是我的感受。首先,FPGA很有用,有必要学。曾用FPGA做过一项目,不过最终还是失败了,CPLD在项目中用到过不少。这些年中也见过几个别人FPGA的产品,一个是高清CCD,另一个是一个3D产品,也类似CCD.应该都是高速读取传感器数据和处理用。
但,初学者不应该学FPGA,应该学CPLD。
从单片机开始说,比如一个单片机打开两个定时器中断,这两个中断函数是不能同时执行的,必须先运行完一个,再运行另一个。要同时执行,相互不干涉,就需两个单片机。而FPGA,可以做到这点,同时执行。不过是以成本为代价的。
所以学CPLD之前,应该学会单片机,这样你才能更好理解顺序执行和并行的区别,才能体会速度和时序上的问题。
很多人拿个FPGA板子随便学一下,然后就花大把时间玩软核去了。软核是拼不过硬核的,无论从成本还是性能,特别是成本。一个十块钱单片机能搞定的产品,难道你弄个100块FPGA跑个软核?
其实FPGA能完成的内容,单片机基本上都能完成,只是完成的时间和质量问题。但有些单片机能做的事,你要在FPGA上处理,还真不是那么容易,比如说通过串口写1000字节数,再读回来,用个大点单片机很容易,用FPGA就不那么好玩了。如果你硬是在FPGA中放个单片机软核,那就不用说了。当然,如果你用单片机同时产生100路的PWM输出,不太可能,但FPGA很好实现。
那应该怎么学?
一 先学会C51单片机。
不用很深,但要会。
二 再学CPLD
Verilog和VHDL随便,但Verilog代码好像多点,可能用这语言的多的。VHDL还有一个好处,你写C和VHDL编程时不会因语法太冲突。
如果A家的话 Quartus II 用9.0就可以了,它自带仿真输出,入门足够。
三 用单片机加CPLD结合应用。
两者之间其实就一通讯接口和一些累似IO中断,触发之类的。
然后你就会明白,该用什么来做产品了。
|
|