Two-level logic minimization: an overview