Fast AMBA Peripherals
12-56
GMS30C7201 Data Sheet
Digital Phase Lock Loop
The Digital Phase Lock Loop module takes the incoming data signals from the USB,
synchronizes them to the 48MHz input clock, and then looks for USB data transitions.
Based on these transitions, the module creates a divide-by-4 clock called the
usbclock
. Data is then output from this module synchronous to the
usbclock
.
Input NRZI decode and bit-unstuff
The Input NRZI decode and bit-unstuff module extracts the NRZI encoded data from
the incoming USB data. Transitions on the input serial stream indicate a 0, while no
transition indicates a 1. Six ones in a row cause the transmitter to insert a 0 to force a
transition, therefore any detected zero bit that occurs after six ones is thrown out.
Packet Decoder
The Packet Decoder
module receives incoming data bits and decodes them to detect
packet information. It checks that the PID (Packet ID) is valid and was sent without error.
After decoding the PID, the remainder of the packet is split into the address, endpoint,
and CRC5 fields, if present. The CRC Checker is notified to verify the data using the
incoming CRC5 field. If the packet is a data packet, the data is collected into bytes and
passed on with an associated valid bit.
Table 12-35: Supported PID Types
shows the
PID Types that are decoded (marked as either Receive or Both). At the end of the
packet, either the
packetok
or
packetnotok
signal is asserted.
Packetnotok
is
asserted if any error condition arose (bad valid bit, bit-stuff, bad PID, wrong length of a
field, CRC error, etc.).
Packet Encoder
The Packet Encoder creates outgoing packets based on signals from the DEV.
Table 12-35: Supported PID Types
shows the PID Types that can be encoded
(marked as Send or Both). For each packet type, if the associated signal
sendtype
is
received from the DEV, the packet is created and sent. Upon completion of the packet,
packettypesent
is asserted to inform the DEV of the successful transmission. The
Packet Encoder creates the outgoing PID, grabs the data from the DEV a byte at a time,
signals the CRC Generator to create the CRC16 across the data field, and then sends
the CRC16 data. The serial bits are sent to the Output bit stuff and NRZI encoder.
PID Type
Value
Send/Receive
OUT
4
’
b0001
Receive
IN
4
’
b1001
Receive
SOF
4
’
b1101
Receive
SETUP
4
’
b0000
Receive
DATA0
4
’
b0011
Both
DATA1
4
’
b1011
Both
ACK
4
’
b0010
Both
NAK
4
’
b1010
Send
STALL
4
’
b1110
Send
PRE
4
’
b1100
Receive
Table 12-35: Supported PID Types