看似简略的几个问题,Andrew却答复的有条不紊,小编现已没有方法有什么其他词语去描绘了。本文Andrew不只仅对FPGA入门学习流程做了具体的共享,更是对FPGA开发作业的要求分红大公司和小公司两个层面来剖析。你能幻想从前从一个忽略学业的人成为一名资深FAE的嘛?
1. 您以为想学FPGA的话,先学好什么才最重要?
Andrew:咱们玩FPGA的一般便是跟数字电路打交道,要想玩得转,有必要先学习并把握最最根底的数字电路和HDL硬件描绘言语,当然这仅仅入门必备,实际上远远不够。个人拙见,要入行除了至少把握一种FPGA的仿真及开发调试流程之外;最少还要了解一些模仿电路常识,把握比方电源纹波、时钟颤动、信号质量等常常需求丈量的硬件参数的测验方法;最少还要把握一种原理图和Layout规划软件,能够检查剖析调试电路板上的电路模块,如电源、时钟、存储器、装备、I/O和高速收发器等模块;最少还要把握一种单片机的开发流程,项目中不免有一些需求装备操控的需求,运用外置单片机或许内置ARM硬核或许其他软CPU来完结,简略又便利;因为自己水平有限,其他方面这儿就不再赘述。
那么,针对FPGA入门学习的一般流程,简略总结一下,供朋友们参阅,有经历的大牛能够绕道:
1.首要要有开发渠道,把该预备的都预备好,磨刀不误砍柴工:
比方ALTERA的Quartus II软件、开发板和装备调试东西USB Blaster,以及仿真软件Modelsim SE。软件能够从网上下载,入门功用的答应的调和方法一大堆;开发板和USB Blaster能够借,能够买,着手才能强的朋友,自己画一块也行。关于初学者,主张找一块有具体配套教程的开发板。
2. 关于新手来讲,墨守成规地学习往往便是最快的学习方法:
照本宣科虽然囫囵吞枣一知半解,但最少能把开发流程摸熟,能跑起来。刚拿到开发板,肯定是丈二和尚摸不着头脑。这个时分,主张先依据开发板的配套教程,把原理图上的各项模块功用厘清,把FPGA周围的电源、时钟、复位、装备、GPIO和连接器等的电路原理理一理剖析剖析。再依照配套教程中介绍的流程,把配套的测验工程跑通,在这个阶段,把FPGA开发所触及的RTL输入,概括、前仿真、布局布线、后仿真、装备调试的流程摸清楚。学习新东西的进程中,不免会呈现一些不了解的“疑难杂症”,切莫悲观,坚持便是胜利。当然,往往这个时分,有些朋友开端厌弃教程写得冗长、写得烂,或许碰到英文教程推托看不懂,就开端凭空捏造,天天受阻,逐渐损失爱好和决心,当开发板上面落满了灰,你还好意思在换岗的时分吹嘘有过怎么丰厚FPGA经历吗?
3. 了解了开发流程:
接下来就能够剖析或许改写原教程中的代码或许模块,有针对性地去完结一些功用模块,并且经过一些软件自带的调试组件来辅佐验证效果是否契合预期,如SignalTap II等。无论是原厂的单板,仍是FPGA爱好者做的单板,配套例程都会有一些经典的电路完结事例,比方根本的分频器,简略的I2C通讯、SRAM读写操控,以及略微杂乱的SDRAM读写操控等,仔细剖析他人怎么写代码完结所观测到的时序,与此一同,阅览相应模块手册或许器材内部组件文档中的时序描绘章节来比照剖析,查阅网上他人共享的调试心得博客、论文等,直到了解并把握停止,并且恰当地做些笔记概括总结,所谓常常记记,以防忘掉,给其他人或许给往后的自己参阅。
4. 光靠自己研讨,有时会被一些问题堵塞思绪,大脑会卡壳:
那么,参与一些学习小组、专业的评论圈子是有必要的,是利大于弊的,比方论坛、FPGA工业圈QQ群,共享心得,咨询问题,评论人生。这个进程,也有或许误入歧途,有些朋友或许过共享用交际的愉悦,沉迷于灌水的浪潮中。主张在学习作业的时分,把精力首要放到学习研讨中,切莫堕入无聊的灌水大军中。除了线上交流,咱们也能够参与社区安排的线下沙龙活动,面对面地交流学习,评论问题的一同还或许往来一些好朋友。跟他人评论问题,意图是为了解决问题,处理进程需求一些技巧,主张尽量把现已遇到的问题的器材类型软件版别、观测到的症状、仿真调试的波形、已测验的方法和已剖析的或许原因先罗列出来,让能帮你且有时刻有心境帮你的朋友快速及时地剖分出原因并给出解决方法,这是一个简略的评论问题的方法论。他人帮你是恩德,不是责任。假如没有人帮到你,不要悲观,持续想其他方法。
5. 有一点根底了,就能够当令挑选一些项目练手:
不只能够训练FPGA开发才能,还能够增强决心,沉积经历,获取价值体现。老是拿着开发板玩,思想简单囿于开发板所触及的小小“骗局”,其实开发板仅仅个学习东西,开发板玩得再熟,也仅仅了解那上面的几个小模块罢了。FPGA运用广泛,相关产品层出不穷,大把的作业及商场时机,假如光学不练,那真是白瞎了韶光,浪费了生命。
2.从事FPGA开发作业有些什么要求呢?
Andrew:坦白地讲,这个问题很难答复,不同的公司、不同的产品、不同的项目组、不同的研制人员需求千差万别。不过,能够评论评论。公司与研制之间是双向挑选,公司要求产品具有必定的技能优势和安稳度,能够及时上市掩盖必定的细分作业,研制需求公司依照合同供给合理的待遇和福利。 大公司人员分工相比照较明晰,FPGA工程师需求协作体系工程师、算法工程师、软件工程师、硬件工程师和测验工程师完结产品单板的功用规划和安稳性测验,因为不是一个人在战役,所以更需求注重团队协作。并且大公司往往与芯片的供货商有战略协作关系,获取相应的支撑资源在力度和速度的优先级上远远高于一般公司,这对FPGA技能层面的修炼是大有裨益的。
在这样的公司里作业,窃以为需求培育:
1. 自我学习才能。公司假如有相关训练,抓住时机好好学习;假如没有,平常在作业之余要加强专业常识充电,把自己打造成不可或缺的人才。别的要注意公司不是校园,公司要的是精干实事的职工,不是坐而论道坐而论道的赵括,不能天天想着学习而不干活。
2. 交流和谐才能。遇到疑难问题要及时主张集体评论确诊,切莫蒙头自己死扛,一来自己压力大,二来影响项目开发进展,必要时要及时把芯片供货商的支撑团队拉进来一同评论剖析。要意识到自己的缺乏,尊重团队中其他成员的定见和主张,常常训练自己的交流和谐才能,为往后自己带团队做预备。
3. 抗压才能。FPGA开发的难度高居主控芯片(CPU,DSP,FPGA,专用芯片等)的第一,芯片厂家为了协作商场需求,连年不断晋级器材软件,这关于研制来讲便是灾祸,可是为了提高终究产品的竞赛力,提高咱们本身的价值,咱们不得不去学习把握。别的公司项目往往严厉依照预期进展展开,假如遇到难题,加班加点是有必要的。所以咱们平常必定要多训练身体,多看书,培育必定的爱好爱好,以排解项目开发中的苦闷。像某为那样,只注重作业效率,把研制当作加班的机器,时不时就有报导研制跳楼的新闻,几乎便是业界的羞耻。
4. 作业生涯规划才能。大公司作业使命单一,对专业深度要求高。要逐渐规划调整自己未来的路,往专业深度走,做技能专家;往专业广度上走,做体系工程师;往技能之外的岗位走,转行。作业要积极自动,选好的路就好好走下去,切忌反复无常,滥竽充数,杯水车薪,碰到好光景,还能够混日子;碰到比方当时这种外企裁人潮,诺基亚、思科、微软等公司纷繁大裁人,老大不小的南郭处士再作业难度就比较大。凡事都逃不过因果关系,给公司努力作业,便是为自己的未来努力作业。只需有才能,将来仍是有时机出去自创企业,发明更多社会价值。
小公司自由度高,独自的FPGA工程师的职位设置不太常见,往往环绕着项意图需求,工程师既要当爹又要当妈,硬件软件逻辑机械模型一同搞。从表面上看,要做的作业比较杂,新人往往感觉在打酱油,跑龙套。有一些朋友耐性比较差,简单堕入常常换岗的怪圈。其实呢,小公司有小公司的好,产品的杂乱度相对来讲不高,研制出项意图速度比较快,数目也比较多,简单堆集本身的成就感,这感触和大公司里边有时的无力感有大相径庭。再者小公司因为企业规模小的原因,直接做渠道与大公司竞赛的或许性不大,往往都是做一些环绕大公司渠道的配套产品,或许做一些大公司不愿意做或许没有注意到的新的细分产品。作为研制,能够直接或直接触摸终端作业运用,对产品的功用了解直观透彻,对作业也有必定的调研,将来很简单出去创业,做出愈加细分的作业产品。
在小公司作业,窃以为需求训练:
1. 产品规划的大局观。自动去研讨产品的运用需求,整合现有的计划,揣摩或许改善的部分,将其开发规划为产品的亮点,赢得细分作业的商场。产品本身技能含量不高,所以咱们也没有必要纠结一些技能细节,只需能完结能出产品,便是研制的价值体现。
2. 技能的广度。多了解一些常用的芯片渠道,抢手的完结计划。产品在规划进程中,尽量挑选老练的芯片渠道和结构,下降产品研制的危险和出资。
3. 交流才能。小公司的老板一般不太注重研制,对研制的投入力度有限,研制团队里往往只要光杆司令几人。长时间短缺交流,有些朋友或许体现得比较迟钝,比较闷骚,其实对往后的作业生涯是有坏处的。必定要找时机与公司其他部分的人交流交流,不要给自己画圈。平常要积极参与一些线下沙龙,活动,训练本身的交流才能。
4. 耐性。人生漫漫,来日方长,剩者为王。所谓干一行爱一行,时机永久留给有预备的朋友。
3. 初级工程师应具有哪些专业技能?
Andrew:至于FPGA工程师的所需的专业技能,仁者见仁,智者见智,我在第一个问题的答复中也说到若干。
这儿专门罗列一下我个人浅见,仅供参阅:
1. 时序的规划和仿真才能。时序是规划出来的,一些常见的电路模块有必要要把握,如流水线操作,状态机,localbus接口,存储器读写等电路的时序规划。FPGA相关的作品数不胜数,这儿引荐两本:《FPGA Prototyping by Verilog Examples》,美籍华人Pong P. Chu针对Xilinx Spatran3E 开发套件编著的Verilog根底教材,能够在网上下载英文版的pdf,能够自行打印成册参阅;别的一本有中译本出书,能够在Amazon购买,作者克里兹,孟宪元翻译的《高档FPGA规划 结构、完结和优化》,书很好很薄,翻译得有待改善。这两本能够作为学习FPGA方法论的“红宝书”。
2. 电路调试才能。安稳的产品是建立在不断调试改善的根底上的。娴熟运用常用的测验东西,如万用表、示波器、逻辑剖析仪等。了解FPGA厂家供给的调试东西,关于FPGA规划事半功倍,如前面说到的SignalTap II。一些辅佐的调试东西最好也能够把握,如串口、网络报文剖析东西等等。电子规划相关的小东西有许多,依据自己的作业需求恰当挑选。
3. 文档阅览和编写才能。作为一名FPGA工程师,免不了与器材软件的英文文档打交道,阅览文档要先是搞清楚几条:读哪些文档哪个章节,在哪里找这些文档。我想这些一时半会也讲不完,我从前在某论坛发了一个关于ALTEAR FPGA材料列表的帖子,很受欢迎,至今仍然在热帖之中。主张常常自动与相关芯片厂家的FAE交流,获取有用的直接的技能支撑;当然文档是需求自己读的,他人不能永久帮你读。再一个,公司内部技能堆集,编写文档也是必要的,有一些东西需求把握,如画波形的TimeGen或许Timing Designer,字处理软件Word或许WPS等。关于文档建造,有些公司不太注重,其实文档很重要很必要,对团队内部审理评论,对未来的自己参阅都是有用的。
4. 讲演交流的才能。俗话说,光说不练假把式,光练不说傻把式,又说又练真把式。团队内部评论产品需求,计划规划,问题确诊,都需求讲演交流。乃至恳求老板加薪,罗列自己的效果也需求必定的讲演交流才能。能够恰当地借用东西来辅佐,比方ppt。