SlideShare una empresa de Scribd logo
2
Lo más leído
5
Lo más leído
6
Lo más leído
Facultad de Ingeniería en Eléctrica y Computación
Laboratorio de Digitales
Tema proyecto:
“Decodificador de datos”
Grupo 10:
Ronny Murillo
Diego Pezo
Paralelo: 7 y8
Ing. Ronald Ponguillo
Guayaquil, Ecuador
II Término 2012-2013
1.- ESPECIFICACION:
DECODIFICADOR DE DATOS
Diseñar un circuito secuencial sincrónico con una línea de entrada serial, que recibirá una trama
que consta de diez bits, con el siguiente formato:
Para que la trama sea válida deberá tener las siguientes características:
La secuencia de inicio consta de los tres bits: 110
Los cuatro dígitos siguientes corresponden a la información, que es un número en formato BCD
El siguiente bit es un bit de complemento, que para nuestro caso no significará nada en
especial
Los dos últimos bits representan la secuencia de fin de trama y será: 01
El circuito estará listo para recibir la trama cada vez que se presione y suelte el botón START.
Este circuito deberá hacer la validación de la trama y en caso de haber error generar la señal
correspondiente. Los tres posibles errores que se pueden dar son: Error de secuencia de inicio,
Error de secuencia de fin y error de formato de dato, cada uno de los cuales se presentarán
visualmente por medio de diodos led, y de activarse deberán mantener su estado hasta que se
presione la señal START. Si existe una trama válida se deberá encender la salida VALIDO y si
se presiona el botón MOSTRAR deberá verse el dato en un display de siete segmentos.
El circuito DECODIFICADOR DE DATOS debe funcionar tanto con reloj manual (pulsando un
botón), como con reloj automático.
2.- DIAGRAMA DE BLOQUE
Para la entrada nos están pidiendo que sea por un solo terminal serial en este caso procedemos
a plantear cual será el mecanismo que usaremos para guardar los datos de entrada, usando un
registro de desplazamiento para ir almacenado los datos e ingresando los nuevos datos, a su
vez colocaremos un contador para que nos envíe una señal cuando ya hayamos ingresado los
diez datos, el controlador recibirá estas señales para enviarnos a otro estado donde
verificaremos las diferentes partes de la trama.
La parte de la verificación de la trama se hace mediante unos comparadores, luego esa salidas
de esos comparadores serán evaluadas para ver qué tipos de errores tiene la trama, una vez
que toda la trama ha sido verificada, en un estado del controlador esperara en caso de ser
valido el dato la señal de mostrar, luego mostrara el dato en el display y por ultimo cuando
presionemos la entrada start nos llevara al estado inicial.
Controlador
Módulo de ingreso
de datos.
Módulo de
verificación de los
datos,
comparadores, uno
para cada parte de
la trama.
Modulo de salida
de los datos,
decodificador,
display de 7
segmentos y leds
para los errores.
3.- CONTROLADORDEL CIRCUITO
DESCRIPCION DE LAS SEÑALES:
ENTRADA
CLOCK.-Señal de reloj. El sistema trabaja con dos diferentes frecuencias de reloj, usamos 10Hz
para la maquina de estados del controlador (ASM).
START.- Botonera de lógica positiva. Señal de inicio del sistema, necesaria para comenzar el
ingreso del dato.
DATO.- Señal con lógica positiva, que indica el dato de ingreso que procederemos a verificar.
ENTER.- Señal con lógica positiva, que resetea el valor de los contadores de cada trabajador,
para un nuevo control de tiempo.
MOSTRAR.- Señal con lógica positiva, que permite ver el valor del numerobcd valido.
C0.- Señal con lógica positiva, sirve para verificar que se ingresaron los 10 bits del datos.
CN Señal con lógica positiva, sirve para verificar que el Dato sea valido o erróneo.
RESETN.- Botonera de lógica negativa. Señal de reinicio, que al presionarse, regresa a todo el
sistema a su estado inicial.
SALIDA
EN.- indica que el Dato va ha guardarse en un registro de sostenimiento.
EN1 Y LD1.- son las señales enviadas a un registro de desplazamiento, para desplazar 1 0
respectivamente y 1 1 para resetear el dato.
EN2 Y LD2.- son las señales enviadas a un contador hacia atrás, para contar 1 0
respectivamente y 1 1 para resetear el dato.
SEL.-esta señal es enviada a un mux2a1 para mostrar el dato si este fuera el caso.
SEL1.- esta señal es enviada a un mux2a1 al momento de ingresar un dato altoo uno.
SEL2.-esta señal es enviada a un mux2a1 para mostrar el error como un vector.
VALIDO.- indica por medio del encendido de un led si el valor del Dato es correcto.
DI.-indica por medio de un led que el sistema está receptando el valor del Dato.
CONTROLADOR
Clock
Resetn
Dato
Enter
Start
Mostrar
En
Sel
Sel1
Valido
En2 Ld2
En1 Ld1
Sel2
DI
C0
Cn
4.- DIAGRAMA ASM DEL CONTROLADOR
El controlador es un bloque de nuestro diseño el cual se encarga de manejar las senales
internas de nuestro circuito, activando la respectivas salidas cuando sea necesario, secuencial
este bloque es el principal de una MSS porque es el que le da la secuencialidad al circuito, la
implementacion puede ser de dos formas pero para nuestro proyecto la implementacion es en
vhdl, y para la señal de reloj usaremos el reloj interno del CPLD.
En En1 Ld1
En2 Ld2
Start
Start
Tb
Resetn
0
1
Ta
0
1
DI
C0
DI Sel1
Enter
Td
0
1
Tc
0
1
Dato
0
Enter
DI
Enter
Te
0
1
En1 En2
En1 En2
1
En
Cn
11
Tf
Valido
Mostrar
Sel
Ti
0
1
0
Th
Start
Sel2
Start
Tj
0
1
Start
0
0
0
0
Tg
5.- DIAGRAMA DE TIEMPO
Figura 4
Del circuito controlador principal, que debe indicar todas las señales de entrada
y salida del mismo. Este diagrama debe obtenerse de la simulación previa del
sistema en MAX+PLUS II.
6.- ESQUEMATICO: Quartus II
Figura 5
Compilación del esquemático junto con todo los vhdl agregados al proyecto,
mostrándonos una respectiva ejecución con éxito.
VCC
Resetn INPUT
VCC
Dato INPUT
VCC
Enter INPUT
VCC
Start INPUT
VCC
Mostrar INPUT
VCC
Pulso INPUT
VCC
Auto INPUT
ValidoOUTPUT
EinicioOUTPUT
Ef ormatoOUTPUT
Ef inOUTPUT
DIOUTPUT
Display [1..7]OUTPUT
Resetn
Clock
Dato
Enter
Start
Mostrar
Valido
Einicio
Ef ormato
Ef in
DI
Display [1..7]
data_decoder
inst
CLOCK_8MHz CLOCK_1MHz
CLOCK_100KHz
CLOCK_10KHz
CLOCK_1KHz
CLOCK_100Hz
CLOCK_10Hz
CLOCK_1Hz
CLOCK_DIV
inst1
PB_N
CLOCK_100Hz
PB_SIN_REBOTE
ANTIREBOTE
inst3 PB_SIN_REBOTE
CLOCK
UN_PULSO
RELOJ
inst4
A
B
Sel
S
mux21
inst2
7. VHDL
DATA DECODER (PRINCIPAL)
libraryieee;
use ieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
usework.elementos.all;
Entity data_decoder is
port(Resetn,Clock,Dato,Enter,Start,Mostrar:instd_logic;
Valido,Einicio,Eformato,Efin,DI:outstd_logic;
Display:outstd_logic_vector(1 to 7));
End data_decoder;
Architecture sol of data_decoder is
Signal En,En1,Ld1,En2,Ld2,Tecla,Sel,Sel1,Sel2: std_logic;
Signal C0,C1,C2,C3,Cn,mayor1,menor1,mayor2,igual2,mayor3,menor3: std_logic;
Signal cero10,Q,R: std_logic_vector(9 downto 0);
signal diez,conteo,formato,uno4,S,cero4,S1,C,cero,L: std_logic_vector(3 downto 0);
signalinicio: std_logic_vector(2 downto 0);
signal fin: std_logic_vector(1 downto 0);
Begin
Reg_des_d_i:reg_d_i generic map(n=>10)
port map(Resetn,Clock,En1,Ld1,L(0),cero10,R);
Reg_1:reg_sost generic map(n=>10)
port map(Resetn,Clock,En,R,Q);
Contd:contador_down generic map(n=>4)
port map(Resetn,Clock,En2,Ld2,diez,conteo);
Comp1:comp generic map(n=>3)
port map(inicio,Q(9 downto 7),mayor1,C1,menor1);
Comp2:comp generic map(n=>4)
port map(Q(6 downto 3),formato,mayor2,igual2,C2);
Comp3:comp generic map(n=>2)
port map(Q(1 downto 0),fin,mayor3,C3,menor3);
muxd:mux port map(uno4,Q(6 downto 3),sel,S);
muxe:muxportmap(cero4,C,Sel2,S1);
muxf:muxportmap(cero,uno4,Sel1,L);
dec7seg:DEC_BCD_7 port map(S,Display);
controlador:controlador_decport
map(Resetn,Clock,Start,Mostrar,Dato,Enter,Cn,C0,En1,En2,Ld1,Ld2,En,Valido,Sel,Sel1,Sel2,DI);
C0<='1' when conteo="0000" else '0';
Cn<='1' when C="0000" else '0';
C(3)<=not C3;
C(2)<=not C2;
C(1)<=not C1;
C(0)<='0';
cero10<="0000000000";
diez<="1010";
inicio<="110";
formato<="1010";
fin<="01";
cero4<="0001";
uno4<="1111";
cero<="0000";
Einicio<=S1(1);
Eformato<=S1(2);
Efin<=S1(3);
End sol;
CONTROLADOR
libraryieee;
use ieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
Entity controlador_dec is
port(Resetn,Clock,Start,Mostrar,Dato,Enter,Cn,C0:in std_logic;
En1,En2,Ld1,Ld2,En,Valido,Sel,Sel1,Sel2,DI:out std_logic);
endcontrolador_dec;
Architecture sol of controlador_dec is
type estado is(Ta,Tb,Tc,Td,Te,Tf,Tg,Th,Ti,Tj);
signal y:estado;
Begin
--controlador
Process(Resetn,Clock)
Begin
if Resetn='0' then y<=Ta;
elsifclock'event and clock='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 C0='1' then y<=Tf;
elsif Dato='1' then y<=Td;
elsif Enter='1' then y<=Te;
else y<=Tc; end if;
when Td=>if Enter='1' then y<=Te;
else y<=Td; end if;
when Te=>if Enter='1' then y<=Te;
else y<=Tc; end if;
when Tf=>if Cn='1' then y<=Th;
else y<=Tg; end if;
whenTg=>if Start='0' then y<=Tg;
else y<=Tj; end if;
whenTh=>if Mostrar='0' then y<=Th;
else y<=Ti; end if;
when Ti=>if Start='0' then y<=Ti;
else y<=Tj; end if;
when Tj=>if Start='0' then y<=Ta;
else y<=Tj; end if;
end case;
end if;
end process;
--salidas
Process(y,Start,Mostrar,Dato,Enter,C0,Cn)
Begin
En1<='0'; En2<='0'; Ld1<='0'; Ld2<='0'; En<='0'; Sel<='0';
Sel1<='0'; Sel2<='0'; Valido<='0'; DI<='0';
Case y is
When Ta=>En1<='1'; Ld1<='1'; En2<='1'; Ld2<='1'; En<='1';
When Tb=>
When Tc=>DI<='1';
if Enter='1' then
En1<='1'; En2<='1';
end if;
if C0='1' then
En<='1';
end if;
When Td=>Sel1<='1'; DI<='1';
if Enter='1' then
En1<='1'; En2<='1';
end if;
When Te=>DI<='1';
When Tf=>
When Tg=>Sel2<='1';
When Th=>Valido<='1';
When Ti=>Sel<='1';
When Tj=>
end case;
end process;
end sol;
8.REPORTE SOBRE APROVECHAMIENTO

