A testbench is a piece of code that you can see as a testing environment. You take some signal generators, and current/voltage meters and probe every signal you like (!no variables). In order to do this you have to put some signals on the inputs of the level you want to test. For this you use a testbench.
Try to look deeper in your design. How far do your signals carry? E.g. The 25 clock. Add this clock to the waveform and see if it works. If needs be you can do this for every signal by adding them in this way: "add wave top-level/lower_levels/signal_name".
Your simulation may have a problem in an incomplete sensitivity list, but I haven't checked this.