You are on page 1of 6

UNIVERSIDAD POLITCNICA SALESIANA

AVANZADOS

CIRCUITOS DIGITALES

Fecha: 15/05/2015

IMPLEMENTACIN DE CIRCUITOS COMBINACIONALES


PRCTICA 2
Quito, 19 de Mayo del 2015
Grupo 1
Sandoval Suquillo Hector Isidro
hsandoval@est.ups.edu.ec

RESUMEN: Un circuito comparador combinatorio


compara dos entradas binarias (A y B de n bits) para
indicar la relacin de igualdad o desigualdad entre ellas
por medio de "tres banderas lgicas" que corresponden
a las relaciones A igual B, A mayor que B y A menor que
B. Cada una de estas banderas se activara solo cuando
la relacin a la que corresponde sea verdadera, es decir,
su salida ser 1 y las otras dos producirn una salida
igual a cero.
Mediante lgebra de Boole y diagramas se quiere
mostrar cmo se puede construir fcilmente un
comparador binario de n bits a partir de comparadores
ms simples de dos y cuatro bits para implementar de
manera rpida uno de estos circuitos combinatorios.
Todo el texto cubrir de manera detallada los procesos y
anlisis requeridos para desarrollar un comparador que
puede procesar nmeros enteros con signo y retorne su
salida activando con una seal igual a 1 la bandera que
indique el tipo de relacin entre dos nmeros binarios de
n bits.

En el presente informe se describe el funcionamiento


de un circuito comparador de dos nmeros A y B de dos
bit cada uno, el cdigo se ha realizado en VHDL, por lo
que A, B sern vectores, existen tres salidas lgicas
respectivamente X, Y, Z, como indicadores de los
resultados obtenidos en la comparacin. Posteriormente
tambin se realizara el anlisis de un cdigo enfocado al
manejo de puertos de salida y entrada en el FPGA.

3. MARCO TERICO
3.1 CIRCUITO COMBINACIONAL
Los circuitos lgicos pueden ser de tipo secuencial o
combi nacional. Bsicamente un circuito combinacional
se define como un circuito lgico en el cual, sus salidas
estn determinadas en todo momento por sus entradas.

PALABRAS CLAVE: FPGA Spartan-3E, software Xilinx


ISE Design Suite 12.1, computador.

1. OBJETIVOS
1.1 OBJETIVO GENERAL

Disear e implementar circuitos combinaciones


en la tarjeta Spartan-3E.

1.2 OBJETIVOS ESPECFICOS

Disear eh implementar de una forma ptima


un comparador de dos bits.

Fig 1. Circuito combinacional [1].

Disear
e
implementar
un
circuito
combinacional el cual prenda las salidas de
acuerdo al nmero que se coloque en los
switch.

Las
operaciones
que
realiza
un
circuito
combinacional, se pueden definir mediante un conjunto
de ecuaciones booleanas, por lo cual dicho circuito
puede ser diseado en base de tablas de verdad.

2. INTRODUCCIN

Entre los circuitos combinacionales ms conocidos


constan:

UNIVERSIDAD POLITCNICA SALESIANA


AVANZADOS

CIRCUITOS DIGITALES

Fecha: 15/05/2015

Lgicos

Multiplexor y Demultiplexor

Codificador y Decodificador

Comparador

Aritmticos

Sumador

4. MATERIALES Y EQUIPO

Estos circuitos estn compuestos nicamente


por puertas lgicas interconectadas entre s.

Tarjeta Spartan 3E de Diligent.


Software de programacin ISE de Xilinx.
Cable USB de enlace.
Cable PPI para comunicacin.

3.2 COMPARADOR BINARIO DE 2 BITS

5. DESARROLLO
PROCEDIMIENTO

Se puede decir que el funcionamiento del circuito


combinacional a disear, es anlogo al funcionamiento
del circuito integrado 7485 estudiado en los cursos
anteriores, el cual es un circuito comparador de 4 bits.

Para el desarrollo de los ejercicios que constan en


