FPGA 学习需要哪些东西?
1)熟悉语法,其实你不需要什么都会,但是要记住几个经典的时序,逻辑电路的描述方式。2)熟悉三个经典电路描述并仿真。仿真其实不是很重要,我开始学习压根没学那个玩意儿,因为要是只做接口那玩意儿没啥用。直接用ChipSchop抓抓数据更快。仿真是给做算法,工程相对较大的人用的。三个经典电路分别是,分频器,计数器(可做一个时钟),序列检测器。这样你就基本熟悉了开发环境了。3)上板卡跑一个灯,熟悉一个板卡上时钟资源使用,硬件的使用原理。4)知道了FPGA学习主要不在于编程!压根没有编程这回事!!Verilog是硬件描述语言!描述!!写代码时脑子里必须有电路图!!知道FPGA主要学的是硬件和算法!!软件最多能占10%就不错了!!只要你能完成这上面的东西,恭喜你进入菜鸟行列,可以在别人设计好FPGA方案的条件下完成一些模块的设计了。其实华为招聘员工,很多人FPGA水平一开始都差不多这么菜。
Fpga只是一个工具,就学好这个工具而言需要掌握数字电路,同步设计规则,verilog基础语法,时序约束基础,验证平台的搭建方法,还有就是各种eda工具的使用,微处理器接口,适当的还可以学习一些脚本
0、fgga实现对应功能的基础理论,如接口协议、关键算法等。1、hdl语言,学会怎么描述电路。2、目标fpga芯片的相关资料,了解fpga芯片有哪些资源可供利用。3、edatool,电路描述需要仿真,仿真完觉得对了需要综合实现。4、硬件调试。针对fpga板做了你需求的功能之后,你得上硬件调试,基本的调试方法和设备得懂。
1、语法层面搞懂阻塞和非阻塞语句,以及Verilog语言的时序描述方法,把自己想象成机器,尝试去编译自己写的Module。2、然后搞明白同步和异步,最后,一定要熟练地掌握状态机的设计。这是最初级也是最基本的要求。上面有人说语法太简单了,本人不敢苟同,Verilog语言并不简单,尤其Module之间时序不能同步,本该同相的信号输出有相位差的时候,简直能烦死人。3、然后再进一步就是自顶向下设计,复杂时序,同步和异步时序都有的应用。4、更进一步就是IP核的应用,会配置IP核之后你会发现新世界的大门正在被打开,这个时候FPGA真正的优势才体现出来了。5、最后就是SOC,以上四个阶段都是在硬件底层,SOC是应用层的东西,干的和码农一个活。具体学习思路就是买一块好点的开发板,Xilinx和Altera的都行,Altera的仿真器要便宜一些,更适合自己学习。好点的意思是能跑SOPC的,Xilinx至少弄个Spartan6的,Altera现在不清楚了,以前我们都是用DE2学的,简单好用资源多,缺点是贵。
数字电路+微机原理好好学,这点切记切记,很多时候你觉得玄而又玄的问题,其实只是因为你本科时这几门课睡过了导致的基础不扎实而已。不少人搞不清什么是总线什么是寄存器,拿verilog当c语言那么写,然后拿着一堆log去论坛上问是不是我的EDA工具装的有问题。以X家FPGA为例,DocNav里面有详细的文档以及教程,视频的文本的stepbystep的那种,拿块板子自己跑几个官方给的application(人家连代码和bit文件都给你了),琢磨人家到底为什么这么设计,后面就该上手写几个实际项目了切记不要买各种乱七八糟的中文教材,内容抄来抄去炒冷饭,而且基本就翻译免费的官方文档和教程,还卖的挺贵,更不能忍的就是还翻译得错误百出
没做过FPGA开发,但也有所了解过。现在主流FPGA芯片厂商包括:Lattice,Altera和Xilinx。其中Lattice,Altera走的是中低端路线,Xilinx则是走的高端路线;虽说是中低端,但据了解一个Alter的EP4CE15Cyclone4的开发板网上也要卖800吧,比单片机开发板贵好多,这也就是为什么做FPGA工程师起点相对较高~不同的芯片厂商用的PLD开发环境也不同,Altera用QuartusII,Xilinx用EDK,ISE...然后还得配备逻辑分析仪,示波器等常用仪器设备,示波器带宽还不能太低,如果你是学生,实验室有这些设备那还最好不过了。至于所谓的“不需要开发板,只需要仿真...”这就好比学单片机只用protues,还是有很大区别的。而且千万别以为学好FPGA只要会个verilog语法,会个VHDL,看个波形就能称之为FPGA工程师了,还差得远呢~如果你工作了,单位又在研发方面肯投钱,那恭喜你,你有了一个很好的平台可以学习。像XilinxV5V7系列价格不菲,不是所有单位肯在研发方面投入的。总而言之,还是弄个开发板,结合项目,沉下心做吧。
如果团队有明确的分工,你只负责数字电路设计,而在FPGA上deploy有别人负责,那么的确不一定需要有实体板子来开始学习,只需要学好数电,知道什么样的Verilog语言对应什么样的RTL逻辑,Verilog和SystemVerilog中什么样的语句是可以被综合的,什么样的是不能被综合但适合用在testbench里的,什么样的是能不用就不用的,什么样的逻辑会造成更长的pathdelay,这样再外加一个好的模拟器,就够了。不过实话说,这样学出来的最多只是一个合格的RTL设计工程师,而不是一个FPGA工程师,但的确还是能在FPGA开发过程中对团队起到很大的作用如果是要负责到能在板子上跑起来的话,那送题主一句硬件行业的常见吐槽:"Assumehardwaredoesnotwork,unlessprovenotherwise"(在证明硬件能正常工作之前,一律假设是不能工作的)。从可以被成功模拟的HDL到能在FPGA上跑起来的Verilog之间还隔了很多很基本但很重要的问题,以下只是随意列举一些,不分先后1.各式FPGA上的内存控制器带来的问题2.高速IO端口的使用和多板互联带来的通讯问题。3.设计可靠性的分析4.设计开销的分析:怎么样才能把某个设计挤到一个LUT数量很有限的FPGA里5.异步信号什么时候需要buffer,需要buffer多少才够6.同样的Verilog是否会因为参数不同而被综合成不同的硬件形式(比如同样是readmemh写出来的ROM,大小不同的时候都会被综合成啥)7.工具的综合时的优化可能会带来哪些功能上的问题8.ChipScope和DebugCore的使用和其对性能造成的可能影响。9.Xilinx其他各式IPcore的使用和隐藏问题(超级大坑,比如一个GTXtransceiver光文档就将近500页)
回答请先登录