common mistakes in hardware design