Matrix FPGA对内存的巨大需求

Matrix FPGA对内存的巨大需求,matrix,fpga,Matrix,Fpga,为了在FPGA中实现算法,我需要存储一个非常大的常量矩阵。我已经计算出我需要一个30 Mbit左右的ROM内存,所以FPGA的内存不够。我想使用任何连接到FPGA的外部设备。有可能同时处理如此大量的数据吗 谢谢 你走的是正确的道路。将30位存储在外部非易失性存储器(闪存)中。通常,您可以在用于配置FPGA的同一闪存芯片中使用额外的容量(假设有足够的额外空间)。将每次所需的少量元素读入FPGA内部存储器中。如果闪存读取接口的带宽不足以满足您的计算,则从外部闪存到外部RAM进行一次性传输,并将其连续

为了在FPGA中实现算法,我需要存储一个非常大的常量矩阵。我已经计算出我需要一个30 Mbit左右的ROM内存,所以FPGA的内存不够。我想使用任何连接到FPGA的外部设备。有可能同时处理如此大量的数据吗


谢谢

你走的是正确的道路。将30位存储在外部非易失性存储器(闪存)中。通常,您可以在用于配置FPGA的同一闪存芯片中使用额外的容量(假设有足够的额外空间)。将每次所需的少量元素读入FPGA内部存储器中。如果闪存读取接口的带宽不足以满足您的计算,则从外部闪存到外部RAM进行一次性传输,并将其连续读取到FPGA内部缓冲区。

30Mbit对于外部内存来说不是那么大

您首先需要一个非易失性存储器(flash)。但您不需要总是从flash读取这些数据。这取决于您的带宽

如果您的带宽太大,无法使用闪存,您可以使用更快的内存,如ASRAM、SSRAM、HyperRam或DDR SDRAM。在主板通电后,您的FPGA可以从闪存读取这些数据,并将这些数据写入外部RAM。然后您可以从RAM读取这些数据

在这些情况下,你必须考虑带宽和包和功率交换和成本和R/W功能模式。例如,当您按顺序读取数据时,DDR SDRAM可以实现高带宽。如果您访问随机地址或跳过的地址,您将实现更低的带宽


毕竟,我建议你在做硬件工作之前先全面模拟你的函数

如果需要处理这么多数据,使用DSP可能会更幸运。问题是,虽然矩阵很大,但同时只需要几个元素,因此使用这些元素的操作数量不会太多。。。我只需要一些方法来存储这些数据。矩阵是偶然稀疏的吗?仅当它已读入FPGA寄存器时。离开设备时,您会遇到IO问题,因为它可能不够宽,无法将所有数据输入FPGA-这将对您的延迟(时间)影响最大。但也许你需要做很多这样的事情,而且你可以将处理过程与阅读重叠——不幸的是,这会使你的算法更加复杂。你能用更小的矩阵块来处理这个大矩阵吗?也许这是一条路。你是否考虑过FPGA供应商或硬件平台?