将FPGA高效集成到计算机系统中

Mic*_*ahl 8 fpga

FPGA在业界得到广泛应用,通过在FPGA而不是软件上实现程序来获得更好的性能.

这些公司如何有效地将FPGA集成到他们的系统中?

我对FPGA的经验非常有限,并且只使用USB和串行端口连接它们,我想这不是最好地利用FPGA实现的方法.

那么这些公司做了什么呢?例如,他们是否使用了一些可以插入计算机系统PCI插槽的特殊FPGA,或者他们是否可以购买一些带有集成FPGA的特殊SoC,这些SoC很容易被程序员覆盖?

我在远离硬件的高级语言编程方面经验最丰富,所以如果问题听起来很愚蠢我很抱歉 - 我对下层没有太多的知识和经验:).但是我曾经有过使用FPGA的课程,这是一次非常开放的经历.所以现在我梦想拥有一个计算机系统,我可以用高级语言编写部分代码,然后与集成的FPGA进行一些通信,我已经上传了一些合成的VHDL.

也许甚至可以编写由高级代码和一些VHDL组成的程序,这些程序在程序启动时自动合成并上传到FPGA板......这太棒了!

Bru*_*JJE 8

的PCIe

通常需要在FPGA和系统的主处理器之间具有更高的可能带宽,因此FPGA通常作为PCIe设备连接到主CPU.

电子板

所有最新的FPGA都可以与高速I/O接口连接,因此不需要"特殊"FPGA将其连接到DDR3,PCI或PCIe,只有电子板需要PCIe连接器.

如果没有可用的FPGA devkit板真正适合系统,可能需要设计定制电子板.

传感器和CPU之间

请注意,FPGA通常位于外部接口和主处理器之间.

然后负责处理来自外部传感器或传输系统(摄像机,光纤,以太网,无线电......)的数据,通过低级实时处理卸载处理器.

嵌入式系统

但是所有系统都不是"基于PC的".有些嵌入式系统使用FPGA作为主要的"处理器".在这样的系统中,您可能有一个电子板,其中FPGA作为系统的核心(对于评论系统,不允许使用具有相关可能的软件错误的普通处理器).

在其他嵌入式系统上,电子板配备了处理器和FPGA.

软核

对于某些嵌入式系统,需要一个小型微控制器.它可以在FPGA内部作为软核实现,而不是将它放在FPGA旁边的电子板上.

FPGA SoC

但最近的FPGA(xilinx zynq,altera cyclone V soc)包括一个"硬核"双核A9 ARM.它就像一个SoC,具有"FPGA"部分,在ARM和可编程逻辑部件(PL)之间具有高速连接.因此处理器和FPGA在同一芯片中.

希望这可以帮助.


mtl*_*eng 4

FPGA系统集成

由于 FPGA 的灵活性,公司将 FPGA 集成到系统中的方式因系统而异。不需要“特殊”FPGA,因为 FPGA 本质上是可编程的。公司可以自由地将最适合其需求的任何接口编程到其中,无论是像 PCI 这样的复杂总线,还是像 SPI 或 I2C 这样的简单接口。FPGA 外部可能需要一些额外的 IC 以支持所需的接口,但这是一个温和的点。

这个问题有点像问软件公司如何将他们的软件集成到操作系统中。它与数据库交互吗?如果是这样,它可能会使用 SQL 查询。它有在线功能吗?如果是这样,也许它将访问网络服务。无论如何,这是一个非常开放的场景。

然而,最新的趋势是将处理器和 FPGA 集成在同一个 SoC 上。在这种情况下,处理器和可编程逻辑之间使用名为AXI(高级可扩展接口)的接口。AXI 使用类似于 PCIe 的拓扑,但专门用于高性能片上通信。

高级编程

这个有可能。它称为高级综合 (HLS),允许使用 C 代码对 FPGA 进行编程。然而,HLS 也有其局限性。一方面,它已经存在了十年,直到最近才开始获得更多关注。但最终,具有 FPGA 的系统将倾向于使用高级语言 (C/C++) 和 RTL (Verilog/VHDL) 的组合。高级语言用于对处理器进行编程,而RTL用于对FPGA进行编程。现在,也可以选择使用 C 通过 HLS 对 FPGA 进行编程。