Asynchronous Version
module Sender(right)
output reg right;
output reg data;
always
begin
 right = data;
`SYNC(right);
end
endmodule
module Receiver(left)
input left;
output reg data;
always
begin
  `SYNC(left);
   data= left;
end
endmodule
}Distributed Synchronization
}Sender
}Provide data
}Synchronize
}Receiver
}Synchronize
}Sample data
}
}
}
Sender
Receiver
6
CE-653 - Handshake Channel Design