• 正文
  • 推荐器件
  • 相关推荐
申请入驻 产业图谱

做FPGA,为啥加班这么多?

2024/05/11
2585
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

很多年前我经常在想:做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模型 风险等级 参考价格 更多信息
EPM1270T144C5N 1 Intel Corporation Flash PLD, 10ns, 980-Cell, CMOS, PQFP144, 22 X 22 MM, 0.50 MM PITCH, LEAD FREE, TQFP-144

ECAD模型

下载ECAD模型
$79 查看
XC6SLX9-3TQG144I 1 AMD Xilinx Field Programmable Gate Array, 715 CLBs, 862MHz, 9152-Cell, CMOS, PQFP144, 20 X 20 MM, 0.50 MM PITCH, LEAD FREE, TQFP-144

ECAD模型

下载ECAD模型
$185.09 查看
5M80ZE64C5N 1 Intel Corporation Flash PLD, 14ns, 64-Cell, CMOS, PQFP64, 9 X 9 MM, 0.40 MM PITCH, LEAD FREE, PLASTIC, EQFP-64

ECAD模型

下载ECAD模型
$2.33 查看

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录