Portes Lògiques i Àlgebra de Boole

A la vida real, les portes lògiques són combinacions de transistors, que són les unitats mínimes per construir qualsevol semiconductor. Utilitzant aquestes combinacions podem contruir una infinitat de components, des de memòries (volàtils i no volàtils) fins a processadors, i passant també pels microcontroladors de tots els aparells electrònics que es troben a casa teva.

En aquest cas, en canvi, ens centrarem més en les portes lògiques aplicades a l'àlgebra de Boole i als càlculs teòrics.


Què és l'àlgebra de Boole?

L'àlgebra de Boole és una branca de les matemàtiques amb propietats i regles similars, tot i que diferents, a les de l'àlgebra ordinària. Va ser creada per George Boole durant el primer quart del segle XIX. Pretenia explicar les lleis fonamentals d'aquelles operacions de la ment humana per les quals es regeixen els raonaments. Posteriorment, aquesta àlgebra va ser utilitzada per al disseny de circuits digitals. L'eina bàsica per a l'anàlisi i el disseny de circuits digitals és l'àlgebra booleana.

L'àlgebra de Boole té una característica especial: les seves variables només poden adoptar dos valors, tradicionalment denominats cert i fals (normalment representats com a 1 i 0, respectivament). Així doncs, l'àlgebra de Boole utilitza valors lògics binaris.

Viquipèdia - Àlgebra de Boole


Tipus de portes lògiques

  • AND

    Aquesta porta lògica és representada per una multiplicació a l'Àlgebra de Boole.

    És necessari que totes les entrades tinguin un estat binari 1 perquè la sortida també sigui 1. En la resta dels casos, la sortida serà 0.

    Porta lògica
  • OR

    Aquesta porta lògica és representada per una suma a l'Àlgebra de Boole.

    Perquè la sortida sigui 1, és necessari que alguna de les entrades sigui 1. Si totes les entrades són 0, la sortida serà 0.

    Porta lògica
  • XOR

    Aquesta porta també és coneguda com a "OR exclusiva" i es sol representar amb l'operador .

    En aquest cas, la sortida només serà 1 si els valors d'entrada són diferents. En la resta de casos, la sortida serà 0.

    Porta lògica
  • NOT (inversor)

    Aquesta porta lògica és representada habitualment pels símbols ¬ ~ !. També es sol utilitzar una barra a sobre de la variable.

    Aquesta porta només té una entrada i una sortida, i realitza la funció d'un inversor. Si l'entrada és 1, la sortida serà 0, i si l'entrada és 0, la sortida serà 1.

    Porta lògica
  • NAND

    Aquesta porta actua de manera completament contrària a la porta AND.

    Quan totes les seves entrades són 1, la sortida serà 0. En la resta de casos, la sortida serà 1.

    Porta lògica
  • NOR

    Aquesta porta actua de manera completament contrària a la porta OR.

    Quan alguna de les seves entrades sigui 1, la sortida serà 0. Quan totes les seves entrades siguin 0, la sortida serà 1.

    Porta lògica
  • XNOR

    Aquesta porta actua de manera completament contrària a la porta XOR.

    Quan les entrades siguin iguals, la sortida serà 1. Quan les entrades siguin diferents, la sortida serà 0.

    Porta lògica
  • IF

    Aquesta porta no sol ser molt utilitzada, ja que no realitza una funció com les descrites anteriorment, sinó que realitza una funció de buffer. El comportament és el mateix que si només hi hagués un cable connectat, però a la pràctica és utilitzat com a amplificador de corrent o com a seguidor de tensió per adaptar impedàncies.

    Porta lògica
    Porta lògica
    Porta lògica

Sistememes combinacionals

Els sistemes combinacionals no són més que combinacions complexes de portes lògiques, creades amb l'objectiu de realitzar funcions molt concretes, unint les seves entrades i sortides.

Alguns exemples reals de sistemes combinacionals podrien ser: multiplexors i demultiplexors, codificadors i descodificadors, comparadors, generadors/detectors de paritat, sumadors, o les ALU dels processadors (unitats encarregades de realitzar operacions aritmètiques i lògiques).

