https://vlsiweb.com/handshake-protocols-2/