6678与FPGA通信,FPGA作为srio发起方,操作6678的SL2。
发现6678只支持64bit数据的写。FPGA写32bit数据时,SL2中的数据会出现错位。在chipscope端观察, FPGA端写来的地址是正确的,6678也收到了正确的地址。
比如写一个4字节长度的0,连续写3次,SL2中的内容分别如下:
第一次写之后:00000000 EC0498A1 D6398840 84895B85
第二次写之后:00000000 EC0498A1 D6398840 84895B85
第三次写之后:00000000 EC0498A1 00000000 84895B85
又试了一下写12个字节,3个累加数据。连续写3次,SL2中的内容分别如下:
第一次写之后:
00000000 00000001 00000002 84895B81
第二次写之后:
00000000 00000001 00000000 00000001
00000002 D6398840 C1606894 E0E72701
第三次写之后:
00000000 00000001 00000000 00000001
00000002 D6398840 00000000 00000001
00000002 5587F010 A108B002 0D160C98
请问哪里可能会有问题?
Stephen chen:
回复 Allen35065:
谢谢Allen,之前确实是因为FPGA端只能发送64bit对齐的数据。已经做了修改