hardware design for reliability