嵌入式软件开发工程师与FPGA开发工程师

我是一名初入职场的萌新,工作不久从嵌入式软件工程师转到了FPGA工程师,这篇文章简单讲讲两者的区别。

嵌入式软件工程师无非分为两大类,在Windows平台下做嵌入式软件开发和在Linux平台下做嵌入式软件开发,我起初是在Windows平台下基于STM32做小型电机的软件控制,语言方面需要掌握C或python或java等软件语言,这里推荐一个快速学习语言的网站——菜鸟教程https://www.runoob.com/。在Linux平台下做嵌入式软件开发主流是基于Ubuntu系统,推荐大家在CSDN上多问多学,也会很快入门的。我收藏了一些Ubuntu和ROS相关的帖子,可以关注我查看。

需要具备的软件基础包括但不限于:Keil uVision、Matlab、Visual Studio、Beckhoff TwinCAT等上位机软件。Keil是针对STM32等单片机做编程和程序烧录的专用软件,建议参考正点原子或野火的STM32教学视频,B站搜一下就有。Matlab不用说了,网上有的是学习资料,很多人在学校也都系统接触过,既能编程也能仿真。VS这个软件比较强大,C和python都能写,需要用到的建议搜一下这本书——嵌入式系统软件设计中的常用算法,代码全跑一遍VS和C就差不多会了。TwinCAT这个软件是做电机控制的,需要用到的可以参考我写的三篇TwinCAT入门文章。应公司需要,我转到了FPGA工程师,一开始内心也是十分忐忑,因为没有FPGA的基础。经过充分了解,发现国内FPGA领域的人才比较少,而现在由于美国垄断高端芯片市场,国内迫切需要自主研发高端芯片,特别是FPGA芯片。因此如果大家有做FPGA开发的机会,一定要把握住!

简单提一下单片机和FPGA的区别:单片机主要采用哈佛总线或冯诺依曼结构,串行执行,多为软件层面,编程采用C语言或汇编语言;FPGA主要采用查找表结构,并行执行,多为硬件层面,编程采用Verilog或VHDL等硬件描述语言。FPGA相比一般的单片机,运行速度快、工作效率高、引脚多、便于开发。

嵌入式软件开发工程师与FPGA开发工程师_第1张图片

~特性对比表~

涉及到FPGA开发的工程师,至少需要掌握Vivado(Xilinx公司开发,FPGA巨头之一)和Quartus(Altera公司开发,FPGA巨头之一,已被Intel收购)这两个软件,以及Verilog硬件描述语言,与C语言存在很大的差异,可以通过菜鸟编程那个网站进行初步学习。此外数字电路需要熟练掌握,有条件的也要好好学习模拟电路,因为借助verilog进行FPGA开发其实是在脑海里形成电路图之后用Verilog把它描述出来。

嵌入式软件开发工程师与FPGA开发工程师_第2张图片

~Verilog编程实例~

刚开始FPGA开发工程师与一般的嵌入式软件工程师可能在待遇上相差无几,而且难度更大,毕竟一般人不会有硬件描述语言的基础,但是在未来前景上FPGA开发一片光明,待遇上也很好,如果还很年轻,不妨借此岗位努力学习拼搏一番!

你可能感兴趣的:(FPGA,嵌入式软件开发,fpga,嵌入式)