您的位置:首页 > 运维架构 > Linux

整体方案

2015-11-21 15:52 302 查看
方案1:

本来一开始考虑的是在ARM和FPGA之间复用SDRAM的,如下图所示,这样FPGA在高速下采集到的数据可以直接放入到SDRAM中,然后ARM可以直接从SDRAM中取数据来进行处理,ARM和fpga之间的地址/数据总线作为ARM和fpga之间的控制信号来用,有点像通信网中的数据与信令分离的那种方式,可是最后还是舍弃了这种方案,原因是因为:

1.在ARM 和FPGA之间复用sdram,如果存在ARM在读,而FPGA这一时刻正在写的情况的时候就会有冲突,这个该怎么处理,必须在ARM和FPGA之间有同步信号,也就是说当ARM要读取SDRAM中的数据的时候,必须先通知FPGA停止写数据,FPGA在接收到信号后,还要先将FPGA和SDRAM之间地址/数据总线设置为高阻态,然后再发送信号给ARM, 这个时候ARM 才能读取数据,但是这样FPGA采集到的数据会有所丢失。

2. 采用两片SDRAM实现乒乓机制。

考虑到这个方案实现起来还是有一定难度,而且也是第一次来自己做板子,所以还是决定放弃这个方案,等以后有经验了看能不能再实现本方案。



方案2:

还是将SDRAM只放置在FPGA侧,ARM和FPGA之间通过地址/数据 总线的方式来交换数据,可以把FPGA当做ARM的一个存储设备将FPGA挂载到ARM的一个BANK上,首先通过FPGA来读写SDRAM中的数据,然后ARM来读取FPGA的数据,或者在FPGA内部直接将SDRAM连通到ARM,FPGA做一个透传(这个还不明白能不能这么做,怎么做),其他功能模块如图所示:



目前还是选择方案2。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm fpga linux