您好,
新做的板子,6678 DSP EMIF16与FPGA相连,16位数据访问时,往CE0连续地址写入线性数,FPGA端抓到EMIF地址与数据情况如下图:
按照EMIF16手册 16位连接图:
地址变化是对的,但为何是两个数据对应一个地址,请问EMIF16 哪个地方配置让数据和地址一一对应
谢谢!
jack liu_first:
麻烦TI的工程师们给看下哪里出问题了?在寄存器配置上我只看到 Async Config Register 的ASIZE位选择16位或者8位宽。配置8位宽的时候数据和地址是一一对应的,16位的时候就会出现两个数据对应一个地址。按EMIF16手册 16位接法DSP按连续地址访问FPGA挂接的NOR FLASH是不正确的。如果EMIFA0不接,其他地址线依次往后挪一位,DSP按偶地址访问是可行的。但问题是我们需要作EMIF NOR BOOT,按TI手册接法是否能够正常读取NOR FLASH中的启动代码?
谢谢
Brighton Feng:
回复 jack liu_first:
没完全明白你的问题,不过EMIF地址线有一点很容易混淆,在16位宽的情况下,管脚和逻辑字节地址的对应关系如下:
EMIFA23->A1
EMIFA0->A2
EMIFA1->A3
EMIFA2->A4
……
注意16位宽时,逻辑字节地址A0不存在。
lingshan lan:
回复 Brighton Feng:
《KeyStone Architecture Literature Number: SPRUGZ3A May 2011 External Memory Interface (EMIF16)》这篇手册里面说的是对应这A0 ,为什么说逻辑字节地址A0不存在,EMIFA23->A0不是EMIFA23->A1啊???我算了一下,按照16bit接法访问的大小为2^24*16=268435456 bit=256 Mbit=32 MByte;手册上不是说一个CE可以访问64MByte吗?是哪理解错了呢?
user4484884:
你好!我也在调试C66x的EMIF16和FPGA,遇到一个最基本的问题:
我将ce1地址段配置成Norflash后,这样来访问EMIF16
volatile Uint32 emif16_ce1_addr=0x74000000u; *(Uint16 *)(emif16_ce1_addr)=j;
但是上面的程序检测不到任何CE,WE,OE的电频跳变,但是在用STK_EMIF是可以检测到这个信号的变化,而且可以通过STK_EMIF历程的检测?请问这样访问EMIF16是正确的吗?如果不对那该如何访问EMIF16,先谢谢你的解答!
jack liu_first:
回复 user4484884:
这样访问没错,你不是测和f p ga互联吗,f p ga做一个双口Ram,d s p通过emif读写双口ram试试?
user4484884:
回复 jack liu_first:
谢谢你的回答!现在我将EMIF16配置成Norflash如图
访问如图:
但是在FPGA端的采样数据和地址都不是连续的数据为0这是为啥啊?求解,先谢谢你的解答!