如题,请问这是为什么啊?片选信号和写有效信号都是有的,但是FPGA就是没有接收到ARM写入的数据。但是ARM却能接收到由FPGA读的数据!请帮忙指点一下是什么原因,我需要更改哪里!谢谢
Jian Zhou:
具体要查一下FPGA,如果执行写操作的时候,总线上有数据,有可能是不是FPGA哪里没有配置正确。
Yalan Han:
回复 Jian Zhou:
谢谢您的回答!这种情况是FPGA的问题吗?FPGA需要配置什么吗?我就是在FPGA的程序里执行的是接收到写有效信号后,将写进的数据放入寄存器。接收到读有效信号后,将数据输出。是不是在没有收到读写有效信号的时候需要设定一下数据线上的数据?
Jian Zhou:
回复 Yalan Han:
根据你的描述,接收到读有效,输出数据,这个逻辑是正确的,因为A8能够读到数据。
你要看下对应的写逻辑是否正确。
Yalan Han:
回复 Jian Zhou:
我看了下,我的写逻辑就是:
在收到写有效信号的时候,将数据放到一个寄存器!FPGA设定的数据接口定义为inout [15:0]gpmc_dq,存放写数据寄存器为[15:0]data,在接收到写有效信号后,
data = gpmc_dq。我用signaltap进行监测,监测gpmc_dq接口的数据,在写有效信号的时候,gpmc_dq值一直为FFFFh,写信号无效时,也为FFFFh。请问我FPGA的逻辑有问题吗?这种情况一定是FPGA的问题吗?还说ARM没有数据输出给FPGA造成的呢?谢谢您
Jian Zhou:
回复 Yalan Han:
能否监测下ARM这边的数据输出呢,写信后有效以后,数据线上应该有输出的。
Yalan Han:
回复 Jian Zhou:
在硬件设计上,我是将ARM的数据输出GPMC_DQ接口直接连接到FPGA的IO口,FPGA用的是altera公司的,所以就有其公司的signaltap II监测这个16位的数据接口上的数据,我觉得应该在FPGA这边观测也是一样的吧?写操作的时候就是没有数据,signaltap II固定的现实FFFFh,我觉得这种情况应该就是数据线上没有数据吧?
Jian Zhou:
回复 Yalan Han:
那要看你ARM那一侧的代码,去写FPGA的地址空间的时候,对应CS,WE,数据线都应该能观测到输出才对。
Yalan Han:
回复 Jian Zhou:
谢谢您的帮助!现在我遇到的问题就是观测到的CS,WE是有的,但是数据线上没有观测到数据。我现在就是找不到到底是ARM这边那部分代码影响的。请问您有什么建议么?或者您觉得应该是哪部分代码可能有问题造成的?谢谢啦
Jian Zhou:
回复 Yalan Han:
如果ARM去度FPGA能够正确实现,说明GPMC的数据和地址配置没有什么大问题,写数据需要看看写函数的实现有没有什么问题。
Yalan Han:
回复 Jian Zhou:
您好,ARM这边的程序没改,将FPGA这边的16位数据接口由原来的定义为inout改为input,观测到ARM写入的数据高8位正确,低8位还是FF,请问这种情况是什么原因啊?是FPGA这边的问题么?谢谢您了