UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de...

35
Facultad de Estudios Superiores Cuautitlán UNAM Índice UNAM Facultad de Estudios Superiores Cuautitlan Manual del Laboratorio de Diseño de Sistemas Digitales Autor: Profesor José Luis Barbosa Pacheco Fecha de elaboración: Agosto de 2016 Fecha de revisión: Enero de 2020 Departamento: Asignatura: Ingeniería Diseño de Sistemas Digitales Sección: Clave de carrera: 130 Electrónica Clave de asignatura: 1838

Transcript of UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de...

Page 1: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Índice

UNAM Facultad de Estudios Superiores Cuautitla n

Manual del Laboratorio de Diseño de Sistemas Digitales

Autor: Profesor José Luis Barbosa Pacheco

Fecha de elaboración: Agosto de 2016 Fecha de revisión: Enero de 2020

Departamento: Asignatura:

Ingeniería Diseño de Sistemas Digitales

Sección: Clave de carrera: 130

Electrónica Clave de asignatura: 1838

Page 2: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Índice i

Índice

Objetivo general de la asignatura............................................................ ii

Objetivos del curso experimental ............................................................ ii

Introducción ............................................................................................ ii

Reglamento interno de los laboratorios de electrónica ......................... iii

Instrucciones para la elaboración del reporte ......................................... v

Criterios de evaluación del curso ............................................................ v

Práctica 1: Prueba del ambiente para el diseño de sistemas digitales . 1

Práctica 2: Modelado con lógica programable ..................................... 9

Práctica 3: Descripción por flujo de datos ......................................... 12

Práctica 4: Descripción funcional ....................................................... 15

Práctica 5: Diseño de máquinas de estados ....................................... 18

Práctica 6: Diseño de un reloj digital ................................................. 22

Práctica 7: Diseño de un procesador de imágenes ............................ 25

Bibliografía ............................................................................................ 29

Page 3: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Prólogo ii

Objetivo general de la asignatura

➢ Al finalizar el curso el alumno comprenderá y aplicará las herramientas y técnicas que le permitan modelar, diseñar, integrar, programar y construir sistemas digitales con diferentes tecnologías. Los conceptos de diseño arriba-abajo, flujo de datos, jerarquía de módulos y algoritmos; mediante el diseño con lógica programable.

Objetivos del curso experimental

➢ Aplicar diferentes técnicas de diseño de sistemas digitales. ➢ Aplicar el lenguaje de descripción para el diseño de sistemas digitales. ➢ Fomentar las prácticas de diseño con un ambiente de desarrollo integrado. ➢ Experimentar con una tarjeta de desarrollo de última generación.

Introducción

En la actualidad el nivel de integración alcanzado con el desarrollo de la microelectrónica ha hecho posible desarrollar sistemas completos dentro de un solo circuito integrado SOC (System On Chip), con lo cual se han mejorado de manera notoria características como velocidad, confiabilidad, consumo de potencia y sobre todo el área de diseño. Esta última característica nos ha permitido observar día a día cómo los sistemas de uso industrial, militar y de consumo han minimizado el tamaño de sus desarrollos. La integración de sistemas se ha ido superando a medida que surgen nuevas tecnologías de fabricación. Esto ha permitido obtener componentes de mayor complejidad y que brindan mayores beneficios. Sin embargo, el desarrollo de nuevos productos requiere bastante tiempo, por lo cual sólo se emplea cuando se necesita un alto volumen de producción.

Una forma más rápida y directa de integrar aplicaciones es mediante la lógica programable, la cual

permite independizar el proceso de fabricación del proceso de diseño fuera de la fábrica de semiconductores. Esta idea fue desarrollada por Hon y Sequin y Conway y Mead a finales de los años sesenta.

Los dispositivos lógicos programables (PLD, por sus siglas en inglés) favorecen la integración de

aplicaciones y desarrollos lógicos mediante el empaquetamiento de soluciones en un circuito integrado. El resultado es la reducción de espacio físico dentro de la aplicación; es decir, se trata de dispositivos fabricados y revisados que se pueden personalizar desde el exterior mediante diversas técnicas de programación. El diseño se basa en bibliotecas y mecanismos específicos de mapeado de funciones, mientras que su implementación tan sólo requiere una fase de programación del dispositivo que el diseñador suele realizar en unos segundos.

Page 4: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Prólogo iii

En la actualidad, el diseño de ASIC (circuitos integrados desarrollados para aplicaciones específicas)

domina las tendencias en el desarrollo de aplicaciones a nivel de microelectrónica. Ofrecen grandes ventajas en sistemas que emplean circuitos diseñados para una aplicación en particular. Sin embargo, su diseño sólo es adecuado en aplicaciones que requieren un alto volumen de producción. Por lo tanto, los FPGA (arreglos de compuertas programables en campo) y CPLD (dispositivos lógicos programables complejos) ofrecen las mismas ventajas de un ASIC, sólo que a un menor costo y con la ventaja de que ambos son circuitos reprogramables, en los cuales es posible modificar o borrar una función programada sin alterar el funcionamiento del circuito[7].

Con los dispositivos lógicos programables, podemos usar herramientas de software baratas para

llegar rápidamente al desarrollo, simulación y prueba de nuestros diseños. Por lo tanto, un diseño puede ser programado rápidamente en el dispositivo, e inmediatamente probados en vivo en el circuito.

El lenguaje de descripción está orientado a la descripción y modelado de un sistema digital en varios

niveles de abstracción. El planteamiento de las actividades de laboratorio están orientadas a familiarizar primeramente al alumno con el ambiente de desarrollo tanto hardware como software, posteriormente, las prácticas van requiriendo de la aplicación de las diferentes técnicas para el modelado y diseño de sistemas. Sistemas que van desde estructuras individuales hasta diseños conceptuales modelados de arriba-abajo. Por otro lado, se hace una vinculación entre la teoría y la práctica mediante la implementación de diseños usando tarjetas de desarrollo que van de acuerdo al estado del arte en dispositivos programables y ambientes de desarrollo que ofrecen grandes ventajas, así como herramientas de programación, simulación y análisis de última generación.

