2024-1

View project on GitHub

ELECTRÓNICA DIGITAL 1 2024-1

UNIVERSIDAD NACIONAL DE COLOMBIA

Profesor:

Ferney Alberto Beltrán Molina
fabeltranm@unal.edu.co.
github profesor: https://github.com/Fabeltranm/
github curso: https://unal-edigital1.github.io/2024-1

Material de clase, labs de años anteriores

Descripción

Este curso-laboratorio proporciona las bases metodológicas y tecnológicas para el diseño de sistemas digitales. Una vez cursado el estudiante debe ser capaz de realizar el proceso completo de diseño de un sistema digital complejo, desde su especificación hasta la implementación física, utilizando herramientas CAD que faciliten el proceso, y su implementación

Metodología

El estudiante es responsable de adquirir el conocimiento, y tiene la responsabilidad de preparar los temas que se van a tratar, antes de cada nuevo tema se dejarán lecturas para las prácticas que deben ser realizadas por el estudiante y las dudas se discutirán y aclararán en clase de laboratorio.

Adicionalmente, el estudiante debe aprender a manejar por su cuenta los programas computacionales utilizados en el curso. Con esto se elimina la dependencia tecnológica y permite que en la vida profesional se puedan adquirir nuevos conocimientos de forma autónoma. Sobra decir que el componente práctico es de vital importancia ya que el estudiante debe ser capáz de realizar implementaciones físicas que cumplan con especificaciones físicas, eléctricas, funcionales y económicas.

Requisitos: Aparte de los establecidos en cada uno de los programas que incluye el curso, es recomendable que el estudiante tenga disposición para el diseño e implementación de circuitos electrónicos y así como bases en algún lenguaje de programación de computadores.

Objetivos

  • Realizar el flujo completo de diseño de un sistema digital complejo desde su especificación hasta su implementación física.
  • Adopción y utilización de metodologías de diseño modernas basadas en representaciones funcionales, estructúrales y físicas.
  • Sembrar las bases para el desarrollo de aplicaciones comerciales.

Contenido

  • Introducción al Diseño Electrónico Digital
  • Representación de Datos y Sistemas Numéricos
  • Lógica Combinacional
  • Lógica Secuencial FSM
  • Maquinas de Estado Algorítmico
  • Unidad de Control y DataPath
  • Introducción a procesadores
  • PROYECTO FINAL

Evaluación

  • 70% Proyecto y labs. se realizan 7 laboratorios como prerequisito. Se realizan las respectivas realimentaciones y observaciones de mejora. Todos los laboratorios deben tener documentación.
  • 15% autoevaluación
  • 15% co-evaluación

Documentos de las clases teóricas

Semana Tema Material
Semana 1 introducción week1_pdf
Semana 2 sistema Númerico week2_pdf
Semana 3 logica combinacional week3_pdf
Semana 4 logica combinacional/análisis de tiempos week4_pdf
Semana 5 y 6 logica Secuencial week5-6_pdf
Semana 7 Proyecto y maquinas de estado informe labs.pdf

Videos de tutorias de proyectos

Todos los videos los encuentra en la carpeta de drive, en este link

Semana Tema Material
6 de Abril Explicación de la 1 entrega video 1 y Video 2
8 de Abril Matriz 8x8, max 7912, SPI, ADC video 1
10 de abril pantalla LCD diver ILI91363C y ultrasonido video 1 y video 2
15 de abril Explicación de como hacer la logica de SPI video 1
17 de abril Explicación de la arquitectura y Spec video 1
24 de abril Retroalimentación de 1 entrega Video 1 y Video 2
4 de mayo 1-wire y revisión de FSM para matriz 8x8 Video 1
6 de mayo 7AM ,se habla de antirrebote, y dos grupos presentan avances, 9AM un grupo presenta avances Video 7am y Video 9am

Estructura de los Laboratorios y Proyecto

Metodología de trabajo de los laboratorios

Para cada paquete de trabajo se debe clonar la plantilla dada, y los resultados del trabajo de cada grupo deben ser subidos antes de la fecha estipulada. Se recomienda leer la ayuda de github classroom en este link y ver los videos de github de YouTube, como por ejemplo este crash course de este link o pueden descargar un libro de git del siguiente link Antes de empezar, si no ha tenido ningún acercamiento con los repositorios de git debe realizar los siguientes pasos:

  • Crear una cuenta de github. Ver este video
  • Para crear repositorios revise este link

