hardware design and testing automation