Reglamento interno de los laboratorios de Electrónica El presente reglamento de la sección electrónica, tiene por objeto establecer los lineamientos, requisitos y condiciones que deberán de conocer y aplica, alumnos y profesores en los laboratorios dentro de sus cuatro áreas: comunicaciones, control, sistemas analógicos y sistemas digitales. 1. Dentro del laboratorio queda estrictamente prohibido.

a. Correr, jugar, gritar o hacer cualquier otra clase de desorden. b. Dejar basura en las mesas de trabajo y/o pisos. c. Sentarse sobre las mesas d. Fumar, consumir alimentos y/o bebidas. e. Realizar o responder llamadas telefónicas y/o el envío de cualquier tipo de mensajería. f. La presencia de personas ajenas en los horarios de laboratorio. g. Dejar los bancos en desorden. h. Mover equipos o quitar accesorios de una mesa de trabajo a otra sin el consentimiento previo del

profesor de laboratorio en turno. i. Usar o manipular el equipo sin el conocimiento previo del profesor. j. Rayar las mesas del laboratorio. k. Energizar algún circuito sin antes verificar que las conexiones sean las correctas (polaridad de

las fuentes de voltaje, multímetros, etc.). l. Hacer cambios en las conexiones o desconectar equipo estando éste energizado. m. Hacer trabajos pesados (taladrar, martillar, etc.) en las mesas de las prácticas. n. Instalar software y/o guardar información en los equipos de cómputo de los laboratorios.

Page 5: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Prólogo iv

2. Se permite el uso de medios electrónicos y equipo de sonido (celulares, tabletas, computadoras, etc.) únicamente para la realización de las prácticas.

3. Es responsabilidad del profesor y de los alumnos revisar las condiciones del equipo del laboratorio al

inicio de cada práctica. (encendido, dañado, sin funcionar, maltratado, etc.) El profesor reportará cualquier anomalía al encargado de área correspondiente o al jefe de sección.

4. Los profesores deberán de cumplir con las actividades y tiempos indicados en el “cronograma de

actividades de laboratorio”. 5. Los alumnos deberán realizar las prácticas de laboratorio. No son demostrativas. 6. Es requisito indispensable para la realización de las prácticas, que el alumno cuente con su manual

completo y actualizado al semestre en curso, en formato digital o impreso, el cual podrá obtener en: http://olimpia.cuautitlan2.unam.mx/pagina_ingenieria.

7. Es requisito indispensable para la realización de las prácticas de laboratorio que el alumno cuente con

las hojas de datos técnicos de los dispositivos a utilizar. 8. El alumno deberá traer su circuito armado en la tableta de conexiones para poder realizar la práctica,

de no ser así, tendrá una evaluación de cero en la sesión correspondiente. 9. En caso de que el alumno no asista a una sesión, tendrá falta, (evaluándose con cero) y será indicada

en el registro de seguimiento y control por medio de guiones. 10. La evaluación de cada sesión debe realizarse en base a los criterios de evaluación incluidos en los

manuales de prácticas de laboratorio y no podrán ser modificados. En caso contrario, reportarlo al jefe de sección.

11. La evaluación final del laboratorio, será en base a lo siguiente:

A - (Aprobado); Cuando el promedio total de todas las prácticas de laboratorio sea mayor o igual a 6 siempre y cuando tengan el 90% de asistencia y el 80% de prácticas acreditadas en base a los criterios de evaluación.

NA - (No Aprobado); No se cumplió con los requisitos mínimos establecidos en el punto anterior. NP - (No Presentó); No se entregó reporte alguno.

12. Profesores que requieran hacer uso de las instalaciones de laboratorio para realizar trabajos o

proyectos, es requisito indispensable que notifiquen por escrito al jefe de sección. Siempre y cuando no interfiera con los horarios de los laboratorios.

13. Alumnos que requieran realizar trabajos o proyectos en las instalaciones de los laboratorios, es

requisito indispensable que esté presente el profesor responsable del trabajo o proyecto. En caso contrario no podrán hacer uso de las instalaciones.

14. Correo electrónico del buzón para quejas y sugerencias para cualquier asunto relacionado con los

laboratorios ([email protected]). 15. Los casos no previstos en el presente reglamento serán resueltos por el Jefe de Sección. NOTA: En caso de incurrir en faltas a las disposiciones anteriores, el alumno o profesor será acreedor a las

sanciones correspondientes.

Page 6: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Prólogo v

Instrucciones para la elaboración del reporte

Será necesario incluir en cada actividad previa y reporte de la práctica una portada obligatoria que contenga la información mostrada a continuación:

Para la presentación del reporte se deberá cumplir con los requisitos indicados en cada una de las

prácticas, incluyendo: • Introducción.

o Para la cual deberá realizar una investigar acerca del tema de la práctica y escribir su propia introducción.

• Procedimiento experimental: o Con todos sus resultados y elementos que considere importantes para enriquecer su

reporte como tablas de datos, mediciones, gráficas, comentarios, observaciones, esquemas y diagramas.

• Cuestionario. • Conclusiones.

o Representan una parte medular del reporte, es en dónde el alumno presenta la síntesis del trabajo, es decir, se pone a prueba la teoría contra la práctica.

• Bibliografía: o Elaborar una lista de las referencias bibliográficas realmente consultadas,

presentadas en un estilo de citación como APA o IEEE.

Así como todos los puntos solicitados dentro del desarrollo de la práctica.

Criterios de evaluación del curso

C1 (Criterio de evaluación 1): Actividades previas de la práctica (40%) C2 (Criterio de evaluación 2): Habilidad en el armado y funcionalidad de los sistemas (10%) C3 (Criterio de evaluación 3): Habilidad para manejo de equipo e interpretación de lecturas (10%) C4 (Criterio de evaluación 4): Reporte entregado con todos los puntos indicados (40%)

Page 7: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 1 1

Laboratorio de Diseño de Sistemas Digitales

