加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

做FPGA,为啥加班这么多?

05/11 13:20
2632
阅读需 4 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

很多年前我经常在想:做FPGA设计,为啥加班这么多,不停地调bug和维护bug,心力交瘁。直到做了IC设计,我才彻底懂了:看完FPGA设计和IC设计上的差别,你也会懂。

1.    设计上的差别(设计前有无最终硬件

FPGA设计和IC设计虽然都属于硬件设计,但他们设计却有很大的差别。FPGA是可编程门逻辑阵列,那FPGA设计就是用软件去编程FPGA芯片内部的逻辑来实现不同的应用开发,而IC是集成电路(芯片),IC设计就是造一个芯片,故本质的区别是:

FPGA设计是FPGA芯片上的应用程序开发,即在最终硬件(FPGA芯片)上开发;

IC设计是造一个芯片,即还没有最终硬件(被设计的芯片)。

2.    验证上的差别(能否用最终硬件来验证)

上面设计上的差别已经提到,FPGA设计前已有最终硬件(FPGA芯片),因此验证:

可以直接用FPGA来验证,即下载到FPGA芯片,跑一跑,看一看,再改一改,下载,再跑一跑,再改一改......

在FPGA产品上通过客户使用来验证,客户发现bug,我们定位解决bug,客户再发现了bug,我们再定位解决bug......

因为有最终硬件(FPGA芯片)可以验证,所以我们一般只需这几次跑通,不充分。

而IC设计前还没有最终硬件(被设计的芯片),如果验证不到位,就会导致一次流片的失败,而一次流片就是数亿的损失,因此验证需要:

使用验证方法学UVM来尽可能充分验证各个模块的功能,前仿真、后仿真;

使用FPGA、硬件模拟加速器等,尽可能接近最终芯片来验证各个功能;

因为没有最终的硬件(被设计的芯片)可以来验证,所以我们验证的会非常充分。

3.    规范流程上的差别(需不需要规范流程)

上面验证上的差别,可以看出FPGA设计时,可以在最终硬件(FPGA芯片)上多次试错,甚至到客户那里还能再多次试错,因此规范流程上:

不规范也可以:多试几次又不是不行,问题又不是不能被解决,花20%设计,花80%调bug,还需要加班来维护,又不是不行,多加班能解决的都不是问题,为什么解决也不那么重要,只要最终硬件(FPGA芯片)上跑的没问题就OK

规范更好:代码写的规范,有详细的设计文档,关注EDA工具综合布局布线的报告等,上板前做一些仿真,这样让你花80%设计,花20%调bug,少加班,就能够不断的升级迭代设计,少bug不怎么需要维护,有bug也能快速解决。

但是,IC设计时,没有最终硬件(FPGA芯片)可以多次试错,就一定要严格规范设计的流程,尽可能去模拟最终硬件验证,保证流片回来的芯片不出问题,因此规范流程上:

要严格规范,充分验证,出现bug需要定位到设计根源上并解决,解决后还需要再遍历验证一遍。

所以,做FPGA,为啥加这么多班?我觉得就是因为不够重视规范和验证,至于FPGA设计重视规范和验证,又是怎么理解和落地了?

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
EP2C35F672I8N 1 Intel Corporation Field Programmable Gate Array, 2076 CLBs, 402.5MHz, 33216-Cell, CMOS, PBGA672, LEAD FREE, FBGA-672

ECAD模型

下载ECAD模型
$905.2 查看
XC6SLX9-2FTG256C 1 AMD Xilinx Field Programmable Gate Array, 715 CLBs, 667MHz, 9152-Cell, CMOS, PBGA256, 17 X 17 MM, 1 MM PITCH, LEAD FREE, FBGA-256

ECAD模型

下载ECAD模型
$28.38 查看
EPM240M100C5N 1 Altera Corporation Flash PLD, 7.5ns, 192-Cell, CMOS, PBGA100, 6 X 6 MM, 0.50 MM PITCH, LEAD FREE, MICRO, FBGA-100
$80.18 查看

相关推荐

电子产业图谱

由点到面,串联各技术思维方式和学习感悟,取长补短,由一个技术开发者迈向一个系统设计开发者。