Antes de comenzar con cada paquete de trabajo se debe leer las instrucciones y tener todos los archivos. Para acceder a cada paquete de trabajo debe:

  • Aceptar la asignación de cada link dado.
  • La aplicación les pregunta si desean crear un grupo nuevo o unirse a uno existente:
    • Para crear un grupo nuevo coloque “Grupo-xx”, donde xx es el número del grupo.
    • Para unirse a un grupo existente, busque el nombre y pulse el botón join.

Nota: Todos los estudiantes debes unirse al grupo correspondiente y tener cuidado de no equivocarse de grupo

Luego de unirse a cada grupo de trabajo debe clonar su repositorio en su computador, para lo cual:

  • Si usted no tiene ningún conocimiento de cómo hacer esto, recomiendo usar github Desktop el cual se puede descargar de este link, y la documentación de uso la encuentra en este link Recuerde lo que debe hacer es clonar el repositorio creado de forma automática por git classroom y NO crear uno nuevo
  • Para los estudiantes que usen el sistema operativo Linux les recomiendo usar la siguiente guía para clonar el repositorio e iniciar en el mundo de control de versiones link

RECUERDEN: Todos los integrantes del grupo deben trabajar en el respectivo repositorio y participar en los commit y push, y la construcción de la documentación.

Video configuración git

Documentación

Para todos los paquetes de trabajo se debe realizar la documentación respectiva, que evidencie el progreso del trabajo. Puede hacer uso de fotos, videos, comentar el código HDL, y todo lo que el grupo considere necesario para explicar los avances que va teniendo.

Recuerde el trabajo que ustedes documenten, será el que leerán sus compañeros de los próximos semestres. En este contexto, la evaluación de la documentación será tenida en cuenta la minuciosidad y claridad de la misma.

La documentación se debe diligenciar en el archivo README.md, que se encuentra en cada repositorio, en el cual deben colocar el nombre de los integrantes y el número de identificación.

El archivo README.md, se debe escribir en formato Markdown. Para aprender cuál es el formato de este documento se recomienda revisar el siguiente link que les da una visión rápida del formato usado para hacer la documentación. Las imágenes, fotos y soportes gráficos deben ser alojados en la carpeta figs y deben ser vinculadas en documento README.md.

Para una mejor compresión y visualización de los avances de los pre-laboratorios y del proyecto se debe configurar la página con https://pages.github.com/

Código HDL

El código HDL está alojado en la carpeta src. Allí están los archivos fuente dados en clase y allí deben alojar todo los archivos diseñados y desarrollados por los integrantes de grupo y según sea solicitado en la guía de cada paquete de trabajo.

Entrega

Recuerde tener presente el deadline de cada paquete de trabajo. Para actualizar el repositorio deben realizar el respectivo commit y push, según sea la plataforma que estén utilizando y como se explicó en clase. Recuerde también revisar que en la página de github se reflejan las actualizaciones realizadas por el grupo de trabajo.

Tarjetas de trabajo

CicloneIV

Préstamo de equipos LABDIEE

En la carpeta labDIEE_2024_1 encontrarán varios archivos relacionados al Laboratorio del Departamento de Ingeniería Eléctrica y Electrónica. El archivo FORMATO_Movimiento_transitorio_bienes-LABDIEE-2024-1.xlsm contiene el formato que deben diligenciar para que puedan adelantar el préstamo de equipos en casa. Por grupo de trabajo deben llevar al almacén el formato diligenciado, una copia del mismo y la fotocopia del carnet del integrante que vaya a figurar como el responsable de los equipos, quien será el encargado de recibirlos. Revisen todos los archivos de la carpeta, ya que encontrarán los horarios del almacén, el listado de equipos según la asignatura y las fechas de recepción de formatos y entrega de equipos, así como información relevante del laboratorio.

Cronograma de laboratorios (labs)

