This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM5728:FPGA 的 GPMC 吞吐量

Guru**** 2001725 points
Other Parts Discussed in Thread: AM5728
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/805970/am5728-gpmc-throughput-with-fpga

器件型号:AM5728

您好!

我想知道与 FPGA 连接的 AM57xx GPMC 的吞吐量。

根据以下 E2E 主题、

https://e2e.ti.com/support/processors/f/791/t/621859

它大约为1.15Gbps。

另一方面、根据以下 E2E 主题、

https://e2e.ti.com/support/archive/internal/int_sitara_am335x/f/425/p/514604/1870281

它大约为每秒15-20MB。

我认为上述值之间的差异非常大。 哪一个是正确的值?

此致、

哈塔。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hata、您好!

    对于1.15Gbps 吞吐量的解释假设是一个32位接口、但 GPMC 只有一个16位接口。

    我认为地址锁存和延迟的5个周期是合理的-这取决于 FPGA 时序和延迟。 重新计算16位接口时、我得到1.08Gbps (135MB/s)。 5+16个 GPMC_CLK 周期来传输16x16位、GPMC_CLK = 88.6MHz。

    15-20Mb/s 图没有解释、但它可能假定异步传输速度慢于同步传输。

    它取决于 GPMC 信号的时序、这些信号可通过 GPMC_CONFIG 寄存器进行编程。 GPMC 信号时序需要满足 FPGA 信号时序要求。

    我观察到 AM5728上同步突发 GPMC 传输的吞吐量为143Mb/s。 该测量值是通过针对 FPGA 事务进行优化的 GPMC 寄存器捕获的。 DMA 向 GPMC 传输512个字节/从 GPMC 传输512个字节。 如果配置为非同步或非突发传输、则速度会更慢。

    在 AM572x 上、GPMC_CLK 来自266MHz GPMC_FCLK。 在从 GPMC_CLK 引脚输出之前、266MHz FCLK 必须被3分频以满足数据表中 GPMC_CLK 的开关特性。 这会产生88.67MHz GPMC_CLK。 GPMC_CONFIG 寄存器必须配置为此分频时钟、因为 GPMC 信号转换由递增的计数器触发、该计数器以266MHz GPMC_FCLK 为增量。

    AM335x 和 AM437x 等其他器件上的 GPMC_FCLK 为100MHz、在从 GPMC_CLK 引脚输出之前无需进行分频(用于同步传输)。 因此、理论上、使用100MHz GPMC_CLK 时、这些器件的吞吐量可能更高。

    必须满足其他时序限制-请参阅 http://processors.wiki.ti.com/index.php/Tips_for_configuring_Sitara_GPMC_registers

    请参阅以下示波器捕获到 GPMC 的512字节 DMA 传输、配置为16字同步突发。 时序非常严格、应视为最佳情况吞吐量。

    希望这对您有所帮助、
    标记

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Mark、您好!

    这是一个易于理解的解释!
    您的评论和实际测量结果对我非常有帮助。
    非常感谢!

    此致、
    哈塔。