双端口 RAM 最佳实践?

Dual port RAM best practices?

我有一个 FPGA 设置,用作 PC 和微控制器之间共享的双端口 RAM。有 fpga 信号量可以保护 ram 不被同时访问,因此我可以避免在更新过程中读取数据。到目前为止,我一直在使用具有固定顺序的字节缓冲区,我正在读入一些结构以在每个方向上传递数据,更新频率为 100 Hz。这很有效。

我将扩展两个处理器之间的 ram window 的大小,并希望能够在它们之间传递大文件。是否有一套标准的技术以这种方式使用双端口 ram?

如果您有 FPGA,则为两者之间的每个通信方向实现一个 FIFO。这意味着文件大小和同步不再是硬件相关的问题。当你的结构或文件被打包时,有一个 DMA 或中断处理程序将它传输过来,反之亦然。这将使您的代码更简单、更可靠。

如果有高速数据会被大文件传输阻塞,您将需要高优先级和低优先级 FIFO。