Semana Tema Guia de laboratorio WP deadline
Semana 1 instalación Quartus link    
Semana 1 Opcional L00 Basico    
Semana 2 L1 Configuracion de Git y Quartus sum1b link L01 sum1b  
Semana 3 L2 Sumador 4b y testbench link L02  
Semana 4 L3 BCD2sseg display 7 segmentos link L03  
Semana 6 L4 Banco de Registro link lab link video L04  
Semana 7 L5 multiplicador link L05  

laboratorios complementarios

Tema Subtema Guia WP  
Visualización VGA link WP LabVGA  
Visualización LCD1602 link HDL  
Buses SPI master link WP SPI  

Ejemplos sencillos de programación

*link

Proyecto

Introducción

El proyecto final de este curso de Electrónica Digital 1 representa la culminación del proceso de aprendizaje a través de los fundamentos y las aplicaciones avanzadas de la electrónica digital. Tras haber explorado temas esenciales como la representación de datos, lógica combinacional y secuencial, máquinas de estado algorítmico, unidades de control, datapath y una introducción a los procesadores, el objetivo principal de este proyecto es aplicar de manera integrada todos estos conocimientos para resolver un problema práctico específico o innovar en el diseño de una solución tecnológica.

Este proyecto no solo busca evaluar la comprensión teórica de los contenidos del curso, sino también, y más importante, medir la habilidad para aplicar estos conocimientos en la creación de sistemas digitales funcionales. Se espera que, a través de este ejercicio, los estudiantes demuestren no solo competencia en el uso de herramientas y técnicas de diseño electrónico digital, sino también creatividad, pensamiento crítico y habilidades de resolución de problemas.

El proyecto final es una oportunidad para:

Integrar y aplicar conocimientos: Utilizar de manera conjunta los conceptos aprendidos para diseñar y construir un sistema digital complejo, que pueda incluir componentes como FSM, lógica combinacional y secuencial, y unidades de control personalizadas.

Desarrollar habilidades prácticas: Ganar experiencia práctica en el diseño, simulación, implementación y prueba de circuitos y sistemas electrónicos digitales.

Innovar: Ir más allá de la reproducción de conocimientos y demostrar capacidad para innovar, ya sea mejorando un diseño existente o creando una solución completamente nueva a un problema dado.

Colaborar y comunicar: Trabajar efectivamente en equipo y comunicar los resultados de manera clara y efectiva, tanto por escrito como oralmente, incluyendo la documentación técnica del proyecto.

El éxito en este proyecto no se mide solo por la funcionalidad del sistema o producto final, sino también por la calidad del proceso de diseño, la capacidad para enfrentar y resolver desafíos técnicos, y la habilidad para documentar y comunicar el trabajo realizado de manera efectiva. Este proyecto es, por lo tanto, el paso final hacia la consolidación de una sólida base en electrónica digital, sobre la cual los estudiantes pueden construir en futuros proyectos de ingeniería, investigación o desarrollo tecnológico.

Rúbrica

El proyecto equivale al 70% de la nota total del curso, y se realizan 3 entregas de avances del mismo. En este sentido, los laboratorios no son evaluables pero son requisitos fundamentales para poder empezar a trabajar en el proyecto.

La rúbrica de evaluación de las entregas es:

Especificación de los sistemas que conforman el proyecto:

  • a) Detalle de la especificación de los componentes del proyecto, su descripción funcional y sistema de caja negra.
  • b) Uso de un lenguaje adecuado para describir el sistema.
  • c) Utilización de diagramas de conexión claros para describir cada módulo y especificar los bloques funcionales en HW.

Arquitectura del sistema:

  • a) Definición clara de la funcionalidad de cada periférico y coherencia con la implementación en HDL y su conexión.
  • b) Capacidad para decidir la arquitectura más adecuada del proyecto y replanteamiento de modelos.
  • c) Correcto uso de la simulación para cada componente y el sistema completo, incluyendo la detección de posibles fallas.
  • d) Complejidad del diseño, qué tan desafiante es el diseño desde el punto de vista técnico.

