找回密码
 注册
关于网站域名变更的通知
查看: 371|回复: 2
打印 上一主题 下一主题

什么是只有 FPGA 工程师能做到的

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-6-2 09:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
什么是只有 FPGA 工程师能做到的

0 l: R# F. _% C6 M! s

该用户从未签到

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

该用户从未签到

3#
发表于 2021-6-2 11:01 | 只看该作者
顶一下楼上,说的很详细
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-5 06:45 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表