(完整版)FPGA资深FAE的经验独白
fpga面试经验
竭诚为您提供优质文档/双击可除fpga面试经验篇一:最近也面试了很多Fpga工程师最近也面试了很多Fpga工程师,没找到合适,我觉得很多人从开始的时候就误入歧途了,对新手学习Fpga设计我也说一点看法吧。
我认为要从基础开始做,基础牢,才有成为高手的可能。
我觉得有以下几步必须要走:第一步:学习了解Fpga结构,Fpga到底是什么东西,芯片里面有什么,不要开始就拿个开发板照着别人的东西去编程。
很多开发板的程序写的很烂,我也做过一段时间的开发板设计,我觉得很大程度上,开发板在误人子弟。
不过原厂提供的正品开发板,代码很优秀的,可以借鉴。
只有了解了Fpga内部的结构才能明白为什么写Verilog和写c整体思路是不一样的。
第二步:掌握Fpga设计的流程。
了解每一步在做什么,为什么要那么做。
很多人都是不就是那几步吗,有什么奇怪的?呵呵,我想至少有一半以上的人不知道synthesize和traslate的区别吧。
了解了Fpga的结构和设计流程才有可能知道怎么去优化设计,提高速度,减少资源,不要急躁,不要去在为选择什么语言和选择哪个公司的芯片上下功夫。
语言只是一个表达的方式,重要的是你的思维,没有一个好的指导思想,语言用得再好,不过是个懂语言的人。
第三步:开始学习代码了。
我建议要学代码的人都去altera或xilinx的网站上下原厂工程师的代码学习。
不要一开始就走入误区。
个人愚见,欢迎大家讨论。
做fpga主要是要有电路的思想,作为初学者,往往对器件可能不是熟悉,那么应该对于数字电路的知识很熟悉吧,fpga中是由触发器和查找表以及互联线等基本结构组成的,其实在我们在代码里面能够看到的就是与非门以及触发器,不要把verilog和c语言等同起来,根本就是不同的东西,没有什么可比性,在写一句程序的时候应该想到出来的是一个什么样的电路,计数器选择器三态门等等,理解时序,逻辑是一拍一拍的东西,在设计初期想的不是很清楚的时候可以画画时序图,这样思路会更加的清晰,还有就是仿真很重要,不要写完程序就去往fpga中去加载,首先要仿真,尤其是对比较大型一点的程序,想像自己是在做asic,是没有二次机会的,所以一定要把仿真做好,还有很多新手对于语言的学习不知道选vhdl好还是verilog好,个人偏好verilog,当然不是说vhdl不好,反正写出来的都是电路,那当然就不要在语言的语法上面花太多的功夫了,verilog言简意赅assignalwayscaseifelse掌握这些几乎可以写出90%的电路了,上面是我的一些愚见,希望对大家有所帮助做一块板子,实现一个协议,先从简单入手,譬如Rs232,然后到复杂,pci协议,然后再设计一些高速的,譬如ddrsdram,基本上你对fpga的了解就已经很深了能搞到51,mega,stm32的源码和相关库,就小case啦,编译--》综合--》下载,ol学习Fpga最重要的是要了解综合和时序仿真,你熟知你写的每个进程到Rtl级中都会综合成什么样的电路,只有这样你才能使用有限的资源设计出好的逻辑硬件。
FPGA经验之谈汇总
FPGA经验之谈汇总FPGA设计要点之一:时钟树对于FPGA来说,要尽可能避免异步设计,尽可能采用同步设计。
同步设计的第一个关键,也是关键中的关键,就是时钟树。
一个糟糕的时钟树,对FPGA设计来说,是一场无法弥补的灾难,是一个没有打好地基的大楼,崩溃是必然的。
具体一些的设计细则:1)尽可能采用单一时钟;2)如果有多个时钟域,一定要仔细划分,千万小心;3)跨时钟域的信号一定要做同步处理。
对于控制信号,可以采用双采样;对于数据信号,可以采用异步fifo。
需要注意的是,异步fifo 不是万能的,一个异步fifo也只能解决一定范围内的频差问题。
4)尽可能将FPGA内部的PLL、DLL利用起来,这会给你的设计带来大量的好处。
5)对于特殊的IO接口,需要仔细计算Tsu、Tco、Th,并利用PLL、DLL、DDIO、管脚可设置的delay等多种工具来实现。
简单对管脚进行Tsu、Tco、Th的约束往往是不行的。
FPGA设计要点之二:FSM关于上期的时钟树,可能说的不是很确切。
这里的时钟树实际上泛指时钟方案,主要是时钟域和PLL等的规划,一般情况下不牵扯到走线时延的详细计算(一般都走全局时钟网络和局部时钟网络,时延固定),和ASIC中的时钟树不一样。
对于ASIC,就必须对时钟网络的设计、布线、时延计算进行仔细的分析计算才行。
FSM:有限状态机。
这个可以说时逻辑设计的基础。
几乎稍微大一点的逻辑设计,几乎都能看得到FSM。
FSM分为moore型和merly型,moore型的状态迁移和变量无关,merly型则有关。
实际使用中大部分都采用merly型。
FSM通常有2种写法:单进程、双进程。
初学者往往喜欢单进程写法,格式如下:always @( posedge clk or posedge rst )beginif ( rst == 1'b1 )FSM_status <= ......;elsecase ( FSM_status )......;endcaseend简单的说,单进程FSM就是把所有的同步、异步处理都放入一个always中。
FPGA工程师职场必修能力和面试总结
FPGA工程师职场必修能力和面试总结FPGA这个概念在很多应用领域,出现的频率越来越多,例如:在比特币挖矿中在基于FPGA的矿机,自动驾驶系统中实时视觉处理系统,军事领域的导弹导航系统等。
这段时间,也去面试了十多个FPGA岗位,发现在面试过程中发现有很多很突出的问题,特别是在比较大型的公司都会相当重视。
具体来说会考量面试者很多的几个知识点:同步时钟设计、亚稳态、异步FlFOo可以亳不夸张地说,如果面试者要是能弄明白这几个问题,那么至少能满足迄今绝大多数公司对FPGA岗位的大部分需求。
相比其他电子行业,从事FPGA开发工资高,对技术水平要求也高,一方面除了要求工程师对广泛的基础知识要有一定的了解,其次也需要有实际的经验,如果在投递简历时,能通过拍照片、录视频的方式把你曾经做过的项目经验经历打包整理好,在面试的时候用上,会极大增加你的通过率。
技术面试时,多讲讲你做过的东西,怎么做具体有哪些想法,扩展性思维,尽量多去开拓一些相关性知识,让企业者更多看到你知道得很多,基础很扎实,容易上手易于培养,后续就基本没什么问题了。
以下录自某FPGA专业通信设备商的人员招聘,对于入职FPGA工程师岗位的具体要求。
整个面试过程包含笔试(专业基础题)+面试(主观分析题)共两个部分,下面为大家提供具体题目及参考回答。
FPGA工程师面试必考题目主观题:1.你认为你从事这项工作有什么主要的优点?2.描述一下你之前参与的最有成就的项目,你觉你的成就来源是什么?3.你觉得你自身最大的缺点是什么?该如何克服或改进。
4.你该如何与最新的技术保持同步?专业知识题:1.什么是同步逻辑和异步逻辑?同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。
改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入有无变化,状态表中的每个状态都是稳定的。
异步时序逻辑电路的特点:电路中除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件,电路中没有统一的时钟,电路状态的改变由外部输入的变化直接引起.同步逻辑是时钟之间有固定的因果关系。
FPGA学习经验之谈
FPGA学习经验之谈FPGA学习-经验之谈目录1.杂记 (3)1.1 FPGA中未赋初值寄存器的值 (3)1.2关于initial在仿真中的应用 (3)1.3 仿真程序控制的变量 (3)1.4 错误汇总 (3)1.5 Inout口的编写办法 (3)1.6 Component 相当于assign不能用在什么always 模块中 (7)1.7 If-else不完全配套时 (7)1.8 X实际上是0 (7)1.9 关于BRAM(BLOCK RAM) (7)1.10 一个FPGA设计最大能工作的频率 (7)1.11 DCM不能直接接管脚?输出一般要先过一个buf再输出?(8)1.12 FPGA中不同BANK区别?DSP概念?BUFG? (8)1.13 全局时钟只能跑一半?DCM输出时钟一般能跑1/4整芯片?(8)1.14把F68013_PC_FPGA程序最大工作频率提高,方法: (8)1.15 单词翻译 (9)1.16时序报告解读及解决 (9)1.17 关于FPGA Editor (10)1.18未用管脚电平设置 (11)2.关于Chip Scop (11)2.1简介 (11)2.2关于常用核 (12)2.3 重要操作 (13)2.4 缺点 (13)2.5 使用说明 (13)3 Modesim 与ISE 联合仿真 (13)3.1 安装方法,照下面操作即可实现联合仿真 (13)3.1.1 安装注意事项 (14)3.2 主要的优点 (14)3.2.1 关于波形比较 (14)3.2.2 数据流窗口调试 (15)3.2.3 代码覆盖率,这功能不错 (15)4.BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用 (16)4.1全局时钟资源的使用方法(五种) (17)4.2 全局时钟资源的例化方法 (18)4.3详解IBUFG/IBUFGDS+BUFG用法 (18)5.I2C网上程序精读(尽快抽空) (18)5.1 关于上复位 (18)FPGA设计1.杂记1.1 FPGA中未赋初值寄存器的值在硬件平台中,当系统上电后,信号电平不是1就是0,不会存在X,因此,设计中用到的寄存器如果在没有初始化的情况下,在不同的平台上,其初始状态是不一定的,存在两种可能全0或者全1,而在XILINx公司的FPGA/CPLD上,默认为0。
fpga个人心得体会
fpga个人心得体会FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,它可以根据用户的需要重新进行编程,以实现不同的功能。
在我个人使用FPGA的过程中,我深刻地体会到了它的优势和魅力。
首先,FPGA具有灵活性和可重构性。
相较于传统的专用集成电路(ASIC),FPGA可以在设计完成后进行现场编程,而无需重新设计和制造芯片。
这意味着我可以根据具体的需求对FPGA进行修改和优化,使其更适合特定的应用场景。
无论是改变设计逻辑、增加新的功能,还是优化性能和功耗,FPGA都可以随时进行调整,极大地提高了开发的灵活性和效率。
其次,FPGA具有并行计算能力。
相对于传统的通用处理器,FPGA可以通过配置并行计算单元实现更高的运算速度。
这对于需要高性能计算的应用非常重要,例如图像处理、信号处理和机器学习等。
我曾经使用FPGA进行图像处理的项目,通过合理地设计硬件架构和并行计算的布局,显著提升了处理速度和实时性。
这使我意识到FPGA在数据密集型应用中的巨大潜力。
此外,FPGA还具有较低的功耗和高效能。
FPGA的逻辑元件采用可编程的查找表(Look-Up Table)实现,相对于ASIC的固定逻辑电路,FPGA能够根据具体的需求进行灵活布局,减少了功耗的浪费。
在一些对功耗要求较高的应用中,FPGA能够提供更好的性能-功耗比,降低了系统的能源消耗。
与此同时,FPGA的设计流程也给我提供了很多的挑战和机会。
由于FPGA的可编程特性,需要我充分理解硬件描述语言(HDL)和硬件设计流程,掌握相关的设计工具和开发环境。
在这个过程中,我不仅提高了自己的技术能力,还学到了如何进行良好的工程管理和调试。
这些宝贵的经验对于今后的工作和学习都将会带来很大的帮助。
然而,FPGA的使用也存在一些挑战和限制。
首先,相较于通用处理器,FPGA的开发成本较高。
设计FPGA的逻辑电路需要耗费大量的人力、时间和资源。
FPGA学习总结
FPGA学习总结FPGA(现场可编程门阵列)是一种数字电路开发和实现的工具,它提供了一种灵活的方式来设计和实现各种数字电路。
在我的FPGA学习过程中,我经历了以下几个方面的学习和实践:1.FPGA基础知识:在学习FPGA之前,我首先了解了FPGA的基本概念和原理。
我学习了FPGA的架构、时序和时钟设计、数字电路设计和综合等方面的知识。
这些基础知识为我深入学习和实践FPGA打下了坚实的基础。
2. FPGA开发工具的使用:我使用了常见的FPGA开发工具,如Vivado和Quartus。
这些工具提供了一种直观而强大的方式来设计和实现FPGA。
我学习了如何创建项目、添加模块、定义信号、综合和布局布线等操作。
通过不断的实践和尝试,我逐渐掌握了这些工具的使用。
3. Verilog和VHDL的学习:Verilog和VHDL是FPGA开发中常用的硬件描述语言。
通过学习这两种语言,我能够使用它们来描述和设计各种数字电路。
我掌握了如何使用这些语言来描述寄存器、组合逻辑、状态机等部件,并能够将它们综合成FPGA可实现的电路。
4.FPGA的应用实践:在学习了FPGA的基础知识和工具使用之后,我开始进行一些实际的应用实践。
我使用FPGA设计和实现了一些简单的电路,如计数器、加法器、乘法器等。
通过实践,我加深了对FPGA的理解,并增强了自己的设计和调试能力。
5.FPGA高级特性的学习:除了基础知识和工具使用外,我还学习了一些FPGA的高级特性,如时序分析、时钟域划分、并行数据传输和高速串行数据传输等。
这些特性在设计和实现一些高性能和复杂的电路时非常重要,我通过学习和实践,学会了如何正确地使用这些特性。
总结起来,FPGA学习是一个既有理论基础又注重实践和应用的过程。
通过学习FPGA,我更好地理解了数字电路的原理和设计,增强了自己的工程能力。
我学会了使用FPGA开发工具,掌握了Verilog和VHDL等硬件描述语言,实践了FPGA的设计和实现,并学习了一些高级特性。
fae年终工作总结
fae年终工作总结《FAE 年终工作总结》时光荏苒,岁月如梭,转眼间一年的工作即将画上句号。
回顾过去这一年,作为一名 FAE(现场应用工程师),我在工作中经历了许多挑战和机遇,也取得了不少成绩和收获。
在此,我将对这一年的工作进行总结,以便更好地展望未来,不断提升自己的能力和水平。
一、工作内容与成果1、客户技术支持这一年里,我始终把为客户提供优质、高效的技术支持作为首要任务。
无论是通过电话、邮件还是现场服务,我都能及时响应客户的需求,帮助他们解决在产品使用过程中遇到的各种技术问题。
据不完全统计,我共处理了超过X个客户咨询案例,其中包括产品故障排查、技术参数解读、应用方案优化等。
通过我的努力,大部分客户的问题都得到了圆满解决,客户满意度达到了X%以上。
2、新产品导入在新产品导入阶段,我积极参与了公司多个新产品的测试和评估工作。
与研发团队紧密合作,对新产品的性能、功能进行了全面的测试和验证,并根据测试结果提出了一系列的改进建议。
同时,我还为销售团队和客户提供了详细的产品培训和技术文档,帮助他们更好地了解和推广新产品。
在新产品上市后,我密切关注市场反馈,及时处理客户的问题和意见,为产品的顺利推广和销售提供了有力的技术保障。
3、项目跟进与协调在项目跟进方面,我负责了多个重要项目的技术支持工作。
与项目团队成员保持密切沟通,及时了解项目进展情况和遇到的技术难题,并协调各方资源,共同推动项目顺利进行。
在项目实施过程中,我充分发挥自己的技术优势,为项目提供了专业的技术解决方案,确保项目按时、按质完成。
其中,具体项目名称项目在我的积极参与下,提前完成了交付,并获得了客户的高度评价。
4、技术培训与交流为了提高客户和内部团队的技术水平,我组织并参与了多场技术培训和交流活动。
针对不同客户的需求和技术水平,制定了个性化的培训方案,并通过线上线下相结合的方式,为客户提供了全面、系统的技术培训。
同时,我还与内部团队分享了自己在工作中积累的经验和技术知识,促进了团队整体技术水平的提升。
fpga高手心得
刚才开始接触逻辑设计很多人会觉得很简单:因为verilog的语法不多,半天就可以把书看完了。但是很快许多人就发现这个想法是错误的,他们经常埋怨综合器怎么和自己的想法差别这么大:它竟然连用for循环写的一个计数器都不认识! 相信上一段的经历大部分人都曾有,原因是做逻辑设计的思维和做软件的很不相同,我们需要从电路的角度去考虑问题。 在这个过程中首先要明白的是软件设计和逻辑设计的不同,并理解什么是硬件意识。 软件代码的执行是一个顺序的过程,编绎以后的机器码放在存储器里,等着CPU一条一条的取指并执行;因此软件设计中经常会带有顺序处理的思维。而逻辑设计则不同,我们设计的是数字电路,它是由很多很多的与非门及D触发器构成的,上电之后所有与非门和D触发器都同时工作,不会因为A触发器的代码描述在B触发器之前A触发器就是先工作,事实上,RTL级代码的代码先后顺序在综合成网表文件后这种顺序就消失了,取代的是基本逻辑电路之间的互联关系描述;因此逻辑设计需要的是一种并发的思维,我们也需要用并发的思维去考虑电路的设计。 当然,我们设计的电路功能一般都有先后顺序的关系,如果这种顺序不能通过代码的先后顺序来实现,那么要怎么完成这一功能呢?在逻辑设计中,我们所说的先后顺序都是基于时间轴来实现:它的承载体就是时序逻辑,也就是那些触发器。 硬件意识的东西网上谈论的已经很多,这里就不再多说了。 其次就是要熟悉基本电路的设计。 基本的电路不是很多,也就是D触发器、计数器、移位寄存器、状态机、多路选择器、译码器等几种,所有复杂的电路都可由这些基本的电路构成。高手水平高的体现并不是他能写出一些很奇特的电路,相反,水平高是体现在他们总能将复杂的电路用这些很朴素的基本电路去描述。甚至,你会发现他们的代码基本上是由if...else、case这些语句构成的,朴素的让你觉得奇怪。 我认为,初学者在入门的时候,对于基本电路的设计应该固定化、标准化,每种电路该用什么样的代码描述,应该要固定、统一,尽量少一些花哨的东西。说来这里我举个例子。 以前有几个朋友因为仿真有问题请我帮忙找问题。他们的代码写的很乱,出现了很多种稀奇古怪的电路,一看头都大了,只好建议他们按照标准的电路重新写下代码。结果过了半天,他们就和我说问题不见了。 所以,高手们喜欢用简单的代码是有道理的,电路的标准化和规范化可以减少许多稀奇古怪的问题,问题少了他们也就能在别人加班的时候回家多睡回觉,呵呵。总之,简单的、朴素的就是最好的。 最后是代码的规范化。 代码规范主要是代码书写、命名等规范。比如不能用TAB键空格、低电平有效信号命名时加_n(如rst_n等)、每行只能写一行代码等。这些东西网上也很多,这里只是强烈建议大家要严格遵守,像华为等公司如果代码不规范的话肯定是要打回去重写的。 入门 结合一两个小项目把上面所说的事情都做好后,差不多就可以进入入门的阶段了(要求稍微严格了一点点,呵呵)。 入门阶段要学的有:设计时序;理解约束的原理及如何加约束。
10年FPGA开发经验的工程师肺腑之言
10年FPGA开发经验的工程师肺腑之言从大学时代第一次接触FPGA至今已有10多年的时间。
至今记得当初第一次在EDA实验平台上完成数字秒表,抢答器,密码锁等实验时,那个兴奋劲。
当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus II原理图环境下用74系列逻辑器件搭建起来的。
后来读研究生,工作陆陆续续也用过Quartus II,Foundation,ISE,Libero,并且学习了verilogHDL语言,学习的过程中也慢慢体会到verilog的妙用,原来一小段语言就能完成复杂的原理图设计,而且语言的移植性可操作性比原理图设计强很多。
在学习一门技术之前我们往往从它的编程语言入手,比如学习单片机时,我们往往从汇编或者C语言入门。
所以不少开始接触FPGA的开发人员,往往是从VHDL或者Verilog开始入手学习的。
但我个人认为,若能先结合《数字电路基础》系统学习各种74系列逻辑电路,深刻理解逻辑功能,对于学习HDL 语言大有裨益,往往会起到事半功倍的效果。
当然,任何编程语言的学习都不是一朝一夕的事,经验技巧的积累都是在点滴中完成,FPGA设计也无例外。
下面就以我的切身体会,谈谈FPGA设计的经验技巧。
1)看代码,建模型只有在脑海中建立了一个个逻辑模型,理解FPGA内部逻辑结构实现的基础,才能明白为什么写Verilog和写C整体思路是不一样的,才能理解顺序执行语言和并行执行语言的设计方法上的差异。
在看到一段简单程序的时候应该想到是什么样的功能电路。
例如:上面这段代码实现的功能就是一个带使能端的2选1数据选择器,如下图所示。
再例如:上面这段always实现的是带同步清零端的串并转换移位寄存器,位宽为width,下图为8位电路模型当你具备了一定的识代码能力之后,你会发现原来Verilog不是那么的枯燥,只不过是一个个电路模型的拼搭而已。
2)组合逻辑中的if...else...与case对于多输入端的组合逻辑来说,如果不需要考虑优先级应该尽量采用case语句来描述,这样综合出来的电路并行度要大一些,如果采用if...else...结构,综合出来的电路都是串行的,增大了信号时延路径。
fpga岗位工作总结
fpga岗位工作总结
FPGA岗位工作总结。
FPGA(Field-Programmable Gate Array)是一种灵活可编程的集成电路,具有
广泛的应用领域,包括数字信号处理、通信、图像处理等。
FPGA工程师在这个领
域扮演着重要的角色,他们负责设计、开发和测试FPGA芯片,以满足各种应用
的需求。
作为一名FPGA工程师,我在过去的工作中积累了丰富的经验和技能。
首先,
我熟练掌握了FPGA设计工具,包括Vivado、Quartus等,能够利用这些工具进行
逻辑设计、综合、布局布线和仿真。
在项目中,我能够根据需求选择合适的FPGA
芯片,并进行设计和验证,确保其性能和可靠性。
其次,我具备良好的Verilog和VHDL编程能力,能够编写高效、可靠的
FPGA代码。
在项目中,我经常与团队成员合作,共同完成FPGA设计和验证工作。
我注重团队合作,能够有效沟通和协调,确保项目进展顺利。
此外,我对FPGA应用领域有深入的了解,能够根据不同的应用需求进行FPGA系统设计和优化。
在数字信号处理领域,我设计了高性能的FPGA算法加速器;在通信领域,我设计了高可靠性的FPGA通信系统。
这些项目经验使我对FPGA应用有更深入的理解,能够为客户提供更好的解决方案。
总的来说,作为一名FPGA工程师,我具备扎实的专业知识和丰富的项目经验,能够胜任FPGA设计和开发工作。
我将继续不断学习和提升自己,为FPGA应用
领域的发展贡献自己的力量。
FAE现场应用工程师招聘面试题及回答建议(某大型央企)
招聘FAE现场应用工程师面试题及回答建议(某大型央企)(答案在后面)面试问答题(总共10个问题)第一题题目:请简述您对FAE(Field Application Engineer,现场应用工程师)职位的理解,并描述您认为一名优秀的FAE应该具备哪些关键技能?第二题题目:请描述一次您在解决客户现场问题时遇到的挑战,以及您是如何克服这些挑战的。
第三题题目:请您描述一下在以往的工作经历中,您是如何解决客户在产品使用过程中遇到的技术难题的?在这一过程中,您采取了哪些具体步骤?如果同样的问题再次出现,您会如何预防?第四题题目描述:您在之前的FAE现场应用工程师工作中,遇到过哪些技术难题?请举例说明您是如何分析问题、解决问题,以及从中获得的经验和教训。
第五题题目:请描述一次你在现场支持客户时遇到的技术难题,以及你是如何解决这个问题的。
请具体说明你所采取的步骤、使用了哪些工具或资源,以及最终的结果是什么。
第六题题目:在您之前的工作经历中,有没有遇到过因技术难题导致项目延期的情况?如果是,请您详细描述一下当时的情况,您是如何分析问题、解决问题的,以及最终结果如何?第七题题目:请描述一下您在解决客户技术难题时遇到的最大挑战是什么?您是如何克服这一挑战的?第八题题目:在您的过往工作中,曾遇到过哪些技术难题?请详细描述其中一个难题,包括问题背景、您采取的解决策略以及最终结果。
第九题题目:请描述一次您在解决客户现场问题时,遇到的最大挑战以及您是如何克服这个挑战的。
第十题题目描述:作为FAE现场应用工程师,您在一次客户现场服务过程中,发现客户设备运行不稳定,经过初步排查,怀疑是软件配置问题。
在向客户解释问题可能的原因和解决方案时,客户对软件配置的复杂性和潜在的风险表示担忧。
请描述您会如何与客户沟通,以消除客户的顾虑,并争取客户的理解和支持。
招聘FAE现场应用工程师面试题及回答建议(某大型央企)面试问答题(总共10个问题)第一题题目:请简述您对FAE(Field Application Engineer,现场应用工程师)职位的理解,并描述您认为一名优秀的FAE应该具备哪些关键技能?参考答案:FAE,即现场应用工程师,是连接客户与公司内部技术团队的关键桥梁。
一个FPGA工程师的个人工作经历总结
一个FPGA工程师的个人工作经历总结★以下文章选自EETOP论坛,比较早的帖子了,里面所提到开发工具以及开发平台等很多都已有所过时。
但该文章的基本思想不过时,对初学者比较适合。
★很早之前就想对这几个月工作经历写的东西,一是作为自己的总结,二是自己也很想将自己这段时间的一些经历和大家分享一下,希望对初学者而言能使得他们能少走一些弯路。
只是公司里的事情很多,最近经常加班,所以一直拖到现在。
能来到这家公司应该是一种缘份--缘起NIOS。
当初三月份altera来我们学校建立SOPC实验室的时候自己还不知道NIOS是什么东西,只是想在altera的FAE讲完NIOS 后多问他几个时序约束的问题,然后拷一份PPT回去。
但是想不到因为那一份NIOS的培训资料,我认识了论坛里的cawan,他给我讲了很多NIOS的东西,之后是丁哥在SOC版帖了位NIOS大赛的通知,然后我和队友就去报了名,并去川大参加了NIOS的培训,认识了峻龙的FAE----也是我现在的boss。
在这里要谢谢cawan、丁哥、和我一起参加NIOS竞赛的队友刘科以及我的BOSS,是他们让我有了这一段的经历。
在公司里的几个月,做的项目其实不多,但是收获还是有一些,我觉得收获最大的是设计理念的改变,这也是我这段时间最想总结的,我会在后面逐渐阐述。
时序是设计出来的我的boss有在华为及峻龙工作的背景,自然就给我们讲了一些华为及altera做逻辑的一些东西,而我们的项目规范,也基本上是按华为的那一套去做。
在工作这几个月中,给我感触最深的是华为的那句话:时序是设计出来的,不是仿出来的,更不是湊出来的。
在我们公司,每一个项目都有很严格的评审,只有评审通过了,才能做下一步的工作。
以做逻辑为例,并不是一上来就开始写代码,而是要先写总体设计方案和逻辑详细设计方案,要等这些方案评审通过,认为可行了,才能进行编码,一般来说这部分工作所占的时间要远大于编码的时间。
总体方案主要是涉及模块划分,一级模块和二级模块的接口信号和时序(我们要求把接口信号的时序波形描述出来)以及将来如何测试设计。
学FPGA感想(五篇材料)
学FPGA感想(五篇材料)第一篇:学FPGA感想回想起自己学FPGA,已经有一段时间了,从开始的茫然,到后来的疯狂看书,调电路,练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多,拿出来和大家分享,顺便介绍下自己的一点经验所得,希望对初学者有所帮助。
废话不说了,下面进入正题,学习FPGA我主要经历了这么几个阶段:①、VHDL和Verilog语言的学习,熟悉VHDL和Verilog语言的各种语法。
②、FPGA的学习,熟悉QuartusII软件的各种功能,各种逻辑算法设计,接口模块(RS232,LCD,VGA,SPI,I2c,AD,DA等)的设计,时序分析,硬件优化等,大家可以先从简单的做起,复杂的电路一定要把芯片资料读懂,上面的时序分析一定要看明白,然后才能设计正确驱动。
③、NiosII的学习,熟悉NiosII的开发流程,熟悉开发软件(SOPC,NiosII IDE),了解NiosII的基本结构,编写NiosII C语言程序,调试板子各模块功能。
NiosII软件调试要很费时间,大家要耐的住厌烦,如果对软件不熟悉会出现很多问题,自己遇到问题和解决问题的过程,也就是大家进步的过程,大家可以把NiosII内嵌的各种功能调试一遍,最后再移植C8051、uCOSII操作系统和uCLinux操作系统,估计你已经很熟悉了NiosII了。
先来说说第一个阶段,现在主要的硬件描述语言有VHDL,Verilog两种,现在Verilog用的人越来越多,因为容易上手(与C语言语法比较类似),也更灵活,现在的IC设计基本都用Verilog。
但是VHDL也有自己的优点,VHDL语言设计的程序很长,因为他本身语言比较严谨,在欧美一些国家还是比较喜欢VHDL语言。
所以我希望大家对两种语言应该都比较熟悉。
我们的开发板上都尽量把这两种语言进行完善。
其中关于VHDL语言和Verilog HDL语言资料书很多,如果还没有入门的话,可以买一本相对通俗易懂和简单的书来看,书籍我们在这就不推荐了,因为市面上关于这两种语言的书很多。
fae年终工作总结
fae年终工作总结fae(Field Application Engineer)是一种重要的职位,负责在技术实践中支持销售团队和客户。
年终工作总结是对整个一年的工作进行总结和回顾,以评估个人的工作表现和发展方向。
本文将以fae年终工作总结为主题,从个人成长、技术贡献、合作与沟通以及未来发展等方面进行深入探讨。
一、个人成长在过去的一年里,我的个人成长取得了长足的进步。
通过不断学习和实践,我提升了自己的技术能力,不仅熟练掌握了公司的产品和解决方案,还深入了解了行业的发展趋势和最新技术。
通过参加各种培训和学术会议,我不断拓宽了自己的知识面,并在实际工作中能够更好地应用这些知识,解决客户遇到的问题。
二、技术贡献作为fae,我的责任是为客户提供技术支持和解决方案。
在过去的一年里,我积极参与了多个项目,并成功解决了一系列技术难题。
通过与团队紧密合作,我能够准确把握客户需求,为其提供定制化的解决方案,并实现了较高的客户满意度。
同时,在技术贡献方面,我也积极参与公司内部的知识共享和技术交流,通过分享和学习与他人的经验,提升了整个团队的技术水平。
三、合作与沟通作为一个fae,与团队和客户的良好合作与沟通十分重要。
在过去的一年里,我不断加强与销售团队和研发团队的合作,通过有效的沟通和协作,将客户需求转化为技术方案,并推动项目的顺利进行。
在与客户的沟通方面,我注重倾听和理解客户的需求,耐心解答其提出的问题,并提供合适的解决方案。
通过良好的合作与沟通,我与客户建立了良好的关系,并获得了客户的信任与赞誉。
四、未来发展回顾过去一年的工作总结,我不仅为自己的成长感到满意,也意识到自己还有很多需要提升的地方。
在未来的发展中,我将继续加强学习,保持对新技术和行业趋势的敏感度,不断提升自己的技术能力和解决问题的能力。
同时,我也将注重与团队的合作与沟通,通过团队合作的力量,提供更优质的技术支持和解决方案。
此外,我还希望在未来能够扩展自己的影响力,成为一个优秀的fae,为客户和公司的发展做出更大的贡献。
FPGA资深FAE的经验独白
骏龙科技Andrew —— FPGA资深FAE的经验独白时间:2014-08-25 来源:elecfans 作者:关键字:FPGA FAE骏龙科技看似简单的几个问题,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学习总结
FPGA学习总结FPGA学习总结FPGA全称为Field-Programmable Gate Array,即现场可编程门阵列。
FPGA作为数字电路设计领域的重要组成部分,已经广泛应用于计算机、通信、汽车等各个领域。
作为一个FPGA初学者,经过几个月的学习和实践,我感受到了FPGA学习的重要性和挑战性。
在这里,我想总结一下我在FPGA学习中的经验和体会。
1.学习FPGA需要具备的基础知识FPGA作为数字电路设计的一种工具,其涉及的知识领域非常广泛。
对于初学者来说,需要掌握一定的电子技术和计算机科学知识。
具体来说,需要掌握数字电路的基础知识、硬件描述语言(HDL)的基本语法和应用、计算机组成原理等。
2.学习FPGA的方法2.1.理论学习FPGA的学习需要理论和实践相结合。
在理论学习方面,需要认真学习数字电路的基础知识,比如布尔代数、逻辑门、时序电路等内容。
此外,了解硬件描述语言的语法和应用,比如Verilog和VHDL 等。
2.2.实践操作在实践方面,可以通过一些开源的FPGA开发板进行实验。
通过实验,可以了解FPGA的基本原理和设计方法,掌握数字电路设计的技巧。
同时,通过实验可以加深对HDL语言的理解和掌握。
2.3.项目实践项目实践也是学习FPGA的一种好方法。
在实践中,需要尝试完成一些简单的项目设计,如LED灯闪烁、数码管显示、流水灯等。
这些项目虽然简单,但对于初学者来说却是很大的挑战。
通过项目实践,可以加深对FPGA的理解和掌握,并且培养实际操作能力。
3.学习FPGA需要注意的问题3.1.理论与实践相结合FPGA的学习需要理论和实践相结合,不能只看理论而忽略实践,也不能只做实践而忽略理论。
3.2.选择适合的开发板初学者在选择开发板时应该根据自己的学习需要和经济实力选择适合自己的开发板。
同时也需要了解不同开发板的优缺点和适用场景,选择适合自己的开发板。
3.3.认真备课在开始FPGA的学习之前,需要认真备课,将学习内容和方法分解为具体的步骤。
技术支持经验总结
技术支持(FAE)经验
1、遇到芯片问题
事前:不要承认,以迂回的方式回答,主要是拖住客户情绪。
事后:向业务部领导反映。
2、客户电话打进来
第一步:先了解一下情况,看是否能电话解决,能解决尽量解决,避免“一定”这些确定的词语出现,说话留余地。
第二步:加微信仔细了解,电话说不清,微信回复,解决不了请教同事。
3、不要小瞧任何人
当有人咨询一些基础的问题,不要不认真对待,说不定客户比你精通,只是想考验一下你,这个坑千万别跳。
4、要保留记录的习惯
干FAE总是遇到很多问题,如果不记录的话,后期遇到该问题又会忘记,增大了工作量,降低了工作效率。
5、群里沟通遇到客户很急
当客户很急,问题又一时半刻不清楚,此时千万不要着急回答,也不要说不知道,这样会显得不专业,让客户产生信任危机。
6、写分析报告
干FAE会写很多分析报告,客户最主要是要8D报告,所有在出示给客户看一定要知道产品的不良率,否则就是玉皇大帝来了也不要随便写,这个与公司的商务有关系,如果后期有问题,是要赔钱的,因此,出报告要慎重。
7、不要越级处理难题
当遇到特别难解决的问题,要学会把问题踢给领导,让领导来和客户沟通解决,切忌不要硬抗。
以上是工作中还有前辈的告诫中总结的经验,希望对大家有帮助。
8、不要把问题踢给别人
微信群中遇到客户提出的问题,千万不要踢给和你干一样活的人,虽然不知道为啥,但这应该是职场禁忌,可以私下请假,千万不要在群中Q。
9、控制好情绪
平时遇到什么问题,要控制好情绪,冷静下来才能找到解决的办法,争取做到“不以物喜,不以己悲”的心态。
多年开发FPGA宝贵经验总结
多年开发FPGA宝贵经验总结从大学时代第一次接触FPGA至今已有10多年的时间,至今记得当初第一次在EDA实验平台上完成数字秒表、抢答器、密码锁等实验时那个兴奋劲。
当时由于没有接触到HDL硬件描述语言,设计都是在MAX+plus II原理图环境下用74系列逻辑器件搭建起来的。
后来读研究生,工作陆陆续续也用过Quartus II、FoundaTIon、ISE、Libero,并且学习了verilogHDL语言,学习的过程中也慢慢体会到verilog的妙用,原来一小段语言就能完成复杂的原理图设计,而且语言的移植性可操作性比原理图设计强很多。
在学习一门技术之前我们往往从它的编程语言入手,比如学习单片机时,我们往往从汇编或者C语言入门。
所以不少开始接触FPGA的开发人员,往往是从VHDL或者Verilog开始入手学习的。
但我个人认为,若能先结合《数字电路基础》系统学习各种74系列逻辑电路,深刻理解逻辑功能,对于学习HDL语言大有裨益,往往会起到事半功倍的效果。
当然,任何编程语言的学习都不是一朝一夕的事,经验技巧的积累都是在点滴中完成,FPGA设计也无例外。
下面就以我的切身体会,谈谈FPGA设计的经验技巧。
我们先谈一下FPGA基本知识:1.硬件设计基本原则FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
速度与面积平衡和互换原则:一个设计如果时序余量较大,所能跑的频率远高于设计要求,能可以通过模块复用来减少整个设计消耗的芯片面积,这就是用速度优势换面积的节约;反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么可以通过数据流串并转换,并行复制多个操作模块,对整个设计采用“乒乓操作”和“串并转换”的思想进行处理,在芯片输出模块处再对数据进行“并串转换”。
fpga经验总结(精华)
FPGA/CPLD数字电路设计经验分享摘要:在数字电路的设计中,时序设计是一个系统性能的主要标志,在高层次设计方法中,对时序控制的抽象度也相应提高,因此在设计中较难把握,但在理解RTL电路时序模型的基础上,采用合理的设计方法在设计复杂数字系统是行之有效的,通过许多设计实例证明采用这种方式可以使电路的后仿真通过率大大提高,并且系统的工作频率可以达到一个较高水平。
关键词:FPGA数字电路时序时延路径建立时间保持时间1 数字电路设计中的几个基本概念:1.1 建立时间和保持时间:建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。
如图1 。
数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。
PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间(如图2)图1 建立时间和保持时间关系图注:●在考虑建立保持时间时,应该考虑时钟树向后偏斜的情况,在考虑建立时间时应该考虑时钟树向前偏斜的情况。
在进行后仿真时,最大延迟用来检查建立时间,最小延时用来检查保持时间。
●建立时间的约束和时钟周期有关,当系统在高频时钟下无法工作时,降低时钟频率就可以使系统完成工作。
保持时间是一个和时钟周期无关的参数,如果设计不合理,使得布局布线工具无法布出高质量的时钟树,那么无论如何调整时钟频率也无法达到要求,只有对所设计系统作较大改动才有可能正常工作,导致设计效率大大降低。
因此合理的设计系统的时序是提高设计质量的关键。
在可编程器件中,时钟树的偏斜几乎可以不考虑,因此保持时间通常都是满足的。
1.2 FPGA中的竞争和冒险现象信号在FPGA器件内部通过连线和逻辑单元时,都有一定的延时。
我眼中的芯片公司FAE工作
我眼中的芯片公司FAE工作大家普遍讨论的问题,我就不再重复了。
在这里以我亲身经历的几件事情,让大家从另外一个角度来了解FAE。
事件1:我在7年前刚毕业时,就加入了一家外企,职位就是FAE,主要是单片机相关的技术支持工作。
当年非常幸运,公司可以直接解决北京户口,但是在刚入职后不久,HR就找到我说:由于你的专业名称是控制科学与工程,而你的工作岗位名称是现场应用工程师,在申报材料提交过程中,经办人认为你的专业和工作岗位不对口,需要提供补充说明材料。
我当时心里想我上学就学过单片机,不是很对口吗?.. 所幸后来老板帮忙,花了一晚上时间给我写了一个补充说明,最后才顺利办完流程。
前几天我还听说真的有因为这个不对口问题被卡住,最后没办下来户口的。
点评:很多人对FAE这个岗位有误解、或者说有些偏见,他们可能会认为FAE没有技术含量,就是个普通的售前售后技术支持。
其实不然,芯片公司的FAE和一般的硬件产品公司技术支持有很大的不同,一个硬件产品说明书一般就几页,一个MCU的datasheet少则也得有几百页,而且还是全英文的,仅从这点你就能感受到两者的不同。
我当时之所以选择FAE,一个重要原因就是认为既然要支持客户,自己当然得很懂才行。
我那会的FAE同事技术实力都非常强,他们很多人之前都做过多年的研发工作。
事件2:和代理商A去拜访当时风光无限、处于风口浪尖的L公司,向他们推广无线充电方案,我当时是赶鸭子上架被临时喊过去的,本身我对无线充电就不懂,加上模电一直也学不明白,在现场交流那天,此客户工程师飞扬跋扈,毫不留情,各种刁钻的问题向我们呼啸而来,我当时因为心虚不懂嘛,所以就没怎么说话,主要是代理商兄弟在说,没想到客户工程师直接冲我说:你是原厂FAE、都是别人在说,你怎么不说话啊? 我当时那个囧啊,但是还得笑脸相迎啊,谁让得暂时服务客户呢。
后来就换成我另外一个同事支持他们了,再后来该公司没过两年也倒闭了...点评:FAE是一件挺有挑战的工作,因为你要懂很多东西,同时也会碰到一些不太友好的客户,心里抗压能力也得过得去。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
骏龙科技Andrew —— FPGA资深FAE的经验独白时间:2014-08-25 来源:elecfans 作者:关键字:FPGA FAE骏龙科技看似简单的几个问题,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。
一些辅助的调试工具最好也能够掌握,如串口、网络报文分析工具等等。
电子设计相关的小工具有很多,根据自己的工作需要适当选择。