Práctica 1: Prueba del ambiente para el diseño de sistemas digitales

Tema

1. Introducción.

Objetivos

Al término de esta práctica el alumno conocerá:

➢ Los recursos hardware con que cuenta la tarjeta de desarrollo.

➢ El conjunto de herramientas software para sintetizar sistemas en la tarjeta de desarrollo.

Introducción

Los dispositivos lógicos programables (PLD por sus siglas en inglés) y su más reciente evolución

como un arreglo de compuertas lógicas programable en campo (FPGA) ofrecen una versatilidad en cuanto a las características de capacidad lógica, velocidad y voltaje; además de que estos dispositivos pueden volver a ser configurados para cambiar cualquier característica de su función. Para ir más allá de la teoría, usaremos una plataforma para el desarrollo de circuitos digitales, que está lista para usarse; además, está diseñada para implementar aplicaciones de la industria en el ambiente del salón clase.

La Nexys4 DDR (figura 1.1) es una tarjeta de desarrollo basada en la última FPGA Artix-7TM de Xilinx®. Podemos desarrollar proyectos que van desde circuitos digitales básicos hasta poderosos procesadores embebidos. En la misma tarjeta se encuentran varios periféricos, entre los cuáles se incluyen: acelerómetro, sensor de temperatura, micrófono digital, amplificador de sonido, así como otros dispositivos de entrada y salida, que permiten llevar a cabo diseños sin necesidad de componentes adicionales.

Como herramienta software de desarrollo, la Nexys4 DDR es compatible con el suite de diseño Vivado®, así como el conjunto de herramientas software ISE®. Para obtener estas herramientas, Xilinx ofrece una versión WebPACKTM que nos permite implementar nuestros diseños sin costo adicional.

Por supuesto, existen otros fabricantes de FPGA como Altera, Lattice Semiconductor, Actel y otros. Cada uno ofrece dispositivos con sus características y ambientes de desarrollo particulares.

El ambiente de desarrollo contiene varias herramientas software que nos permiten realizar nuestro diseño de manera esquemática o textual, realizar la verificación mediante herramientas de simulación, especificar restricciones sobre el dispositivo específico para una óptima implementación y herramientas de programación para descargar el diseño sobre el dispositivo físico.

Existen numerosos lenguajes de descripción de hardware (HDL), sin embargo los más usados y soportados en la industria son Verilog y VHDL.

Page 8: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 1 2

Para el desarrollo de las prácticas correspondientes a la asignatura, utilizaremos la tarjeta Nexys4 DDR fabricada por Digilent®, el suite de diseño Vivado® en su versión WebPACKTM y VHDL como lenguaje para la descripción del hardware.

Figura 1.1. Características de

la tarjeta Nexys4 DDR.

Actividades previas

a la práctica

1) El alumno realizará la lectura de la práctica.

2) Descargar, leer y analizar el documento “Nexys 4 DDR

Reference Manual”.

3) Descargar e instalar Vivado HL WebPACK.

4) Usando los métodos tradicionales (tabla de verdad, mapas de Karnaugh y funciones lógicas), escriba (con el editor de texto de su preferencia) las funciones lógicas en VHDL que describa el comportamiento de un comparador de magnitud de 2 bits, que indique con una señal de salida de nivel alto, cuando el número sea menor, mayor o igual. Impleméntelo en una GAL y simule su comportamiento, verificando su correcto funcionamiento.

5) Entregue el reporte con la discusión de los resultados obtenidos en estas actividades.

Equipo

1 PC con software instalado: • VivadoTM HL WebPACK®

1 Tarjeta Nexys4 DDR de DIGILENT®

Page 9: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 1 3

Material

No aplica.

Procedimiento experimental

1. Crea un nuevo proyecto en Vivado, para ello ejecuta el programa y en la barra superior elije

la opción “File”→ ”New Project”, y oprimimos “Next”.

2. Aparece una nueva ventana en la que debemos escribir el nombre de nuestro proyecto, seleccionamos la ruta (Project location) para depositar nuestra carpeta, seleccionamos “Create project subdirectory” y oprimimos “Next” (figura 1.3).

Figura 1.3. Crear un nuevo proyecto.

3. Aparece una nueva ventana, verificamos que esté seleccionado RTL (Register Transfer Level)

y oprimimos “Next”.

4. Aparece otra ventana para especificar el tipo de lenguaje que usaremos para escribir el código, seleccionamos VHDL en las opciones “Target” y “Simulator”, oprimimos el botón “+” para continuar y seleccionamos “Create File”. Aparece una pequeña ventana, escribimos el nombre del archivo y luego damos “OK” (figura 1.4). Nuevamente aparece una ventana, esta vez para indicar si añadimos un IP (Intellectual Property), damos “Next” (por ahora no lo usaremos).

Page 10: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 1 4

Figura 1.4. Crear un archivo VHDL.

5. Aparece otra ventana (figura 1.5) para crear o añadir el archivo de restricciones. Oprimimos

el botón “+”, seleccionamos añadir, buscamos el archivo, lo seleccionamos y damos “OK”. Regresa a la ventana, seleccionamos el cuadro “Copy constraints files into project” y oprimimos “OK”.

Figura 1.5. Añadir el archivo de restricciones.

6. En la siguiente ventana, seleccionamos “Boards”, Vendor: “Digilent” y “Nexys4DDR”.

Figura 1.6. Seleccionar el tipo de tarjeta.

Page 11: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 1 5

7. Finalmente se crea el proyecto y aparece la vista de las opciones del ambiente de desarrollo. En la ventana “Sources”, podemos identificar los archivos que hemos credo previamente (figura 1.7).

Figura 1.7. Vista de los archivos, creados dentro del proyecto.

8. Seleccionar el archivo de diseño (Design Sources) y escribir o copiar el código en VHDL,

escrito en las actividades previas.

9. Editar el archivo de restricciones para que asignemos los interruptores (8 para el dato A y 8 para el dato B), así como los LEDs (1 para indicar A>B, otro para A<B y otro para A=B) que usaremos para indicar el resultado de la comparación.