Más contenido relacionado

PDF
Prob resueltost3 mapas k
DOCX
Complemento A Dos
PPTX
Listas, pilas y colas
DOCX
Algoritmos de dekker
DOCX
Mapa de karnaugh alarma de un automóvil
DOCX
Reporte compuertas logicas
PDF
Problemas de automatas de PLC
PDF
1.1 historia del control automatico
Prob resueltost3 mapas k
Complemento A Dos
Listas, pilas y colas
Algoritmos de dekker
Mapa de karnaugh alarma de un automóvil
Reporte compuertas logicas
Problemas de automatas de PLC
1.1 historia del control automatico

La actualidad más candente (20)

PPT
1.3 lenguajes de simulacion y simuladores
PPTX
ETAPAS DEL PROCESO DE SIMULACION
PPTX
Control de flujo en Telecomunicaciones
PPTX
Control digital
PDF
trabajo final
PPT
ANALISIS DE ALGORITMOS
PPTX
Lectores y escritores
PPTX
PROTOCOLO DE BLOQUEO EN 2 FASES
PPTX
Algoritmo de dekker
PPTX
Java pilas (Stacks) y colas (Queues)
PDF
Transferencia de datos entre registros
PDF
Programacion display 16 segmentos
PDF
Electrónica digital: Diseño de cartas ASM
DOCX
Gal 22v10 Descripcion
PPTX
Lenguaje de Programación Ruby
PPTX
Método de Vuelta Atrás (Backtracking)
PPTX
Tutorial de CodeBlocks
PPTX
Modelos de arquitecturas de computadoras
PDF
Criterios de estabilidad Controles Automáticos
PPTX
Procesos Ligeros: Hilos o Hebras
 
