Logic Design: A Review Of Theory And Practice