Computer-aided Design for Digital Systems