Sie sind auf Seite 1von 15

Lógica Programable

Semestre 1 - 2018 - Tarea I


Daniel Gutiérrez Dı́az
dgutierrez12@alumnos.utalca.cl

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

2-A. Compuerta NOT

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:

Tabla de verdad compuerta NOT


Entrada X Salida S = X’

0 1
1 0
• 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
s: out STD_LOGIC; --Declaración de puerto de entrada s

end VHDL;

architecture Behavioral of VHDL is --Arquitectura de la compuerta NOT

begin

s <= not x --Ecuación logica que representa la compuerta NOT


end Behavioral;

• Lenguaje Verilog
//----------------------------------
module Verilog(x,s); // Declaración de inicio del modulo con el nombre de Verilog y sus

input x; // Declaración de variable x como entrada


output s; // Declaración de variable s como salida

assign s = ˜x ; //Sentecia para definir operación logica NOT

endmodule // Declaración del fin del modilo Verilog

• Direccionamiento de entrada y salida


//Declaración de direccines I/O
//Declaración de entrada
NET "x" LOC = "F3"; //Asigna la variable a la dirección F3 correspodiente a un switch
//Declaración de salidas
NET "s" LOC = "N4"; //Asigna la variable c la dirección N4 correspodiente a un led

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
’+’.

Figura 2. Simbolo y ecuación booleana de la compuerta OR.

Tabla de verdad compuerta OR


Entrada X Entrada Y Salida S = X + Y

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;

architecture Behavioral of VHDL is --Arquitectura de la compuerta OR

begin

s <= x or y; --Ecuación logica que representa la compuerta OR


end Behavioral;

• Lenguaje Verilog
//----------------------------------

module Verilog(x,y,s); // Declaración de inicio del modulo con el nombre de Verilog y s

input x,y; // Declaración de variables x e y como entradas


output s; // Declaración de variable s como salida

assign s = ( x | y) ; //Sentecia para definir operación logica OR

endmodule // Declaración del fin del modilo Verilog

• Lenguaje Schematic

Figura 3. Bloque utilizado para la programación de compuerta OR.

• Direccionamiento de entradas y salidas


//Declaración de direccines I/O
//Declaración de entradas
NET "x" LOC = "F3"; //Asigna la variable a la dirección F3 correspodiente a un switch
NET "y" LOC = "G3"; //Asigna la variable b la dirección G3 correspodiente a un switch
//Declaración de salidas
NET "s" LOC = "N4"; //Asigna la variable c la dirección N4 correspodiente a un led

2-C. Compuerta AND

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.

Figura 4. Simbolo y ecuación booleana de la compuerta AND.

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.

Tabla de verdad compuerta AND


Entrada X Entrada Y Salida S= X * Y

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

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;

architecture Behavioral of VHDL is --Arquitectura de la compuerta AND


begin

s <= x and y; --Ecuación logica que representa la compuerta AND


end Behavioral;

• Lenguaje Verilog
//----------------------------------

module Verilog(x,y,s); // Declaración de inicio del modulo con el nombre de Verilog y s

input x,y; // Declaración de variables x e y como entradas


output s; // Declaración de variable s como salida

assign s = ( x & y) ; //Sentecia para definir operación logica AND

endmodule // Declaración del fin del modilo Verilog

• Lenguaje Schematic

Figura 5. Bloque utilizado para la programación de compuerta AND.

• Direccionamiento de entradas y salidas

//Declaración de direccines I/O


//Declaración de entradas
NET "x" LOC = "F3"; //Asigna la variable a la dirección F3 correspodiente a un switch
NET "y" LOC = "G3"; //Asigna la variable b la dirección G3 correspodiente a un switch
//Declaración de salidas
NET "s" LOC = "N4"; //Asigna la variable c la dirección N4 correspodiente a un led

2-D. Compuerta NAND

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:

Tabla de verdad compuerta NAND


Entrada X Entrada Y Salida S= not(X * Y)

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

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;

architecture Behavioral of VHDL is --Arquitectura de la compuerta NAND

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

input x,y; // Declaración de variables x e y como entradas


output s; // Declaración de variable s como salida

assign s = ˜( x & y); //Sentecia para definir operación logica NAND

endmodule // Declaración del fin del modilo Verilog

• Lenguaje Schematic

Figura 7. Bloque utilizado para la programación de compuerta NAND.

• Direccionamiento de entradas y salidas

//Declaración de direccines I/O


