Interface to numpad in VHDL. Numlock button support
I do not know ANY VHDL, but I think I might be able to help with the working idea.
As I see now, your modules are totally stateless. I'm not sure if they are synchronous or asynchronous, but in this state they could easily be the later.
To implement numlock, you will need some internal state. A simple on-off signal should do it. Pressing numlock should toggle it, and return should be based on it. The later is easier, the former is a bit more different.
I'd suggest creating a new signal - numlock_pressed. It should simply be based on hex_key. You might need to debounce this signal. Then a simple synchronous toggle on the internal state is needed.