Sei sulla pagina 1di 21

Código Revisión:

INSTRUMENTO DE EVALUACIÓN
F-SGC-033 00

MECATRÓNICA 4°B
ÁREA AUTOMATIZACIÓN

DISPOSITIVOS DIGITALES

PRÁCTICA CONTADOR 0000-9999

CANCHÉ OXTÉ ALAN GILBERTO


KOH VELÁZQUEZ ISAURO
SEGOVIA GONZÁLEZ MANUEL
TAMAY SOLIS RAFAEL ALEJANDRO

PROFESOR:
MENDOZA PINTO LUIS MANUEL

FECHA 04/NOVIEMBRE/2019
ÍNDICE

- Planteamiento del problema…………………………………..(pag.4)


- Archivo electrónico con el diagrama ………………..(pag.4)

-Programación hecha en vhdl…………………………..(pag.5-17)


uu0RELOG……………………………………….….…..(pag.5)
uu1 contadorvcd………………………………..………..(pag.6)
uu2mux…………………………………………………....(pag.7)
uu3display………………………………………….……..(pag.8-9)
uu4RELOG…………………………………………...…..(pag.10)
uu5contador0al 2…………………………………….…..(pag.11)
uu6controlanodo……………………………………..…..(pag.12)
Test Bench –RELOG………………………………………..(pag.13-14)
Main………………………………………………………..(pag.15-17)
Relacion de los modulos en el Main……………………( pag.15)
-Asignación de salidas y entradas en el fpga…………..…(pag.17)
-Programando el fpga……………………………………….(pag.18)
- Resultado de la prueba en el sistema de desarrollo o tablilla de

prototipos SISTEMA FPGA…………………………………..(pag.18-20)


- Conclusiones…………………………………………………..(pag.21)
Código Revisión:
INSTRUMENTO DE EVALUACIÓN
F-SGC-033 00

DATOS GENERALES DEL INSTRUMENTO.


División: INDUSTRIAL.
FDC*/Carrera: MECATRONICA
Asignatura: DISPOSITIVOS DIGITALES
Cuat.-Gpo(s): CUARTO B Fecha de aplicación: 29/10/19
Unidad(es) de aprendizaje y/o tema(s) a evaluar.
Práctica 2. Control reversible de un motor de CD con funciones lógicas

Especificar con una “X” el tipo de instrumento de evaluación a utilizar (señalar sólo uno).
Tec. evaluación para el SABER Tec. evaluación para el SABER HACER + SER
Prueba oral (entrevista) Otro (Especificar): Proyectos Otro (Especificar):
Prácticas, ejercicios,
Prueba escrita X
demostraciones
Trabajo investigación Rúbrica
x Ensayo, informe Lista de cotejo
Guía de observación
Profesor(es) de la asignatura: Luis Manuel Mendoza Pinto
Nombre del alumno: Canché Oxté Alan Gilberto- ----Koh Velázquez Isauro ----Segovia González Manuel, -
--------------------------------------Tamay Solis Rafael Alejandro Calificación (puntaje):

CONTENIDO DEL INSTRUMENTO DE EVALUACIÓN


El reporte debe incluir los siguientes elementos:
- Portada
- Rubrica
- Planteamiento del problema
- Tabla de verdad
- Diagrama de estado
- Ecuaciones
- Simplificación de las ecuaciones
- Archivo electrónico con el diagrama y la simulación
- Resultado de la prueba en el sistema de desarrollo o tablilla de prototipos SISTEMA FPGA
- Conclusiones

Material necesario:

1 tarjeta FPGA
Código Revisión:
INSTRUMENTO DE EVALUACIÓN
F-SGC-033 00

-Planteamiento del problema


Realizar el programa de un contador que cuente automáticamente del 0000 al 9999
-Archivo electrónico con el diagrama
Para hacer el contador se tomo en cuanta el siguiente diagrama de bloques, ya que son todos
los modulos que se tienen que tomar en cuenta para poder realizarlo

RELOJ 1(4Hz)

CONTADOR(U,D, MUX 4-1 DISPLAY


C,M)

Ctrl Anodo

RELOJ 2(1Hz) Contador(1-4)

Nuestros modulos se llamaron de la siguiente manera


