1420_ADSD-Program(1)
-
Upload
nicolas-mora-restrepo -
Category
Documents
-
view
214 -
download
1
description
Transcript of 1420_ADSD-Program(1)
1
UNIVERSIDAD DE LOS ANDES DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA PREGRADO EN INGENIERÍA ELÉCTRICA Y ELECTRÓNICA ARQUITECTURA Y DISEÑO DE SISTEMAS DIGITALES IELE 32222
DESCRIPCIÓN El desarrollo de soluciones electrónicas modernas requiere de un manejo eficiente de recursos para
optimizar elementos como costo y tiempos de diseño. Soluciones complejas pueden ser desarrolladas en menores tiempos utilizando alternativas tecnológicas apropiadas y técnicas de diseño estructuradas, así como empleando herramientas que automaticen etapas críticas del proceso. En este curso se abordan técnicas y tecnologías de diseño modernas, contextualizadas a través de los elementos básicos del nivel hardware de las arquitecturas con base en microprocesadores. Se estudian diferentes niveles de arquitecturas de computadores: nivel lógico, nivel de microprogramación, nivel de lenguaje de ensamble, nivel de sistema operativo. Se busca fomentar en el estudiante la actualización continua en esta área y facilitar la comprensión de elementos básicos en tecnologías afines emergentes.
PRERREQUISITOS: Sistemas Electrónicos Digitales (IELE3220), Algorítmica y Programación (ISIS1204)
CORREQUISITOS: Laboratorio de Arquitectura y Diseño de Sistemas Digitales (IELE3222L)
DEDICACION: 3 CREDITOS HORAS TEORICAS: 3h/semana LABORATORIO: 2h/semana TRABAJO INDIVIDUAL: 3h/semana
OBJETIVOS 1) GENERAL: Al finalizar el curso el estudiante estará en capacidad de identificar y utilizar elementos hardware y elementos software constitutivos de un sistema basado en microprocesador, pasando por los diferentes niveles de programación: lenguaje de máquina, lenguaje de ensamble, microprogramación, lenguaje de alto nivel hasta lenguaje de sistema operativo.
2) E0. Conocer el estado actual y tendencias de tecnologías basadas en procesadores y microcontroladores.
3) E1. Resolver problemas con soluciones tipo hardware, caracterizando adecuadamente la solución y teniendo en cuenta restricciones de síntesis
4) E2. Identificar los elementos constitutivos de un sistema basado en procesador. 5) E3. Resolver problemas basados en algoritmos secuenciales utilizando elementos básicos
constitutivos de un procesador por medio de máquinas de estado algorítmicas (Datapaths) 6) E4. Resolver problemas identificando los recursos hardware y software necesarios para una
solución basada en arquitecturas microprocesadas 7) E5. Identificar elementos consitutivos de los Sistemas Operativos tales como tareas, prioridades,
planificador de tareas y procesos de comunicación entre tareas.
METAS DE APRENDIZAJE *
Al finalizar este curso el estudiante habrá fortalecido sus competencias principalmente en: (e) capacidad para identificar, formular y solucionar problemas de ingeniería (k) capacidad para utilizar técnicas, destrezas y herramientas modernas de ingeniería necesarias para la práctica de la ingeniería. El curso aporta elementos importantes en el desarrollo de: (c) capacidad para diseñar sistemas, componentes o procesos que cumplan con las necesidades deseadas teniendo en cuenta restricciones realistas tales como económicas, políticas, sociales, éticas, de producción y sostenibilidad. (i) Reconocimiento de la necesidad y habilidad de aprender a lo largo de la vida Resumen*:
(a) (b) (c) (d) (e) (f) (g) (h) (i) (j) (k)
2
1 1 2 1 3 1 1 ‐‐ 2 ‐‐ 3
Escala: (3) Aporte Alto, (2) Aporte Medio, (1) Aporte Bajo, (‐‐) No Aplica
METODOLOGIA GENERAL
El desarrollo del curso es teórico/práctico, busca desarrollar en los estudiantes habilidades de diseño a través de la apropiación de metodologías estructuradas apoyadas con herramientas modernas. Se enfrenta al estudiante continuamente a la solución de problemas de diferentes niveles de complejidad. El laboratorio se estructura alrededor de proyectos de complejidad creciente, insertando coherentemente las técnicas y tecnologías que se abordan en clase.
TEMAS: 1. INTRODUCCION Introducción y motivación a sistemas basados en procesadores y microcontroladores Metodologías de diseño digital
2. DESCRIPCIÓN DE SISTEMAS EN HARDWARE Elementos de los lenguajes, sintaxis. Tipos de descripciones Elementos para realizar un testbench Arquitecturas elementos de lógica programable (CPLDs y FPGAs) y síntesis.
3. MÁQUINAS DE ESTADO ALGORÍTMICAS Tecnologías (FPGA, ASIC, PC, Micros etc. MEMORIAS). Elementos constitutivos de un sistema computacional. Elementos básicos de una arquitectura Mapas de Memoria: Mapas de IO y de memoria. Direccionamiento Elementos necesarios para la construcción de un algoritmo: Macroalgoritmo y seudoalgoritmo Soluciones HW VS soluciones SW: Operación de los datapaths y clases de datapaths Datapaths Escalares, Vectoriales: Indicadores de diseño (Tamaño vs Ciclos)
4. PROCESADORES Y MICROPROCESADORES Recorrido por lenguaje de máquina, assembler hasta lenguaje de alto nivel. Modos de direccionamiento. Assembler : Instrucciones básicas y su significado. Stack y Rutinas Arquitectura caso de estudio Arquitecturas más generales y comerciales Programación en C. Apuntadores y estructuras Herramientas SW y HW (Programador y Board) para programación de microcontroladores Jerarquía de memoria / Interrupciones / Protocolos I2C, SPI, Serial
5. SISTEMAS OPERATIVOS Esquemas de planeamiento y organización de tareas Tareas, prioridades, Semaforos, Colas, Mutex Compiladores Cruzados, Linux Embedded
LABORATORIO
En el laboratorio se desarrollan tutoriales sobre herramientas y 2 proyectos de complejidad creciente acordes al avance temático del curso. Proyecto 1 – Máquinas de estado algorítmicas. Desarrollo de proyecto en FPGA con descripciones en lenguajes de alto nivel; implementando arquitecturas básicas que permitan una comparación entre soluciones basadas en elementos hardware y en elementos software. Proyecto 2 – Microcontroladores Asembler y C. Desarrollo de proyecto en microcontrolador con lenguajes como asembler y C; implementando sistemas que modelen soluciones basadas en elementos software.
* METAS DE APRENDIZAJE DE LOS PROGRAMAS DE INGENIERÍA ELÉCTRICA/ELECTRÓNICA
(a) capacidad para aplicar conocimientos de matemáticas, ciencias e ingeniería. (b) capacidad para diseñar y conducir experimentos, como también para analizar e interpretar datos. (c) capacidad para diseñar sistemas, componentes o procesos que cumplan con las necesidades deseadas teniendo en cuenta restricciones realistas tales como económicas, políticas, sociales, éticas, de producción y sostenibilidad. (d) capacidad para trabajar en equipos multidisciplinarios. (e) capacidad para identificar, formular y solucionar problemas de ingeniería (f) comprender la responsabilidad ética y profesional (g) capacidad para comunicar eficazmente (h) amplia educación necesaria para entender el impacto de las soluciones de la ingeniería en el contexto global, económico, ambiental y social (i) reconocer la necesidad y ser capaz de comprometerse con un aprendizaje de por vida
3
(j) conocimiento de temas contemporáneos (k) capacidad para utilizar técnicas, destrezas y herramientas modernas de ingeniería necesarias para la práctica de la ingeniería
Desempeños particulares / Aporte a metas a b c d e f g h i j k
1. Identificar y resolver problemas de solución microprocesada.
a. Dado un problema identificar partes y procesos cuya solución sea de realización eficiente a través de arquitecturas con procesador.
b. Dimensionar y seleccionar adecuadamente arquitecturas, recursos y desempeños necesarios para desarrollar una solución
X X X X
2. Identificar arquitecturas básicas de procesadores así como sus elementos y función dentro de la microarquitectura.
a. Dada una arquitectura de un procesador: identificar y analizar los elementos principales, identificar elementos complementarios y determinar fácilmente su función dentro de la arquitectura
X X X X
3) Manejar y comprender los diferentes niveles de descripción software (SW) a. Identificar y plantear esquemas de ejecución
de instrucciones a nivel de máquina b. Emplear eficientemente un conjunto de
instrucciones a nivel de lenguaje de ensamble, en la descripción de soluciones algorítmicas
c. Manejar adecuadamente el bajo nivel de microprocesadores y microcontroladores a través de lenguajes y herramientas de alto nivel
d. Manejar los elementos básicos de un sistemas operativo orientado a aplicaciones de tiempo real
X X X X
BIBLIOGRAFÍA 1. Computer Systems Design and Architecture. Vincent P. Heuring, Harry F. Jordan. 2nd Edition. Prentice Hall (2004)
2. Computer architecture a quantitative approach, David A. Patterson, Hennessy, John L,3th ed. (2003). 3. Computers as Components: Principles of Embedded Computing System Design, Wayne Wolf, 2nd Ed.
Morgan Kaufmann (2008) 4. Principles of Computer Architecture, Miles J. Murdocca, 2nd Ed. Prentice Hall (2004) 5. Computer Organization and Architecture: Designing for Performance, 7th Ed. William Stallings,
Prentice Hall (2005) 6. Structured Computer Organization, Andrew S. Tanenbaum, 4th Ed. Prentice‐Hall (1999) 7. Microcontrollers And Microcomputers: Principles of Software and Hardware Engineering, Frederick M.
Cady, Oxford University Press (2005) 8. Fundamentals of Digital Logic with VHDL Design, Stephen Brown, Zvonko Vranesic, 2nd Ed. McGraw‐
Hill (2004) 9. Técnicas y Tecnologías de Alto Nivel: VHDL. M. Guerrero, A. García y F. Segura. 2a Ed. Ediciones
Uniandes (2002)
REVISIONES
Julio 2013 Dentro del contexto de reforma de los programas de pregrado 2013
Julio 2014 Se organiza de forma diferente el desarrollo del curso. Proyecto ViDito 2014 (Fredy Segura)
4
FICHA DEL CURSO
2014‐20
PROFESOR(ES) SECCION 1 Profesor Fredy Segura Q. [email protected] of. ML‐314 Horario Martes y Jueves 10:00 – 11:30 AU‐206 y AU‐206 Asistente Andres Felipe Rengifo Sanchez [email protected] LABORATORIOS Sección 1 Lunes 10:00 – 11:30 (ML 004) Sección 1 Miercoles 15:30 – 17:00 (ML 009)
EVALUACIÓN 3 Parciales 20%, c/u Laboratorio 40%
METODOLOGIA - Se deben preparar los temas antes de la clase. En sicuaplus aparecerán las indicaciones previas a cada clase. - En la clase magistral se desarrollarán talleres guiados, los cuales deben terminarse en cada sesión. El objetivo
de los talleres es mostrar los aspectos fundamentales de la teoría. Por ende son un excelente preparatorio para los exámenes.
- En la sesión práctica (laboratorio) se realizarán proyectos de análisis y diseño relacionados con los temas vistos en clase, al igual que se enseñarán tópicos técnicos adicionales y el manejo de equipos y herramientas computacionales. Se realizarán tutoriales para reforzar algunos conceptos y habilidades específicas.
REGLAS Aprobación del curso y aproximaciones - Para aprobar el curso es necesario obtener una nota definitiva superior o igual a 3.0 - Hay aproximaciones a la nota final del orden de centésimas. Una notal final de 2.987 se aproxima a 2.99.
Inasistencias a prácticas de laboratorio y evaluaciones deben ser justificadas correctamente según reglamento. De lo contrario, la calificación final de dicha actividad será de cero (0). La asistencia a clase será tenida en cuenta según lo establecido en el reglamento de la Universidad. Dicha asistencia será tomada por medio de listas en cada una de las sesiones (Magistral, complementaria, laboratorios) Artículo 42. La Universidad considera que la inasistencia a clase impide un rendimiento académico adecuado. Es facultativo de cada profesor controlar la asistencia de sus alumnos y determinar las consecuencias de la inasistencia, si esta es superior al 20% Artículo 43. Los parámetros para controlar la asistencia les serán informados a los estudiantes el primer día de clases, junto con el programa del curso, con el fin de que se comprometan a respetarlos desde ese momento