Glitch issue , How to solve it?

I tried this code and it is working, Is it the best solution or is there anything better than this one?


  //always@(posedge pulse_done) begin
  always@(negedge clk) begin
      if(pulse_done)
          pulse_done_cnt <= pulse_done_cnt + 1;
  end