Finite State Machine Datapath Design, Optimization, and Implementation by Robert Reese & Justin Davis