Un circuito combinacional es aquel en el que las salidas dependen de la combinación de los valores de entrada, pero sin importar otros posibles valores anteriores que hubiesen existido en el circuito.

Por decirlo de manera simple, un circuito que no se basa en estados anteriores para funcionar, sino en los valores de entrada que le llegan en un momento dado, y punto.

Todo esto como se entiende de verdad es haciendo un ejemplo.

Así que vamos a implementar el circuito electrónico de control del motor para una bicicleta híbrida.

El circuito debe controlar el motor eléctrico de una bici, según las especificaciones siguientes:

Especificaciones

Las especificaciones de un poyecto son las que definen el comportamiento que queremos implementar.

En este caso:

  • Solo debe activarse el motor si el ciclista pedalea.
  • Se debe desactivar cuando la velocidad supere los 25 Km/h.

Un detector codifica la velocidad mediante dos señales (que llamaremos V1 y V2), según esta tabla:

Según los estados lógicos de ambas entradas, sabré en qué rango de velocidades estoy.

Extraemos la información de esta tabla de la siguiente manera:

  • Si las dos señales están apagadas o en estado cero, es porque voy a menos de 5Km/h.
  • Si solo se activa la señal V2, es porque voy entre 5 y 15 Km/h.
  • Si solo se activa la señal V1, es porque voy entre 15 y 25 Km/h.
  • Y si se activan las dos es porque he pasado el límite.

Lo primero que hay que hacer construir el diagrama de bloques, que es una representación del diseño que vamos a plantear, exponiendo las entradas y salidas que tendrá el sistema.

Esta parte es fundamental, dado que resume el problema en un solo vistazo, de forma que podemos tener todo muy claro antes de ponernos a trabajar en la solución.

Sirve también para discutir el diseño tanto con el cliente como con los demás miembros del equipo.

Posteriormente habrá que definir todas las señales:

  • V1 y V2 para las señales de velocidad.
  • P para la señal que indica que el ciclista está pedaleando.
  • M para la señal que indica que el motor debe estar activo.

Las señales pueden ser activas en alto o activas en bajo, lo que básicamente significa si debemos hacer que tengan efecto cuando valgan 1 o cuando valgan 0.

Por defecto, se consideran las señales activas en alto; es decir, en este caso por ejemplo se considera que el motor debe estar activo si la señal M vale 1.

Si fuese activa en bajo, significaría que el motor debe estar activo cuando la señal M vale 0.

Ahora tendremos que construir la tabla de verdad, en la que se representa la funcionalidad del circuito, codificando todas las posibles combinaciones de las variables de entrada (todos los vectores de entrada posibles).

En este caso tenemos 3 entradas, luego hay $2^3\:=\:8$ vectores posibles:

Los casos en los que la velocidad está por debajo de 25 km/h y el usuario está pedaleando, deben hacer que la señal M se active, para que se active el motor.

A partir de la tabla de verdad sintetizamos la expresión lógica, para lo que teemos dos técnicas:

  • Utilizar la suma de términos mínimos.
  • Utilizar el producto de términos máximos.

Vamos a hacer los dos:

Suma de términos mínimos

Buscar todos los vectores que tienen como salida M = 1.

Multiplicar los componentes de cada vector entre sí, negando los que son cero.

Sumar todos los términos.

Así:

$M_{min}\:=\:\bar{V1}\:\cdot\:\bar{V2}\:\cdot\:P\:+\:\bar{V1}\:\cdot\:V2\:\cdot\:P\:+\:V1\:\cdot\:\bar{V2}\:\cdot\:P$

Producto de términos máximos

Buscar todos los vectores que tienen como salida M = 0.

Sumar los componentes de cada vector entre sí, negando los que son uno.

Multiplicar todos los términos.

Así:

$M_{max}\:=\:(V1\:+\:V2\:+\:P)\:\cdot\:(V1\:\bar{V2}\:+\:P)\:\cdot\:(\bar{V1}\:+\:V2\:+\:P)\:\cdot\:(\bar{V1}\:+\:\bar{V2}\:+\:P)\:\cdot\:(\bar{V1}\:+\:\bar{V2}\:+\:\bar{P})$

El resultado

Tanto la M por min-términos como la M por máx-términos tienen el mismo resultado.

Este resultado podemos reducirlo realizando operaciones algebraicas, aunque esto puede dar lugar a errores.

Lo que hacemos generalmente es usar las Tablas de Karnaugh.

Tablas de Karnaugh

Es una herramienta para simplificar expresiones de manera gráfica.

Con lo que la solución final queda: