|
学习FPGA,在不同层次的人明显有不同的答案。先说一句,说不要开发板的都是菜鸟级选手。
我把FPGA层次划分为,鸡蛋级别,菜鸟级别,老鸟级别,高手级别四类。题主是鸡蛋级别的吧!啥也不会。那些得赞高的不少都是菜鸟级别的选手。当然,我现在告诉你的如何成为一个菜鸟。当然以后有空我也会写从菜鸟变成老鸟的方法。
1)熟悉语法,其实你不需要什么都会,但是要记住几个经典的时序,逻辑电路的描述方式。
2)熟悉三个经典电路描述并仿真。仿真其实不是很重要,我开始学习压根没学那个玩意儿,因为要是只做接口那玩意儿没啥用。直接用ChipSchop抓抓数据更快。仿真是给做算法,工程相对较大的人用的。三个经典电路分别是,分频器,计数器(可做一个时钟),序列检测器。
这样你就基本熟悉了开发环境了。
3)上板卡跑一个灯,熟悉一个板卡上时钟资源使用,硬件的使用原理。
4)知道了FPGA学习主要不在于编程!压根没有编程这回事!!Verilog是硬件描述语言!描述!!写代码时脑子里必须有电路图!!知道FPGA主要学的是硬件和算法!!软件最多能占10%就不错了!!
只要你能完成这上面的东西,恭喜你进入菜鸟行列,可以在别人设计好FPGA方案的条件下完成一些模块的设计了。其实华为招聘员工,很多人FPGA水平一开始都差不多这么菜。
先写一下老鸟需要会什么,以后再答怎么做到。
1)FPGA逻辑资源,特别是时钟资源要非常熟悉。
2)做算法的必须熟悉sysgen的使用。说的容易了,sysgen画画图也没那么容易哦,你要熟悉使用各种滤波器,理论知识要求起点就不小。
3)充分理解FPGA从上而下的设计原则,能够编写中等程度的FPGA详细设计方案。
4)熟悉时序优化,时序收敛,区域约束等知识。并且能运用到编程之中,解决菜鸟们解决不了的“不科学”的问题。说白了就是会使用planhead,以及ISE中那些你还没接触过的功能。一般菜鸟们ISE都只会编程,默认的编译一下,然后下载,ChipSchop抓抓数看看。
5)能够熟悉FPGA常用的接口,不求都会编程,但是要知道他们功能是什么。比如ADC,DAC,串口,EMIF等等。并且熟悉DSP等FPGA周边常用芯片工作原理。
6)熟悉硬件设计,至少要知道Bank上IO规划怎么好,全局时钟,区域时钟大致怎么规划等等。
7)信号源,示波器,频谱仪都要熟悉使用吧!
等这些都熟悉了,差不多是老鸟了。
要成为高手,你没有十来个FPGA程序设计经验,解决过十来个重大项目核心问题,没有做过大系统还是停留在小板卡,都是不行的。 |
|