esta prctica se utiliz el software Xilinx ISE Design
Suite 12.1, el cual nos da la posibilidad de programar un
FPGA tanto en lenguaje Verilog como VHDL.

5.1 Disear un comparador de dos nmeros


A y B de dos bits cada uno.
En el diseo correspondiente al comparador,
fsicamente se tendrn 4 entradas, las cuales al tomarse
en pares, conforman una nica entrada individual.
Adems
se considerarn tres salidas fsicas,
representadas por leds, las cuales darn una seal
visual que definir la condicin ejecutada, respecto a la
comparacin de las entradas.
Fig 1. Circuito logico combinacional integrado 7485 [1].
Al igual que el ya mencionado integrado 7485, el
circuito que se diseara, tambin presentara tres
salidas, cada una de ellas cubrir uno de los posibles
resultados obtenidos al realizarse una comparacin,
igual, menor que o mayor que.
Entonces para realizar el respectivo diseo del
circuito, analizaremos los posibles. Sean A y B las
entradas del circuito combinacional de dos bits cada
una de ellas.
Tabla 1. Tabla de verdad.
A
A(1)

B
B(1)

A(0)

X
B(0)

A>B A=B A<B

A(1)>B(1)

A(0)>B(0)

A(1)=B(1)

A(0)=B(0)

A(1)<B(1)

A(0)<B(0)

A(1)>B(1)

A(0)=B(0)

A(1)<B(1)

A(0)=B(0)

A(1)=B(1)

A(0)>B(0)

A(1)=B(1)

A(0)<B(0)

A(1)<B(1)

A(0)>B(0)

A(1)>B(1)

A(0)<B(0)

Fig 2. Codigo VHDL


Con el cdigo terminado y correctamente compilado,
procedemos a definir, los puertos fsicos destinados a
cada entrada y salida lgica.

UNIVERSIDAD POLITCNICA SALESIANA


AVANZADOS

CIRCUITOS DIGITALES

Fecha: 15/05/2015
Mediante la opcin I/O planing las variables lgicas,
tomarn una representacin fsica en la tarjeta FPGA.
Para realizar la asignacin de variables en la FPGA,
consideramos los nombres que cada puerto tiene en la
placa, adems de configuraciones referentes a niveles
de voltaje, drives, etc.

Fig. 6 Cuando A>B se enciende el led 3.


Fig. 3 Asignacin de variables mediante I/O planing.
En este entorno se asign variables de software a
hardware, aqu se asign tanto las salidas como las
entradas de acuerdo a los nombres que se encuentran
en la tarjeta.
Para finalizar el proceso, despues de configurara la
targeta, se genero el archivo de programa, el cual fue
cargado en la tarjeta.

Fig. 7 Si A<B se enciende el led 0.


Los resultados obtenidos, fueron consistentes con
los esperados y planteados en el programa.

5.2 Manejo Bsico de Puertos fsicos


mediante Cdigo.
En el segundo ejercicio, se plantea implementar un
vector de 4 bits el cual en relacin con cuatro switch
fsicos, debe encender determinado led de izquierda a
derecha para mostrar una numeracin predefinida, los
casos a programar son:

Fig. 4 Pantalla de carga del programa.


Con el cdigo VHDL cargado en la tarjeta se
procedi a realizar la comprobacin fsica de la lgica
aplicada en el diseo.

Los cuatro switch desactivados muestran el


nmero 0 y todos los leds deben estar apagados
Solo el switch de la derecha activado (0001) se
enciende el primer led del lado izquierdo.
Los switch en posicin (0010) se enciende el
primer y segundo led desde el lado izquierdo.
Los switch en posicin (0100) se enciende el
primer, segundo y tercer led desde el lado
izquierdo.
Los switch en posicin (1000) se enciende el
primer, segundo, tercer y cuarto led desde el lado
izquierdo.

La clave en el desarrollo de esta aplicacin, consiste


en comprender como se ubican tanto los switch y los
leds en la FPGA, y poder reflejarlo en la programacin
de tal forma que se cumplan las condiciones. La
ejecucin correcta de las condiciones puede ser
plateada tanto en las lneas de cdigo del proceso, como
cuando se asignan los puertos mediante la herramienta
I/O planing.

