我们这块板子是用于图像高速处理,ARM与FPGA进行高速的数据交换,设计想法是在ARM与FPGA之间设计一块儿存储体作为二者之间通信的数据缓存。可是ARM的外部存储的控制只有2个,一个是DDR用于启动UBOOT,一个是NAND用于存放程序,请问有没有设计过类似功能的设计师,ARM与FPGA之间的缓存要怎么设计?可以与NAND或DDR的控制接口共享接口么?
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.
直接用GPMC和FPGA进行通信,同步模式+brust read+EDMA,这样应该可以大幅提高读写速率。这种速率能满足你需求吗?
我看了手册,GPMC有七个片选信号,可是我看手册里写的是Flexible 8-Bit and 16-Bit Asynchronous Module Memory Interface with up to Seven Chip – Controls the Entry and Exit of Stand-By and Selects (NAND, NOR, Muxed-NOR, SRAM),应该是异步模式吧?另外请问,因为存放程序的NAND连接的GPMC接口,如我现在再连一块存储体到GPMC接口,与NAND进行切换,会对ARM读取应用程序造成影响吧?谢谢啦
同步,异步的读取方式,是可以自由配置的。要针对你外面用的设备类型。
如果你用的而是NAND的话,一般都是异步咯,NOR现在看到的大部分也是异步。但你要接FPGA的话,我这边客户有同步的玩法,也有异步的玩法,完全看你自己的选择。
数据地址线共用,是不会造成影响的,因为片选信号会对其进行逻辑控制,不会让两个片选设备在同一时间点使能片选,所以一个时间点上只有一个cs是active的。不会造成影响。
对的,需要注意地址空间的分配,可以参考:AM335x GPMC 模块地址区域划分详解
没测试过,我理解这时候应该是会有弱上拉/下拉的吧。
谢谢您的帮助啦!还有一点需要和您请教一下,您之前说 同步+burst read+EDMA,可实现高速的数据传送,可是我看了一下用户手册有关GPMC这部分,有提到GPMC的性能,Up to 100 MHz external memory clock performance (single device),这是说GPMC控制外部存储体的时钟速率最大只有100MHz么?括号里单一设备又是指的什么意思?如果我选择异步存储体的话,起时钟速率是不是就不受这个100MHz限制了?谢谢啦
1.是的;2.不是,一样的,内部的function clock还是要受限于此。而且异步通信会比同步的数据吞吐量低些。