Here’s a simple motor controller implementation using CPLDs from Xilinx.
To enable a CPLD to turn the electromagnets on and off, external transistor drivers must be used. A unipolar stepper motor can be driven by four identical NPN or N-channel drivetransistors. The various Xilinx CPLDs can operate with I/O voltages from 1.5V to 5V. The CPLD capable of delivering the appropriate output voltages should be selected for use with transistor drivers that can accept and understand the voltage.