bitblue
Newbie level 3
When I am reading the Verilog code of USB2.0 device controller, I have a question.
The Rtl code is as follow:
`C_EP0_DA_OWDA: begin //this state is to wait the out data
if (((RxData0 & DataTog) | (RxData1 & ~DataTog)) & CSR0[0])
NextEP0State = `C_EP0_DA_OTRNT; //Nyet
else if ((RxData0 & DataTog) | (RxData1 & ~DataTog))
NextEP0State = `C_EP0_DA_OTRAK;
else if ((RxData0 | RxData1) & CRC16Good & RejectPacket)
NextEP0State = `C_EP0_DA_OTNAK;
else if ((RxData0 | RxData1) & CRC16Good)
NextEP0State = `C_EP0_DA_OTNYT;//Nyte
....
I can not understand the difference of those two Nyte. The first Nyte maybe is indicating that there are not enough space in the endpoint for the next out transfer ,but how is the second Nyte's function? so I wonder whether some friends who are familiar with USB2.o can ask my question. Thanks a lot
The Rtl code is as follow:
`C_EP0_DA_OWDA: begin //this state is to wait the out data
if (((RxData0 & DataTog) | (RxData1 & ~DataTog)) & CSR0[0])
NextEP0State = `C_EP0_DA_OTRNT; //Nyet
else if ((RxData0 & DataTog) | (RxData1 & ~DataTog))
NextEP0State = `C_EP0_DA_OTRAK;
else if ((RxData0 | RxData1) & CRC16Good & RejectPacket)
NextEP0State = `C_EP0_DA_OTNAK;
else if ((RxData0 | RxData1) & CRC16Good)
NextEP0State = `C_EP0_DA_OTNYT;//Nyte
....
I can not understand the difference of those two Nyte. The first Nyte maybe is indicating that there are not enough space in the endpoint for the next out transfer ,but how is the second Nyte's function? so I wonder whether some friends who are familiar with USB2.o can ask my question. Thanks a lot