10. Configurar el archivo que se copiará en el dispositivo, oprimiendo “Implementation Settings”, luego “Bitstream”, seleccionar “-bit_file*” y damos “OK” (ver figura 1.8).

Figura 1.8. Definir el tipo de archivo que se copiará en el dispositivo.

11. Ejecutar “Synthesis” →”Run Synthesis”, como se observa en la figura 1.9.

Page 12: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 1 6

Figura 1.9. Síntesis del proyecto.

12. Ejecutar “Implementation” →”Run Implementation” (ver la figura 1.10).

Figura 1.10. Implementación del proyecto.

13. Ejecutar “Program and Debug” →“Generate Bitstream”, seleccionando las opciones que

muestra la figura 1.11.

Figura 1.11. Generar el archivo.

Page 13: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 1 7

14. Conectar el cable USB de la tarjeta y colocar el interruptor en la posición de encendido, abrir la ventana con la opción “Open Target” → “Next” →”Next”, para establecer la conexión con la tarjeta. Como se muestra en la figura 1.12.

Figura 1.12. Generar el archivo.

15. Una vez establecida la conexión, aparece otra ventana para seleccionar el tipo de la tarjeta, damos “Next” y luego “Finish” (figura 1.13).

Figura 1.13. Selección de la tarjeta.

16. Finalmente, escogemos la opción “Program device” y luego el tipo de dispositivo (ver figura

1.14). A continuación aparece otra ventana para seleccionar el archivo a copiar, seleccionamos dicho archivo y el programa ha sido cargado en

Figura 1.14. Programación de la tarjeta.

Page 14: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 1 8

17. Verificar en el hardware, que el diseño funciona de acuerdo a lo planteado.

Cuestionario.

1) Elabore una tabla comparativa en cuanto a las capacidades de las recientes FPGA (al menos

tres) de los tres fabricantes cuyos dispositivos son los más usados en la industria y el diseño.

2) ¿Además de la FPGA, cuáles son los módulos con que cuenta la tarjeta usada en la práctica y para qué nos sirve cada uno de ellos?

Conclusiones

Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Page 15: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 2 9

Laboratorio de Diseño de Sistemas Digitales

Práctica 2: Modelado con lógica programable

Tema

2. Técnicas de modelado para el diseño de sistemas digitales.

Objetivos

Al término de esta práctica el alumno aplicará:

➢ Los conceptos de diseño arriba-abajo, flujo de datos, jerarquía de módulos y algoritmos; mediante el diseño con lógica programable.

Introducción

La técnica de modelado arriba-abajo (top-down) parte de la conceptualización general del sistema

sin especificar detalles. Posteriormente cada parte del sistema es analizada y diseñada en detalle, hasta realizar la definición completa del sistema. El diseño empleando esta técnica, a menudo considera cada uno de los bloques como “cajas negras” que hacen más fácil visualizar la idea general; aunque estas cajas no expliquen a detalle los componentes individuales. La técnica tiene la ventaja de separar el problema en partes; que nos permiten tener una idea clara de lo que debe hacerse. En cada paso de división, las nuevas partes resultan menos complicadas y, por lo tanto, fáciles de resolver. Las partes de la solución se convierten en unidades que se pueden volver a utilizar. Partir el problema, permite a más de una persona trabajar en la solución.

Por otro lado, los diagramas de flujo de datos son una herramienta que ayuda en el diseño sistemas utilizando la técnica arriba-abajo. Los subsistemas que se obtuvieron con la técnica arriba-abajo, puede ser representada por un diagrama de flujo de datos, convirtiéndose así en un agente o instancia del sistema, la cual identifica el manejo interno de los datos y el flujo de los mismos entre varias partes del sistema y dentro de su misma instancia.

El seudocódigo es una técnica de descripción “informal” del principio de operación de un algoritmo. Su intención es que pueda ser leído por el humano, no por la máquina. Su propósito es que las personas lo puedan entender fácilmente sin estar sujeto a la sintaxis del código de un lenguaje de programación específico.

Es conveniente conocer las diferentes técnicas para el diseño de sistemas digitales porque nos permite visualizar mejor nuestro diseño mediante el empleo de alguna o la combinación de todas.

Figura 2.1. Diseño arriba-abajo.

Page 16: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 2 10

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Diseñe un circuito comparador de magnitud de 8 bits, modificando el código del comparador de 2 bits diseñado en la práctica anterior. Cree un nuevo proyecto y escriba su código en Vivado HL WebPACK. Realice un análisis RTL para verificar que su diseño cumple con lo solicitado.

3) Haciendo uso de las técnicas de modelado del diseño arriba-abajo, flujo de datos, jerarquía de módulos y algoritmos; diseñe un circuito comparador de magnitud de 8 bits, tomando como instancia el comparador de 2 bits diseñado en la práctica anterior. Cree un nuevo proyecto y escriba su código en Vivado HL WebPACK. Realice un análisis RTL para verificar que su diseño cumple con lo solicitado.

4) Entregue el reporte con la discusión de los resultados obtenidos en estas actividades.

Equipo

1 PC con software instalado: • VivadoTM HL WebPACK®

1 Tarjeta Nexys4 DDR de DIGILENT®

Material

No aplica.

Procedimiento experimental

1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito

en las actividades previas.

2. Editar el archivo de restricciones para que asignemos los interruptores (8 para el dato A y 8 para el dato B), así como los LEDs (1 para indicar A>B, otro para A<B y otro para A=B) que usaremos para indicar el resultado de la comparación.

3. Configurar el archivo “Bitstream”, como lo realizó en la práctica número 1.

4. Sintetizar (“Synthesis” →”Run Synthesis”) el proyecto y verificar que no haya errores.

5. Realizar la implementación (Implementation” →”Run Implementation), verificar que no haya

errores y analice el resumen del proyecto (Project Summary).

Page 17: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 2 11

6. Ejecutar la opción para generar el (“Program and Debug” →“Generate Bitstream).