//Declaración de entradas
NET "x" LOC = "F3"; //Asigna la variable a la dirección F3 correspodiente a un switch
NET "y" LOC = "G3"; //Asigna la variable b la dirección G3 correspodiente a un switch
//Declaración de salidas
NET "s" LOC = "N4"; //Asigna la variable c la dirección N4 correspodiente a un led

2-E. Compuerta NOR

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.

Figura 8. Simbolo y ecuación booleana de la compuerta NOR.


A continuación, se presenta la tabla de verdad que muestra como el comportamiento de esta compuerta es el opuesto
a una compuerta OR, debido al inversor que posee en su composición.

Tabla de verdad compuerta NOR


Entrada X Entrada Y Salida S= not(X + Y)

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

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;

architecture Behavioral of VHDL is --Arquitectura de la compuerta NOR

begin

s <= not(x or y); --Ecuación logica que representa la compuerta NOR


end Behavioral;

• Lenguaje Verilog
//----------------------------------

module Verilog(x,y,s); // Declaración de inicio del modulo con el nombre de Verilog y s

input x,y; // Declaración de variables x e y como entradas


output s; // Declaración de variable s como salida

assign s = ˜( x | y); //Sentecia para definir operación logica NOR

endmodule // Declaración del fin del modilo Verilog


• Lenguaje Schematic

Figura 9. Bloque utilizado para la programación de compuerta NOR.

• Direccionamiento de entradas y salidas

//Declaración de direccines I/O


//Declaración de entradas
NET "x" LOC = "F3"; //Asigna la variable a la dirección F3 correspodiente a un switch
NET "y" LOC = "G3"; //Asigna la variable b la dirección G3 correspodiente a un switch
//Declaración de salidas
NET "s" LOC = "N4"; //Asigna la variable c la dirección N4 correspodiente a un led

2-F. Compuerta XOR

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.

Figura 10. Simbolo y ecuación booleana de la compuerta XOR.

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.

Tabla de verdad compuerta XOR


Entrada X Entrada Y Salida S= (notX*Y) + (notY*X)

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

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;

architecture Behavioral of VHDL is --Arquitectura de la compuerta XOR

begin

s <= ((not x) and y) or ((not y) and x);--Ecuación logica que representa la compuerta X
end Behavioral;

• Lenguaje Verilog
//----------------------------------

module Verilog(x,y,s); // Declaración de inicio del modulo con el nombre de Verilog y s

input x,y; // Declaración de variables x e y como entradas


output s; // Declaración de variable s como salida

assign s = (˜x&y) | (˜y&x); //Sentecia para definir operación logica XOR

endmodule // Declaración del fin del modilo Verilog

• Lenguaje Schematic
Figura 11. Bloque utilizado para la programación de compuerta XOR.

• Direccionamiento de entradas y salidas

//Declaración de direccines I/O


//Declaración de entradas
NET "x" LOC = "F3"; //Asigna la variable a la dirección F3 correspodiente a un switch
NET "y" LOC = "G3"; //Asigna la variable b la dirección G3 correspodiente a un switch
//Declaración de salidas
NET "s" LOC = "N4"; //Asigna la variable c la dirección N4 correspodiente a un led

2-G. Compuerta XNOR

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.

Figura 12. Simbolo y ecuación booleana de la compuerta XNOR.

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.

Tabla de verdad compuerta XNOR


Entrada X Entrada Y Salida S= (X*Y) + not(Y*X)

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

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;

architecture Behavioral of VHDL is --Arquitectura de la compuerta XNOR

begin

s <= (x and y) or not(y and x);--Ecuación logica que representa la compuerta XNOR
end Behavioral;

• Lenguaje Verilog
//----------------------------------

module Verilog(x,y,s); // Declaración de inicio del modulo con el nombre de Verilog y s

input x,y; // Declaración de variables x e y como entradas


output s; // Declaración de variable s como salida

assign s = (x&y) | ˜(x&y); //Sentecia para definir operación logica XNOR

endmodule // Declaración del fin del modilo Verilog

• Lenguaje Schematic

• Direccionamiento de entradas y salidas

//Declaración de direccines I/O


//Declaración de entradas
NET "x" LOC = "F3"; //Asigna la variable a la dirección F3 correspodiente a un switch
Figura 13. Bloque utilizado para la programación de compuerta XNOR.

NET "y" LOC = "G3"; //Asigna la variable b la dirección G3 correspodiente a un switch


//Declaración de salidas
NET "s" LOC = "N4"; //Asigna la variable c la dirección N4 correspodiente a un led
3. C ONCLUSIONES

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.

Das könnte Ihnen auch gefallen