Está en la página 1de 13

ESCUELA SUPERIOR POLITCNICA DEL LITORAL

FACULTAD DE INGENIERA EN ELECTRICIDAD Y COMPUTACION



LABORATORIO DE SISTEMAS DIGITALES

Proyecto de primer parcial
DETECTOR BCD

Presentado por:
KEVIN ARTEAGA YELA
XAVIER AGUAYO MURILLO

Profesor a cargo:
ING. RONALD PONGUILLO

Guayaquil Ecuador
2014
2





CONTENIDO

1. ESPECIFICACIN ......................................................................................................... 3
DETECTOR DE CODIGO BCD ................................................................................. 3
2. DIAGRAMA DE BLOQUES ............................................................................................ 4
3. DIAGRAMA ASM ........................................................................................................... 5
4. DIAGRAMA DE TIEMPO ............................................................................................... 6
Salida BCD activada .................................................................................................. 6
Salida ERROR activada ............................................................................................ 7
5. DIAGRAMA ESQUEMATICO ......................................................................................... 7
6. DESCRIPCION VHDL.................................................................................................... 9
7. REPORTE SOBRE APROVECHAMIENTO ................................................................. 11
8. CONCLUSIONES ........................................................................................................ 12
9. RECOMENDACIONES ................................................................................................ 12
10. BIBLIOGRAFA ........................................................................................................ 13



3











1. ESPECIFICACIN
DETECTOR DE CODIGO BCD
Disear y construir un circuito DETECTOR DE CODIGO BCD. El circuito tiene una
entrada serial de DATOS, la entrada START y la entrada MOSTRAR representadas
por botoneras y dos salidas (BCD y ERROR) indicadas con dos diodos LED.
Adicionalmente se agregaron dos entradas: la entrada INGRESAR y la entrada
STOP.
Al presionar y soltar la botonera START, el circuito habilitar la entrada de DATOS
siempre que presionemos la entrada INGRESAR, asumiendo que el primer bit que
se ingresa es el LSB. Despus de haber ingresado los datos presionaremos el
botn STOP para detener el ingreso de datos.
Si el cdigo ingresado corresponde a un cdigo BCD, el circuito regresa al estado
inicial generando la seal de salida BCD.
Pero, si el cdigo ingresado no corresponde a un cdigo BCD, el circuito genera la
seal de salida ERROR y luego regresa al estado inicial.
Los diodos LED que indican las salidas BCD y ERROR permanecen prendidos hasta
que se activa la entrada START para empezar el ingreso de un nuevo dato.
Si la seal BCD ha sido activada y se presiona el botn MOSTRAR entonces el
numero BCD ingresado es mostrado en un display de siete segmentos.

4

2. DIAGRAMA DE BLOQUES
En esta seccin mostraremos un esquema general de nuestro sistema digital
DETECTOR BCD, indicando las entradas, salidas y una breve descripcin de la
funcin de cada una. El diagrama de bloques est formado por los siguientes
componentes.
Controlador
Almacenador de datos
Detector BCD
Display
El controlador dirige las acciones del usuario y de la maquina de estados, las
entradas y salidas se muestran en la figura 1. Las entradas del controlador se
encuentran en la parte izquierda del bloque y las salidas a la derecha.
El almacenador de datos guarda los cuatro bits (0 - 1) que el usuario ingrese, el
ingreso de cada bit es habilitado por la entrada en_guarda. La salida del bloque
almacenador de datos es un nmero de cuatro bits.
El detector BCD comprueba si el dato mostrado es un nmero BCD y su salida
SiEsBCD se conecta al controlador para que el tome la decisin de mostrarle al
usuario si es BCD o ERROR.
El bloque Display tiene la funcin de mostrar el nmero BCD.


Figura 1.- Diagrama de bloques del sistema digital detector BCD
3. DIAGRAMA ASM

Figura2.- Diagrama ASM del sistema DETECTOR BCD
El diagrama ASM mostrado en la figura 2 es el diagrama de flujo del bloque
controlador mostrado en la figura 1. Existen 7 estados, etiquetados como Ta, Tb, Tc,
Td, Te, Tf, Tg, Th. El primer estado Ta encera el registro y el contador de cuatro bits.
Una vez que se presiona START pasamos al siguiente estado Tb; si dejamos de
presionar avanzamos al estado Tc.
En el estado Tc, si presionamos STOP nos vamos al siguiente estado Td; sino s,
presionamos ingresar habilitamos en contador (EnC) y el registro (EnR1) para cargar
un bit. Y as se cargaran bits y aumentara el contador hasta que el usuario presione
STOP.
6