1.3 lenguajes de simulacion y simuladores
ETAPAS DEL PROCESO DE SIMULACION
Control de flujo en Telecomunicaciones
Control digital
trabajo final
ANALISIS DE ALGORITMOS
Lectores y escritores
PROTOCOLO DE BLOQUEO EN 2 FASES
Algoritmo de dekker
Java pilas (Stacks) y colas (Queues)
Transferencia de datos entre registros
Programacion display 16 segmentos
Electrónica digital: Diseño de cartas ASM
Gal 22v10 Descripcion
Lenguaje de Programación Ruby
Método de Vuelta Atrás (Backtracking)
Tutorial de CodeBlocks
Modelos de arquitecturas de computadoras
Criterios de estabilidad Controles Automáticos
Procesos Ligeros: Hilos o Hebras
 
Publicidad

Destacado (6)

PPT
Tipo de-modulacion codificacion y decodificacion
PDF
Solucion ejercicios punteros cadenas-vectores
DOC
Informe Ondas Estacionarias En Una Cuerda
PPTX
Metodos de ordenamiento
PPT
Tipos De Esquema
PPT
Tipo De Modulacion, Codificacion Y Decodificacion
Tipo de-modulacion codificacion y decodificacion
Solucion ejercicios punteros cadenas-vectores
Informe Ondas Estacionarias En Una Cuerda
Metodos de ordenamiento
Tipos De Esquema
Tipo De Modulacion, Codificacion Y Decodificacion
Publicidad