reloj1 (4Hz) y 2(1Hz) RELOG,RELOG
contador(u.d.c.m)  Contadorvcd
Mux(4-1)  Mux
(display 7 segmentos) display,-
(contador (1-4))  contador 0al 2
(ctrl anodo) controlanodo
-Programación hecha en vhdl
UU0RELOG
Este reloj es el que irá al contador 0-9999
Necesitamos un reloj ya que sin reloj no hay contador, es por eso que requerimos adicionar un
código de divisor que convierte el reloj de cristal de 50 Mhz disponible en el FPGA a la frecuencia
de 16 MHz requerido para que el conteo.
El código dice que si nuestro contador es igual a nuestro rango de conteo entonces no va haber
ningún pulso, sin embargo, si no es igual entonces si habrá un pulso y se sumará uno para
cambiar a otro número y de esa forma la salida será lo que tenga la variable pulso.
UU1contadorvcd
En el contadorvcd se escribió la programación que seguirá el contador 0000 a 9999, para esto se
pusieron 4 variables las cuales fueron U(unidad),D(decena),C(centena),M(milésima )la lógica que
se siguió fue que cuando las unidades lleguen a 9 la decena aumentente 1 y las unidades
regresen a 0;lo mismo con la centena , cuando las decenas lleguen a 9 las centenas aumentan 1 y
las decenas regresan a 0 y así con las milésimas ; ya cuando el contador llegue a 9999 este se
reiniciara a 0000,del contador van a salir 4 variables las cuales son U,D,C,M estas salidas serán
las entradas del multiplexor
UU2mux
El multiplexor programado fue un 4 a 1, esto debido a que las 4 entradas del
multiplexor serán las U(unidades),D(decenas),C(centenas),M(milésimas ) que irán saliendo del
contador (0000-9999) y estas serán seleccionadas por un selector el cual será un contador (1-4)
Una vez que el selector(contador 1-4) escoja el dato de salida , este será la salida del selector que
irá al display
UU3display
La programación del display de 7 segmentos en BCD se realizo por medio de la ecuación
resultante de la tabla de verdad que se muestra a continuación, esta ecuación se obtuvo por
medio de mapas de karnaugh y se coloco tal y como se muestra para cada segmento, esto servirá
para los 4 displays que mostraran las U,D,C Y M .

- A B C D A B C D E F G
0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 1 1 0 0 1 1 1 1
2 0 0 1 0 0 0 1 0 0 1 0
3 0 0 1 1 0 0 0 0 1 1 0
4 0 1 0 0 1 0 0 1 1 0 0
5 0 1 0 1 0 1 0 0 1 0 0
6 0 1 1 0 0 1 0 0 0 0 0
7 0 1 1 1 0 0 0 1 1 1 1
8 1 0 0 0 0 0 0 0 0 0 0
9 1 0 0 1 0 0 0 0 1 0 0
A 1 0 1 0 0 0 0 1 0 0 0
B 1 0 1 1 1 1 0 0 0 0 0
C 1 1 0 0 0 1 1 0 0 0 1
D 1 1 0 1 1 0 0 0 0 1 0
E 1 1 1 0 0 1 1 0 0 0 0
F 1 1 1 1 0 1 1 1 0 0 0

Ecuaciones
A=(A’B’C’D)+(A’BC’D’)+(ABC’D)+(AB’CD)
B=(ACD)+(BCD’)+(ABC’D’)+(A’BC’D)

C=(ABC)+(ABD’)+(A’B’CD’)

D=(BCD)+(A’BC’D’)+(A’B’C’D)+( AB’CD’)

E=(A’D)+(A’BC’)+( B’C’D)

F=(A’B’D)+(A’B’C)+(A’CD)+(ABC’D)