Prototipo:

  • a) Interpretación de resultados de simulaciones y determinación de causas físicas que puedan generar malos funcionamientos.
  • b) Coherencia entre la especificación, el diseño, las pruebas y la implementación.
  • c) Justificación y replanteamiento del modelo basado en una evaluación cíclica de diseño.
  • d) Interpretación de resultados de la implementación y determinación de causas físicas que puedan generar malos funcionamientos.
  • e) Capacidad para responder preguntas técnicas sobre el diseño e implementación del proyecto de manera clara y concisa.
  • f) Evaluación del cumplimiento de los requisitos funcionales y técnicos especificados para el proyecto.

Trabajo en Equipo y Gestión del Proyecto:

  • a) Planificación y gestión del tiempo para el cumplimiento de hitos y la gestión eficiente del tiempo.
  • b) Capacidad para superar obstáculos, evaluando la resiliencia del equipo para superar dificultades y obstáculos durante el proyecto.
  • c) Colaboración y trabajo en equipo, evaluando la efectividad del trabajo en equipo y la contribución equitativa de todos los miembros del equipo. La evaluación de este ítem se basará en la contribución al repositorio del proyecto, revisiones entre pares (autoevaluación y coevaluación) y presentaciones individuales.

Documentación:

  • a) Consolidación de la documentación en un repositorio de Git, incluyendo texto, imágenes y videos de los criterios anteriormente expuestos.
  • b) Organización clara y estructurada de la documentación, facilitando la comprensión del proyecto y el seguimiento del proceso.
  • c) Inclusión de detalles técnicos relevantes, explicando las decisiones de diseño, las configuraciones utilizadas y los resultados obtenidos.
  • d) Se evaluará la claridad, legibilidad y organización del código fuente, incluyendo el uso adecuado de comentarios para explicar la lógica de implementación y las decisiones de diseño. Se valorará positivamente la adherencia a los estándares de codificación establecidos y la estructuración lógica del código en módulos o componentes bien definidos.

Entregas del Proyecto

Primera Entrega (10% del total de la nota del proyecto)

Objetivo: Definición periféricos del proyecto y diseño inicial.

Esperado:

  • Especificación detallada del sistema (Completo).
  • Plan inicial de la arquitectura del sistema (Solo a y b).
  • Documentación inicial en el repositorio de Git (a y b).

Segunda Entrega (20% del total de la nota del proyecto)

Objetivo: Desarrollo y simulación del diseño.

Esperado:

  • Arquitectura del sistema (Completo).
  • Avances en el prototipo, incluyendo resultados de simulaciones (a y b).
  • Actualización del trabajo en equipo y gestión del proyecto (a, b, c).
  • Actualización de la documentación con avances y simulaciones (a, b, c).

Tercera Entrega (40% del total de la nota del proyecto)

Objetivo: Finalización e implementación del prototipo.

Esperado:

  • Prototipo finalizado (Completo).
  • Trabajo en Equipo y Gestión del Proyecto (Completo).
  • Coherencia completa entre especificación, diseño, pruebas y implementación.
  • Documentación finalizada, incluyendo la calidad del código

Especificación de proyecto

Cada año, el proyecto se propone en la semana 7 del curso. Durante las primeras semanas, se detalla la metodología de selección del proyecto. Para este año, el proyecto se encuentra definido en la siguiente documentación que se encuentra en project/project2024.md

Cronograma

entrega link repositorio fecha
1 primera entrega pendiente

Proyectos de años anteriores

  1. Nacho Pong
  2. Digital Drawing
  3. Juego de memoria
  4. Camara VGA
  5. Drumpad con visualización VGA
  6. Avatar
  7. Piano
  8. Concéntrese

Bibliografía

  • Daniel D. Gajski. Principles of Digital Design. Prentice Hall, 1997.
  • J. Wakerly Diseño Digital, Ed.3 – Principios y Prácticas.
  • Michael D. Ciletti Advanced Digital Design with the Verilog HDL – Prentice Hall India, 2003
  • David Harris & Sarah Harris, Digital design and computer architecture, Morgan Kauffman, 2004
  • Bob Zeidman, Designing with FPGAs and CPLDs, Elsevier, 2002
  • P. Ashenden, Digital Design an embedded systems approach using Verilog, Morgan Kauffman, 2008
  • I. Grout, Digital Systems Design with FPGAs and CPLDS, Newnes, 2008.