Some devices will list a negative setup and very large hold time requirement. The main ones I’ve seen were DACs. Negative setup times seem impossible at first — what circuit would be able to latch the data at the clock edge, and output the value that the data will have in the future?
The key to understanding negative setup times is to realize that such times are for the inputs to a system. The actual devices inside the system will still have a positive setup requirement.
This is possible if the input clock experiences a different amount of delay compared to the input data. In such a case, the user presents the clock first. Next the data is presented. The clock is delayed by a large enough amount that this late data arrives at the internal registers first.
It’s only magic until you see inside the box.
