Setup time and hold time
For a flip-flop to capture data correctly, there is a window around the clock edge during which the data must not change. The time required before the edge is the setup time, and the time required after the edge is the hold time.
A setup violation happens when data arrives too late to meet the setup time; it can be fixed by slowing down the clock. A hold violation happens when the data changes to the next value too early to meet the hold time; lowering the clock frequency does not fix it, so it is corrected by adding delay.
Try it: timing of data transitions
Move the time at which the data takes its new value (arrival) and the time at which it changes to the next value, measured from the clock edge at 0, and check whether the setup and hold times are met. The setup time is 0.3 ns and the hold time is 0.2 ns.