Similar a Decodificador de datos en vhld y usando Quartus II (20)

DOCX
Tema 67 control programado
PPTX
Electrónica digital: maquinas de estado con VHDL
PDF
⭐⭐⭐⭐⭐ EJERCICIOS PROPUESTOS SD + MSA (2do Parcial)
PDF
Electrónica digital: Maquina de estado finitas (FSM´s)
PPT
2 6%2 b_implementacionasm
PDF
Maquinas de estado con VHDL - electronica digital - circuitos secuenciales
PDF
ASIGNACION 1 EN MCII
DOCX
555 modo astable
DOCX
Tipos de circuitos
PDF
Lógica cableada y Lógica programable - Automatización Industrial
DOCX
Reloj Digital - Proyectos de electronica digital
PPTX
Apunt2b
PPTX
Apunt2b
PPT
El plc
PPT
Plc intrucciones basicas
PDF
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 2, 1er Parcial (2020 PAO 2)
PDF
DDAA FPGA - Simulacion Contador Universal (Test Bench)
PDF
Matriz de LEDs + Interfaz Grafica con GTK en Linux
PPTX
Elaboracion de circuitos modulos logicos programables
Tema 67 control programado
Electrónica digital: maquinas de estado con VHDL
⭐⭐⭐⭐⭐ EJERCICIOS PROPUESTOS SD + MSA (2do Parcial)
Electrónica digital: Maquina de estado finitas (FSM´s)
2 6%2 b_implementacionasm
Maquinas de estado con VHDL - electronica digital - circuitos secuenciales
ASIGNACION 1 EN MCII
555 modo astable
Tipos de circuitos
Lógica cableada y Lógica programable - Automatización Industrial
Reloj Digital - Proyectos de electronica digital
Apunt2b
Apunt2b
El plc
Plc intrucciones basicas
⭐⭐⭐⭐⭐ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 2, 1er Parcial (2020 PAO 2)
DDAA FPGA - Simulacion Contador Universal (Test Bench)
Matriz de LEDs + Interfaz Grafica con GTK en Linux
Elaboracion de circuitos modulos logicos programables

