首页 > 编程知识 正文

fpga工程师和嵌入式工程师(硬件工程师如何转fpga工程师)

时间:2023-05-05 17:38:15 阅读:74807 作者:915

http://www.Sina.com/http://www.Sina.com /

对于FPGA工程师的核心竞争力,实际上FPGA工程师在真正的工业界还处于细分阶段,大致分为两个部分:集成电路样机验证者(包括设计和验证),以及在FPGA上开发产品的人

验证IC原型往往不需要知道算法,只需要根据设计者的设计框图实现逻辑() (大公司) ); 搞产品研发可能和具体的APP应用和算法很接近。 相当于硬件实现特定的APP应用程序和算法。 我们的重点是工程师,如FPGA实现,包括IC原型验证设计和产品设计设计。 我表现出我认为更细致重要的能力。

这里总结了FPGA的学习资料,包括视频教程、电子书、案例和代码。 这是一份很有价值的参考学习资料,供各阶段的学生、电子爱好者和电子工程师选择学习。 需要的朋友请拨打VX:www8928,先报上自己的名字,然后索取资料。

资料内容包括:《FPGA电子书资料汇总》; “《Verilog HDL 程序设计教程》 135例”资料包。 华为FPGA将设计全套等10个资料袋约10G的精华资料袋。 资料的部分截图如下。 由于篇幅的原因,不再一一罗列。

请详细查看正文的最后一个屏幕截图。

http://www.Sina.com/http://www.Sina.com /

关于FPGA工程师的核心竞争力,很多人都会提到算法的实现能力,我将其归结为RTL设计实现能力的一部分。 RTL实现是FPGA工程师或HDL开发人员入门的第一部分,其总结如下:

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /硬件实现构想

HDL设计实现和软件实现的思路不同。 作为描述语言,HDL侧重于硬件映射和连接关系的描述。 当然,也有逻辑、处理实现,但归根到底所有逻辑都是在硬件上实现的,最终映射到加法器、乘法器、状态机、计数器、编码器(优先)、解码器等硬件资源逻辑的分解和抽象能力直接关系到最终编码的效率。

简单来说,优秀的HDL编码器编写的代码很容易集成到编译器中,对于初学者来说,编译器集成(包括后续的Map布局布线)时间、warning数量、最后集成的资源和你预先设计的适合度是HDL代码的优点

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com /资源和时序优化能力

资源和时序优化能力是FPGA(ASIC )开发者的高级能力,这里需要大量的经验和迭代,需要不断深入理解硬件(FPGA的基础结构)才能达到。

对于FPGA来说,与ASIC设计不同,ASIC的硬件实现大多由集成器决定,但对于FPGA来说,所有资源都是固定的,FPGA资源包括三个块,运算逻辑(例如LUT DSP carry chain ),以及

那么,要以更少的资源、更快的时钟速度实现某个算法,就需要强大的资源和时序优化能力。 这种优化通常会重复多次。 当然,顶级设计人员通常会更准确地了解系统级的资源和时机,并给出每个模块的设计指标和边界,但最终的设计结果因开发人员的水平和能力而异。 良好的资源和时机优化能力是FPGA工程师的重要竞争力。

反过来说,软件开发实际上在优化方面与RTL设计或HDL开发没有太大区别。 优秀的软件设计人员熟悉计算机基础,对资源(时间、空间)的使用,对算法效率的分析也很深入,为此可以编写更好的软件代码。 在这个水平上,我认为软件开发和硬件开发都是对逻辑的抽象能力。

http://www.Sina.com/http://www.Sina.com /

调试能力也是作为FPGA开发人员和所有从事硬件的人

开发人员都一直认可的能力或者说核心竞争力。

举个例子,在找工作的时候如果你能向别人展示出你无与伦比的调试能力,别人没有理由不要你。调试能力需要大量的现场经验作为积累,同时也需要人的逻辑分析能力,当然还需要耐心,细致等等人的高尚品质 ,这里我也做一个小小的总结。

a、 FPGA本身调试工具的使用

我想这里又可以分为两个阶段,仿真和上板调试,仿真我想作为FPGA工程师都不陌生,大型的开发,通常有多个不同层次的模型,基本算法原理的模型,硬件仿真模型(通过C或matlab做定点仿真),然后再试HDL仿真模型(通过modelsim仿真最后的实现),仿真是一门很大的学问,现在都有专门的verification人员做。

但是对于普通FPGA开发人员来京,如何利用仿真这个工具来高效率的调试是一个值得思考的问题,一些异步的输入情况如何用仿真来排除问题,上板调试发现问题,根据问题输入情况仿真排除问题,这些都是利用FPGA仿真工具来调试的手段。

对于上板调试,主要就是利用chipsocpe添加调试信号,这里又涉及到如何利用有限资源(chipsocpe信号数量和深度)来排除问题,通常在上板调试发现问题后,仿真又无法定位解决(仿真是有和硬件不一致的情况的,比如一些RAM冲突的问题)。

