A simple communication protocal for fpgaEva


What is fpgaEva?

fpgaEva is a heterogeneous FPGA evaluation tool. Please go to the fpgaEva's homepage to learn more about it.

The purpose of this document

fpgaEva is a frontend of the RASP system developed at UCLA. The fpgaEva can use the RASP system installed on our Lab's machines to do the evaluation, if there is no one on the user's machine. In this case, the fpgaEva is acting like a client program that's sitting on the user's machine and communicating with the server machine in our lab to evaluate the architecture. This document is to specify how the messages and data are transferred between the fpgaEva client and our server machine.


The fpgaEva communication protocal is built on TCP. It has a similar flavor with the SMTP protocol.

Commands and possible return codes

HELO Version=a.b
to report the version of fpgaEva
Possible response from server:
260 Server-Version=1.0          # Ok, I can understand you. My version is 1.0
561 Server doesn't support version a.b     # Oops, I don't understand fpgaEva version a.b. Connection will be closed

to request a unique ID for this session
Possible response from server:
260 23456                           # The ID for this session is 23456

CANCEL 23456
ask server to end session which has ID 23456
To cancel a session, you must: have the same IP address with that session
Possible response from server:
260 23456 cancelled          # Ok, I've cancelled that session. The connection of session 23456 will be closed
560 Failed                          # I can't cancel that session.

ask server to end this session
Possible response from server:
260 Goodbye

PROPOSAL ProposalName
fpgaEva is going to send a proposal file to the server for evaluation. This is a multistage command.
Possible response from server:
360-Please send the content of ProposalName          # Ok, I am ready to receive that file
360 followed by \n^Z\n                                                 # Please use \n^Z\n to terminate that file
fpgaEva should send the contents of the proposal after received "360 " response. After that, it should send a ^Z ('\25') to mark the end of proposal.
If everything is ok, the server will respond a "260 " after received the ^Z.
560 Failed

EXEC HeteroMap
EXEC cutmap_eab_pack
fpgaEva ask the server to evaluate the recently sent Proposal using the method specified by the word after "EXEC"
Possible response from server:
260-output of the specified method
260-it could be the status
260-fpgaEva should display it to the user
260 Done
If some thing goes wrong, fpgaEva could receive a response of "502" or "560", even after received "260-".
502 method not supported
560 Failed

fpgaEva ask the server to send back the test result from last "EXEC" command. This is another multi-stage command
Possible response from server:
160-Results will be sent after next line
160 It's a text file appended by \n^Z\n                # It's always a text file in unix format -- new line is represented by '\n'
fpgaEva should copy all the contents it received after "160 " and before "\n^Z\n" to a text file. It's the result of last "EXEC" The server will send a "260 " response after it sent the \n^Z\n file terminator.
If some thing goes wrong, fpgaEva could receive the following responses:
560 Failed

Last modified by huanghui@cs.ucla.edu, May 20,1999