1. A method of automatically generating an accelerator comprising: generating a parameter queue, directly coupled to a host processor, for receiving one or more function parameters from the host processor and allowing the queuing of accelerator tasks; generating a result queue, directly coupled to the host processor, for returning one or more result values to the host processor; generating a logic for: carrying out a software function in hardware, fetching the one or more function parameters from the parameter queue, and pushing the one or more result values onto the result queue; generating a global port for directly accessing global variables of the software function from global memory, wherein each global variable is accessed through a global variable access state machine, and providing a first non-arbitrated direction connection from the accelerator to global memory; generating a global map comprising the location of required global variables in the global memory; and generating a host port, allowing the host processor to access the accelerator, and providing a second non-arbitrated direction connection from the host processor to the accelerator.