Si te gustaría diseñar hardware, estos son los elementos que necesitas conocer

En el diseño de procesadores los elementos básicos son las puertas lógicas, que de manera combinada se utilizan para crear sistemas combinacionales y secuenciales que permiten las memorias y procesadores complejos que utilizan los ordenadores desde los albores de la informática. En este artículo os vamos a dar una clase maestra de lo que son las puertas lógicas junto a los sistemas combinacionales y secuenciales.

Ya os comentamos anteriormente, a través del artículo «¿Cómo se diseña el hardware? Así trabajan los ingenieros de diseño» las herramientas que a día de hoy se utilizan para el diseño del hardware. En este artículo en cambio os introduciremos lo que son las puertas lógicas y los productos de la combinación de estas, los sistemas combinaciones y secuenciales.

¿Qué son las puertas lógicas?

Procesador Microscopio

Las puertas lógicas son combinaciones de transistores que son las unidades mínimas para construir cualquier semiconductor, ya estemos hablando de la construcción de una memoria ya sea volátil o no volátil como de cualquier tipo de procesador. Por lo que cualquier semiconductor que se encuentra en un ordenador sea del tipo que sea está compuesto de puertas lógicas, hasta el microcontrolador que controla la nevera que hay en tu cocina lo está.

Todas las puertas lógicas tienen un número determinado de entradas y una sola salida y se encargan de realizar una operación concreta sobre los datos de entrada sobre los pines. En cada pin se emite un pulso que es binario, ya que solo puede tener dos valores que los llamamos alto o 1 lógico o bajo o 0 lógico. Al contrario de la creencia popular una señal baja no significa una señal sin electricidad sino una con un voltaje más bajo.

Para poder visualizar mejor a nivel mental los ceros y los unos lógicos pensad en ellos como un pulsador, el cual tiene solo dos posiciones.

Tipos de puertas lógicas

Puertas Lógicas

Las puertas lógicas utilizadas en el diseño de memorias y procesadores son las siguientes:

  • Puerta OR: la salida será un cero lógico cuando al menos en uno de los pines de entrada de la puerta OR hay un 1. En el caso de que todos los valores de entrada sean 0 entonces el valor de salida será 0.
  • Puerta AND: la salida solo puede ser un uno lógico si todos los valores de entrada son unos lógicos. En cualquier otro caso la salida es siempre cero lógico.
  • Puerta XOR: la salida es un uno lógico cuando solo uno de los pines de entrada reciben una señal en alto y el resto están en bajo, en el resto de casos el pulso de salida será bajo o cero lógico.
  • Inversor: No es una puerta lógica, simplemente se encarga de cambiar la señal de alto a bajo. Se utiliza para crear las puertas lógicas negadas.
  • Puerta NOR: es la inversa de la puerta OR, la salida solo será uno lógico cuando todass las señales de entrada sean cero lógico. Al revés que la puerta OR la salida será cero lógico si al menos uno de las señales de entrada están en alto o uno lógico.
  • Puerta NAND: es la inversa de la puerta AND por lo que la salida será siempre un uno lógico, excepto cuando todos los valores de entradas sean uno lógico, entonces la salida será cero lógico.
  • Puerta XNOR: es la puerta XOR invertida. La salida es cero lógico cuando al menos una de las entradas es un uno lógico, en otras condiciones la salida será siempre uno lógico.

Sistemas Combinacionales

Sumador Sistema Combinacional

Los sistemas combinacionales no son más que combinaciones complejas de puertas lógicas en las que las entradas y salidas se combinan para obtener circuitos más complejos. Un ejemplo de sistemas combinacionales son los descodificadores, que convierten la señal de entrada en la selección de una salida y que son utilizados para acceder a los datos de una memoria RAM o en la unidad de control de un procesador. Otro tipo de circuitos combinacionales son las ALUs de las unidades de ejecución de CPUs y GPUs que se encargan de realizar operaciones aritméticas con los datos de entrada.

Podemos dividir los circuitos combinacionales en dos tipos distintos:

  • Elementos que sirven para realizar operaciones de lógica y aritmética.
  • Elementos que sirven para la transmisión de datos como multiplexores, demultiplexores, codificadores, descodificadores, etc.

Al contrario que los sistemas secuenciales, los sistemas combinacionales no funcionan por ciclos de reloj y la señal de salida será obtenida «inmediatamente».

Sistemas Secuenciales

Sistema Secuencial con puerta lógicas

Un sistema secuencial es una combinación de varías puertas lógicas, pero organizada de tal manera que recuerda el pasado. Con ellas se pueden construir elementos como los biestables y los latches que pueden almacenar bits de información. Como apunte, los registros de un procesador están compuestos por biestables, también conocidos como Flip-Flops.

Los sistemas secuenciales utilizan necesitan una señal de reloj para funcionar, la cual cada determinada cantidad de tiempo reciben un pulso en alto, siendo la velocidad de reloj la inversa del tiempo de cada ciclo. (1/tiempo de cada ciclo). Por ejemplo un procesador a 1 MHz cambia de bajo a alto 1 millón de veces por segundo. Un circuito complejo puede tener múltiples velocidades de reloj y fases.

De cara a visualizar el funcionamiento de un sistema secuencial imaginaos un grupo de personas que se encuentran en una habitación y que solo pueden pasar a siguiente habitación cuando suena un silbato, el cual es un ciclo de reloj. Por lo que al contrario que los sistemas combinacionales donde la salida se obtiene en un solo ciclo de reloj, los sistemas secuenciales funcionan por fases y la señal pasa de una parte a otra del circuito por ciclo de reloj.