【问题标题】:Huge need of memory in FPGAFPGA对内存的巨大需求
【发布时间】:2017-01-10 17:47:17
【问题描述】:

为了在 FPGA 中实现算法,我需要存储一个非常大的常量矩阵。我已经计算出我需要一个大小约为 30 Mbits 的 ROM 内存,因此 FPGA 的内存是不够的。我正在考虑使用任何连接到 FPGA 的外部设备。是否可以同时操作这么大量的数据?

谢谢!

【问题讨论】:

  • 如果您需要处理这么多数据,那么使用 DSP 可能会更好。
  • 问题是虽然矩阵很大,但同时需要的元素很少,所以对这些元素的操作数不会太多...我只需要一些能够存储这些数据的方法。
  • 矩阵是偶然稀疏的吗? en.wikipedia.org/wiki/Sparse_matrix
  • 仅当它已被读入 FPGA 寄存器时。离开设备,你会遇到一个 IO 问题,因为它可能不够宽,无法将所有数据都输入 FPGA——这将对你的延迟(时间)影响最大。但也许你需要做很多这些,你可以将处理与阅读重叠——不幸的是,这会使你的算法更加复杂。你能在更小的矩阵块中处理这个大矩阵吗?也许这是一条路。
  • 您有 FPGA 供应商或硬件平台吗?

标签: matrix fpga


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    30Mbit 对于外部存储器来说并不是那么大。

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

    如果您的带宽对于闪存来说太大,您可以使用更快的内存,例如 ASRAM 或 SSRAM 或 HyperRam 或 DDR SDRAM。在您给电路板加电后,您的 FPGA 可以从闪存中读取这些数据并将这些数据写入外部RAM。然后您可以从 RAM 中读取这些数据。

    在这些情况下,您必须考虑带宽和封装以及功耗和成本以及 r/w 功能模式。例如,DDR SDRAM 可以在顺序读取数据时实现高带宽。如果访问随机地址或跳过地址,您将获得低得多的带宽。

    毕竟我建议你在做硬件工作之前先全面模拟你的功能。

    【讨论】:

      猜你喜欢
      • 2016-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多