当前位置:首页 > 新闻资讯 > FPGA之家动态 >

掌握这5个核心能力,小白也能成为优秀FPGA工程师!

时间:2024-07-19      来源:网络搜集 关于我们 0

“本人零基础,想入门学习FPGA,我应该从哪方面入手,看哪些视频教程、书籍?”编者在逛硬件嵌入式论坛时,经常会碰到一部分学嵌入式、硬件电路的FPGA小白学员,咨询如何学习FPGA,怎样去找比较好的FPGA相关书籍、教程,学习开发板等,诸如此类的问题。

再比如,也有学员对于FPGA技术的一些深入的咨询:

“听说搞FPGA/ASIC/嵌入式硬件开发,是需要自己动手编程吗?听说他们只负责电路的原理设计,pcb板制作,程序都是软件的人来负责的。”

“网上说FPGA都是编程的,不会编写程序人,不能做基于FPGA电路设计吗?”

“据说FPGA分IC设计、产品开发,两者学习有什么不同,该如何入门学习?”

......

零基础如何入门FPGA?

对于如何学习FPGA,这里编者先埋个关子,先分享下成为FPGA工程师,你应该具备掌握哪些学习技能,基础理论知识:

1.Verilog语言及其于硬件电路之间的关系
2.器件结构(最好熟练掌握Spartan3,Vertix4系列的器件结构,及其资源于Verilog行为描述方法的关系。)。3.开发工具(熟练掌握Synplify,Quartus,ISE,Modelsim)4.数字电路(组合电路,触发器,特别是D触发器构成分频器,奇数倍分频占空比为50%,时序电路,并且能用Verilog语言描叙。) 5.熟悉FPGA设计流程(仿真,综合,布局布线,时序分析) 6.熟练掌握资源估算(特别是slice,lut,ram等资源的估算) 7.同步设计原理8.熟练掌握基本概念(如建立时间,保持时间,流量(即所做FPGA设计的波特率)计算,延迟时间计算(所做FPGA设计),竞争冒险,消除毛刺的方法等等)9.具备具体设计经验(对应届生而言如毕业设计)10.良好的设计思路(流水线设计即熟称打拍子,在速率资源功耗之间的折中考虑)

合格FPGA工程师的必备技能

一个合格的FPGA工程师,除了必须掌握上面讲到的内容,至少还需要针对以下三个方面之一非常地熟悉: 

1.嵌入式应用 

2.DSP应用 

3.高速收发器应用 

对于FPGA初学者,不知从何处下手学习。这里我再总结几个学习FPGA的具体步骤与设计思路: 
1. 首先,应该好好学习一下FPGA/CPLD的设计设计流程 不要简单的以为,FPGA就是设计输入->仿真->综合->实现那么一回事,要抠细,要学精,要多问每个步骤的注意事项,区分相关步骤的联系和区别。比如要搞清楚功能仿真、综合后仿真、Translate后仿真、Map后的仿真、布局布线后仿真的作用都是什么,什么时候应该做,什么时候可以不做这些仿真!学习清楚了设计流程最大的好处就是有利于培养良好的EDA设计习惯,日后会受益非浅! 2. 关于设计输入和Coding Style设计输入最好学习HDL语言,Verilog、VHDL都可以,可以把状态机输入和原理图输入作为补充内容,但不是重点。我在前面的帖子已经反复强调了 Coding Style的重要性。因为它是逻辑设计人员的一个基本业务素质。而且Coding Style不是看几篇文章,学几条原则就能够成为高手的,他需要您在工作中不断的体会和积累,在学习的最初,有Coding Style的意识,设计者就会有意的积累,对日后发展很有好处。反之则后患无穷。 3. 培养硬件的意识,培养系统的观念 我也在交流和授课的时候很强调硬件意识,如果从形式上看,逻辑设计随着智能化和优化手段的不断发展最后会越来越灵活,越来越简单。比如我们现在在使用大型 FPGA时就很少谈如何用Floorplanner优化,手动布线,如果用手动方式,其工作量太大了啊!一个设计的优劣,关键看其设计者的硬件意识,和系统意识。硬件意识就是要求先做到对设计的硬件胸有成竹,HDL代码仅仅是一个表述心中硬件的工具。系统意识要求设计者有宏观的观念,对设计的全局有个合适的安排,比如时钟域,模块复用,约束,面积,速度等问题。要知道在系统上复用模块节省的面积远比在代码上小打小闹来的实惠得多。 4. 最后才是工具软件的使用

