很高兴和老师们讨论一个问题:
题目是这样的:C6424的EMIF数据总线是16bit但是我想接双口RAM再与FPGA通信,FPAG那边需要32bit的并行数据总线。
如果用16bit数据的双口RAM,FPAG那边不能满足要求; 如果用32bit数据的双口RAM,C6424数据也不能32bit一并输出(只能加一片CPLD转32bit数据输出),地址总线处理比较麻烦。我简单测试了一下C6424总线规律好像如下:
EMIF接口是16bit数据总线(传输32bit数据)。
写地址 地址总线值(16进制).....A[2] A[1] A[0] BA[1]
*( volatile Uint32* )(EMIF_CS3_BASE+0)= i; 0 0 0 0
*( volatile Uint32* )(EMIF_CS3_BASE+4)= i; 0 0 1 0
*( volatile Uint32* )(EMIF_CS3_BASE+8)= i; 0 1 0 0
若接双面都是32bit的双口RAM,加一片CPLD将高16bit数据与低16bit数据并行输出给双口RAM, 这样好像数据总线问题能解决。但是地址不能象下面那样依次写32bit的双口RAM。
...A[2] A[1] A[0] A[1]:0 0 0 0
...A[2] A[1] A[0] A[1]:0 0 0 1
...A[2] A[1] A[0] A[1]:0 0 0 2
...........................................
目前市场上好像也没看过双口RAM一边是16bit数据总线,一边是32bit的数据总线的!
各位老师设计高这样的问题没,是怎么解决如题目问题的解决办法没???