Set a constant high signal to low
The way I do this in firmware is to detect a change in the input (after rejecting noise and bounce) and then generate an event based on key press or an even based on key release for each key. 

You can then use the key press and release events, in conjunction with timers to do all the usual functions you associate with keys on modern electronics. Hold the key for 3 seconds to get into a special mode, Hold the key, then release it to lock in an encoder setting or whatever. 

Edit: Based on your changes, in the case of using VHDL (hardware) this can be accomplished with a clock and flip-flops. Simply compare the input X to a delayed version of the input X'. That will give you a one-clock pulse for the input rising edge (and, if you want it, a one-clock pulse for the input falling edge). It works just the same in an HDL as in sequential code.