It is known that flip-flop has setup and hold time requirement for signal transition to happen properly. On the other hand, any violation of setup or hold time will cause metastability.
This is usually discussed in situation when a flip-flop is trying to register an asynchronous input, as discussed in the link below:
http://www.asic-world.com/tidbits/metastablity.html
It also suggests using cascaded flip-flops to prevent metastability to occur, according to the "So how do I avoid metastability?" section in the link above. In this case, Wouldn't metastability occur at the second flip-flop? Say at a rising clock edge, if fin(2) is going to change in delta time, it (as an input to the second flip-flop) may not fulfill the hold time and change too early so that the second flip-flop may not register it properly?
Therefore, shouldn't we use falling clock edge for the first flip-flop, and rising edge for the second flip-flop? So that fin(2) will not change when the second flip-flop is trying to read it?
This is usually discussed in situation when a flip-flop is trying to register an asynchronous input, as discussed in the link below:
http://www.asic-world.com/tidbits/metastablity.html
It also suggests using cascaded flip-flops to prevent metastability to occur, according to the "So how do I avoid metastability?" section in the link above. In this case, Wouldn't metastability occur at the second flip-flop? Say at a rising clock edge, if fin(2) is going to change in delta time, it (as an input to the second flip-flop) may not fulfill the hold time and change too early so that the second flip-flop may not register it properly?
Therefore, shouldn't we use falling clock edge for the first flip-flop, and rising edge for the second flip-flop? So that fin(2) will not change when the second flip-flop is trying to read it?