  We describe a many-channel experiment control system based on a
field-programmable gate array (FPGA). The system has 16 bit resolution on 10
analog 100 MS/s input channels, 14 analog 100 MS/s output channels, 16 slow
analog input and output channels, dozens of digital inputs and outputs, and a
touchscreen display for experiment control and monitoring. The system can
support 10 servo loops with 155 ns latency and MHz bandwidths, in addition to
as many as 30 lower bandwidth servos. We demonstrate infinite-impulse-response
(IIR) proportional-integral-differential (PID) filters with 30 ns latency by
using only bit-shifts and additions. These IIR filters allow timing margin at
100 MS/s and use fewer FPGA resources than straightforward multiplier-based
filters, facilitating many servos on a single FPGA. We present several specific
applications: H\"ansch-Couillaud laser locks with automatic lock acquisition
and a slow dither correction of lock offsets, variable duty cycle temperature
servos, and the generation of multiple synchronized arbitrary waveforms.