7. Conectar el cable USB de la tarjeta y colocar el interruptor en la posición de encendido, copiar

el archivo “.bit” y verificar que no haya errores.

8. Verificar en el hardware, que el diseño funciona de acuerdo a lo planteado.

Cuestionario

1) ¿Existen algunas ventajas de usar las técnicas de diseño?, mencione algunas.

2) Mencione las características que considere importantes y que obtuvo en el resumen del

proyecto “Project Summary”, para cada diseño de las actividades previas mencionadas en los puntos 2) y 3).

Conclusiones

Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Page 18: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 3 12

Laboratorio de Diseño de Sistemas Digitales

Práctica 3: Descripción por flujo de datos

Tema

2. Técnicas de modelado para el diseño de sistemas digitales

Objetivos

Al término de esta práctica el alumno aplicará:

➢ El diseño de sistemas digitales con lógica programable, empleando la descripción por flujo de datos.

➢ Diferenciar y entender el uso de las sentencias concurrentes, condicional y por selección.

Introducción

La arquitectura de un sistema digital puede ser modelada de diferentes maneras. Entendiendo las

diferentes técnicas de modelado y cómo usarlas, representa el paso más importante para aprender VHDL. Una arquitectura puede ser descrita mediante tres técnicas básicas de modelado, más, la combinación de cualquiera de las tres; dichas técnicas pueden ser por flujo de datos, funcional, estructural e híbrido.

El modelo de la descripción en VHDL se fundamenta en el paralelismo y la concurrencia con la descripción textual de los circuitos. El corazón de la descripción en VHDL es la sentencia concurrente, de la cual existen cuatro tipos: asignación concurrente de una señal, asignación condicional, asignación selectiva y la sentencia proceso (process en inglés).

En las arquitecturas de flujo de datos se encuentran las sentencias concurrentes descritas anteriormente (asignación concurrente, condicional y selectiva). A continuación se presenta la sintaxis de cada una de ellas con fines ilustrativos y para diferenciar una de otras:

• Asignación concurrente <destino> <= <expresión>;

• Asignación condicional <destino> <expresión> when <condición> else <expresión> when <condición> else

<expresión>;

• Asignación selectiva With <opción> select <destino> <= <expresión> when <opciones>, <expresión> when <opciones>, <expresión> when others;

Page 19: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 3 13

En estos ejemplos, podemos prácticamente “observar” el flujo de los datos por el circuito. Este tipo de modelado funciona bien para circuitos pequeños y relativamente simples. Pero, para circuitos más complejos, es mejor cambiar a los modelos funcionales.

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Diseñe un circuito multiplexor de 4 entradas a una salida. Cree un nuevo proyecto y

escriba su código en Vivado HL WebPACK. Escriba el código usando la asignación concurrente, luego un código usando la asignación condicional y, finalmente, un código con la asignación selectiva. Realice un análisis RTL para verificar que su diseño cumple con lo solicitado, así como comparar los resultados obtenidos al usar los diferentes tipos de asignación.

3) Entregue el reporte con la discusión de los resultados obtenidos en estas actividades.

Equipo

1 PC con software instalado: • VivadoTM HL WebPACK®

1 Tarjeta Nexys4 DDR de DIGILENT®

Material

No aplica.

Procedimiento experimental

1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito

en las actividades previas.

2. Editar el archivo de restricciones para que asignemos los interruptores (4 para las entradas de datos y 2 para las señales de selección), así como el LED que usaremos para indicar el estado de la salida de datos.

3. Configurar el archivo “Bitstream”, como lo realizó en la práctica número 1.

4. Sintetizar (“Synthesis” →”Run Synthesis”) el proyecto y verificar que no haya errores.

5. Realizar la implementación (Implementation” →”Run Implementation), verificar que no haya

errores y analice el resumen del proyecto (Project Summary).

Page 20: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 3 14

6. Ejecutar la opción para generar el (“Program and Debug” →“Generate Bitstream).

7. Conectar el cable USB de la tarjeta y colocar el interruptor en la posición de encendido, copiar

el archivo “.bit” y verificar que no haya errores.

8. Verificar en el hardware, que el diseño funciona de acuerdo a lo planteado.

Cuestionario

1) De acuerdo a sus resultados, recomiende en qué tipos de diseño usar uno u otro tipo de

asignación.

2) ¿Existen diferencias en el hardware generado para cada diseño?, mencione algunas.

Conclusiones

Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Page 21: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 4 15

Laboratorio de Diseño de Sistemas Digitales

Práctica 4: Descripción funcional

Tema

2. Técnicas de modelado para el diseño de sistemas digitales

Objetivos

Al término de esta práctica el alumno aplicará:

➢ El diseño de sistemas digitales con lógica programable, empleando la descripción funcional. ➢ Diferenciar y entender el uso del modelado por flujo de datos y funcional.

Introducción

Como hemos abordado en las prácticas anteriores, existen diferentes maneras de diseñar un sistema

digital y sólo queda al diseñador escribir su diseño de la manera más clara y dejar a la herramienta de síntesis ordenar los detalles.

La sentencia de proceso (process) es una herramienta que nos permite ejecutar un cierto número de instrucciones de manera secuencial, sin embargo, no debemos olvidar que la sentencia “process”, en sí misma, es concurrente.

A continuación, mostramos la estructura de la sentencia de proceso: mi_etiqueta: process(señales_a_sensar) is <declaración_señales,variables, etc.> Begin <sentencias_secuenciales> End process mi_etiqueta;

El corazón de la programación funcional es la sentencia process. El principal punto a recordar es

que el cuerpo del proceso se compone de sentencias secuenciales. Es importante resaltar que la ejecución de una sentencia en el estilo funcional es controlada por las señales que aparecen en las señales a sensar (“sensivity_List”). Por el contrario, las sentencias que aparecen en el modelo de flujo de datos, son re-evaluadas cada vez que las señales de entrada cambian. Esto es una diferencia funcional, no sólo una diferencia de apariencia.

