VHDL Fpga debouncing
Since you didn't identify any specific difficulties, here's a quick run-through. If there are points you still don't understand, ask followup questions in the comments below.

flipflops is used to create an edge detector; counter_set pulses high every time there's an input transition. (Note that this is poor design &mdash; since button is an asynchronous input, there should be at least one more flipflop to reduce the chance of metastability.)

Every time counter_set pulses high, counter_out is cleared; otherwise it counts up until the MSB gets set, at which time result is set to the same state as button.

As a demo, the code increments counter_10 on every debounced transition (both low-to-high and high-to-low), which then gets decoded for a 7-segment display. In place of this, you could toggle your LED. If you want the LED to only toggle on one edge and not the other, make it conditional on result.