Cuando estamos en el estado Td, analizamos si el dato ingresado es un nmero
BCD. Entonces, primero preguntamos si el nmero se ingreso ms de cuatro veces
(4) y si esto es verdadero vamos al estado Te y mostramos ERROR. Si es falso,
preguntamos si el nmero es mayor que nueve (Data>9), si es verdadero
nuevamente nos vamos al estado Te y mostramos ERROR; pero, si es falso nos
dirigimos al estado Tf y activamos la salida BCD, que indica que el nmero
ingresado es BCD.
En el estado de ERROR y en el estado BCD, pasa salir de este estado y regresar al
estado inicial hay que presionar y soltar el botn START.

4. DIAGRAMA DE TIEMPO
Salida BCD activada

Figura 3.- Diagrama de tiempo mostrando la salida error
Las seales internas contador y registro mostrados en la figura 3 nos ayudaran a
saber el nmero de veces que ingreso el dato y el dato de cuatro bits cargado. Una
vez ingresado el dato, el sistema analiza el dato siempre y cuando el usuario
presione STOP. El usuario ingreso exactamente cuatro bits y el nmero cargado es
tres en binario 0011. El controlador muestra la salida BCD que indica que el
nmero es un BCD. Data_out es la salida de 7 bits del decodificador de 7
segmentos.
La figura 4 muestra la salida de ERROR activada. Vemos que despus de presionar
el botn stop, el nmero cargado es 11 en binario 1011. El nmero 11 no
representa un nmero BCD, y por lo tanto muestra la salida ERROR.

7

Salida ERROR activada

Figura 4.- Diagrama de tiempo mostrando la salida BCD

5. DIAGRAMA ESQUEMATICO
La figura muestra el diagrama esquemtico con todas las interconexiones y sus
respectivos nombres. Los componentes utilizados son los siguientes
Controlador
Divisor de Frecuencia
Antirebote
Decodificador de 7 segmentos
Comparadores
Display de 7 segmentos
Puertas lgicas
Descripcin de las terminales ms importantes
EnC.- Habilita al Contador para que cuente el nmero de bit ingresado
EnR1.- Habilita el registro para que se cargue un bit y realice el desplazamiento
DATO.- Bit a ingresar para formar el nmero BCD
BCD.- Salida de un bit que indica si el nmero ingresado es BCD.
ERROR.- Salida de un bit que indica si el nmero ingresado es no es BCD.
DATA[3..0].- Seal interna utilizada para mostrar el valor cargado en el registro de
desplazamiento.
COUNT[3..0].- Seal interna utilizada para mostrar el nmero de datos bits ingresado
por el usuario.
DiferDe4.- Seal que indica si ingreso ms de cuatro bits o menos de cuatro bits
DataMay9.- Seal que indica si el numero ingresado en mayor que nueve
8


6. DESCRIPCION VHDL
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;


entity DetectorCodigoBCD is
port( clock, resetn: in std_logic;
start, DATOS, mostrar, ingresar, stop: in std_logic;
activ_disp: out std_logic;
error,bcd: out std_logic;
data_out: out std_logic_vector(0 to 6));

end detectorCodigoBCD;

architecture comportamiento of DetectorCodigoBCD is

--*****COMPONENTES*****--
component ANTIREBOTE
port(PB_N, CLOCK_100Hz : IN STD_LOGIC;
PB_SIN_REBOTE : OUT STD_LOGIC);
END component;

component clock_div
port
(CLOCK_50MHz :IN STD_LOGIC;
CLOCK_1MHz :OUT STD_LOGIC;
CLOCK_100KHz :OUT STD_LOGIC;
CLOCK_10KHz :OUT STD_LOGIC;
CLOCK_1KHz :OUT STD_LOGIC;
CLOCK_100Hz :OUT STD_LOGIC;
CLOCK_10Hz :OUT STD_LOGIC;
CLOCK_1Hz :OUT STD_LOGIC);
end component;

component contador_up
port(clock,resetn,enable: in std_logic; --enable: entrada de habilitacion
Q : out std_logic_vector(3 downto 0));
end component;

component reg_iz_der
port(R,Resetn,Clock, enable: in std_logic;
Q: out std_logic_vector(3 downto 0));
end component;

component DEC_DR_N
port( BCD : in std_logic_vector(3 downto 0);
10

SEG7 : out std_logic_vector(0 to 6));
end component;

type estado is (Ta, Tb, Tc, Td, Te, Tf, Tg, Th);
signal y: estado;
signal Vcc, EnR1, EnC, DiferDe4,dataMay9, prende: std_logic;
signal data,count, nueve, cuatro: std_logic_vector(3 downto 0);
signal start1, datos1, mostrar1, ingresar1, stop1: std_logic; -- salidas de
antirebotes
signal clk1, clk2, clk3, clk4, clk5, clk6, clk7: std_logic; -- salida de reloj
CLOCk_div