La sentencia process debería ser considerada como una manera que el diseñador tiene a su disposición para ejecutar una serie de sentencias secuenciales, sin olvidar que la sentencia process es en sí una sentencia concurrente. La sentencia “case” es el equivalente secuencial de la sentencia de with. Sin embargo, la sentencia

case es una sentencia secuencial que se encuentra en el cuerpo de process mientras que with es una forma de asignación de una señal concurrente.

A continuación introducimos el uso de la sentencia case dentro de un proceso:

Page 22: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 4 16

mi_etiqueta: process(señales_a_sensar) is

<declaración_señales,variables, etc.> Begin case (expresión) is when opciones => <sentencias_secuenciales>

when opciones => <sentencias_secuenciales> when others => <sentencias_secuenciales> end case; End process mi_etiqueta;

En la sentencia case sólo se ejecuta un conjunto de sentencias secuenciales, por cada ejecución de la

sentencia case.

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Diseñe un circuito multiplexor de 4 entradas a una salida. Cree un nuevo proyecto y

escriba su código en Vivado HL Web PACK. Escriba el código usando la sentencia para describir un proceso. Realice un análisis RTL para verificar que su diseño cumple con lo solicitado, así como comparar los resultados obtenidos al usar los diferentes tipos de asignación.

3) Entregue el reporte con la discusión de los resultados obtenidos en estas actividades.

Equipo

1 PC con software instalado: • VivadoTM HL WebPACK®

1 Tarjeta Nexys4 DDR de DIGILENT®

Material

No aplica.

Procedimiento experimental

1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito

en las actividades previas.

Page 23: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 4 17

2. Editar el archivo de restricciones para que asignemos los interruptores (4 para las entradas de datos y 2 para las señales de selección), así como el LED que usaremos para indicar el estado de la salida de datos.

3. Configurar el archivo “Bitstream”, como lo realizó en la práctica número 1.

4. Sintetizar (“Synthesis” →”Run Synthesis”) el proyecto y verificar que no haya errores.

5. Realizar la implementación (Implementation” →”Run Implementation), verificar que no haya

errores y analice el resumen del proyecto (Project Summary).

6. Ejecutar la opción para generar el (“Program and Debug” →“Generate Bitstream).

7. Conectar el cable USB de la tarjeta y colocar el interruptor en la posición de encendido, copiar

el archivo “.bit” y verificar que no haya errores.

8. Verificar en el hardware, que el diseño funciona de acuerdo a lo planteado.

Cuestionario

1) De acuerdo a sus resultados, recomiende en qué tipos de diseño usar el modelo por flujo de

datos.

2) ¿Existen diferencias en el hardware generado, respecto al diseño de la práctica anterior?,

mencione algunas.

Conclusiones

Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Page 24: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 5 18

Laboratorio de Diseño de Sistemas Digitales

Práctica 5: Diseño de máquinas de estados

Tema

2. Técnicas de modelado para el diseño de sistemas digitales

Objetivos

Al término de esta práctica el alumno aplicará:

➢ El diseño de sistemas digitales con lógica programable, empleando los modelos de descripción por flujo de datos y funcional.

➢ Modelado de máquinas de estados con lógica programable.

Introducción

Las Máquinas de Estados Finitos (FSM) son abstracciones matemáticas utilizadas para resolver

problemas de automatización electrónica, diseñar protocolos de comunicación, análisis y otras aplicaciones de ingeniería.

Una red secuencial canónica puede ser descrita por el diagrama de la figura 5.1:

Figura 5.1. Representación canónica de una FSM.

Con frecuencia es conveniente separar la red combinacional en dos partes, C1 y C2, como muestra la

figura 5.2:

Page 25: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 5 19

Figura 5.2. Máquina de Mealy.

Esta máquina de estados en la cual la salida presente z(t) depende del estado presente s(t) y de la

entrada presente x(t), se llama máquina de Mealy. Si la salida presente z(t) depende sólo del estado presente, la máquina de estados es conocida como

máquina de Moore (figura 5.3).

Figura 5.3. Máquina de Moore.

Esta representación mediante diagrama de bloques funcional, nos facilita su descripción en VHDL.

Por ejemplo, para la máquina de moore: • Entidad

o Descripción de las entradas y salidas a la FSM (x(t), z(t) y clk). • Señales intermedias:

o Declaración de estado presente y estado siguiente (s(t) y s(t+1)). • Bloque de registro de estados:

o Descripción de un proceso secuencial. • Bloque del proceso combinacional de entrada C1:

o Descripción mediante un proceso para probar las condiciones de los estados y transiciones (prácticamente es traducir el diagrama de estados a código de VHDL).

• Proceso combinacional de salida C2: o Descripción mediante un proceso para probar el último estado y asignar la salida

final z(t). La versatilidad del comportamiento en VHDL evita la necesidad de hacer largos diseños en papel.

Page 26: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 5 20

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Diseñar un circuito secuencial que simule la apertura de una puerta mediante un

código secreto. Se deberán presionar 3 botones para proporcionar la clave de 4 dígitos (Por ejemplo definir la clave: 2-0-1-2). El código es programable de acuerdo al siguiente esquema:

a. El primer dígito estará definido por los switches (7:6), de acuerdo a la combinación “00”,”01” y “10” de los botones definidos para el número “0”, “1” y “2” respectivamente.

b. El segundo dígito estará definido por los switches (5:4). c. El tercer dígito estará definido por los switches (3:2). d. Finalmente el cuarto dígito estará definido por los switches (1:0). e. Debemos presionar los cuatro dígitos antes de saber si el código fue correcto. f. Si el código fue correcto, se encenderá un LED(1), de lo contrario se encenderá

otro LED(0). Cree un nuevo proyecto y escriba su código en Vivado HL WebPACK. Realice un análisis RTL

para verificar que su diseño cumple con lo solicitado.

3) Entregue el reporte con la discusión de los resultados obtenidos en estas actividades.

Equipo

1 PC con software instalado: • VivadoTM HL WebPACK®

