Typically the data input of a flop needs to be valid (static) before the clock goes active (the setup time), and the data input needs to stay valid (static) after the clock goes active (the hold time).
The setup and hold requirements for flops are there to be sure the Master, of the Master-Slave configuration, is able to capture the data without going metastable.
The clock-q time is how long it takes for the new data to be "seen" (propagate) on the output of the flop.
As you crank up the clock frequency, you will see a point where the data going from one flop through some combinational logic to another flop starts to violate the setup and hold requirements of the receiving flop. This clock frequency is the frequency where your circuit breaks.