Gate generation