1 Tarjeta Nexys4 DDR de DIGILENT®

Material

No aplica.

Procedimiento experimental

1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito

en las actividades previas.

2. Editar el archivo de restricciones para que asignemos los interruptores (8 para definir el código), así como los LEDs que usaremos para indicar el estado de la salida de datos(1 para indicar código erróneo y otro para código correcto).

3. Configurar el archivo “Bitstream”, como lo realizó en la práctica número 1.

Page 27: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 5 21

4. Sintetizar (“Synthesis” →”Run Synthesis”) el proyecto y verificar que no haya errores.

5. Realizar la implementación (Implementation” →”Run Implementation), verificar que no haya errores y analice el resumen del proyecto (Project Summary).

6. Ejecutar la opción para generar el (“Program and Debug” →“Generate Bitstream).

7. Conectar el cable USB de la tarjeta y colocar el interruptor en la posición de encendido, copiar

el archivo “.bit” y verificar que no haya errores.

8. Verificar en el hardware, que el diseño funciona de acuerdo a lo planteado.

Cuestionario

1) Muestre el diagrama de bloques de la solución al problema planteado en las actividades

previas.

2) Mencione las características que considere importantes y que obtuvo en el resumen del

proyecto “Project Summary”.

Conclusiones

Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Page 28: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 6 22

Laboratorio de Diseño de Sistemas Digitales

Práctica 6: Diseño de un reloj digital

Tema

3. Diseño utilizando componentes MSI y LSI.

Objetivos

Al término de esta práctica el alumno aplicará:

➢ El diseño de sistemas digitales con lógica programable, empleando los modelos de descripción por flujo de datos, funcional y estructural.

➢ Diseño de un sistema digital integral.

Introducción

Las técnicas modernas y las herramientas de síntesis de sistemas digitales raramente emplean

circuitos integrados de mediana escala de integración (MSI) y de gran escala de integración (LSI); sin embargo, las propiedades generales de las funciones contenidas en estos circuitos, siguen siendo de gran utilidad. Por esta razón, las técnicas modernas hacen uso de las funciones de los decodificadores, circuitos aritméticos, multiplexores, contadores, memorias, arreglos lógicos programables, etcétera.

Frecuentemente un sistema se compone de una variedad de pequeños sistemas. Esto nos permite construir grandes sistemas a partir de pequeños componentes o de componentes que fueron previamente diseñados. VHDL proporciona un mecanismo conocido como instanciación, para llevar a cabo estas tareas. Este tipo de código se llama descripción estructural.

Por ejemplo, para diseñar un sumador de 2 bits, podemos diseñar un sumador de 1 bit y utilizarlo como bloque de construcción (estructura) para sumadores de mayor tamaño. A este tipo de estructuras también se le conoce como “bit-slice”.

Figura 6.1. Diseño estructural.

Page 29: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 6 23

Como ya hemos observado, aún los circuitos digitales más complejos están compuestos de un conjunto de circuitos estándar más algunas señales de control asociadas. El arte de diseñar usando VHDL se centra alrededor de la adecuada selección e interfaz de estos circuitos.

La mayor ventaja de utilizar circuitos digitales estándar con VHDL consiste en usar el código existente para estos circuitos y modificarlo de acuerdo a las necesidades de nuestro diseño particular.

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Diseñar un sistema digital que realice la función de reloj digital de acuerdo con los

siguientes requerimientos:

a. El reloj debe desplegar el tiempo en los formatos mostrados en la figura 6.2. El tiempo debe estar en el formato de 12 horas y deberá haber una indicación para mostrar am o pm.

b. En el momento de encender el sistema, se deberá desplegar: 12:00:01am. c. Las horas y minutos deberán poder ser modificados por el usuario, para

permitir la puesta de la hora correcta. d. Usar el modelo de descripción funcional en la escritura del código.

Cree un nuevo proyecto y escriba su código en Vivado HL WebPACK. Realice un análisis RTL

para verificar que su diseño cumple con lo solicitado.

Figura 6.2. Formato de salida del reloj.

3) Entregue el reporte con la discusión de los resultados obtenidos en estas actividades.

Equipo

1 PC con software instalado: • VivadoTM HL WebPACK®

1 Tarjeta Nexys4 DDR de DIGILENT®

Material

No aplica.

Page 30: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 6 24

Procedimiento experimental

1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito

en las actividades previas.

2. Edite el archivo de restricciones para asignar las entradas y salidas de su reloj.

3. Configurar el archivo “Bitstream”, como lo realizó en la práctica número 1.

4. Sintetizar (“Synthesis” →”Run Synthesis”) el proyecto y verificar que no haya errores.

5. Realizar la implementación (Implementation” →”Run Implementation), verificar que no haya errores y analice el resumen del proyecto (Project Summary).

6. Ejecutar la opción para generar el (“Program and Debug” →“Generate Bitstream).

7. Conectar el cable USB de la tarjeta y colocar el interruptor en la posición de encendido, copiar

el archivo “.bit” y verificar que no haya errores.

8. Verificar en el hardware, que el diseño funciona de acuerdo a lo planteado.

Cuestionario

1) Muestre el diagrama de bloques de la solución al problema planteado en las actividades

previas.

2) Mencione las características que considere importantes y que obtuvo en el resumen del

proyecto “Project Summary”.

Conclusiones

Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Page 31: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 7 25

Laboratorio de Diseño de Sistemas Digitales

Práctica 7: Diseño de un procesador de imágenes

Tema

4. Diseño de sistemas digitales con memorias.

Objetivos

Al término de esta práctica el alumno aplicará:

➢ El diseño de sistemas digitales con lógica programable, empleando los modelos de descripción por flujo de datos, funcional y estructural.

➢ Diseño de un sistema digital integral utilizando elementos de memoria.

Introducción

Con frecuencia un sistema digital requiere de memoria para el almacenamiento de información. Para

