关闭

整体方案

标签: armfpgalinux
364人阅读 评论(0) 收藏 举报
分类:

方案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。






0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:6426次
    • 积分:102
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档