FPGA资深fae的经验独白骏龙科技andrewzhang">FPGA资深FAE的经验独白 — 骏龙科技Andrew_Zhang |
看似简单的几个问题,Andrew却回答的井井有条,小编已经没有办法有什么其他词语去形容了。本文Andrew不仅仅对FPGA入门学习流程做了详细的分享,更是对FPGA开发工作的要求分成大公司和小公司两个层面来分析。你能想象曾经从一个疏忽学业的人成为一名资深FAE的嘛? |
采访:Cindy Sun chenfeng@elecfans.com 撰文、组稿:Cici Chen chenfeng@elecfans.com (原创内容,转载请注明来自ElecFans) |
1. 电子发烧友:您认为想学FPGA的话,先学好什么才最重要? |
Andrew: 我们玩FPGA的通常就是跟数字电路打交道,要想玩得转,必须先学习并掌握最最基础的数字电路和HDL硬件描述语言,当然这只是入门必备,实际上远远不够。个人拙见,要入行除了至少掌握一种FPGA的仿真及开发调试流程之外;起码还要了解一些模拟电路知识,掌握诸如电源纹波、时钟抖动、信号质量等经常需要测量的硬件参数的测试方法;起码还要掌握一种原理图和Layout设计软件,能够查看分析调试电路板上的电路模块,如电源、时钟、存储器、配置、I/O和高速收发器等模块;起码还要掌握一种单片机的开发流程,项目中难免有一些需要配置控制的需求,使用外置单片机或者内置ARM硬核或者其他软CPU来实现,简单又方便;由于本人水平有限,其他方面这里就不再赘述。 那么,针对FPGA入门学习的一般流程,简单总结一下,供朋友们参考,有经验的大牛可以绕道:
|
2. 电子发烧友:从事FPGA开发工作有些什么要求呢? |
Andrew: 坦白地讲,这个问题很难回答,不同的公司、不同的产品、不同的项目组、不同的研发人员需求千差万别。不过,可以讨论讨论。公司与研发之间是双向选择,公司要求产品具有一定的技术优势和稳定度,能够及时上市覆盖一定的细分行业,研发需要公司按照合同提供合理的待遇和福利。 大公司人员分工相对比较清晰,FPGA工程师需要配合系统工程师、算法工程师、软件工程师、硬件工程师和测试工程师完成产品单板的功能设计和稳定性测试,因为不是一个人在战斗,所以更需要注重团队合作。而且大公司往往与芯片的供应商有战略合作关系,获取相应的支持资源在力度和速度的优先级上远远高于一般公司,这对FPGA技术层面的修炼是大有裨益的。 在这样的公司里工作,窃以为需要培养:
在小公司工作,窃以为需要锻炼:
|
3. 电子发烧友:初级工程师应具备哪些专业技能? |
Andrew: 至于FPGA工程师的所需的专业技能,仁者见仁,智者见智,我在第一个问题的回答中也提到若干。 这里专门罗列一下我个人浅见,仅供参考:
|
4. 电子发烧友:自从业以来,遇到最大的困难与挑战是什么?能否给我们分享些您的经验以及心路历程? |
Andrew:
对我个人而言,在学习FPGA的道路上所遇到的最大的困难和挑战是在大学期间发生的。由于高中阶段过分着迷于网页设计,疏忽了学业,结果只考上一所不太有名的工科大学。大一结束的暑假,没有回家,被老乡介绍到当时由某老师组织的DSP小组中打杂。小组里有两拨人,一拨人研究基于TI DSP的指纹识别,另外一拨人研究ALTERA FPGA,基于友晶的DE1开发板。当时刚刚念完《电路》,比较好奇附录章节的matlab实验,所以玩过一阵子MATLAB,用来解电路的习题。那个时候对DSP和数字电路都不懂,刚好小组里研究DSP的人比较多,FPGA小组还有名额,我就被分到FPGA小组。短短两个月暑假,老师给我们分配了MIT的《基于MATLAB的数字信号处理实验》中的一些习题任务,同时我们也自学了《数字电路》中的部分章节,学会了 Quartus II的基本操作流程。大二上学期,我基本把DE1开发板所配套的仅有的几个实验例程都跑通了,算是入门了。那时也不晓得FPGA能干啥,反正就是比较着迷。老师平时给我们介绍一些学习方法,布置一些实验任务,剩下的就是自我学习完成。好景不长,不晓得什么原因,我们那个老师失踪了,至今我都没有他的音信。加上学校懂FPGA的人屈指可数,我请教过很多老师,但都是玩单片机和DSP的居多。也邮件联系过骏龙科技和艾睿电子,最终都是石沉大海,没有回信。所以从大二开始,我对FPGA纯粹就是独自在学习。这对我来讲,是FPGA学习道路上最大的困难和挑战。 还好我在网上发现了萧鸿森 oomusou的博客,他以前搞软件的,当时他30多岁在台大读研究生同时负责本科FPGA实验的助教,他写了上百篇基于友晶DE系列开发板的实验步骤及心得的博文。我几乎把萧老师的大部分博文都深入研究实验过,萧老师写的博文主要是为了带台大本科的FPGA实验课,行文完全按照写论文的格式,论述深入浅出,对实现原理和代码的解说非常详尽,所引用的内容也一一标出。这段自学经历对我有深远的影响。再后来我认真研究过SOPC系统和Nios II软核处理器,加入了著名的“SOPC技术联盟”QQ群,群主腾龙大哥,张景秀,是《SOPC系统设计与实践》的作者。在此群中我认识了很多FPGA爱好者,一直相处到如今。所以我认为网络的力量是无穷的,不论身在何方,只要感兴趣,可以自学任何技术,我个人的经历就是生动的案例。 最后我拿杨振宁老先生解说过的“真情妙悟著文章”来总结一下FPGA的研习心得。 首先要存真情,要有兴趣去学习,去摸索,兴趣是第一老师;然后如果能够在学习研究的同时独立或者与别人合作完成一些小成果,比如参加电子竞赛实现一些力所能及并且能体现自己想法的功能模块,这就是妙语,有自己的积累和闪光点;最后著文章,就是经年累月,在项目实践中学习总结,逐步沉淀为一定的专业修养,将自己的思想凝结在产品的开发设计中。 |
5. 电子发烧友:您认为从“Junior”工程师成长为“Senior”工程师的过程有哪几个阶段呢? |
Andrew:
这个话题有难度有深度,恐怕我个人能力不够,不好驾驭。窃以为从产品设计的层面上讲,初级工程师也许只能覆盖一些基本的指定的功能模块开发设计,可能还比较吃力,过程中可能还需要向先进请教,工作的独立性也需要逐步加强,所开发的产品可能考虑得不全面。但是他们有优势,年轻好学,积极主动,没有明显的过时的思维惯式和不良的工作习惯,欠缺的只是工作经验,如果公司内部有好的人才培养机制,那么成为高级工程师是早晚的事。相比较于初级工程师,高级工程师更加擅长于系统架构层面的工作,可能具体的执行层面不一定比初级工程师熟练,但是他们身经百战,对行业应用了如指掌,能够敏感地挖掘出行业潜在的需求,并及时转化到产品项目的研发架构及计划中。他们是战略性人才,是研发型公司不可或缺的顶梁柱。 一般来讲,在初级工程师阶段,所能做的就是打打下手,做一些别人指派的工作,研究实现某些具体的简单的可能有参考的项目模块,同时逐步积累一些已经验证过的项目模块的开发经验。然后下一步就是自己能够独立承接并完成一些有规划的有指标要求的项目,有一些独特的见解和专业的沉淀,这个过程可能对于不同公司不同产品在时间跨度上各有差别。那么最终就是量变导致质变,项目开发的多了,对行业应用的认知就越来越清晰,自然而然就升华蜕变为高级工程师。 |
6. 电子发烧友:在您生命中曾经有哪些人对你造成过影响? 给你的启示又是什么呢? |
Andrew: 很多人,主要是我不同时期的老师们和朋友们。给我的启示就是学习别人的长处,正视自己的短处,展示自己的特别之处。 |
7. 电子发烧友:身为一名资深FAE不知道您对这个岗位又有怎样的看法呢? |
Andrew:
有一个小故事,大家可能耳熟能详。从前有个人去看医生,他说自己很沮丧,生活无情而残酷,在这充满威胁世上觉得非常孤独。医生说:“不要紧,城里的马戏团有位著名的小丑,会说所有笑话。看了他的表演,你就不会再烦恼了。”那个人哭着说:“可是医生,我就是那个小丑。”这个故事可能有些夸张,但我认为也在一定层面上反映了咨询支持从业人员的现状,FAE可能也概莫能外吧。 FAE是研发人员最真诚的朋友 他们给研发人员推介最先进最合适的技术方案,帮助解决一个又一个已经遇到的技术难题,并且及时指出可能出现问题的规避方法;在加快研发产品速度的同时,也间接地直接的被传导了一些研发压力,那么当不同方向的压力传导到单个FAE的身上,FAE的压力也在倍增。他们可能有时没有及时回复你的邮件,没有接你的电话,那是因为太忙了,请不要骂娘,请耐心等待。 FAE是一份极具挑战的工作, 尤其是主动器件的FAE。需要时刻保持积极主动的学习精神,第一时间把芯片厂商的最新技术学习消化并及时传播给研发朋友们;需要良好的脑力和体力,才能够在短时间内响应及回复来自于不同公司、不同项目、不同研发人员的不同层面的技术问题。 FAE是一份幸运的工作, 他们能够接触各种各样的行业应用,能够向各种各样的研发人员学习,领略他们宝贵的绚烂的开发设计思想。 |
往期回顾: |
第十期:社区之星——资深研发主管的蜕变与独白 第九期:社区之星——追求卓越,成功就会在不经意间追上你:宋雪松 第八期:社区之星——持之以恒:刘卓 第七期:社区之星——天道酬勤:阿东 第六期:社区之星——“剩”者为王:朱兆祺 第五期:社区之星——电源技术牛人版主:刘佳文 第四期:社区之星——嵌入式社区达人:王巧玉 第三期:社区之星——ARM技术智多星达人:程志 第二期:社区之星——单片机达人:吴鉴鹰 第一期:社区之星——DSP牛人miachael_xing |
更多回帖