Logical design of digital systems