A fully implantable neural data acquisition system is a key component of a clinically viable cortical brain-machine interface. We present the design and implementation of a single-chip device that serves the processing needs of such a system. Our device processes 96 channels of multi-unit neural data and performs all digital processing necessary for bidirectional wireless communication. The implementation utilizes a single programmable logic device that is responsible for performing data reduction on the 96 channels of neural data, providing a bidirectional telemetry interface to a transceiver and performing command interpretation and system supervision. The device takes as input neural data sampled at 31.25 kHz and outputs a line-encoded serial bitstream containing the information to be transmitted by the transceiver. Data can be output in one of the following four modes: (1) streaming uncompressed data from a single channel, (2) extracted spike waveforms from any subset of the 96 channels, (3) 1 ms bincounts for each channel or (4) streaming data along with extracted spikes from a single channel. The device can output up to 2000 extracted spikes per second with latencies suitable for a brain-machine interface application. This device provides all of the digital processing components required by a fully implantable system.