beautypg.com

Teledyne LeCroy Voyager Exerciser Generation Script Language Manual User Manual

Page 67

background image

Teledyne LeCroy

Voyager USB 3.0 Exerciser Generation Script Language Reference Manual

58

The following fields in this structure are relevant to the instruction and are reflected in the
Pipe Command when it is executed:

o DeviceAddr: Specifies the USB address of the device to be used for the command.
o Endp, Dir: Specifies the Endpoint number and direction for the command.
o NumP: Specifies the burst size for the data transfer.
o Route String: Used if the traffic should be passing through a hub.
o SeqN: Specifies the starting sequence number, if the asn parameter is set to zero.
o StreamID: Specifies the Stream ID to be used for this data transfer. For endpoints supporting

the USB3 Bulk Streaming protocol, when a non-zero Stream ID is used, special handling is
applied for the Pipe Command (see below).

The following special considerations are applied while executing Pipe Commands:

1. Sequential versus Parallel Processing

Transaction Engine can send IN transactions in parallel with OUT transactions. If a
Pipe Command is started in the IN direction and the next Pipe Command defines a transfer in the
OUT direction, the second Pipe Command starts immediately. However, if the second command
is in the IN direction, Transaction Engine will wait until the first command in the IN direction
completes before starting.

Since Control transfers include transactions in both directions, an order of execution of
Control Transfer stages should be guaranteed. For this purpose, there is an option to process a
Pipe Command in a sequential manner, after all the previous commands in both directions have
completed. This mode is automatically turned on for all Pipe Commands on the control endpoint
(default endpoint zero).

To define sequential processing for a non-control endpoint, set the ForceSeq bit in the
PipeCommandData structure to 1.

2. Bulk Streaming Operation

Transaction Engine includes support for the Bulk Streaming protocol. For this purpose, it holds a
special Stream List for pending stream Pipe Commands. In Host Emulation mode, when a
Pipe Command with a non-zero Stream ID is queued, it is not executed immediately, but instead
placed on the Stream List. Later, when the device executes stream selection on a certain
endpoint with a specific Stream ID (by sending the EDRY packet with this Stream ID), the
corresponding Pipe Command is removed from the Stream List and scheduled for execution.

To support the transition to Idle state of Bulk Streaming state machines, special handling of the
Prime Stream ID is added. A Break on NRDY option is added for Pipe Commands. When it is
selected, command operation will stop upon receiving an NRDY TP from the device. This option
is automatically turned on for transactions with Prime Stream ID. To turn it on for other
Pipe Commands, set the BrkOnNRDY bit in the PipeCommandData structure to 1.

The Bulk Streaming facilities of Transaction Engine are used to implement UASP storage
protocol scripting.