CPLDs are probably not an optimal choice cost-wise due to limited registers - a small FPGA would probably be better. If all you want is PWM, then there are several dedicated chips, many of which also do current regulation.
However as a learning exercise it's a fairly good choice - fairly simple to get going initially, then plenty of scope to explore different ways to implement to maximise efficiency.