churchmice
churchmice
A simple way is to add the backpressure signal around line 239 of usbfs_transaction.v. If your SOC side is unable to accept the data, return PID_NAK instead of PID_ACK.
我来解释一下这个问题 用60M的过采样,实际上fs只有12Mbps,也就是说对于一个USB的bit有5个采样点,保存在dpl[4:0]里面,其中dpl[4]是第一个采样点,dpl[0]是最后一个采样点 假设一开始是完全对齐的,那我们就有dpl[4] == dpl[3] == dpl[2] == dpl[1] == dpl[0] 假设本地的时钟比较快,并且USB线上相邻的两比特发生了跳变,那会出现什么情况呢? 本设计考虑了两种 1) 第一次采样的点还是旧值,但是后面四个采样点采样到的是新值,也就是dpl[4]!= dpl[3], 但是dpl[3] == dpl[2] == dpl[1] == dpl[0] 2) 前两次采样的点都是旧值,但是后面3个采样点采样到的是新值,也就是dpl[4] == dpl[3], dpl[3] != dpl[2],...
> // high when dpl has atleast one pair of 1's - 110,011,111 (101-X) - low when 000,001,100 //but why is it high for 110 and low for 001, we...