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.
如题,请问这是为什么啊?片选信号和写有效信号都是有的,但是FPGA就是没有接收到ARM写入的数据。但是ARM却能接收到由FPGA读的数据!请帮忙指点一下是什么原因,我需要更改哪里!谢谢
具体要查一下FPGA,如果执行写操作的时候,总线上有数据,有可能是不是FPGA哪里没有配置正确。
谢谢您的回答!这种情况是FPGA的问题吗?FPGA需要配置什么吗?我就是在FPGA的程序里执行的是接收到写有效信号后,将写进的数据放入寄存器。接收到读有效信号后,将数据输出。是不是在没有收到读写有效信号的时候需要设定一下数据线上的数据?
根据你的描述,接收到读有效,输出数据,这个逻辑是正确的,因为A8能够读到数据。
你要看下对应的写逻辑是否正确。
我看了下,我的写逻辑就是:
在收到写有效信号的时候,将数据放到一个寄存器!FPGA设定的数据接口定义为inout [15:0]gpmc_dq,存放写数据寄存器为[15:0]data,在接收到写有效信号后,
data = gpmc_dq。我用signaltap进行监测,监测gpmc_dq接口的数据,在写有效信号的时候,gpmc_dq值一直为FFFFh,写信号无效时,也为FFFFh。请问我FPGA的逻辑有问题吗?这种情况一定是FPGA的问题吗?还说ARM没有数据输出给FPGA造成的呢?谢谢您
能否监测下ARM这边的数据输出呢,写信后有效以后,数据线上应该有输出的。
在硬件设计上,我是将ARM的数据输出GPMC_DQ接口直接连接到FPGA的IO口,FPGA用的是altera公司的,所以就有其公司的signaltap II监测这个16位的数据接口上的数据,我觉得应该在FPGA这边观测也是一样的吧?写操作的时候就是没有数据,signaltap II固定的现实FFFFh,我觉得这种情况应该就是数据线上没有数据吧?
那要看你ARM那一侧的代码,去写FPGA的地址空间的时候,对应CS,WE,数据线都应该能观测到输出才对。
谢谢您的帮助!现在我遇到的问题就是观测到的CS,WE是有的,但是数据线上没有观测到数据。我现在就是找不到到底是ARM这边那部分代码影响的。请问您有什么建议么?或者您觉得应该是哪部分代码可能有问题造成的?谢谢啦
如果ARM去度FPGA能够正确实现,说明GPMC的数据和地址配置没有什么大问题,写数据需要看看写函数的实现有没有什么问题。
您好,ARM这边的程序没改,将FPGA这边的16位数据接口由原来的定义为inout改为input,观测到ARM写入的数据高8位正确,低8位还是FF,请问这种情况是什么原因啊?是FPGA这边的问题么?谢谢您了
修改了FPGA的程序,高8位可以接收数据了?看看FPGA这边接收数据宽度是不是正确吧
就是修改了数据接口类型,由双向的inout,改为了单向input,您说的接收数据宽度是指数据多少bit位吧?定义的是16bit的,与AM335x的GPMC的数据口对应的!
您好 ,现在能够写进数据了,并且对了,但是不知道为什么不能观测到连续写,请您帮忙分析一下是因为什么?谢谢啦!我现在把FPGA的程序全都注释掉了,仅仅用signaltap II来观测数据接口
修改了FPGA哪里就可以正确写数据了?连续写是ARM侧的连续写么?
FPGA这边没有做任何更改,但是现在就是能够正确的写入数据了。连续写是ARM侧连续写数据给FPGA,只写入一次,不知道什么原因
之前写不进去的根本原因是什么?是ARM侧的写函数有问题么?只能写入一次是不是与FPGA这边有关系。
我也想着可能是FPGA这边可能会影响,所以把FPGA的所有程序都注释掉了,只利用FPGA来观测接口的数据,但是signaltapII显示只写入一次,如果还是FPGA得原因,那应该是哪里影响呢?
你好,高8位对,低8位是FF,你这个问题是怎么解决的,我也碰到了,麻烦你了