HIGH and LOW calculation for circuits

On [#harris-harris-digital-design], chapter 1.

Digital systems use simplified representations of our analog reality. In the case of circuits, we have to translate current values (which are analog, thus not precise all the time) to 0s (coded as LOW) and 1s (coded as HIGH).

The way this is done is by defining ranges. I,e., above 2V, this should be HIGH, bellow it, this should be LOW.

Of course things are not are clear cut as the example above, so we have to allow for some wiggle room, which is aptly named as Noise margins.

Before I put an image, let me provide some definitions:

HIGH: 1 LOW: 0 V: Voltage NM: Noise margin VDD: Max voltage O: Output I: Input H: High L: Low Forbidden zone: place where we ignore the voltage. It is the space between the limit to consider something LOW and the limit to consider something HIGH

To illustrate this a bit better:

  Driver            Receiver
----|>o---------------|>

Vdd ======        ======
     HIGH          HIGH
Voh ======..............        
             NMh
    ..............====== Vih
				  
        Forbidden Zone
		
    ..............====== Vil
             NMl
Vol ======..............        
     LOW           LOW
0   ======        ======

And to define NMs:

$$NM_L = V_{IL} - V_{OL}$$ $$NM_H = V_{OH} - V_{IH}$$


[#harris-harris-digital-design]: Harris, David Money, and Sarah L. Harris. Digital Design and Computer Architecture. Second edition. Amsterdam: Elsevier, 2013.