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:
response = GetPEResponse()
- Enables the programmer to receive the 32-bit response value from the PE.
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.
Step Number | Operation | Operand |
---|---|---|
Step 1 |
Send command and optional data from programmer to the PE | |
XferFastData | (Command | data len) | |
XferFastData.. | optional data.. | |
Step 2 | Programmer reads the response from the PE. | |
GetPEResponse | response | |
GetPEResponse... | response... |