degate function