Descripción: Guia de ejercicios con Flip flops...
Universidad de El Sal v v ad or ad or Sistemas Digitales Digital es I
Universidad de El Salvador Facultad de Ingeniería y Arquitectura Guía 3: “Reloj Digital en VHDL” Franc Fra ncisc iscoo Ern Ernes esto to Cru Cruzz Ju Juáre árezz
RESUMEN: Con el desarrollo de la presente guía pretende pretende resum resumirse todo lo aprendi aprendido do sobre la program programaci ación ón en VH VHDL DL.. Se emplea el lenguaje VHDL junto con la herramienta de simulación gráfica TINA para el desarrollo de un proyecto que abarca los conocimientos adquiridos durante la asignatura. Ahora que se conocen los diferentes tipos de flip-flops y como crear contadores UP/DOWN, a través de éstos, éstos , podem pode mos util utilizarlos para pa ra diseñar diseñar un Reloj Digital. En este momento omento se supone que el e l estudi es tudiante ante domina domina la simulación en TINA, la programación en VHDL y el funcionamiento de los flip-flops. Hay una infinidad de formas de diseñar flip-flops en VHDL, de hecho hay librerías como las de ALTERA, que permite usarlos como un componente. En esta ocasión se pretende diseñarlos. Se incluirá en la guía el diseño de dispositivos MSI como lo son los multiplexores, para el diseño de contadores. Reloj Digital en e n VH VHD DL
Sasii Liz Sas Lizet et Ram Ramíre írezz Mol Molina ina
INTRODUCCIÓN: A manera de ejemplo se mostrará el diseño sencillo de los flip-flops “D”,“T” y “JK ”, si se desea otro tipo, la metodología de diseño es similar, además se introduce un unaa mejor técnica técnica para el desarrollo de la asignación, el diseño de un contador sin usar flip-flops. Los Ejemplos que aquí se presentan tienen el mínimo nú núm mero de entradas entradas y salidas, salidas, por po r ejemplo ejemplo el fli flip- flop flop tiene la entrada D y CLK y la la salida salida Q, tal vez “D”, tiene su diseño necesite necesite un , un RESET, RESET, etc. que tendrá que agregar y codifi codificar por po r su cuenta. En esta guía no se mostraran los pasos a seguir para la creación creación de compone component ntes es VH VHDL DL en TINA, si lo ha olvidado consulte las guías anteriores. Por último se le invita a explorar las ventajas de TINA, graficar, simular en tiempo real, usar componentes virtuales, etc.
Ing. Salvador German
Página 1
Universidad de El Sal v ad or Sistemas Digitales I
DISEÑO DE UN FLIP-FLOP “D” ACTIVADO POR FLANCO DE SUBIDA. Un flip-flop “D” de este tipo obedece a la lógica mostrada en la tabla 1, que muestra que Q toma el valor de D, cuando hay un flanco de subida en CLK. Q anterior Q anterior Q anterior Q anterior
D CLK Q D 0 Q anterior D 1 Q anterior D D
Q anterior
D
Q anterior
Al seguir los pasos expuestos en las guías anteriores, se puede crear el componente de TINA, como se muestra en la figura 1.
Figura 1. Para poder ver su funcionamiento se colocó en las entradas señales de diferente periodo, el resultado se muestra en la figura 2.
Tabla 1. De modo que el valor de D se le pasa a Q cuando ocurre un flanco de subida, para implementar esto en VHDL se puede hacer de muchas formas, una sería obtener una ecuación lógica, otra sería implementar la tabla de verdad la que se utilizará en este ejemplo es, simplemente implementar su lógica, note que solo que ocurra un flanco de subida se pasa el valor de D a Q, con solo esto podemos implementarlo con el código siguiente.
Figura 2. La primera señal es el reloj “CLK ”, la segunda es la entrada “D”, por último tenemos la salida “Q ”, note como cuando se da el flanco de subida en CLK la salida Q toma el valor de D. Se darán otros ejemplos pero se asumirá que el estudiante sabe cómo funcionan los flip-flop, por tanto solo se dará el código que lo implementa, y el resultado.
Reloj Digital en VHD L
Ing. Salvador German
Página 2
Universidad de El Sal v ad or Sistemas Digitales I
DISEÑO DE UN FLIP-FLOP “T” ACTIVADO POR FLANCO DE SUBIDA. El código para implementar este circuito se muestra a continuación. Note como se usa una señal para poder usar la salida Q también como entrada.
El resultado se muestra en la figura 3. Note como la segunda señal Q cambia su estado cuando CLK tiene un flanco de subida si la tercera señal T está en alto.
DISEÑO DE UN FLIP-FLOP ACTIVADO POR FLANCO DE SUBIDA.
El código para implementar este circuito se muestra a continuación. Note como se usa una señal para poder usar la salida Q también como entrada.
El resultado se muestra en la figura 3. Par crear esta gráfica se colocó en alto las entradas J y K, con esto el flip-flop debería cambiar su salida cuando ocurre un flanco de subida, exactamente lo que se ve en la figura.
Figura 4.
Figura 3.
Reloj Digital en VHD L
“JK ”
Ing. Salvador German
Página 3
Universidad de El Sal v ad or Sistemas Digitales I
DISEÑO DE UN FLIP-FLOP “JK ” ACTIVADO POR FLANCO DE BAJADA. Con un flip-flop JK, con activación por flanco de subida se puede diseñar un contador DOWN sencillo, si se quiere crear un contador UP será mejor utilizar un flip-flop JK con activación por flanco de bajada, el código para este es prácticamente idéntico al anterior y se muestra a continuación, note como ahora dice IF CLK = “0 . ‟
DISEÑO DE UN CONTADOR UP, SIN USO DE FLIP-FLOP. Una forma mucho mejor de crear un contador es diseñarlo directamente como tal. Es decir si usar conexiones de flip-flop. Quizá se entienda mejor viendo un ejemplo. El resultado se muestra en la figura 6. Para que empiece a contar es necesario dar un pulso de reset.
En la figura 5 se muestra la realización de un contador UP, con este flip-flop.
Figura 6. Figura 5.
Reloj Digital en VHD L
Con todo lo anterior se tiene suficientes fundamentos para crear el reloj digital.
Ing. Salvador German
Página 4
Universidad de El Sal v ad or Sistemas Digitales I
ASIGNACIONES: 1. Programar y simular en VHDL los siguientes circuitos: Flip-flop JK con entradas SET y RESET. Flip-flop RS con entradas adicionales SET y RESET. Flip-flop D con entradas SET y RESET. Flip-flop T con entradas SET y RESET. Contador Asíncrono UP/DOWN MOD 10 usando multiplexor 2 a 1. Contador síncrono UP/DOWN MOD 10 usando multiplexor 2 a 1. NOTA: debe crear un componente VHDL para los multiplexores en donde se pida utilizarlos. 2. Desarrollar y simular un reloj digital con formato de 24 horas, deberá poder establecer la hora, con pulsadores como el mostrado en la figura 7, se tendrán pulsadores individuales para la hora minutos y segundos. Usará el convertidor de 7 segmentos que diseño en la guía 2. La interfaz que vera el usuario será como la mostrada en la figura 8.
Utilizar un circuito de reloj con frecuencia de 1 kHz que deberá diseñar, tiene muchas opciones de diseño; entre ellas: Un 555. Un Cristal. Un bloque de código VHDL.
No podrá utilizar un circuito de reloj predeterminado de TINA. Grafique la forma de onda del circuito de reloj. ¿Cuál es su Duty-Cicle?
INVESTIGACIÓN: Investigue las librerías de ALTERA, que permiten usar flip-flop ya diseñados, escriba el código necesario para usar estos componentes. Investigue algunas formas de crear un tren de pulsos.
¿Es posible generar con un 555 un tren de pulsos con Duty-Cicle de 50%? Si su respuesta es sí, ¿Cómo se hace? Si su respuesta es no ¿por qué? Investigue el uso de las librerías en VHDL existentes en VHDL para simplificar el trabajo de codificación usado decodificadores, codificadores, multiplexores, demultiplexores y sumadores.
Figura 7.
Figura 8.
Reloj Digital en VHD L
Ing. Salvador German
Página 5
Universidad de El Sal v ad or Sistemas Digitales I
CONTENIDO DEL REPORTE: Portada 5%. Índice 5%. Introducción 5%. Objetivos 5%. Marco Teórico 5%. Desarrollo de los circuitos: Descripción de los pasos seguidos para la solución 10%. o Códigos VHDL 15%. o Gráficos de cada circuito en TINA y funcionamiento (3 capturas máx. por circuito)10%. o
Resultados de investigación 10%. Observaciones por circuito 5%. Conclusiones 20%. Bibliografía 5%.
ENVIAR AL CORREO: Reporte en formato PDF y WORD. Códigos utilizados (*.vhd). Circuitos hechos en TINA. Componentes creados (*.TSM). Imágenes de los resultados. NOTA: Enviar el correo a la dirección
[email protected] el mismo día de la entrega de la tarea. Si el correo no se recibe, se descontarán 3 puntos de la nota de la tarea. Adjuntar en el correo de forma separada: un archivo .rar conteniendo los reportes en formato PDF y WORD; y otro archivo conteniendo los códigos, circuitos, componentes e imágenes de resultados en carpetas para cada circuito. Como asunto colocar: TAREA 3 y el carnet de los estudiantes (Ej. TAREA 3 AA13000 AA13000). Seguir las indicaciones y no copiar, pues eso se toma en cuenta en la calificación. F echa de ent r ega : martes 16 de junio de
2015, de 10:00 am a 11:00 a.m. en la Asociación de Eléctrica. Después de esa hora se calificará en base nueve. Cada día de retraso, resta un punto de la nota. Entregar el reporte impreso en el horario especificado y enviar el correo a la dirección estipulada, el mismo día.
Reloj Digital en VHD L
Ing. Salvador German
Página 6