Fig. 5 A=B se enciende el led 5 como se muestra en la


figura.

En el desarrollo del cdigo, se han tomado las


siguientes consideraciones, las entradas sern las

UNIVERSIDAD POLITCNICA SALESIANA


AVANZADOS

CIRCUITOS DIGITALES

Fecha: 15/05/2015
variables A, B, C, D, mientras que las salidas sern W,
X, Y, Z, y su distribucin fsica en la tarjeta se muestra
en la siguiente figura.

las variables de tipo signal que previamente han sido


declaradas como vector.
En la parte final del cdigo, las variables tipo signal
son las que van a ser comparadas, y no directamente
las entradas.
Cdigo desarrollado
En la declaracin de entradas y salidas, las variables
A1 y A0 conforman el primer nmero de dos bits,
anlogamente B1 y B0 conforman el segundo nmero
de dos bits, mientras que X, Y, Z, van destinadas a ser
las salidas, que tendrn uno de los tres posibles valores
booleanos de la comparacin.

Fig.8 Distribucin de variables en la tarjeta.

entity comparador is
Port ( A1 : in STD_LOGIC;
A0 : in STD_LOGIC;
B1 : in STD_LOGIC;
B0 : in STD_LOGIC;
X : out STD_LOGIC;
Y : out STD_LOGIC;
Z : out STD_LOGIC);
end comparador;

El cdigo implementado se muestra de la siguiente


manera.

A continuacin se crean variables internas tipo vector


de dos posiciones, a las cuales se les asigna un valor
para cada posicin.
architecture Behavioral of comparador is
signal A : std_logic_vector(1 downto 0) := A1&A0;
signal B : std_logic_vector(1 downto 0) := B1&B0;
En la seccin de proceso del cdigo, se establece la
comparacin entre los nmeros ya asignados a las
variables tipo signal A y B. Mediante sentencias del tipo
IF, se establecen los tres casos posibles en la
comparacin de dos nmeros, A=B, A>B o A<B.
Adems se asigna un valor lgico a cada salida,
dependiendo del caso que se presente en la
comparacin, de tal forma que:

Al ser A=B, a la salida X se le asignara un uno


lgico.

Al ser A>B, a la salida Y se le asignara un uno


lgico.

Al ser A<B, a la salida Z se le asignara un uno


lgico.
begin
compara: process (A,B)
begin
if A=B then
X<='1';
else X<='0';
end if;
if A<B then
Y<='1';
else Y<='0';
end if;
if A>B then
Z<='1';

Fig 9. Codigo VHDL


Poseterior mente a la complilacion del codigo, los
pasos a seguir son semejantes al ejercicio anterior,
considerando el planteamiento seguido para la
asignacin de valores lgicos en las salidas,
dependiendo de los valores en las entradas, en
congruencia con las condiciones pedidas.

6. ANLISIS Y RESULTADOS
6.1 Primer Ejercicio.
Para el desarrollo de este ejercicio existe una
connotacin clave en el cdigo, ya que para un
desarrollo netamente terico, el cdigo podra
simplificarse mediante el uso directo de vectores,
aboliendo las variables internas de tipo signal usadas,
sin embargo, fsicamente, mediante un nico switch, no
podra representar el vector de dos posiciones, por lo
cual es necesario asignar por pares los switch fsicos,
con el fin de tener una entrada fsica para cada posicin
del vector; dichas entradas se asignan internamente a

UNIVERSIDAD POLITCNICA SALESIANA


AVANZADOS

CIRCUITOS DIGITALES

Fecha: 15/05/2015
else Z<='0';
end if;
end process compara;
end Behavioral;

En las siguientes lneas de cdigo se puede


observar claramente el funcionamiento y la sintaxis de la
sentencia case.
when "0000" => W<= '0';X<= '0';Y<= '0';Z<= '0';
when "0001" => W<= '1';X<= '0';Y<= '0';Z<= '0';
when "0010" => W<= '0';X<= '1';Y<= '0';Z<= '0';
when "0100" => W<= '0';X<= '0';Y<= '1';Z<= '0';
when "1000" => W<= '0';X<= '0';Y<= '0';Z<= '1';
when others => W<= '0';X<= '0';Y<= '0';Z<= '0';
end case;
end process;
end Behavioral;

