17.1.2 Communication Overview

The programmer and the PE communicate using the EJTAG Address, Data and Fastdata registers. In particular, the programmer transfers the command and data to the PE using the Fast Data register. The programmer receives a response from the PE using the Address and Data registers. The pseudo operation of receiving a response is shown in the GetPEResponse pseudo operation below:

Format:
response = GetPEResponse()
Purpose:
  • Enables the programmer to receive the 32-bit response value from the PE.
Example: GetPEResponse pseudo operation:
WORD GetPEResponse()
{
WORD response;
// Wait until CPU is ready
SendCommand(ETAP_CONTROL);
// Check if Proc. Access bit (bit 18) is set
do {
controlVal=XferData(32’h0x0004C000 );
} while(PrAcc(contorlVal[18]) is not ‘1’ );
// Select Data Register
SendCommand(ETAP_DATA);
// Receive Response
response = XferData(0);
// Tell CPU to execute instruction
SendCommand(ETAP_CONTROL);
XferData(32’h0x0000C000);
// return 32-bit response
return response;
}

The typical communication sequence between the programmer and the PE is shown in Table 17-1.

The sequence begins when the programmer sends the command and optional additional data to the PE, and the PE carries out the command.

When the PE has finished executing the command, it sends the response back to the programmer.

The response may contain more than one response. For example, if the programmer sent a READ command, the response will contain the data read.

Table 17-1. Communication Sequence for the PE
Step NumberOperationOperand
Step 1

Send command and optional data from programmer to the PE

XferFastData(Command | data len)
XferFastData..optional data..
Step 2Programmer reads the response from the PE.
GetPEResponseresponse
GetPEResponse...response...