EE新生
FPGA这行,不同公司差别挺大的。我待过两家,一家做通信设备,一家搞工业控制,日常节奏完全不一样。
通信那边,项目周期紧,代码量不小。早上来了先看昨晚仿真的log,有没有时序违例或者功能错误。大部分时间确实在写Verilog和调试仿真,但不止是写代码,还得和算法工程师扯皮,把他们给的浮点模型用定点实现出来,中间各种精度和资源权衡。一周里大概两三天搞仿真和代码,一天做综合、布局布线,看时序报告,调约束文件。板级调试反而不多,因为硬件同事已经把板子调得比较稳了,我们主要是上板抓抓信号,验证下实际吞吐量。
后来跳到工业控制,画风就变了。这边产品迭代慢,但稳定性要求变态。写代码时间少了,大量精力花在时序约束和后期调试上。一个设计反复做各种极端温度下的时序分析,上板后用逻辑分析仪和示波器一点点抠,一个毛刺可能就得查好几天。经常跑实验室,一待就是一下午。
说到和ASIC的区别,我觉得最核心的就两点:灵活性和成本。FPGA今天改代码,明天就能烧进去看结果,ASIC流片一次几个月,几百万美金就出去了,根本不敢随便动。所以ASIC设计前期验证流程长得吓人,仿真必须覆盖到吐,各种形式化验证工具都得用上,就怕流片回来是个砖头。FPGA呢,很多验证可以上板直接跑,胆子大一点甚至可以先干起来再慢慢改。
技能要求上,Verilog、SV这些基础是共通的,但侧重点不同。FPGA工程师得更了解底层硬件,比如LUT、BRAM、DSP slice这些资源怎么高效用,时钟网络怎么分配。ASIC那边更关注前端架构、功耗、面积优化,还有一堆FPGA里不太用的验证方法学,比如UVM。
从FPGA转ASIC有帮助吗?我觉得前期帮助很大。FPGA能让你快速建立数字电路的概念,看到代码怎么变成实际电路,对时序的理解特别直接。很多ASIC工程师早期缺的就是这种硬件手感。但干久了再想转,就得补很多ASIC特有的流程和深水区知识,比如DFT、后端物理设计这些,FPGA里基本接触不到。
总之,FPGA这行挺折腾的,又得懂软件(代码),又得懂硬件(板子),还得会调仪器。但好处是能看到自己搞的东西马上跑起来,成就感来得快。要是喜欢动手,不讨厌实验室,那干着还挺有意思的。