Último (20)

PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PDF
Estrategia de Apoyo de Daylin Castaño (5).pdf
DOCX
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PPTX
modulo seguimiento 1 para iniciantes del
PPTX
El uso de las TIC en la vida cotidiana..
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
DOCX
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
PPTX
Curso de generación de energía mediante sistemas solares
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
Mecanismos-de-Propagacion de ondas electromagneticas
Estrategia de Apoyo de Daylin Castaño (5).pdf
TRABAJO GRUPAL (5) (1).docxjesjssjsjjskss
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
la-historia-de-la-medicina Edna Silva.pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
Guía 5. Test de orientación Vocacional 2.docx
modulo seguimiento 1 para iniciantes del
El uso de las TIC en la vida cotidiana..
CyberOps Associate - Cisco Networking Academy
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
El-Gobierno-Electrónico-En-El-Estado-Bolivia
TRABAJO GRUPAL (5) (1).docxsjsjskskksksksks
Curso de generación de energía mediante sistemas solares
TRABAJO DE TECNOLOGIA.pdf...........................
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN

Decodificador de datos en vhld y usando Quartus II

  • 1. Facultad de Ingeniería en Eléctrica y Computación Laboratorio de Digitales Tema proyecto: “Decodificador de datos” Grupo 10: Ronny Murillo Diego Pezo Paralelo: 7 y8 Ing. Ronald Ponguillo Guayaquil, Ecuador II Término 2012-2013
  • 2. 1.- ESPECIFICACION: DECODIFICADOR DE DATOS Diseñar un circuito secuencial sincrónico con una línea de entrada serial, que recibirá una trama que consta de diez bits, con el siguiente formato: Para que la trama sea válida deberá tener las siguientes características: La secuencia de inicio consta de los tres bits: 110 Los cuatro dígitos siguientes corresponden a la información, que es un número en formato BCD El siguiente bit es un bit de complemento, que para nuestro caso no significará nada en especial Los dos últimos bits representan la secuencia de fin de trama y será: 01 El circuito estará listo para recibir la trama cada vez que se presione y suelte el botón START. Este circuito deberá hacer la validación de la trama y en caso de haber error generar la señal correspondiente. Los tres posibles errores que se pueden dar son: Error de secuencia de inicio, Error de secuencia de fin y error de formato de dato, cada uno de los cuales se presentarán visualmente por medio de diodos led, y de activarse deberán mantener su estado hasta que se presione la señal START. Si existe una trama válida se deberá encender la salida VALIDO y si se presiona el botón MOSTRAR deberá verse el dato en un display de siete segmentos. El circuito DECODIFICADOR DE DATOS debe funcionar tanto con reloj manual (pulsando un botón), como con reloj automático.
  • 3. 2.- DIAGRAMA DE BLOQUE Para la entrada nos están pidiendo que sea por un solo terminal serial en este caso procedemos a plantear cual será el mecanismo que usaremos para guardar los datos de entrada, usando un registro de desplazamiento para ir almacenado los datos e ingresando los nuevos datos, a su vez colocaremos un contador para que nos envíe una señal cuando ya hayamos ingresado los diez datos, el controlador recibirá estas señales para enviarnos a otro estado donde verificaremos las diferentes partes de la trama. La parte de la verificación de la trama se hace mediante unos comparadores, luego esa salidas de esos comparadores serán evaluadas para ver qué tipos de errores tiene la trama, una vez que toda la trama ha sido verificada, en un estado del controlador esperara en caso de ser valido el dato la señal de mostrar, luego mostrara el dato en el display y por ultimo cuando presionemos la entrada start nos llevara al estado inicial. Controlador Módulo de ingreso de datos. Módulo de verificación de los datos, comparadores, uno para cada parte de la trama. Modulo de salida de los datos, decodificador, display de 7 segmentos y leds para los errores.
  • 4. 3.- CONTROLADORDEL CIRCUITO DESCRIPCION DE LAS SEÑALES: ENTRADA CLOCK.-Señal de reloj. El sistema trabaja con dos diferentes frecuencias de reloj, usamos 10Hz para la maquina de estados del controlador (ASM). START.- Botonera de lógica positiva. Señal de inicio del sistema, necesaria para comenzar el ingreso del dato. DATO.- Señal con lógica positiva, que indica el dato de ingreso que procederemos a verificar. ENTER.- Señal con lógica positiva, que resetea el valor de los contadores de cada trabajador, para un nuevo control de tiempo. MOSTRAR.- Señal con lógica positiva, que permite ver el valor del numerobcd valido. C0.- Señal con lógica positiva, sirve para verificar que se ingresaron los 10 bits del datos. CN Señal con lógica positiva, sirve para verificar que el Dato sea valido o erróneo. RESETN.- Botonera de lógica negativa. Señal de reinicio, que al presionarse, regresa a todo el sistema a su estado inicial. SALIDA EN.- indica que el Dato va ha guardarse en un registro de sostenimiento. EN1 Y LD1.- son las señales enviadas a un registro de desplazamiento, para desplazar 1 0 respectivamente y 1 1 para resetear el dato. EN2 Y LD2.- son las señales enviadas a un contador hacia atrás, para contar 1 0 respectivamente y 1 1 para resetear el dato. SEL.-esta señal es enviada a un mux2a1 para mostrar el dato si este fuera el caso. SEL1.- esta señal es enviada a un mux2a1 al momento de ingresar un dato altoo uno. SEL2.-esta señal es enviada a un mux2a1 para mostrar el error como un vector. VALIDO.- indica por medio del encendido de un led si el valor del Dato es correcto. DI.-indica por medio de un led que el sistema está receptando el valor del Dato. CONTROLADOR Clock Resetn Dato Enter Start Mostrar En Sel Sel1 Valido En2 Ld2 En1 Ld1 Sel2 DI C0 Cn
  • 5. 4.- DIAGRAMA ASM DEL CONTROLADOR El controlador es un bloque de nuestro diseño el cual se encarga de manejar las senales internas de nuestro circuito, activando la respectivas salidas cuando sea necesario, secuencial este bloque es el principal de una MSS porque es el que le da la secuencialidad al circuito, la implementacion puede ser de dos formas pero para nuestro proyecto la implementacion es en vhdl, y para la señal de reloj usaremos el reloj interno del CPLD. En En1 Ld1 En2 Ld2 Start Start Tb Resetn 0 1 Ta 0 1 DI C0 DI Sel1 Enter Td 0 1 Tc 0 1 Dato 0 Enter DI Enter Te 0 1 En1 En2 En1 En2 1 En Cn 11 Tf Valido Mostrar Sel Ti 0 1 0 Th Start Sel2 Start Tj 0 1 Start 0 0 0 0 Tg
  • 6. 5.- DIAGRAMA DE TIEMPO Figura 4 Del circuito controlador principal, que debe indicar todas las señales de entrada y salida del mismo. Este diagrama debe obtenerse de la simulación previa del sistema en MAX+PLUS II. 6.- ESQUEMATICO: Quartus II Figura 5 Compilación del esquemático junto con todo los vhdl agregados al proyecto, mostrándonos una respectiva ejecución con éxito. VCC Resetn INPUT VCC Dato INPUT VCC Enter INPUT VCC Start INPUT VCC Mostrar INPUT VCC Pulso INPUT VCC Auto INPUT ValidoOUTPUT EinicioOUTPUT Ef ormatoOUTPUT Ef inOUTPUT DIOUTPUT Display [1..7]OUTPUT Resetn Clock Dato Enter Start Mostrar Valido Einicio Ef ormato Ef in DI Display [1..7] data_decoder inst CLOCK_8MHz CLOCK_1MHz CLOCK_100KHz CLOCK_10KHz CLOCK_1KHz CLOCK_100Hz CLOCK_10Hz CLOCK_1Hz CLOCK_DIV inst1 PB_N CLOCK_100Hz PB_SIN_REBOTE ANTIREBOTE inst3 PB_SIN_REBOTE CLOCK UN_PULSO RELOJ inst4 A B Sel S mux21 inst2
  • 7. 7. VHDL DATA DECODER (PRINCIPAL) libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; usework.elementos.all; Entity data_decoder is port(Resetn,Clock,Dato,Enter,Start,Mostrar:instd_logic; Valido,Einicio,Eformato,Efin,DI:outstd_logic; Display:outstd_logic_vector(1 to 7)); End data_decoder; Architecture sol of data_decoder is Signal En,En1,Ld1,En2,Ld2,Tecla,Sel,Sel1,Sel2: std_logic; Signal C0,C1,C2,C3,Cn,mayor1,menor1,mayor2,igual2,mayor3,menor3: std_logic; Signal cero10,Q,R: std_logic_vector(9 downto 0); signal diez,conteo,formato,uno4,S,cero4,S1,C,cero,L: std_logic_vector(3 downto 0); signalinicio: std_logic_vector(2 downto 0); signal fin: std_logic_vector(1 downto 0); Begin Reg_des_d_i:reg_d_i generic map(n=>10) port map(Resetn,Clock,En1,Ld1,L(0),cero10,R); Reg_1:reg_sost generic map(n=>10) port map(Resetn,Clock,En,R,Q); Contd:contador_down generic map(n=>4) port map(Resetn,Clock,En2,Ld2,diez,conteo); Comp1:comp generic map(n=>3) port map(inicio,Q(9 downto 7),mayor1,C1,menor1); Comp2:comp generic map(n=>4) port map(Q(6 downto 3),formato,mayor2,igual2,C2); Comp3:comp generic map(n=>2) port map(Q(1 downto 0),fin,mayor3,C3,menor3); muxd:mux port map(uno4,Q(6 downto 3),sel,S); muxe:muxportmap(cero4,C,Sel2,S1); muxf:muxportmap(cero,uno4,Sel1,L); dec7seg:DEC_BCD_7 port map(S,Display); controlador:controlador_decport map(Resetn,Clock,Start,Mostrar,Dato,Enter,Cn,C0,En1,En2,Ld1,Ld2,En,Valido,Sel,Sel1,Sel2,DI); C0<='1' when conteo="0000" else '0'; Cn<='1' when C="0000" else '0'; C(3)<=not C3; C(2)<=not C2; C(1)<=not C1; C(0)<='0'; cero10<="0000000000"; diez<="1010"; inicio<="110"; formato<="1010"; fin<="01"; cero4<="0001"; uno4<="1111"; cero<="0000"; Einicio<=S1(1); Eformato<=S1(2); Efin<=S1(3); End sol; CONTROLADOR libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; Entity controlador_dec is port(Resetn,Clock,Start,Mostrar,Dato,Enter,Cn,C0:in std_logic; En1,En2,Ld1,Ld2,En,Valido,Sel,Sel1,Sel2,DI:out std_logic); endcontrolador_dec; Architecture sol of controlador_dec is type estado is(Ta,Tb,Tc,Td,Te,Tf,Tg,Th,Ti,Tj); signal y:estado; Begin --controlador Process(Resetn,Clock) Begin
  • 8. if Resetn='0' then y<=Ta; elsifclock'event and clock='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 C0='1' then y<=Tf; elsif Dato='1' then y<=Td; elsif Enter='1' then y<=Te; else y<=Tc; end if; when Td=>if Enter='1' then y<=Te; else y<=Td; end if; when Te=>if Enter='1' then y<=Te; else y<=Tc; end if; when Tf=>if Cn='1' then y<=Th; else y<=Tg; end if; whenTg=>if Start='0' then y<=Tg; else y<=Tj; end if; whenTh=>if Mostrar='0' then y<=Th; else y<=Ti; end if; when Ti=>if Start='0' then y<=Ti; else y<=Tj; end if; when Tj=>if Start='0' then y<=Ta; else y<=Tj; end if; end case; end if; end process; --salidas Process(y,Start,Mostrar,Dato,Enter,C0,Cn) Begin En1<='0'; En2<='0'; Ld1<='0'; Ld2<='0'; En<='0'; Sel<='0'; Sel1<='0'; Sel2<='0'; Valido<='0'; DI<='0'; Case y is When Ta=>En1<='1'; Ld1<='1'; En2<='1'; Ld2<='1'; En<='1'; When Tb=> When Tc=>DI<='1'; if Enter='1' then En1<='1'; En2<='1'; end if; if C0='1' then En<='1'; end if; When Td=>Sel1<='1'; DI<='1'; if Enter='1' then En1<='1'; En2<='1'; end if; When Te=>DI<='1'; When Tf=> When Tg=>Sel2<='1'; When Th=>Valido<='1'; When Ti=>Sel<='1'; When Tj=> end case; end process; end sol; 8.REPORTE SOBRE APROVECHAMIENTO