经过分析加入合适的调试信号,设置合适的触发条件,然后定位排除问题。这些说起来容易,实际还是需要大量的上板经验,特别是大型系统的调试经历不断磨练提升。

此外还有一些应用需要配合外部仪器来获取更多信息帮助定位问题,包括示波器,谱分析仪,网络分析仪等常用实验室仪器。

b问题定位分析能力

上面讲的是都是利用工具来进行调试,但是硬件比软件难得地方就在于其调试的复杂性,很多时候无法利用工具进行问题的定位,比如现象无法复现,输入条件随机或者过于复杂,涉及模块逻辑很多等等情况,这时候去定位问题大多靠想,就是逻辑分析来排出问题。我认为这是FPGA工程师真正的核心竞争力,因为这不仅仅需要经验的积累,同时还需要很好的逻辑思维和分析能力。

c系统调试能力

系统调试能力是更加难得一项能力,通常做到系统层次的人员不会再具体的写代码或者上手调了,当然对于小团队小公司还是得自己上手。系统层面的调试能力一方面是对FPGA顶层的调试能力,各个模块构成的片上系统的问题分析定位能力。

通常各个模块在系统联调之前都是经过验证的,但是在联调的时候还是会出现各种各样的问题,这时候的问题反馈的信息更加少,设计的逻辑模块更加多,如何一步步抽丝拨茧定位到问题所在,并且采用什么样的方式去解决(这时候通常不是单独解决一个内部模块就行的),都需要很深厚的功力。

另外一方面是整个硬件软件系统层次的调试能力,要看得懂原理图PCB,懂硬件,了解软件接口,现在FPGA越来越讲究Hardware Software Co-design,软件硬件这个系统层次的调试能力对人的要求更加高,当然这通常已经远离了通常FPGA工程师的职责,但是我认为这是作为FPGA工程师上升通道中的重要能力。

3、更加高层次的

更加高层次的东西,我个人的理解,还是系统层次的东西,算法和架构。

怎样将一系列数学公式,转换为算法,再最终形成系统硬件的实现;整个系统采用什么样的架构,纯FPGA,arm FPGA,DSP FPGA,SOC FPGA;FPGA顶层采用什么架构,通用总线还是自定义总线,如何考虑通用性和可扩展性等等。

再大至什么样的应用适合用FPGA实现,什么样的问题适合软件实现,怎样的组合能更加低成本高效率的解决问题,这一些列问题涉及的东西就很多了,我讲的都是以FPGA为核心做开发要面临的问题,其实其他平台的硬件、软件产品都是类似,系统层面的问题都是复杂的问题,同时我也认为,从系统层面去优化,解决问题才是最高效率的方式。

归根结底,一个FPGA工程师的核心竞争力来源于深厚的技术功底,但是技术功底也并非通过一天练成的,最重要的是时间的积累,不断的钻研以及真正的兴趣,同时也离不开丰富的学习资料。

极益芯星是一支电子技术爱好者组成的团队,拥有核心成员全职创业的研发工程师(FPGA/DSP/ARM/ MCU、IC)二十多位,还有来自五湖四海的电子技术发烧友组成,现在经过三年多的发展,不断壮大,由原来的几十位工程师,逐步形成目前一千多位工程师的规模。在这一支队伍里面,大家互相学习、分享,对内开放源代码、原理图、PCB板图等研发资料、共享彼此的学习心得。经过不断的积累,汇总了超过300T的研发资料、文档、书籍、内参,学习资料可以免费分享给需要的爱好技术的朋友。涉及到定制、重要的资料需要收费,如果您需要收集哪些技术文档,也可以提出来,帮您快速找到想要的技术资料。在此希望从事电子产品事业的朋友,无论您是老板还是产品经理、还是牛人工程师,您都可以关注VX:www8928,欢迎加入这个电子技术爱好者大家庭。

承接各种研发项目,物联网软硬件系统、穿戴式设备、医疗设备、智能硬件、FPGA/DSP/ARM各类板卡、IP核定制、IC芯片研发、图像处理、音频视频、雷达信号、无线电射频、通信路由器、交换机等设备研发项目,都可以联系技术服务人员,为您提供专业、全面的项目技术咨询、外包研发服务。

在这里,小编给大家整理了一批FPGA的学习资料,包括视频教程、电子书、案例、代码等,是一套价值极高的参考学习资料,方便每个阶段的学生、电子爱好者、电子工程师选择学习。需要的朋友可佳VX:www8928,请先自报家门然后索取资料。

资料内容包括: “FPGA电子书资料汇总”;“《Verilog HDL 程序设计教程》135例”资料包。华为FPGA设计全套等10个资料包约10G的精华资料包。资料部分截图如下。限于篇幅,不再一一罗列了。

  

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。