精选文章 FPGA工程师需要具备的技能

FPGA工程师需要具备的技能

作者:工作使我快乐 时间: 2019-11-06 05:27:47
工作使我快乐 2019-11-06 05:27:47

前言

整理一些个人对FPGA工程师职业发展的观点,仅是个人见解,分享交流。

 

首先,需要建立一个概念:FPGA仅是实现一个项目所采用的工具/方式/芯片,项目结果才是价值所在!

不要把自己局限在专研FPGA语法/软件工具使用等层面。FPGA仅是实现工具和手段,就像有了砖和泥,如何盖高楼大厦才是重点!高楼大厦才是砖和泥的价值所在!因此,FPGA也仅是一种工具,看你如何使用,则体现了你能创造的价值以及你的价值所在!至于工具使用的熟练度问题,也就是或早或晚掌握的问题。

当你充分掌握了FPGA开发技能之后(这些技能也很容易掌握),就会遇到职业发展的瓶颈了。一般FPGA从业3-5年,也就到了瓶颈期。

 

基础技能
1、良好的文档撰写能力,熟练使用办公软件。2、良好的英语水平及英文文档阅读能力。加分项:良好的英文交流能力。
3、熟练掌握常用通信协议及通信接口设计:UART/IIC/SPI/PCIE/ Aurora/Ethernet/SRIO4、熟练了解常用存储器件:Flash/SDR SDRAM/DDR3 SDRAM
5、理解并掌握同步设计、跨时钟域处理。6、熟练使用Verilog编程,具有扎实的Verilog语法基础和良好的代码风格,
7、理解可综合和不可综合代码设计。

8、熟悉各种FPGA芯片资源:

Virtex-5/virtex-7/kintex-7/UltraScale+/kintex ultrascale FPGA等。

9、理解并掌握时序约束思想,熟练使用时序约束工具10、理解并掌握约束相关理论,并熟练使用相关软件工具。
11、具有相关专业的知识理论基础12、具有相关行业的背景知识。
  
  

 

 

FPGA逻辑工程师应该掌握的各种能力

本节内容引用自:一个FPGA工程师的成长之路

建议初学者可以看看原文!本节仅是引用原文的部分内容。

引用如下:

 

大概设置了5种能力,每种能力在不同的阶段有不同的要求。其中,设计完成能力是最基本的要求。

设计完成能力

第一阶段:可以完成设计,基本知道verilog的语法,能够把一个需求用代码实现出来,并且能够调试出来,经常会上网搜索现成的模块,对逻辑的硬件思维基本没有

第二阶段:开始关注代码风格,开始把自己的代码写的风格统一,并且开始关注代码的硬件实现,突出标志就是开始关注rtl视图,比较能明确的区分可综合语句与仿真语句的区别

第三阶段:在这个阶段,对模块内部的代码书写有了更加深刻的认识,模块内部的写法开始更加统一,基本上,模块内部的代码可以直接生成rtl视图。而且,开始考虑设计的复用,开始考虑模块的划分,注重模块接口,平台化等等

第四阶段:该阶段已经可以比较轻松的完成一个逻辑设计,而且结构合理,易读,可复用。

第五阶段:可以带领一个团队完成比较大规模的逻辑设计,分配不同的工作任务,可以准确的预估项目的风险,进度,可以准确的做出逻辑的整体方案,仿真方案,调试方案,对于整体的业务流有全面而深刻的认识

 

器件能力

第一阶段:知道FPGA的意思,但是基本上不知道fpga的内部结构

第二阶段:不怎么关注器件视图。但是基本知道器件的大概结构,知道fpga里面有le,ram,dsp,全局等等,对逻辑器件有了基本的认识

第三阶段:此时开始关注器件结构,了解fpga的内部架构,时钟网络,route,对时序约束有了基本的了解

第四阶段:对器件结构有了比较深入的认识,开始认识到不同厂家器件结构的不同

第五阶段:熟知各个厂家的各种逻辑器件的内部结构,基本逻辑单元结构,以及由此带来的代码风格的相应的改变

 

时序约束能力

第一阶段:基本不知道什么是时序约束

第二阶段:知道时序约束,会做时钟约束,可以根据简单的公式计算输出输出约束

第三阶段:懂得时序约束与布线的关系,熟练掌握最基本的常用约束

第四阶段:对时序约束有深刻的认识,可以主动设计整体时钟和复位系统

第五阶段:熟知时序约束,并且能够采取各种手段,解决各种时序问题

 

逻辑架构能力

第一阶段:无

第二阶段:有一点点概念,知道大概可以划分模块,对模块的功能,接口没有要求,一般有需要就直接加一个接口信号,不能在项目开始就主动设计

第三阶段:开始考虑设计的复用,开始考虑模块的划分,注重模块接口,平台化等等

第四阶段:接手一些比较大的设计,开始有架构的考虑,对于模块的划分,模块接口,模块职责,整体方案的实现,开始有更多的考虑,此时,可以做出比较好的,合理的方案

第五阶段:对整体的逻辑架构有所考虑,并且开始准确的划分逻辑架构,模块接口,功能划分,工作职责,协同交流

 

时序收敛能力

第一阶段:无

第二阶段:无

第三阶段:开始接触到时序收敛,有单个时序不过的信号,能够予以解决

第四阶段:开始主动设计时序,基本可以完成整个设计的时序收敛任务。

第五阶段:对于逻辑的布局,数据流走向有深刻的认识,能够在项目支出就通过设计来保证时序收敛。

 

接口掌握能力

第一阶段:开始接触简单的接口,

第二阶段:开始掌握如串口,spi,i2c等简单的外部接口

第三阶段:开始接触ddr,ssram,ad,lpc等等略复杂的接口

第四阶段:开始接触pcie,transceiver,rapid io,phy,等等复杂且带协议的接口

第五阶段:无,此阶段,不需要用掌握接口的多少来衡量

 

逻辑流程掌握能力

第一阶段:基本不知道正规逻辑流程,基本无设计文档

第二阶段:能够根据已知的流程完成设计,写出文档

第三阶段:比较熟练逻辑流程,并且能够顺利完成设计文档

第四阶段:有比较严格的逻辑流程,并且完成各种文档,对流程的认识比较深刻

第五阶段:可以根据现状,制定合理流程和文档要求

 

仿真验证水平

其他

逻辑工程师水平的V模型

根据以上不同阶段对各种能力的要求,可以完成V模型

FPGA工程师需要具备的技能1

 

其中,完成设计是最基本、核心的要求,随着水平的增长,对其他能力的要求也随之变高。

 

在阅读完上面引用部分后,读者可思考如何针对性的提高自己各方面的专业能力!

 

>>点击这里返回导航页<<

 

 

 

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:怎么更好入行Java编程 Git有哪些使用技巧分享

下一篇:使用两个不同的SDK 结构体命名冲突问题

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。