Designing Application-Specific Integrated Circuits