En aquests sistemes, la sortida s'obté de manera gairebé immediata un cop s'aplica l'entrada, a diferència dels sistemes seqüencials que veurem a continuació.


Sistemes seqüencials

Els sistemes seqüencials també són combinacions de portes lògiques, amb la peculiaritat de que estan "sotmeses" al temps i poden recordar estats anteriors i variar la seva sortida en funció d'aquests. Això s'aconsegueix afegint un rellotge al circuit, que envia impulsos cada cert temps, o el que és el mateix, envia un voltatge "alt".

Aquest temps ve determinat per la freqüència del rellotge. Per exemple, un rellotge amb una freqüència de 1MHz canviarà entre els voltatges "alt" i "baix" 1 milió de vegades per segon.

Per poder emmagatzemar els estats anteriors, aquests sistemes també necessiten tenir memòria. Algunes de les més habituals són les cel·les de memòria DRAM o SRAM, o els biestables (també coneguts com a flip-flops).

Un exemple senzill per entendre aquests sistemes és un peatge a la carretera. A cada impuls del rellotge (cicle), s'aixeca la barrera i un cotxe pot passar.


Com realitzar càlculs utilitzant les portes lògiques i l'àlgebra de Boole

Per a realitzar els càlculs més senzills, únicament necessitarem conèixer les portes lògiques i com funcionen en cada cas. Tot i així, per realitzar operacions més complexes necessitarem també conèixer les normes de l'Àlgebra de Boole, així com algunes estrategies que haurem de seguir en alguns casos.

Regles/lleis de l'àlgebra booleana

  • Llei d'anul·lació: Una variable multiplicada per 0 sempre serà 0 i una variable sumada amb 1 sempre serà 1.
    A * 0 = 0
    A + 1 = 1
  • Llei d'identitat: Una variable sumada amb 0 o multiplicada per 1 sempre serà igual al valor inicial.
    A + 0 = A
    A * 1 = A
  • Llei idempotent: Una variable sumada o multiplicada per ella mateixa serà igual a la mateixa variable, és a dir, no es modificarà.
    A + A = A
    A * A = A
  • Llei complement: Una variable multiplicada pel seu complement sempre serà 0 i una variable sumada amb el seu complement sempre serà 1.
    A * ¬A = 0
    A + ¬A = 1
  • Llei commutativa: No importa l'ordre d'aplicació de dos termes separats.
    A * B = B * A
    A + B = B + A
  • Llei de la doble negació: El complement doble d'una variable és sempre igual a la variable.
    ¬¬A = A
  • Teorema de Morgan:
    • Dos termes negats individualment i sumats entre ells són iguals als dos termes multiplicats i negats de manera conjunta.
      ¬A + ¬B = ¬(A * B)

    • Dos termes negats individualment i multiplicats entre ells són iguals als dos termes sumats i negats de manera conjunta.
      ¬A * ¬B = ¬(A + B)
  • Llei distributiva: Aquesta llei permet la multiplicació o factorització d'una expressió.
    A (B + C) = AB + AC
    A + (BC) = (A + B) * (A + C)
  • Llei d'absorció: Aquesta llei permet reduir expressions absorbint termes semblants.
    A + (AB) = A
    A (A + B) = A
  • Llei associativa: Aquesta llei permet reagrupar variables.
    A + (B + C) = (A + B) + C = A + B + C
    A (BC) = (AB) C = A * B * C

Exemple de simplificació

Volem simplificar la següent expressió: (X * Y * Z) + (Y * Z) + (X * Y)
  • Apliquem la llei associativa i la llei identitat A * 1 = A:
    X * (Y * Z) + 1 * (Y * Z) + (X * Y)

  • Factoritzem (Y * Z):
    (X + 1) * (Y * Z) + (X * Y)

  • Ja que A + 1 = 1 segons la llei identitat, X + 1 = 1:
    1 * (Y * Z) + (X * Y)

  • Un cop realitzada l'operació, ja tindrem simplificada l'expressió:
    (Y * Z) + (X * Y)

  • Encara podem simplificar més l'expressió factoritzant Y:
    Y * (Z + X)
Expressió final: Y * (Z + X)