Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad Nacional Autónoma de México Facultad de Ingeniería Diseño Digital VLSI Grupo: 05 - Semestre: 2023-1 Tarea 12: Contador Flip Flop D y Func. Fecha de entrega: 06/10/2022 Profesora: M.I. Elizabeth Fonseca Chávez Alumno: Téllez González Jorge Luis Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Introducción En la siguiente tarea se mostrarán los ejercicios realizados por imitación correspondiente a los 6.3 y 6.4 sobre sistemas secuenciales. Desarrollo Ejercicio 6.3 Dado el comportamiento de una tabla de transición, genere el diagrama de estado, implemente con FFD. Se tiene una tabla de transición que no tiene entradas y salidas; solo estados actuales y estados siguientes. Tiene 4 estados: 00, 01, 10 y 11. Cuando se está en el estado 00 deberá pasar al estado 10. Si se está en el estado 10 deberá pasar al estado 11, y si se está en el estado 11 deberá pasar al estado 00. Se genera la tabla de transición de estados con los datos proporcionados: Estado E E+1 e0 00 01 e1 01 10 e2 10 11 e3 11 00 Se responden las siguientes preguntas: 1. ¿Cuántos estados y cuáles se requieren? Se requieren 4 de 2 bits cada uno. 2. ¿Cuántas entradas y cuáles se requieren? No se cuenta con entradas. 3. ¿Cuántas salidas y cuántas se requieren? No se cuenta con salidas 4. ¿Qué se quiere tener como estado siguiente? El estado subsecuente considerando la numeración al valor siguiente en binario (00 ->01, 01->10…). En la implementación en FFD los estados son las salidas, y el comportamiento del �ip-�op se obtiene por una reducción con Karnaugh. Una vez transcritos los códigos propuestos, se 2 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ procede a simular únicamente estableciendo la división de frecuencia en el reloj con un C.T. de 50% y un periodo de 10[ns], dejando Q0 y Q1 en alta impedancia. Como se observa, una vez que se procede a simular se obtiene la transición de estados deseada dada por los bits en Q0 y Q1; lo que resulta en un conteo binario ascendente del 0 al 3 que se repite. Figura 1. Entradas en la simulación del ejercicio 6.3. Figura 2. Salida en el ejercicio 6.3, donde se observa el comportamiento deseado. 3 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Ejercicio 6.4 Realizar el mismo ejercicio 6.3 con estilo funcional en VHDL. Considerando la tabla de transición planteada en el ejercicio anterior, ahora se implementará esta transición por un método funcional; similar al realizado durante la elaboración del Proyecto 1: ALU automatizada. En esta forma, los estados se de�nen como constantes, se emplean señales para los estados presente y siguiente y, por último, se de�ne un process donde se tendrá un case en donde a cada estado presente se le asignará su estado siguiente siguiendo la tabla de transición de�nida. A continuación se muestra la simulación del código propuesto: Figura 3. Entradas en la simulación del ejercicio 6.4. El reset queda en 0 para permitir la transición. Figura 4. Salida en el ejercicio 6.4, donde se observa el comportamiento deseado. 4 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Contador de 3 bits por Flip-Flop D Para cumplir los requerimientos solicitados, es necesario replantear la tabla de transición realizada de la siguiente manera: Estado E E+1 e0 000 010 e1 001 010 e2 010 011 e3 011 100 e4 100 101 e5 101 110 e6 110 111 e7 111 000 Entonces, para obtener las expresiones lógicas requeridas es necesario replantear el mapa de Karnaugh para realizar una reducción y obtener las expresiones lógicas necesarias para implementar la transición correcta. Para esto, la tabla anterior ahora se colocará en función del �ip-�op a implementar de la siguiente forma: Estado presente Estado siguiente D2 D1 D0 Q2 Q1 Q0 Q2+1 Q1+1 Q0+1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 5 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 Con lo anterior, es posible de�nir de forma detallada los mapas de Karnaugh respectivos, ya que se requerirán 3 en total: 𝐷 2 = 𝑄 2 𝑄 0 + 𝑄 2 𝑄 1 + 𝑄 2 𝑄 1 𝑄 0 = xor𝐷 1 = 𝑄 1 𝑄 0 + 𝑄 1 𝑄 0 𝑄 0 𝑄 1 𝐷 0 = 𝑄 0 6 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Con las expresiones booleanas obtenidas, es posible iniciar a modi�car el código del ejercicio. En primer lugar, se debe añadir Q2 para aumentar un bit al estado. Luego, se debe añadir una señal adicional para D2 y, por último, añadir un top adicional donde se enviará D2 y Q2. Figura 5. Modi�caciones realizadas al código principal. En el archivo combinacional.vhd se añaden Q2 y D2 en entrada y salida y, además, se declaran las expresiones obtenidas anteriormente por reducción de Karnaugh; considerando que la suma equivale al OR y la multiplicación a AND. Figura 6. Declaración de las expresiones al Flip-Flop D de la parte combinacional. Al archivo FFD.vhd no se le realiza ninguna modi�cación adicional. 7 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Figura 7. Declaración del Flip-Flop D. Figura 8. Diagrama RTL del contador de 3 bits con Flip-Flop D. Por último, se realiza la simulación para veri�car que las expresiones obtenidas sean correctas y el contador del 0 al 7 funcione correctamente. 8 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Figura 9. Entrada a la simulación. Figura 10. Salida obtenida, donde se muestra que el contador funciona adecuadamente marcando los valores. 9 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Contador de 3 bits por método funcional Empleando como base el código desarrollado, ahora se añadirá un bit adicional a la transición de estados; lo que resultará en un conteo del 0 al 7 en total. Para lograr esto, en primer lugar se debe modi�car la dimensión de salMoore de 1 a 2 downto 0 para incrementar su dimensión. Posteriormente, se cambia la dimensión del subtipo state igualmente a 2 downto 0. Luego, se añaden los estados adicionales con su valor esperado (del 0 al 7 binario). Figura 11. Estados adicionales declarados y dimensión aumentada de los mismos. Luego, se tiene el primer processencargado de materializar la transición. Es decir, mientras exista un cambio en el reloj interno (sin aplicar una división de frecuencia), se realizará una transición del estado presente al estado siguiente asignando al valor presente el valor del estado siguiente actual. Se añade una condición que menciona que, si el valor lógico de reset es 1, se regresará de forma incondicional al estado e0. Figura 12. Detección de cambios en el reloj para realizar la transición. 10 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Por último, con un segundo process que tiene en su lista de sensibilidad al estado presente se de�ne un case en donde se de�ne de forma concreta la transición de cada estado (por ejemplo, cuando el estado actual sea e0, entonces el siguiente será e1). Dicho de otro modo, se de�ne, dado un estado actual, cuál será el estado siguiente en un momento dado. Figura 13. Asignación del estado siguiente dado el actual. Figura 14. Diagrama RTL del contador de 3 bits por método funcional. A continuación se muestra la simulación del código modi�cado, en donde solo se de�ne el C.T. del reloj interno a 50% y el resto se deja sin modi�caciones. Figura 15. Entradas en la simulación del contador funcional de 3 bits. 11 Facultad de Ingeniería Diseño Digital VLSI______________________________________________________________________________________________________________ Figura 16. Salida obtenida por el contador funcional, donde se observa el conteo del 0 al 7 correcto. Conclusiones Por medio del trabajo desarrollado una vez más fue posible analizar la resolución de un contador por medio de dos metodologías distintas; como lo es emplear Flip-Flops, o bien, una máquina de estados. La primera opción, como se vio en el ejercicio desarrollado, es un tanto más laboriosa ya que requiere realizar las reducciones correspondientes con Karnaugh; con la ventaja de ser una solución más compacta. Por otra parte, la metodología funcional resulta mucho más sencilla e intuitiva de desarrollar; aunque con la parte negativa de requerir mayor cantidad de código para establecerse. Ambas opciones, sin embargo, cumplen su objetivo al de�nir el contador de 3 bits (0 a 7) solicitado. Con el ejercicio propuesto pude volver a retomar conceptos de DDM relacionados al Álgebra Booleana y la reducción por medio de mapas de Karnaugh, lo que ciertamente me será útil para continuar en las siguientes actividades del curso de VLSI. 12
Compartir