请教Virtex5 RocketIO GTX 关于SATA comma对齐问题
时间:10-02
整理:3721RD
点击:
正在研究Virtex5 RocketIO GTX资料ug198, 里面关于GTX 用于设计Sata Phy Layer用到的 comma 对齐的描述,似乎 comma自动对齐机制只能对齐到字节边界(byte)或者字边界(word的字节0),但我看了opencores上下载的两个源码phy layer接口rxdata用的都是32位定义,而且状态机里没有关于 comma进行32位对齐的机制, 只是简单的设计为检测不到ALIGNp源语就COMRESET复位。
所以请问各位高手,opencores SATA 程序没有对齐32位, 是否会导致重复OOB COM初始化操作一直不成功?
是否需要自己编写逻辑对comma进行32位边界对齐?
怎么没人理会,没有人用Xilinx FPGA做过SATA控制器么?
我做的时候用的2-byte的接口,需要进行检测和对齐,不然会认为一直检测不到align,经过10ms后重新COMRESET
只要Comma对齐里设置了双字节边界16位对齐,Word 接口应该没有这种检测不到ALIGNp问题,我是说PHY Layer设计为Dword接口时,应该加入自己的控制逻辑来保证ALIGNp对齐32位边界
即使设置对了,实际在板子上测试的时候出现了不能align到word boundary的情况,所以才添加了额外的逻辑。估计这个他们的bug。如果用Dword接口的话,肯定要处理这种情况的。
感谢解答,实践出真知!
我用v5的开发板ML507试验过,32位对齐可能会对到最高字节(即使GTX里设置为双字节边沿对齐也一样),需要调整,但没有对齐不了的情况,每次复位都成功,包括热插拔,也没有问题,和你说的不一样
你好LZ,请问你的问题解决了吗?我也碰到了一样的问题。在使用在仿真virtex6 gtx时,设置4byte的位宽,奇数位对其,仿真后,一直是第三位对齐(我需要的是首字符对齐)。怎么调整都不行。有什么号的方法?
有交流的同仁吗,我也在搞这个,504267997
这个处理起来很简单, 在SendAlign状态根据K位置调整一下数据对齐就好了
搞到哪个程度了? 我现在正在命令协议层设计状态机,还有好多工作要做
还在么?有问题请教,align源语要怎么用Verilog语言写啊
