Skip to Content
Organización del ComputadorÁlgebra Booleana y Compuertas Lógicas

Álgebra Booleana y Compuertas Lógicas

Axiomas y Propiedades de Álgebra Booleana

Sea BB un conjunto de elementos: B={a,b,c,}B = \{a, b, c, \ldots\} y el conjunto {0,1}\{0, 1\}
Sea Φ\Phi un conjunto de operaciones binarias: Φ={+,,}\Phi = \{+, \cdot, '\} (or, and, not)

Estos elementos conforman un álgebra de Boole si se cumplen los axiomas:

  • Clausura:   a,bB    a+b,  abB\;a, b \in B \implies a + b, \; a \cdot b \in B

  • Conmutatividad:   a+b=b+a,  ab=ba\;a + b = b + a, \; a \cdot b = b \cdot a

  • Axioma del 00:     0B    a+0=a,  a0=0\; \exists \; 0 \in B \; | \; a + 0 = a, \; a \cdot 0 = 0

  • Axioma del 11:     1B    a+1=1,  a1=a\; \exists \; 1 \in B \; | \; a + 1 = 1, \; a \cdot 1 = a

  • Distributividad de ++ respecto a \cdot,   a(b+c)=ab+ac\;a \cdot (b + c) = a \cdot b + a \cdot c

  • Distributividad de \cdot respecto a ++,   a+bc=(a+b)(a+c)\;a + b \cdot c = (a + b) \cdot (a + c)

  • Inverso:   aB      aB    a+a=1,  aa=0\;a \in B \implies \exists \; a' \in B \; | \; a + a' = 1, \; a \cdot a' = 0

  • Cardinalidad:   B2\;|B| \geq 2

También se encuentran los siguientes teoremas:

  • Ley de Morgan: (a+b)=ab,  (ab)=a+b(a + b)' = a' \cdot b', \; (a \cdot b)' = a' + b'

  • Involución: (a)=a(a')' = a

  • Absorción: a+ab=a,  a(a+b)=a,  a+ab=a+ba + ab = a, \; a(a+b) = a, \; a + a'b = a + b

Funciones Booleanas

Una función booleana es una función que toma valores booleanos y devuelve valores booleanos. Se puede representar mediante una tabla de verdad.

Ejemplo: F1=x+yzF_1 = x + y'z


xxyyzzF1F_1
00000000
00001111
00110000
00111111
11000000
11001111
11110000
11111111

Compuertas Lógicas

Las compuertas lógicas son circuitos electrónicos que realizan operaciones booleana según los valores de entrada.

Estas son las compuertas con su respectiva ecuación:


Compuertas Lógicas

Las compuertas NOR y NAND son universales, estas compuertas pueden representar las funciones NOT, AND, OR.

Las funciones booleanas se pueden representar mediante compuertas lógicas. Es posible simplificar las funciones booleanas como suma de minitérminos mim_i o producto de maxitérminos MiM_i

Tomemos la tabla de verdad de tres variables binarias:


xxyyzzTérminosMinitérminosTérminosMaxitérminos
000000xyzx'y'z'm0m_0x+y+zx+y+zM0M_0
000011xyzx'y'zm1m_1x+y+zx+y+z'M1M_1
001100xyzx'yz'm2m_2x+y+zx+y'+zM2M_2
001111xyzx'yzm3m_3x+y+zx+y'+z'M3M_3
110000xyzxy'z'm4m_4x+y+zx'+y+zM4M_4
110011xyzxy'zm5m_5x+y+zx'+y+z'M5M_5
111100xyzxyz'm6m_6x+y+zx'+y'+zM6M_6
111111xyzxyzm7m_7x+y+zx'+y'+z'M7M_7

Una función f=xyz+xyz  f = x'y'z' + xyz\; se puede expresar como f=m0+m7f = m_0 + m_7

Mapas de Karnaugh

Los mapas de Karnaugh son una herramienta para simplificar funciones booleanas. Cada cuadrado representa un minitérmino y se agrupan los cuadrados que contienen 11‘s.

Un mapa de dos variables se ve así:


Mapa 1

Si queremos representar una función de tres variables como f(x,y,z)=(2,3,4,5)f(x, y, z) = \sum (2, 3, 4, 5) (suma correspondiente a minitérminos) en un mapa de Karnaugh, se vería así:


Mapa 2

Para mantener ese orden solo un bit cambia por columna. El cuadrado m5m_5, por ejemplo, corresponde a la fila 11 y a la columna 0101. Concatenados son 101101, es decir, en decimal 55.


Mapa 3

Al igual que con una tabla de verdad, podemos expresar la función como suma de minitérminos o producto de maxitérminos. Para ello agrupamos en forma de cuadrado/rectángulo los 11‘s’ o 00‘s, respectivamente.

Una vez agrupados, tenemos una expresión canónica de la función, que se puede simplificar. En este ejemplo si sumamos minitérminos no es necesario reducir.

f(x,y,z)=xy+xyf(x,y,z)=(x+y+z)(x+y+z)(x+y+z)(x+y+z)\begin{aligned} f(x, y, z) &= xy' + x'y \\ f(x, y, z) &= (x'+y'+z')(x'+y'+z)(x+y+z)(x+y+z') \end{aligned}

Dependiendo el caso, podemos marcar una celda con una XX si su valor es indiferente. Dependiendo los valores del mapa, puede resultar más sencillo agrupar 00 o 11.

Funciones pares e impares

La función par es un detector de paridad entre 00‘s o 11‘s, esta se puede simplificar como f=(ABC)f = (A \oplus B \oplus C)'
La función impar es un detector de imparidad entre 00‘s p 11‘s, esta se puede simplificar como f=ABCf = A \oplus B \oplus C

Un generador de paridad par en un mensaje de tres bits podría verse así:


xxyyzzParidad xyzx \oplus y \oplus z
00000000
00001111
00110011
00111100
11000011
11001100
11110000
11111111

Esto funciona como una detección de bits erróneos en un mensaje, necesitando un verificador de errores de paridad que compare el mensaje con el detector de paridad:


xxyyzzParidad xyzx \oplus y \oplus zVerificador
0000000000
0000001111
0000110011
0000111100
0011000011
0011001100
0011110000
0011111111
\ldots\ldots\ldots\ldots\ldots

Cuando el verificador es 11, se sabe que hay un error en el mensaje (activo por alto).

Última vez actualizado el