现在EDA软件都越来越友好,越来越“傻瓜化”,如果您费了1年还没有基本摸清软件的使用,我敢说,那是一个比较烂的软件(起码在用户接口上),因为这是和EDA这种方式的理念背道而驰的。但是作为设计者,软件是工具,应该熟练掌握各个步骤不同方面的软件,这样才能最大程度地发挥您的聪明才智,才能使您如虎添翼! 

需要对相关器件的要有一定的了解,对和这些器件之间的控制、数据交换等通信要清晰,对性能和功能清楚。而且作为基本的素质要求要能看懂原理图,和PCB要不没法调试,呵呵。

另外比较重要的一点是对FPGA设计的一些基本原则,要有一个非常清晰的认识。比如: “面积和速度的互换”,“流水线设计方式”,“乒乓操作”。 对最基本和最常用的模块要非常熟悉,比如单口/双口RAM,同步/异步FIFO等等。 

除了问题要多想想自己的设计。虽然综合,布线工具的性能有差异,但是一个设计的优劣根本还是设计者的思路是否巧妙。当我们的设计达不到要求或者性能太差的时候,请不要埋怨综合工具太滥,布线结果太差,因为工具不会想人那么聪明。这时候,我们应该静下心,想一下自己的设计是不是有什么问题,结构是否合理,代码的风格是否符合工具的要求。系统结构的改进带来的优化远远超过最好的优化工具所能达到的结果。
编者在上面讲述了很多有关FPGA术语、学习思路,希望能够帮助大家对了解、整体梳理FPGA学习流程、深入学习FPGA硬件研发有所帮助。第一次接触FPGA,刚才没听懂?呵呵,没有关系~为帮助新手入门FPGA,嵌入式/硬件工程师进阶学习FPGA项目。近期,发烧友学院很荣幸邀请到Myminieye团队首席Coo,拥有10+年FPGA一线工作研发经验的 Mill总,开设一门FPGA就业实战技能培训《60天FPGA工程师入门就业项目实战特训营》课程。通过9周FPGA全覆盖式扫盲“理论”学习、系统项目实战,带你真正掌握主流FPGA硬件开发,彻底理解FPGA项目开发中的核心原理、技巧以及实际应用问题。历经6个月准备,3个月精心打磨,不断调整优化,只为给你实实在在的一线FPGA工程师必须掌握的技能!

课程内容涵盖:

▪ 0+节系统知识扫盲:

涵盖6大知识点,FPGA底层硬件、EDA工具、Verilog语法、ZYNQ裸机、ZYNQ linux搭建、项目实战

▪ 2 款国内外FPGA硬件架构讲解:

轻松掌握各类FPGA入门,Gowin GW1N、Xilinx ZYNQ

▪ 3 个维度认识FPGA行业:

Gowin(FPGA原厂),Xilinx(资深工程师团队),Blue Pearl(EDA原厂)

▪ 4 种开发调试工具深入讲解:

Gowin、Vivado、Modesim、Blue Pearl

▪ 10 节Verilog HDL经典实验:

帮你助力深入浅出掌握语法难关

▪ 6 种常用技巧应用难点分析:

时序基础、时序约束、乒乓、流水线、速度面积、CDC问题

▪ 10 余+代码及底层硬件映射深入讲解:

Slice、Distribute Ram、Storage Elements、Shift Registers、Multiplexers、Carry Logic、Clock、Block RAM、IOB(IO Delay)

▪ 1000+ 页原厂手册深入解读,不低于5期的线上项目交流讨论▪ 名师面试+就业指导:

电子发烧友网培训证书,优秀学员企业内推(前3名优秀学员免学费)

▪ 不定期硬件企业+企业家走访:线上线下同学分享会,拓宽你的行业交际圈与人脉资源另外,针对FPGA初学者,或者想梳理FPGA知识框架,系统进阶学习FPGA的工程师们,Mill总还给大家精心准备了一份《20堂课FPGA从零入门直播系列课》,课程从5大学习模块:FPGA硬件基础篇、HDL基础篇、入门基础篇、仿真基础篇以及时序分析,帮助你系统从零入门FPGA工程师。活动期间,可以报名直播,限时免费学习!

如何获取FPGA零基础入门学习机会?

想报名参加学习的学员,按照以下活动步骤完成报名,即可获取《20堂课FPGA从零入门直播系列课》免费学习机会。活动参与流程:步骤1:扫描下方二维码,加入FPGA直播系列课报名群。长按扫码立即报名FPGA直播课!

步骤2:进群后,按照入群提示语完成活动任务步骤3:添加学院小助手(甜甜微信:18118775427 或者 马里奥微信:mlajsw96备注“FPGA直播课”即可完成报名。

小助手甜甜

小助手马里奥

注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言