|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
以下内容转自 微信公众号 老石谈芯
首先给出老石的回答:FPGA工程师最核心的就是全栈能力。
这里的全栈,指的是系统级的软硬件全栈能力。它既包括了在系统层面的架构设计、芯片开发的前后端流程,也包括了软件设计的全栈流程,甚至还有后期的项目维护、技术支持、与客户的沟通等等软技能。它可以看成是综合多种技能的技能树。
只有FPGA工程师能做到一人成团,在短时间内将想法落实到高质量的软硬件系统实现。这是其他系统架构师、ASIC工程师、单片机工程师、软件工程师等等都无法单独完成的。与这些工程师相比,FPGA工程师有着很强的单兵作战能力。当然,技能树过于庞大也是为什么很多人认为FPGA难学的本质原因。
对于传统的IC工程师而言,他们的具体职责可以大致分成前端和后端两部分。前端主要负责逻辑实现,后端负责芯片物理实现。两路人马通常有各自的技能树,需要互相配合才能完成产品级的芯片,这个过程往往很久,而且伴随着巨大的前期投入和风险。
对于单片机或CPU工程师而言,更多的是基于给定的单片机架构和API,使用诸如C或C++的高层语言编写应用程序。如果要写出高质量的应用,固然需要了解目标芯片的硬件结构,但并不需要对硬件的逻辑实现有过多了解。虽然基于CPU或MCU可以灵活实现各种应用,但由于架构限制,在很多诸如人工智能的应用领域里并不能达到很好的性能。
FPGA很大程度上结合了两者的优点。在硬件方面,FPGA底层架构固定,因此不需要做太多芯片后端的工作,但仍需要FPGA工程师掌握时序优化、面积优化、功耗优化等后端技能。因此一个优秀的FPGA工程师凭借自身的前后端与软硬件技能,就可以完成一个完整的而且质量比较高的FPGA项目。
软件方面,FPGA可以灵活定义API与软件架构,并可以通过内置的处理器内核完成软硬件协同开发,这样也能兼顾应用的灵活性。因此,一个优秀的FPGA工程师通常也具有优秀的软件编程能力。
在系统层面,FPGA工程师可以自定义软硬件整体架构,不会像CPU或单片机一样存在明显的架构瓶颈,也不会像ASIC一样需要考虑过多底层电路单元以及工艺的具体实现。
综上,只有FPGA工程师能拥有软硬件系统的全栈能力,这也是FPGA工程师的核心竞争力。并且,这种能力可以在工程实践中不断自我丰富和提升。这使得优秀的FPGA工程师不需要太过依赖其他人,能够自己或少量人很快完成完整的系统级方案。
现在很多AI初创公司选择使用FPGA作为硬件平台的主要原因之一,就是看中FPGA工程师的全栈能力,使得公司能在较少投入的情况下,取得性能、灵活性、可扩展性等多个方面的良好平衡。 |
|