satisfacer esta necesidad, la mayoría de los dispositivos FPGA contienen módulos de memoria embebidos. Sin embargo, estos dispositivos no pueden reemplazar el almacenamiento masivo de los dispositivos externos de memoria, los contenidos internamente, son usados para aplicaciones que requieren pequeñas o medianas cantidades de memoria.

Un bloque de RAM es un módulo especial embebido en el dispositivo FPGA y está separado de las celdas lógicas regulares. Puede pensarse como una SRAM rápida conectada por una interfaz síncrona configurable. Dependiendo de la FPGA, cada bloque de RAM puede consistir de 16Kbits de datos más, opcionalmente, 2Kbits de paridad. Cada bloque de RAM se puede organizar de diferentes anchos, desde 16K x 1 hasta 512 x 32.

Aunque la estructura interna de los módulos de memoria es similar, existen diferencias sustanciales en sus interfaces, como el número de puertos de lectura y escritura, el esquema de temporización, etcétera. Es posible describir el comportamiento del módulo deseado con código en VHDL; sin embargo, el software de síntesis puede, o no, reconocer la intención del diseñador. Por lo tanto, el código VHDL no siempre puede inferir el módulo apropiado de memoria y normalmente no es portable. En el ambiente de desarrollo de Xilinx, existen tres métodos para incorporar un módulo de memoria embebido:

• Instanciación. • Un programa generador de núcleos. • Un código que se puede importar (template).

En el caso de las memorias ROM, como su nombre lo indica, son memorias de sólo lectura, es un circuito combinacional y no tiene estados internos. Su salida depende sólo de la entrada. Realmente no existe un bloque de ROM embebido a la FPGA, pero puede ser emulado por un circuito combinacional o un bloque de RAM con la operación de escritura deshabilitada. El contenido de la ROM se puede expresar por medio de constantes en el código HDL y los valores se cargan cuando el

Page 32: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 7 26

dispositivo es programado. Debido a que la ROM se basa en la RAM, la operación de lectura puede ser asíncrona o síncrona.

Figura 7.1. Bloque de RAM en una FGA de Xilinx.

Actividades previas a la práctica

1) El alumno realizará la lectura de la práctica.

2) Descargar, leer y analizar el documento “Nexys 4 DDR Reference Manual”, particularmente la sección “VGA PORT”.

3) Diseñar un sistema digital que realice el desplegado de una imagen previamente cargada en una memoria, el diseño debe constar de los bloques principales para el controlador de VGA y la memoria ROM que contendrá el mapa de bits correspondiente a la imagen. Como ayuda y muestra del proceso de diseño arriba-abajo, la figura 7.2 ilustra los bloques que constituyen el sistema completo.

Cree un nuevo proyecto y escriba su código en Vivado HL WebPACK. Realice un análisis RTL para verificar que su diseño cumple con lo solicitado.

4) Entregue el reporte con la discusión de los resultados obtenidos en estas actividades.

Page 33: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 7 27

Figura 7.2. Sistema de desplegado de imagen.

Equipo

1 PC con software instalado: • VivadoTM HL WebPACK®

1 Tarjeta Nexys4 DDR de DIGILENT®

Material

No aplica.

Page 34: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Práctica 7 28

Procedimiento experimental

1. Crear un nuevo proyecto en VivadoTM HL WebPACK® y copie, escriba o añada el código escrito

en las actividades previas.

2. Edite el archivo de restricciones para asignar las entradas y salidas de su sistema para el desplegado de la imagen.

3. Configurar el archivo “Bitstream”, como lo realizó en la práctica número 1.

4. Sintetizar (“Synthesis” →”Run Synthesis”) el proyecto y verificar que no haya errores.

5. Realizar la implementación (Implementation” →”Run Implementation), verificar que no haya

errores y analice el resumen del proyecto (Project Summary).

6. Ejecutar la opción para generar el (“Program and Debug” →“Generate Bitstream).

7. Conectar el cable USB de la tarjeta y colocar el interruptor en la posición de encendido, copiar

el archivo “.bit” y verificar que no haya errores.

8. Verificar en el hardware, que el diseño funciona de acuerdo a lo planteado.

Cuestionario

1) Muestre el diagrama de bloques de su solución al problema planteado en las actividades

previas.

2) Mencione las características que considere importantes y que obtuvo en el resumen del

proyecto “Project Summary”.

Conclusiones

Elabore las conclusiones a las que haya llegado después de realizar todas las actividades de esta práctica.

Bibliografía

Elabore una lista de las referencias bibliográficas consultadas.

Page 35: UNAMolimpia.cuautitlan2.unam.mx/pagina_ingenieria/electronic... · 2020-02-13 · Facultad de Estudios Superiores Cuautitlán UNAM Prólogo iv 2. Se permite el uso de medios electrónicos

Facultad de Estudios Superiores Cuautitlán UNAM

Bibliografía 29

Bibliografía

[1] P. P. Chu, FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version, Edición: 1.

Hoboken, N.J: John Wiley & Sons Inc, 2007.

[2] Bryan Mealy y Fabrizio Tappero, Free Range VHDL. 2013.

[3] Richard E.Haskell y Darrin M. Hanna, Learning By Example Using VHDL - Advanced

Digital Design with a Nexys-2 FPGA Board. Rochester, MI: LBE Books, 2008.

[4] “Nexys 4 DDR Reference Manual [Reference.Digilentinc]”. [En línea]. Disponible en:

https://reference.digilentinc.com/reference/programmable-logic/nexys-4-ddr/reference-manual.

[Consultado: 06-ago-2016].

[5] “VHDL Primer”. [En línea]. Disponible en:

http://www.seas.upenn.edu/~ese171/vhdl/vhdl_primer.html#_Toc526061341. [Consultado: 14-

ago-2016].

[6] “Vivado Design Suite”. [En línea]. Disponible en: http://www.xilinx.com/products/design-

tools/vivado.html. [Consultado: 06-ago-2016].

[7] D. G. Maxinez y J. Alcalá Jara, VHDL: El arte de programar sistemas digitales. México:

COMPAÑÍA EDITORIAL CONTINENTAL, 2007.