Al realizar la respectiva simulacin en el test bench,


se observa que todas las condiciones en el intervalo de
nmeros contenidos por dos bits, se han cumplido.

La simulacin del cdigo en el Test Bench presenta la


respuesta esperada en las salidas, sin embrago al ser
un circuito combinacional, y no contar con un reloj, la
implementacin del mismo resulta ser al extensa, debido
a que se debe ingresar cada caso posible,
individualmente.

Fig. 8 Test bench.

6.2 Segundo Ejercicio.


Retomando las consideraciones previas, relevantes a
la disposicin de los puertos fsicos, se nota que la
forma ms ptima para platear una solucin es este
ejercicio, constara de la implementacin de un vector,
tipo signal, el cual contendr a las cuatro variables
definidas como entradas. Mediante una sentencia de
tipo case, el vector, entrara en comparacin, definiendo
el valor que tomaran las salidas.

Fig. 9 Simulacion Test bench.

Cdigo desarrollado

7. CONCLUSIONES

Las variables usadas en esta aplicacin sern ocho,


divididas en cuatro entradas y cuatro salidas, adems
del vector de cuatro posiciones tipo signal.
entity seq2 is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
C : in STD_LOGIC;
D : in STD_LOGIC;
W : out STD_LOGIC;
X : out STD_LOGIC;
Y : out STD_LOGIC;
Z : out STD_LOGIC);
end seq2;

El desarrollo del comparador de dos bits, sin


usar variables internas de tipo signal, es posible
ya que segn la tabla 1, se podra realizar la
comparacin, posicin por posicin y caso por
caso para las dos entradas, sin embargo eso
implicara ms lneas de cdigo, por lo cual se
concluye que el uso de variables internas es
ms ptimo.

Para la realizacin de la simulacin de un


circuito combinacional en el Test Bench es
necesario expresar, todas y cada una de las
posibles de las entradas, con el fin de obtener
todas las respuestas posibles en las salidas, ya
que en estos tipos de circuitos, las salidas
dependen nicamente de la combinacin de
entradas, sin que intervenga ninguna seal de
reloj.

Al vector se le asignan las cuatro entradas, una por


cada posicin, posteriormente dentro del proceso, se
definirn los valores que tomaran las salidas,
dependiendo del elemento de comparacin con el cual
se relacione el vector en la sentencia case, para los
valores que no consten en la sentencia, las salidas
tomaran el valor de cero.

8. RECOMENDACIONES

architecture Behavioral of seq2 is


signal ENTR: std_logic_vector(3 downto 0);
begin
ENTR<= A&B&C&D;
process (ENTR)
begin
case ENTR is

Se recomienda tener precaucin el momento


de desconectar la alimentacin de la tarjeta
FPGA, ya que al realizar esta accin, el cdigo
cargado en la tarjeta se perder.

UNIVERSIDAD POLITCNICA SALESIANA


AVANZADOS

CIRCUITOS DIGITALES

Fecha: 15/05/2015
Circuitos Digitales Avanzados; Periodo 46; 2015.

9. REFERENCIAS

[3] R. CARDENAS, "CONFIGURACIN Y USO


SOFTWARE Y HARDWARE FPGA" en CURSO FPGA
(PROGRAMACION
DE
ARREGLOS
DE
COMPUERSTAS), UAM, Colombia, AGOSTO DE 2009,
MANIZALES, cap: 2, pp: 14-25.

[1] M. Morris, Lgica Combinacional en Diseo Digital,


Pearson Education, segunda edicin, Mxico DF, 2008,
cap: 4, pp: 111-113.
[2] J. Heredia; "Practica 2: Implementacin de circuitos
combinacionales"
en Manual de procedimiento de
prcticas; Universidad Politcnica Salesiana sede Sur;

You might also like