G=(A’D’C’)+(A’BC’D’)+( A’BCD)
UU4RELOG
Para este relog se utilizo el mismo que el uu0 pero como en el Main se puso dos para cada
contador, por eso lo decidimos poner ya que este controlara el contador(1-4)
Necesitamos un reloj ya que sin reloj no hay contador, es por eso que requerimos adicionar un
código de divisor que convierte el reloj de cristal de 50 Mhz disponible en el FPGA a la frecuencia
de 16 MHz requerido para que el conteo.
El código dice que si nuestro contador es igual a nuestro rango de conteo entonces no va haber
ningún pulso, sin embargo, si no es igual entonces si habrá un pulso y se sumará uno para
cambiar a otro número y de esa forma la salida será lo que tenga la variable pulso.
UU5contador0al2
Este contador será utilizado como el selector para el multiplexor(4-1) por eso es que el contador
solo llega hasta 4 y se reinicia a 0 por que este seleccionara si el dato del multiplexor ya sea
U(unidades),D(decenas),C(centenas),M(milésimas ) el dato de entrada de este contador será un
relojde 1khz
UU6controlanodo
El control de los ánodos nos servirá para escoger en que display se mostrada el dato
El primer display sera para las unidades, el segundo para las decenas , el tercero
para las centenas y el cuarto para las milésimas , la entrada será determinada por el
contador (1-4)
Test Bench –RELOG
En este caso haremos el testbench del reloj para verificar su correcto funcionamiento. Para ello habrá que
realizar una simulación del circuito diseñado. La etapa de verificación funcional se va a realizar con la
herramienta de simulación ISE Simulator. Para poder simular el circuito primero debemos crear un banco de
pruebas (testbench waveform) donde se introducen los valores que se asignan a las entradas y en función
de los cuales se obtendrá una salida que deberá coincidir con el valor esperado de acuerdo a la
funcionalidad de nuestro circuito. En este caso lo que esperamos es que se genera unos 12500000 pulsos
aproximadamente para que los números sean visibles para el ojo humanos en el display, ya que se realizó
una división de la frecuencia del reloj original que era de 50Mhz, el cual era demasiado rápido.
Simulación del test bench
Main
En la entidad del main se escribieron los puertos que servirían como entradas y salidas del fpga,
también se escribieron dos constantes que seria los RANGCONT 1 y 2, en la parte de la
arquitectura se describieron signals las cuales servirían como lazos internos en el programa , de
ahí se describieron todos los componentes que se habían descrito anteriormente con sus
respectivos puertos, al final de puso un begin con los nombres de todos los modulos y los puertos
de estos se describieron con respecto a los puertos de Main para unir las salidas con la entradas
de los modulos.

Relación de los modulos en el main


-uu0reloj1
Servirá como dato de entrada del contador (000-9999) para que este vaya contando
-uu1contador(0000-9999)
este contador se encargara de contar del 0 al 9999 teniendo dividida estas cantidades en
Unidades ,Decenas, Centenas y Milésimas, las cuales serán sus salidas y a la vez serán las
entradas del multiplexor, teniendo como entrada el reloj1
-uu2multiplexor(4-1)
El multiplexor 4-1 tendrá como entradas las salidas del contador(0000-9999) que serán
U(unidad), D(decena), C(centena), M(milésima ) estas entradas serán seleccionadas por un
selector el cual será un cotador(1-4) y la salida del multiplexor ira al display que le corresponda.
uu3display
los displays se encargaran de mostrar los números mandados por el contador al mux, estos
números serán mostrados dependiendo el display que le corresponda el cual será escogido por el
control de anodos .
uu4reloj2
el reloj2 servira como dato de entrada del contador(1-4)
uu5contador(1-4)
Este funcionara como selector del multiplexor(4-1)
uu6 control anodo
El control del anodo escogerá el display al cual ira el numero dependiendo del selector del
multiplexor ya que el controlador(1-4)es la entrada del ctrl anodo.
Asignación de entradas y salidas en el FPGA
Luego procedimos a asignar la entrada que sería Reloj50Mhz y las salidas que serian los cátodos que
son los 7 segmentos del display y los ánodos que serian los 4 displays
Programación del FPGA
Por ultimo se subió al programa al fpga

- -Resultado de la prueba en el sistema de desarrollo o tablilla de


prototipos SISTEMA FPGA(Resultados de la practica)
- -Conclusiones
Aprendimos a realizar un divisor de reloj ya que nos es útil a la hora de configurar que tan
rápido queremos que se haga una instrucción, en este caso pues quisimos que de 12Mhz
porque es lo que el ojo alcanza a visualizar. Además aprendimos a usar el diagrama de
bloques para poder guiarnos a la hora de programar y no perdernos en cómo hacer las
funcionalidades o módulos de VHDL, así como también hicimos varios módulos para cada
función en específico, y después aprendimos a crear un archivo MAIN que contenga toda las
funcionalidades o submódulos, lo cual nos facilita mucho a la hora de programar y entender
que hace el código, ya que así se tiene una organización mas estructurada y comprensible.
- Por último también usamos el concepto de reloj síncrono, ya que de esta manera trabaja el reloj
para este caso (haciendo uso de la teoría de como funcionan en los Flip Flops JK)

CRITERIOS DE EVALUACION

VALIDACION DE LA ACADEMIA*

Nombre de los integrantes de la academia Firma


Ing. Luis Mendoza Pinto
Ing. Jesús Peet Manzón

* Este apartado solo se llenará para la entrega de este instrumento a la División correspondiente.

Potrebbero piacerti anche