A previous article, “Designing a Custom Processor Peripheral Using Xilinx EDK,” explored methods of creating custom processor peripherals to be attached to the Processor Local Bus (PLB v4.6). Adding custom hardware to a processor system is a powerful way of increasing its power, but adding that hardware as a peripheral on a bus is not always the best way to solve a given problem. Busses are designed to be flexible and to permit many different functional blocks to share a common communications path. This flexibility is achieved at the expense of maximum performance; because all bus transactions require arbitration and handshaking to occur, this can be wasteful in time-critical applications. This White Paper examines ways to add custom hardware to a processor to achieve hardware acceleration without sacrificing performance of the processor or the bus to which it is attached.