Logic FPGA的一些实际应用是什么?

Logic FPGA的一些实际应用是什么?,logic,fpga,digital,Logic,Fpga,Digital,我非常兴奋我的程序能支持一个小的七段显示器,但当我向不在现场的人展示它时,他们总是说“你能用它做什么?”我永远不能给他们一个简洁的答案。有人能帮我吗?你可以进化电路,这是一种有点老派的进化算法,但从一组随机个体开始,你可以选择在适应度函数中得分高于其他个体的电路,并繁殖它们,无限地创造一个新的种群。阅读进化硬件,认为这本书涵盖了FPGA的 比如说,你想要一个DSP电路,你有一个输入信号和一个期望的输出信号,从一个随机的总体开始,你可能只选择最合适的(坏的)或者可能是合适和奇怪的混合来创建下一代。

我非常兴奋我的程序能支持一个小的七段显示器,但当我向不在现场的人展示它时,他们总是说“你能用它做什么?”我永远不能给他们一个简洁的答案。有人能帮我吗?

你可以进化电路,这是一种有点老派的进化算法,但从一组随机个体开始,你可以选择在适应度函数中得分高于其他个体的电路,并繁殖它们,无限地创造一个新的种群。阅读进化硬件,认为这本书涵盖了FPGA的

比如说,你想要一个DSP电路,你有一个输入信号和一个期望的输出信号,从一个随机的总体开始,你可能只选择最合适的(坏的)或者可能是合适和奇怪的混合来创建下一代。经过几代人,你可以打开盖子,发现低,看进化已经发生,你有一个电路,甚至可能超过你最初的期望

还可以阅读《基因编程现场指南》,它在网上某处免费提供。

真实故事

它们允许您修复用于数百万美元粒子物理实验的定制数据采集板中的设计缺陷,这些缺陷只有在您安装好所有设备并进行集成工作和探测器表征后才会变得明显。

我喜欢这篇文章:

我的感觉是,FPGA可以直接放在您的流数据中,在您控制的系统中输入数据。然后,您可以处理这些数据,而无需执行GPGPU所需的步骤(将数据从网络输入,通过PCI Express总线传递,并一次处理一Gb)

两者都有很好的理由,但我认为是否介意缓冲数据的概念是一个很好的指标

下面是另一个很酷的FPGA应用程序:


汽车图像处理是一个有趣的领域:

为驾驶员提供车道保持支持(披露:我写了这页!):

通过4个鱼眼镜头摄像机(带视频)提供汽车的鸟瞰图:


首先:它们不需要易失性内存

事实上,大公司(Xilinx、Altera)通常在SRAM芯片上配置,因此您需要额外的EEPROM/Flash/WhatEver(TM)将其存储在外部

但还有其他一些,例如,我想到的Actel是一家大型公司,其FPGA上具有非易失性配置存储(顺便说一句,这还有其他优势,因为SRAM通常不太耐辐射,进入轨道时必须进行特殊测量)

有两件事证明了FPGA的合理性:

  • 价格-它们不便宜。但有时你不能用软件做一些事情,你需要硬件来完成。而且,当您的需求量低于某一点时(例如,因为它只是一个小系列或原型),FPGA要比ASIC便宜得多。此外,在开发ASIC时,在达到最终状态之前,这允许更高的周转时间

  • 重新配置-您可以重新配置您的FPGA。这是处理器或ASIC无法做到的。有些应用程序可以使用此功能:例如,当您需要修复设计中的某些内容,但无法实际访问设备时。例如:火星轨道器/探测器使用Xilinx FPGA。当有人发现有错误时(或者想要切换到不同的编码来传输数据或其他什么),你不能更换这艘船,因为它根本无法到达。但使用FPGA,您可以重新配置并应用更改。另一种情况是,你可以有一个单一的芯片,能够执行不同的加速,这取决于场景。想象一部智能手机,当打电话时,FPGA可以配置为进行音频解码,当冲浪时,它可以作为压缩引擎工作,当播放视频时,它可以配置为h264解码器/加速器。您可以做的另一件事是将您的硬件与您的问题实例相匹配。例如,思科在其硬件中使用了许多FPGA。您需要硬件以所需的速度执行交换/路由/数据包检查,并且您可以从实际设置匹配引擎直接生成到硬件中


  • 另一件可能很快就会出现的事情(我知道一些汽车制造商已经考虑过了),就是那些包含很多不同电子产品并且有一个大供应链的设备。这或多或少是价格和重新配置的结合。10个ASIC比10个FPGA更昂贵,因为它们都执行相同的任务,但是,与10家供应商在供应和服务中需要持有和管理10种不同芯片相比,只有一家供应商持有10种FPGA且只需持有一种芯片的成本更低。

    FPGA还用于在开始大规模生产之前测试/研究电路设计。这发生在几个领域:图像处理、信号处理等

    编辑-几年后,我们现在可以看到更多的实际应用,包括金融和机器收入:

    • 空中空间
    • 模仿
    • 汽车
    • 广播
    • 高性能计算机
    • 医学的
    • 机器学习
    • 金融(包括加密硬币)

      • 软件有一些限制。在软件上,您以CPU的时钟速率运行,使您能够在每个时钟周期仅执行一条指令。在软件上,一切都是高层次的,你不能控制低层次的细节。您将始终受到正在编程的操作系统或开发板的限制。这对于像Arduinos和Raspberry Pi这样的流行开发板来说是正确的

        在FPGA硬件中,您可以精确地编程和控制每个时钟周期之间发生的事情,从而提供