Beruflich Dokumente
Kultur Dokumente
Resumen
El documento a continución presenta el desarrollo de un conjunto de compuertas lógicas como AND, XOR, NOT,
OR, entre otras. Con su respectiva descripción, tabla de verdad y contrucción en tres lenguajes de programación para ser
implementados en la FPGA Spartan 3E incorporada en la placa de desarrollo Basys 2.
1. I NTRODUCCI ÓN
Las compuertas lógicas son los dispositivos mas comunes dentro de la electronica digital, cada uno de los dispositivos
tienen una función booleana. Sumar, multiplicar, negar, afirmar, incluir o excluir, según sus propiedades lógicas. Se
pueden aplicar a tecnologı́a electrónica, eléctrica, mecánica, hidráulica y neumática.
En el mundo de las compuertas existen dos estados logicos, alto (denotado por un 1 y en un circuito electrico
corresponde al nivel mas alto de tensión) y bajo (denotado por un 0 y corresponde al nivel mas bajo de tensión). Cada
una de las compuertas lógicas se las representa mediante un sı́mbolo, y la operación de cada una de estas se puede
expresar mediante una tabla de verdad, que representa las combinaciones posibles que puede tener en sus entradas y
el valor que toma la salida en cada caso, y una ecuación lógica, la cual es una expresión matemática que representa
la operación que la compuerta realiza.
En lógica programable es posible desarrollar, simular e implementar funciones tan sencillas como las llevadas a cabo
por una puerta lógica hasta complejos sistemas en un chip, por medio de lenguajes de descripción especializados.
A continuación, serán descritas diferentes compuertas lógicas en lenguaje Verilog, VHDL y Squematic, los cuales
son funcionales y pueden ser implemetados en un chip FPGA como el Xiling Spartan 3E. [?].
2. D ESARROLLO
La compuerta NOT, tambien llamada compuerta inversora, como la compuerta AND y la compuerta OR son muy
importantes en la construcción de circuitos lógicos, ya que con la combinación de estas se pueden generar las demas.
Esta compuerta entrega en su salida el inverso u opuesto de la entrada. Su simbolo y ecuación se pueden ver a
continuación.
Figura 1. Simbolo y ecuación booleana de la compuerta NOT.
La salida de una compuerta NOT tiene el valor inverso al de su entrada. En la tabla de verdad siguiente se ve que
la salida X = S. Esto significa que:
0 1
1 0
• Lenguaje VHDL
----------------------------------------------------------------------------------
library IEEE; --Librerias basadas en la norma IEEE
use IEEE.STD_LOGIC_1164.ALL; --Libreria para funciones aritmeticas
end VHDL;
begin
• Lenguaje Verilog
//----------------------------------
module Verilog(x,s); // Declaración de inicio del modulo con el nombre de Verilog y sus
2-B. Compuerta OR
En una compuerta OR, la salida será “1”,cuando en cualquiera de sus entradas haya un “1”. En la figura 1 se muestra
su simbolo y ecuación lógica representativa para 2 entradas. El simbolo algebraico de esta compuerta es el de la suma
’+’.
0 0 0
0 1 1
1 0 1
1 1 1
• Lenguaje VHDL
----------------------------------------------------------------------------------
library IEEE; --Librerias basadas en la norma IEEE
use IEEE.STD_LOGIC_1164.ALL; --Libreria para funciones aritmeticas
entity VHDL is --Declaración de la entidad funcional gate
Port ( x: in STD_LOGIC; --Declaración de puerto de entrada x
y: in STD_LOGIC; --Declaración de puerto de entrada y
s: out STD_LOGIC); --Declaración de puerto de salida s
end VHDL;
begin
• Lenguaje Verilog
//----------------------------------
• Lenguaje Schematic
La compuerta AND lógica más conocida tiene dos entradas X e Y,como muestra su sı́mbolo en la figura, aunque
puede tener muchas más (X,Y,A,B,C, etc.) y sólo tiene una salida S.
La compuerta AND de 2 entradas tiene la siguiente tabla de verdad. Se puede ver claramente que la salida S
solamente es “1” (1 lógico, nivel alto) cuando la entrada X como la entrada Y están en “1”. Es decir, la salida S es
igual a 1 cuando la entrada X y la entrada Y son 1.
0 0 0
0 1 0
1 0 0
1 1 1
• Lenguaje VHDL
----------------------------------------------------------------------------------
library IEEE; --Librerias basadas en la norma IEEE
use IEEE.STD_LOGIC_1164.ALL; --Libreria para funciones aritmeticas
• Lenguaje Verilog
//----------------------------------
• Lenguaje Schematic
Una compuerta NAND de dos entradas, se puede implementar con la combinación de una compuerta AND de dos
entradas y una compuerta NOT o compuerta inversora. Su sı́mbolo y ecuación lógica se pueden ver en la siguiente figura.
Figura 6. Simbolo y ecuación booleana de la compuerta NAND.
Al igual que en el caso de la compuerta AND, ésta se puede encontrar en versiones de 2, 3 o más entradas. Su tabla
de verdad es la siguiente:
0 0 1
0 1 1
1 0 1
1 1 0
• Lenguaje VHDL
----------------------------------------------------------------------------------
library IEEE; --Librerias basadas en la norma IEEE
use IEEE.STD_LOGIC_1164.ALL; --Libreria para funciones aritmeticas
begin
s <= not(x and y); --Ecuación logica que representa la compuerta NAND
end Behavioral;
• Lenguaje Verilog
//----------------------------------
module Verilog(x,y,s); // Declaración de inicio del modulo con el nombre de Verilog y s
• Lenguaje Schematic
Una compuerta NOR de dos entradas, es equivalente a implementar la combinación de una compuerta OR de dos
entradas y una compuerta NOT o compuerta inversora. Su sı́mbolo y ecuación lógica se pueden ver en la siguiente figura.
0 0 1
0 1 0
1 0 0
1 1 0
• Lenguaje VHDL
----------------------------------------------------------------------------------
library IEEE; --Librerias basadas en la norma IEEE
use IEEE.STD_LOGIC_1164.ALL; --Libreria para funciones aritmeticas
begin
• Lenguaje Verilog
//----------------------------------
La compuerta XOR u OR exclusiva es muy importante ya que se utiliza en variadas aplicaciones como la imple-
mentación de lo que se denomina un comparador digital. La figura que sigue muestra el simbolo y ecuación lógica de
una compuerta XOR de 2 entradas.
A diferencia de la compuerta OR, la compuerta XOR tiene una salida igual a “0” cuando sus entradas son iguales
a 1. Si se comparan las tablas de verdad de la compuerta OR y la compuerta XOR se observa que la compuerta XOR
tendrá un uno (“1”) en su salida solamente cuando una de sus entradas es unos “1”, como se ve a continuación.
0 0 0
0 1 1
1 0 1
1 1 0
• Lenguaje VHDL
----------------------------------------------------------------------------------
library IEEE; --Librerias basadas en la norma IEEE
use IEEE.STD_LOGIC_1164.ALL; --Libreria para funciones aritmeticas
begin
s <= ((not x) and y) or ((not y) and x);--Ecuación logica que representa la compuerta X
end Behavioral;
• Lenguaje Verilog
//----------------------------------
• Lenguaje Schematic
Figura 11. Bloque utilizado para la programación de compuerta XOR.
Al igual que la compuerta XOR, el NOR-exclusivo o XNOR es una compuerta que solo tiene dos entradas. La salida
es BAJA o 0 únicamente cuando las dos entradas están a niveles lógicos diferentes. Su simbolo y exuación booleana
son los siguientes.
Como se ve en la tabla de verdad a continuación, XNOR tiene el comportamiento opuesto a NOR, lo que eventual-
mente es util en variadas aplicaciones.
0 0 1
0 1 0
1 0 0
1 1 1
• Lenguaje VHDL
----------------------------------------------------------------------------------
library IEEE; --Librerias basadas en la norma IEEE
use IEEE.STD_LOGIC_1164.ALL; --Libreria para funciones aritmeticas
begin
s <= (x and y) or not(y and x);--Ecuación logica que representa la compuerta XNOR
end Behavioral;
• Lenguaje Verilog
//----------------------------------
• Lenguaje Schematic
Una compuerta lógica es un dispositivo que nos permite obtener resultados, dependiendo de los valores de las señales
que le ingresemos. Es necesario aclarar entonces que las compuertas lógicas se comunican entre sı́ (como tambien lo
hacen los FPGA), usando el sistema BINARIO. Este consta de solo 2 indicadores 0 y 1 llamados BIT dado que en
electrónica solo hay 2 valores equivalentes 0=0volt 1=5volt (conectado a 5volt-desconectado). Es decir que cuando
conectamos una compuerta a el negativo equivale a introducir un cero (0) y por el contrario si derivamos la entrada a 5v
le estamos enviando un uno (1). Ahora, cada compuerta lógica realiza una operación aritmética o lógica diferente, que
se representa mediante un sı́mbolo de circuito. La operación que realiza (operación lógica) tiene correspondencia con
una determinada tabla, llamada “Tabla de Verdad”. Ası́, conociendo las operaciones lógicas basicas, se puede combinar
con los chips programables, como FPGAs, para simular, implementar y diseñar nuevos circuitos lógicos que integren
alguna, todas o mas de las compuertas ya conocidas y generar finalmente un componente acorde a las necesidades del
problema lógico a resolver.