打印
[FPGA]

sata 之oob握手(arria ii gx)

[复制链接]
868|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主








目前已进行的工作
速率为sata1.0
(1)gxb内循环,进行了loopback内循环,无误码
(2)gxb外循环,通过两根线进行了物理连接,发送数据后接收,无错误
(3)gxb添加相应的rx_signaldetect和tx_forceelecidle信号,用于comreset,comwake发送和cominit和comwake接收,参考了an635文档
实际抓取信号图为:

从图像中可以看到tx_forceelecidle发送6次后,会收到rx_signaldetect信号,但是收到rx_signaldetect信号期间,gxb接收端会收到数据
具体数据为
分析数据可以看出为ALIGN数据,但是数据返还的时间不对,按照协议应该是在host发送完comwake后,device返回comwake,然后主机发送4A4A4A4A后,device发送ALIGN,试了两个sata硬盘情况基本类似

问题:
(1)以前情况是什么原因引起的?为什么ALIGN数据会在cominit期间发送,从signaltap上看,时序是否有问题?
(2)host在收到cominit后,应该多久发送comwake,协议中没有找到
(3)目前gxb设置的为1.5G,看协议中关于oob握手,有速率自协商的部分,自己理解应该是sata盘会按照1.0速率和2.0速率发送ALIGN看host会收到哪个速率下的ALGIN,然后以相同速率发送ALIGN,不知道理解的是否正确
(4)目前gxb工作在1.5G固定速率下,是否还需要gxb_reconfig模块?

此外还做得工作包括:
(1)host发送comreset后,接收cominit,在发送comwake ,接受comwake,发送4a4a4a4a后,认为device发送了align,host发送align,设备并没有返回sync信号
(2)host发送comreset后,接收cominit,cominit接收过程中收到align信号后,host直接发送align信号调过发送comwake过程,设备也没有回发sync信号

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

120

帖子

9

粉丝