成为一个优秀FPGA工程师的七层技术修炼之道

本文转载自: 歪睿老哥 微信公众号

如何成长为一个合格的FPGA工程师?

武林中,乾坤大挪移有七层的修炼境界,FPGA工程师技术修炼之路也是如此。

第一层:熟悉代码,能做仿真。

作为FPGA初级工程师,首先应该要会写veriog代码,会写testbench。会用modelsim或者VCS仿真工具。能够写模块级别的代码,能够仿真,算是精通第一层。

虽然第一层看似简单,但是修炼不好就会影响进阶之路,主要是verilog设计基本功,电路模块设计思想,而不是简单凑时序。代码编程质量以及设计的高内聚,低耦合的模块划分原则。这一层是后续修炼的基础。

第二层:熟悉架构,能写约束

对于FPGA内部资源如数家珍,能够有效利用FPGA内部资源,例如各种类型的RAM,LUT,BUG,serdes等等。通过熟悉这些知识,工程师可以进行FPGA选型。

根据需要约束设计:

(1)IO的约束:这个相对简单;

(2)时序的约束:这个需要对外部芯片接口时序非常熟悉;

(3)位置的约束:这个需要在布局布线不通时,或者时序比较紧张时,通过位置约束来满足设计需求;

精通此层的人,可以称得上算是会FPGA了,略窥门径,有所小成。

第三层:熟悉接口,能担项目

此层的工程师熟悉掌握XILINX等FPGA的IP。例如PCIE的IP,XDMA, SATA,rapid IO,Ethernet等等。

可以把XILILNX厂商的用例跑通,可以在用例的基础上,通过添加及修改实现用户需求及功能。

客户有需求,工程师可以很快接手,进行功能分解,完成代码开发,交付项目。

精通此层的人,可以成为FPGA项目负责人。

第四层:定位问题,解决问题

可以通过各种调试解决问题,熟悉使用各种硬件,软件,FPGA内部逻辑分析仪等调试手段。

解决包括且不限于硬件问题,软件问题,FPGA问题。一句话:解决别人解决不了的问题。

在公司里面,大家有FPGA解决不了的问题就找他解决。专业解决各种疑难杂症。

精通此层的人,通常在公司被称为大牛。

第五层:略懂算法,庖丁解牛;

此层境界,可以将某些算法协议,创造性实现在FPGA上。

这些算法协议经常的例子包括:

AI的inference。这种能力可以将AI的python程序变成verilog在FPGA上高效实现。

TCP的offload。这种能力可以将系统kernel级别的C程序,别人不知道如何下手,可以在FPGA上干净利索的实现。

核心指标是在FPGA上能够完成别人搞不定的算法,或者别人达不到的性能。(注意:这个复杂度是AI的性能指标比被人强或者TCP卸载并发数据流比别人多来衡量的,并不是一般的算法实现)

精通此层的人,经常被称为架构师或者技术专家。

第六层:体系结构,软硬划分。

修炼此层境界的人才精通体系结构,实现软硬件划分。熟悉例如kernel,虚拟化,容器,SRIOV,virtIO等。了解如何这些需求和FPGA的硬件能力配合,

精通此层的人,可以实现例如虚拟化OVS卸载,P4协议实现,裸金属云管理,云端AI加速等等。

此层大神可以通过FPGA实现类似DPU的卸载,目前的确也有很多公司做FPGA来实现做DPU。

的确FPGA挺合适来做DPU的,尤其是在DPU功能比较不确定的情况下。ASPLOS 2020阿里案例的裸金属云bm-hypervisor管理网卡,就是FPGA实现(见云端芯片之战-小乌云还是大风暴)。

精通此层的人,可以去技术创业,大公司做研究员,小公司可以做技术总监。

第七层:“日盈昃,月满亏蚀”。

乾坤大挪移的第七层,张无忌也没有练成过,

“原来当年创制乾坤大挪移心法的那位高人,内力虽强,却也未到相当于九阳神功的地步,只能练到第六层而止。他所写的第七层心法,自己已无法修炼,只不过是凭着聪明智慧,纵其想象,力求变化而已。张无忌所练不通的那一十九句,正是那位高人单凭空想而想错了的,似是而非,已然误入歧途。”

电影《苏乞儿》中,周星驰扮演的主人公苏乞儿最后一掌“亢龙有悔”解决掉大boss,悟到了第十八掌是前十七掌的组合。苏乞儿通过这些基本招式的组合成额外的一招,提升了掌法的威力,通过上述案例,类比一下。

那么,FPGA的第七层,那就是能够融汇贯通前面6层的能力,实现的从顶层到底层全栈能力。

精通此层人,通常被称之为“大神”。

不过大神啥都做,就会比较累

“日盈昃,月满亏蚀”。

把握一个方向,勤于修炼,总能不断精进。

但行好事,莫问前程,心之所向,无问西东。

最新文章