• FPGA如此火热,ASIC和FPGA到底选哪个好?


    不少人想要转行IC,但不知道ASIC和FPGA到底选哪个好?其实想要做选择,首先清楚两者的区分和概念是非常重要的。

    FPGA全称是Field Programmable Gate Array,中文名叫现场可编程门阵列,但究其本质它仍是芯片的一种。
    FPGA介于软硬件之间。如果用它做接口、通信的话,它就偏向硬件;如果用它做算法、控制,那么它就偏向软件。

    ASIC全称是Application Specific Integrated Circuit,是指专用集成电路,就是针对某些特定应用需求、特定用户要求和特定电子系统的需要而开发设计的芯片。
    不少人觉得ASIC就是IC验证,但其实不论是数字、模拟还是数模混合,任何定制的芯片都可以称之为ASIC。

    在这里插入图片描述

    FPGA和ASIC的区别

    复位不同
    因为Xlinx的器件原因,Xilinx推荐高电平复位,在ASIC通常都是低电平复位。没听说过做芯片高电平复位的。

    工具流差别大
    FPGA开发大多是在Windows环境下开发,一个编辑器,一个Vivado可以走到底,下载bit流到开发板。一个人全流程。
    ASIC开发基本都在Linux环境下开发,编译用VCS、debug用Veridi,清lint/CDC/RDC用Spyglass,收覆盖率imc,综合用DC,形式验证formality,后端做PR,DFT一直到GDSII的系列工具。需要一个完整团队,才能做出一颗芯片。

    代码质量要求差别
    FPGA开发,代码验证完,可以直接应Vivado自带的综合PR下板子验证。基本就没问题。
    ASIC代码验证完,需要清除lint。因为很多写法是不可综合的。清完lint,进入综合,但formal不一定能过,代码和综合后的网表对不上。综合、formal不过,代码写得再牛逼,再快,验证的再好,也得改,重写。
    ASIC的代码可以换成FPGA IP,直接放FPGA上验证,但FPGA的代码想要直接流片,还是有一段很长的路要走。

    都叫综合/PR,但本质是不同的
    FPGA内部的构造大致来说,LUT实现组合逻辑,D触发器实现时序逻辑,再加上一些BRAM,硬核资源,就可以实现任意电路。所以FPGA的综合就是把RTL映射到这些资源上。

    ASIC综合是将RTL映射到标准单元库上,mem。有些RTL,语法是支持,但是就是综合不了。LUT就是个大mux,瞎写的代码LUT能映射,但DC不一定过。
    FPGA综合和ASIC综合完全不是一个东西。

    FPGA在ASIC中的角色

    FPGA在ASIC开发流程中的作用,只是用做原型验证。前面复杂的开发流程,与FPGA自成体系的开发流程相比完全不是一个量级。

    FPGA为何火热?

    现场可编程门阵列 (FPGA) 是具有可编程硬件结构的集成电路。FPGA内部的电路是为了实现各种不同的功能,并且可以根据需要重新编程以执行这些功能。因此,就灵活性和快速上市时间而言,FPGA是一个比较优质的选择。

    FPGA可以在制造后由用户编程用于特定用途。FPGA包含通过可编程互连连接的自适应逻辑模块 (ALM) 和逻辑元件(LE)。这些块创建了逻辑门的物理阵列,可以定制以执行特定的计算任务。

    FPGA可以用于从计算机或服务器中的硬件加速,去处理重复性和计算密集型任务。SmartNIC是一种特定类型的FPGA应用程序,它允许对数据包执行高级操作,例如隧道终止、对数据包应用复杂的流分类和过滤机制、计量和整形。
    这些功能通常由CPU执行,但SmartNIC允许卸载它们,从而释放服务器资源以专注于其主要任务。

    标准CPU的主要制造商正在通过收购专门从事FPGA的公司来扩展其产品组合。2015 年,英特尔收购了美国可编程逻辑器件 (PLD) 制造商Altera,微软已经将英特尔FPGA的多功能性用于加速AI。AMD收购了发明FPGA架构的公司Xilinx,让业界看到CPU巨头对FPGA的重视。

    FPGA的最大卖点是FPGA可以由客户在实验室或现场预制和编程。它们不需要一次性工程费用 (NRE),并且可以帮助创新者极快地进入市场。这使得FPGA 成为在快速变化的环境中实现差异化的绝佳选择。

    其实对于ASIC和FPGA来说,ASIC的薪资相对比较高,难度也比较大。尤其是对于那些做FPGA的人一般对于verilog也会比较熟,想要转ASIC也是非常有优势的。

  • 相关阅读:
    MySQL 经验集总结(更新ing)
    JAVASE 第二十四天
    RK3588-EDGE Ubuntu搭建HTTP服务器
    [Linux Review-1] Linux OS fundamental #101
    让代码变美的第一天 - 观察者模式
    C++——智能指针
    Docker‘s Network
    Java:计算球形体积
    ssh连接机器后执行sh命令不生效的解决方法
    金融行业备份容灾:如何满足严格行业标准同时实现成本效益优化?
  • 原文地址:https://blog.csdn.net/coachip/article/details/126481451