--*****CONTROLADOR*****--
begin
mss_transiciones: process(resetn, clk7, ingresar, mostrar)
begin
if resetn='0' then y<=Ta;
elsif (clk1'event and clk1='1') then
case y is
when Ta => if start='0' then y<=Ta; else y<=Tb; end if;
when Tb => if start='1' then y<=Tb; else y<=Tc; end if;
when Tc => if stop='0' then y<=Tc; else y<=Td; end if;
when Td => if diferDe4='1' then y<=Te; elsif dataMay9='1' then
y<=Te; else y<=Tf ; end if;
when Te => if start='0' then y<=Te; else y<=Tg; end if;
when Tg => if start='1' then y<=Tg; else y<=Ta; end if;
when Tf => if start='0' then y<=Tf; else y<=Th; end if;
when Th => if start='1' then y<=Th; else y<=Ta; end if;
end case;
end if;
end process;

mss_salidas: process(y, stop, ingresar, start, mostrar)
begin
EnR1<='0'; EnC<='0'; Error<='0'; BCD<='0'; prende<='0';
case y is
when Ta =>
when Tb =>
when Tc => if stop='0' and ingresar='1' then EnR1<='1'; EnC<='1';
else EnR1<='0'; EnC<='0'; end if;
when Td =>
when Te => Error<='1';
when Tg =>
when Tf => BCD<='1'; if start='0' and mostrar='1' then prende<='1';
end if;
when Th =>
end case;
end process;
11



--*****PROCESADOR DE DATOS*****--
Vcc<='1';
nueve<="1001";
Cuatro<="0100";

RELOJ: clock_div port map (clock, clk1, clk2, clk3, clk4, clk5, clk6, clk7);
reg_id: reg_iz_der port map(Datos, resetn, clk6, EnR1, data);
contador: contador_up port map(clk6, resetn, EnC, count);
decoder: dec_DR_N port map (data, data_out);

DataMay9<='1' when (Data > Nueve) else '0';
DiferDe4<='1' when ((Count > cuatro) or (Count < cuatro)) else '0';
activ_disp<='1' when (prende = Vcc) else '0';

end comportamiento;

7. REPORTE SOBRE APROVECHAMIENTO

Figura 5.- Captura de pantalla del reporte de compilacin

La figura 5 muestra un reporte general del aprovechamiento de la tarjeta DE0NANO
EP4CE22. Se utilizaron 17 pines de los 154 existentes. Memoria total ocupada en
bits: 5248 (menos del 1%)

12

8. CONCLUSIONES
En resumen, el proyecto DETECTOR BCD se realiz utilizando una
herramienta importante para simular sistemas digitales. Esta herramienta es
Quartus 13.0, por medio de la cual pudimos describir nuestro proyecto de
forma ESTRUCTURAL; en pocas palabras, se escribi todo el proyecto en
lneas de cdigo.
Pudimos darnos cuenta de la dificultad de realizar el proyecto realizando
descripcin estructural, comparado con la construccin de bloques utilizando
el diagrama esquemtico. La dificultad de la descripcin estructural reside en
la interconexin de las terminales de cada componente con otros, lo que no
sucede en la construccin de bloques.
Finalmente, pudimos terminar con xito este proyecto, realizando su anlisis,
la programacin y la implementacin del mismo. Para la implementacin
fsica, se utiliz la tarjeta De0 NANO EP4CE22F17. Cabe destacar que
afianzamos los conocimientos aprendidos en las clases tericas de Sistemas
digitales I y II.

9. RECOMENDACIONES
Fijar el bus de datos nos ayudar a que no existan desconexiones o falsos
contactos; adems, es importante utilizar el cable adecuado para la conexin
de pines del cable de bus de datos con el protoboard. As que si preferimos
utilizar cables rgidos, tomar en cuenta que estos puedes romperse y
producir grandes retrasos a la hora de encontrar el fallo.
Cabe destacar la importancia de conocer las especificaciones de
funcionamiento de los elementos electrnicos a utilizar en nuestro proyecto.
Tales como diodos, pulsadores, resistencia y sus cdigos de colores,
switches y sobre todo el display de 7 segmentos.
Al utilizar la tarjeta DE0 NANO debemos ser cuidadosos con la misma, las
cargas estticas presentes en nuestro cuerpo pueden averiar o daar los
chips y circuitos integrados. Estos dispositivos son sensibles a las cargas
estticas.




13

10. BIBLIOGRAFA
Sistemas digitales, A. Lloris y A. Prieto y L. Parrilla, McGraw Hill,
Madrid 2003.
Fundamentos de sistemas digitales, (7 edicin), Floyd T. L., Prentice
Hall, Madrid 2003.
Principios de Diseo Digital, D.D. Gajski, Prentice Internacional INC.,
1997.
Diseo Digital. Principios y Prcticas, J. F. Wakerly, Prentice
Internacional INC., 2001.
Fundamentos fsicos y tecnolgicos de la informtica, P. Gmez, V.
Nieto, A. lvarez y R. Martnez, Pearson Prentice Hall, Madrid 2006.