2 fix typo
source | link

I think the term "contamination delay" is used to refer to the minimum possible duration between when the inputs cease to hold their old valid input levels and the earliest moment when the outputs might cease to hold their old valid output levels. The term "minimum propagation delay" is often used for this purpose, but such usage implies that the term "propagation delay" actually measures two things:

  • The amount of time between when an input first ceases to be a valid representation of the old level, and when the output is first allowed to case to be a valid level.

  • The amount of time between when an input assumes a stable valid logic level, and the time by which the output is required to have assume a stable logic level.

If one assumes that an input will simultaneously cease to be a valid low and become a valid high, or vice versa, the starting reference for these two times will be the same. In some cases, however, they may be different. Further, the term "propagation delay" generally implies that something useful is being propagated, but in some cases an input stimulus may cause an output which was valid, and which should remain in its present state, to become momentarily invalid before returning to the state it had held previously.

Imagine, for example, a circuit which is supposed to output "high" when an 16-bit ripple ripple counter has a value from 32767 to 65534, inclusive. Ideally, the circuit would start outputting a "high" precisely on the arrival of the 32,767th pulse (assuming the counter started at zero) and go low on the arrival of the 65,536th535th pulse. Absent some extra circuitry, however, the circuit may very well go low briefly with the arrival of the 32,768th pulse (when it should just sit high), and go high briefly with the arrival of the 65,536th pulse (when it should just sit low). Depending upon what the "compare" output is doing, the fact that it briefly becomes invalid on those pulses may or may not be an issue, but it would seem a little awkward to think of its behavior in terms of "minimum and maximum propagation time". In all the cases where the output is supposed to change, it will do so after a flop delay and a couple gate delays. In some cases where it isn't supposed to change, however, it will do so anyway and will remain in the wrong state for 16 flop delays (much longer than the time required for a "proper" switch). A term like "contamination delay" may be more suitable for that.

I think the term "contamination delay" is used to refer to the minimum possible duration between when the inputs cease to hold their old valid input levels and the earliest moment when the outputs might cease to hold their old valid output levels. The term "minimum propagation delay" is often used for this purpose, but such usage implies that the term "propagation delay" actually measures two things:

  • The amount of time between when an input first ceases to be a valid representation of the old level, and when the output is first allowed to case to be a valid level.

  • The amount of time between when an input assumes a stable valid logic level, and the time by which the output is required to have assume a stable logic level.

If one assumes that an input will simultaneously cease to be a valid low and become a valid high, or vice versa, the starting reference for these two times will be the same. In some cases, however, they may be different. Further, the term "propagation delay" generally implies that something useful is being propagated, but in some cases an input stimulus may cause an output which was valid, and which should remain in its present state, to become momentarily invalid before returning to the state it had held previously.

Imagine, for example, a circuit which is supposed to output "high" when an 16-bit ripple ripple counter has a value from 32767 to 65534, inclusive. Ideally, the circuit would start outputting a "high" precisely on the arrival of the 32,767th pulse (assuming the counter started at zero) and go low on the arrival of the 65,536th pulse. Absent some extra circuitry, however, the circuit may very well go low briefly with the arrival of the 32,768th pulse (when it should just sit high), and go high briefly with the arrival of the 65,536th pulse (when it should just sit low). Depending upon what the "compare" output is doing, the fact that it briefly becomes invalid on those pulses may or may not be an issue, but it would seem a little awkward to think of its behavior in terms of "minimum and maximum propagation time". In all the cases where the output is supposed to change, it will do so after a flop delay and a couple gate delays. In some cases where it isn't supposed to change, however, it will do so anyway and will remain in the wrong state for 16 flop delays (much longer than the time required for a "proper" switch). A term like "contamination delay" may be more suitable for that.

I think the term "contamination delay" is used to refer to the minimum possible duration between when the inputs cease to hold their old valid input levels and the earliest moment when the outputs might cease to hold their old valid output levels. The term "minimum propagation delay" is often used for this purpose, but such usage implies that the term "propagation delay" actually measures two things:

  • The amount of time between when an input first ceases to be a valid representation of the old level, and when the output is first allowed to case to be a valid level.

  • The amount of time between when an input assumes a stable valid logic level, and the time by which the output is required to have assume a stable logic level.

If one assumes that an input will simultaneously cease to be a valid low and become a valid high, or vice versa, the starting reference for these two times will be the same. In some cases, however, they may be different. Further, the term "propagation delay" generally implies that something useful is being propagated, but in some cases an input stimulus may cause an output which was valid, and which should remain in its present state, to become momentarily invalid before returning to the state it had held previously.

Imagine, for example, a circuit which is supposed to output "high" when an 16-bit ripple ripple counter has a value from 32767 to 65534, inclusive. Ideally, the circuit would start outputting a "high" precisely on the arrival of the 32,767th pulse (assuming the counter started at zero) and go low on the arrival of the 65,535th pulse. Absent some extra circuitry, however, the circuit may very well go low briefly with the arrival of the 32,768th pulse (when it should just sit high), and go high briefly with the arrival of the 65,536th pulse (when it should just sit low). Depending upon what the "compare" output is doing, the fact that it briefly becomes invalid on those pulses may or may not be an issue, but it would seem a little awkward to think of its behavior in terms of "minimum and maximum propagation time". In all the cases where the output is supposed to change, it will do so after a flop delay and a couple gate delays. In some cases where it isn't supposed to change, however, it will do so anyway and will remain in the wrong state for 16 flop delays (much longer than the time required for a "proper" switch). A term like "contamination delay" may be more suitable for that.

1
source | link

I think the term "contamination delay" is used to refer to the minimum possible duration between when the inputs cease to hold their old valid input levels and the earliest moment when the outputs might cease to hold their old valid output levels. The term "minimum propagation delay" is often used for this purpose, but such usage implies that the term "propagation delay" actually measures two things:

  • The amount of time between when an input first ceases to be a valid representation of the old level, and when the output is first allowed to case to be a valid level.

  • The amount of time between when an input assumes a stable valid logic level, and the time by which the output is required to have assume a stable logic level.

If one assumes that an input will simultaneously cease to be a valid low and become a valid high, or vice versa, the starting reference for these two times will be the same. In some cases, however, they may be different. Further, the term "propagation delay" generally implies that something useful is being propagated, but in some cases an input stimulus may cause an output which was valid, and which should remain in its present state, to become momentarily invalid before returning to the state it had held previously.

Imagine, for example, a circuit which is supposed to output "high" when an 16-bit ripple ripple counter has a value from 32767 to 65534, inclusive. Ideally, the circuit would start outputting a "high" precisely on the arrival of the 32,767th pulse (assuming the counter started at zero) and go low on the arrival of the 65,536th pulse. Absent some extra circuitry, however, the circuit may very well go low briefly with the arrival of the 32,768th pulse (when it should just sit high), and go high briefly with the arrival of the 65,536th pulse (when it should just sit low). Depending upon what the "compare" output is doing, the fact that it briefly becomes invalid on those pulses may or may not be an issue, but it would seem a little awkward to think of its behavior in terms of "minimum and maximum propagation time". In all the cases where the output is supposed to change, it will do so after a flop delay and a couple gate delays. In some cases where it isn't supposed to change, however, it will do so anyway and will remain in the wrong state for 16 flop delays (much longer than the time required for a "proper" switch). A term like "contamination delay" may be more suitable for that.