UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingeniería Eléctrica y Electrónica
SYLLABUS
CURSO: EE604 INTRODUCCIÓN A MICROCONTROLADORES
I. INFORMACIÓN GENERAL
CODIGO : EE604 INTRODUCCIÓN A MICROCONTROLADORES
CICLO : 6
CREDITOS : 3
HORAS POR SEMANA : 4 (Teoría 2 – Laboratorio 2)
PRERREQUISITOS : EE152, EE418
CONDICION : Obligatorio
ÁREA ACADÉMICA : Ing. Electrónica
PROFESOR : Aurelio Morales Villanueva, PhD E-MAIL : amorales@uni.edu.pe
II. SUMILLA DEL CURSO
El curso prepara al estudiante en la aplicación de los sistemas digitales basados en microprocesador o
microcontrolador en la ingeniería electrónica usando dispositivos lógicos programables del tipo SoC (System
on Chip). Los conceptos de organización y diseño de un microcontrolador del tipo SoC se presentan usando
herramientas EDA de automatización de diseño electrónico. Se desarrollan problemas básicos de aplicación
en ingeniería y se hace uso de hardware, equipamiento y software especializado.
III. COMPETENCIAS DEL CURSO
Al finalizar el curso, el estudiante:
1. Entiende y aplica los conceptos de organización y diseño de microcontroladores del tipo SoC para resolver
problemas de ingeniería.
2. Interpreta requerimientos técnicos y traduce estos requerimientos en la formulación de una solución
realizable a un problema de ingeniería.
3. Conoce y usa herramientas de automatización de diseño electrónico e informáticas para el desarrollo de
experiencias de laboratorio y la elaboración de informes.
4. Interpreta los resultados obtenidos en las experiencias de laboratorio y formula conclusiones.
5. Presenta y describe la solución a problemas de ingeniería a través de especificaciones, planos, diagramas
y simulaciones en sus informes.
IV. UNIDADES DE APRENDIZAJE
1. MICROPROCESADORES Y MICROCONTROLADORES DE 8, 16, 32 BITS / 8 HORAS
Microprocesadores de 8 bits: Intel 8080, 8085, Motorola 6800, Zilog Z80. Microprocesadores de 16 bits: Intel
8086, 8088, 80286. Microprocesadores de 32 bits: Intel 80386, 80486, MIPS R2000. Microprocesadores de 64
bits: MIPS R4000, Sun UltraSPARC T1, SPARC T5. Microcontroladores de 8 bits: Intel 8051, Motorola 68HC11.
Microcontroladores de ARM: series Cortex-M, Cortex-R, Cortex-A. Microcontroladores de Microchip: PIC12,
PIC16, PIC18, PIC24, dsPIC, PIC32M. Microcontroladores basados en SoC: Nios II de Intel, MicroBlaze de Xilinx,
Cortex-A9 sobre FPGA.
2. TECNOLOGÍAS DEL COMPUTADOR Y HERRAMIENTAS EDA / 8 HORAS
Introducción. Capas jerárquicas del software. Componentes básicos del computador. Desempeño del
computador: CPU Time y CPI. Consumo de potencia en el procesador. El gran cambio: el paso de
monoprocesadores a multiprocesadores. Herramienta EDA Quartus Prime para el diseño basado en SoC
EE604-Syllabus Pág. 1 de 3
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingeniería Eléctrica y Electrónica
sobre FPGAs. Metodología de diseño. Entradas de diseño: esquemático, por programa (lenguaje de
descripción de hardware). Generación de la lista de nodos (NetList). Ubicación e interconexión de las celdas
(Place and Route). Verificación del diseño: simulación funcional y de tiempos. Programación o configuración
del dispositivo programable. Uso del Platform Designer de Quartus Prime. Tutorial 0: uso de Quartus Prime.
3. EL LENGUAJE DE INSTRUCCIONES EN EL COMPUTADOR / 8 HORAS
Representación de instrucciones en el computador. Lenguaje de máquina. Lenguaje ensamblador del
procesador MIPS. Formatos de instrucción del procesador MIPS: formato R, formato I, formato J.
Procedimientos. Direcciones y direccionamiento MIPS. Ejemplos. Traducción e inicio de un programa.
Generación y enlazado de códigos objetos. Arreglos vs. Punteros. Procesadores ARM y x86. Tutorial 1: uso del
Platform Designer de Quartus Prime de Intel para diseño SoC.
4. ESTRUCTURA INTERNA DEL PROCESADOR / 8 HORAS
Convenios de diseño lógico. Construcción del camino de datos. Procesador RISC monociclo. Procesamiento
pipeline. Procesador RISC escalar pipeline. Camino de datos con implementación pipeline. Unidad de control
con implementación pipeline. Peligros de datos (data hazards): anticipación (data forwarding) frente a
bloqueo. Peligros de control (control hazards). Peligros estructurales (structural hazards). Programación de
código para evitar congelamientos. Desempeño del procesador RISC escalar. Predicción estática y dinámica
de ramificaciones. Excepciones. Procesadores superpipeline y superescalares. Paralelismo a nivel de
instrucciones (ILP). Especulación (speculation) y planificación (scheduling) de ejecución de instrucciones.
Planificación dinámica de ejecución de instrucciones en el procesador pipeline. Ejecución fuera de orden de
instrucciones.
5. EL PROCESADOR NIOS II / 4 HORAS
Introducción al procesador incrustado en software Nios II para dispositivos FPGA de Intel. Cores del Nios II:
core /f (fast), core /s (standard), y core /e (economy): pipeline del procesador Nios II /f y /s, desempeño de
instrucciones de Nios II. Juego de instrucciones del procesador Nios II: formatos tipo R, I, y J. Interfaz Avalon
mapeada en memoria y del tipo streaming. Diseño de multiprocesadores basado en Nios II. Nios II software
build tools. Linux embebido para procesador Nios II.
6. DESARROLLO DE SOFTWARE PARA EL PROCESADOR NIOS II / 8 HORAS
Introducción al desarrollo de software para el procesador Nios II. Repaso del procesador Nios II. Flujo del
diseño del sistema basado en el procesador Nios II. Herramientas de diseño de software para el procesador
Nios II. Nios II Embedded Design Suite (EDS): Nios II GCC tool-chain y Nios II Software Build Tool (SBT) con
interfaz Eclipse. Ejecución y depuración de software de aplicación del usuario usando la herramienta de
software Nios II EDS. Demostración usando la tarjeta de desarrollo DE1-SoC de Intel.
7. ORGANIZACIÓN DEL SISTEMA JERARQUICO DE MEMORIA / 8 HORAS
Introducción. Principios de localidad. Jerarquía de almacenamiento. Jerarquía de memoria. Memoria cache:
directamente mapeada, asociada por juegos, completamente asociada. Organización y desempeño de
memoria cache. Memoria cache multinivel. Memoria principal. Organización y desempeño de memoria
principal. Memoria virtual: traducción de direcciones, tablas de páginas, Translation Lookaside Buffer (TLB).
Máquinas virtuales. Coherencia y consistencia en el sistema de memoria.
8. ALMACENAMIENTO Y ENTRADA/SALIDA / 4 HORAS
Almacenamiento en disco. Almacenamiento en memoria Flash. Buses de Entrada y Salida. Jerarquía de
Buses. Interfaz de Entrada/Salida. Transferencia de datos: asíncrona, escrutinio (polling), iniciada por
interrupciones y Acceso Directo a Memoria (DMA). Administración de Entrada/Salida. Demostración de Linux
embebido para procesador ARM sobre tarjeta de desarrollo DE1-SoC de Intel.
EE604-Syllabus Pág. 2 de 3
UNIVERSIDAD NACIONAL DE INGENIERÍA
Facultad de Ingeniería Eléctrica y Electrónica
V. LABORATORIOS Y EXPERIENCIAS PRÁCTICAS
Laboratorio 1: Programación en lenguaje assembler de MIPS. Depuración de hardware con analizador lógico
Laboratorio 2: Programación en lenguaje assembler de Nios II. Depuración con Intel FPGA Monitor Program
Laboratorio 3: Programación en lenguaje C para Nios II. Depuración de software sobre Cyclone V SoC
Laboratorio 4: Programación en lenguaje C para Nios II. Depuración de software sobre Cyclone V SoC
VI. METODOLOGÍA
El curso se desarrolla en sesiones de teoría y laboratorio de cómputo usando una tarjeta de desarrollo basada
en FPGA. En las sesiones de teoría, el docente presenta los conceptos y aplicaciones. En las sesiones de
laboratorio se usa el software EDA Quartus Prime de Intel, y herramientas Platform Designer y Nios II
Embedded Design Suite para resolver problemas y analizar su solución. Al final de cada experiencia de
laboratorio el alumno debe presentar y exponer la solución a los problemas planteados. En todas las sesiones
se promueve la participación activa del alumno.
VII. FÓRMULA DE EVALUACIÓN
Cálculo del Promedio Final: PF = PPL / 3
PPL = 1 PL1 + 1 PL2 + 1 PL3 + 1 PL4 – min (PL1, PL2, PL3, PL4)
PL1: Práct. de Laborat. 1 PL2: Práct. de Laborat. 2 PL3: Práct. de Laborat. 3 PL4: Práct. de Laborat. 4
VIII. BIBLIOGRAFÍA
1. David PATTERSON y John HENNESSY. Computer Organization & Design: The Hardware/Software
Interface, 4th Edition revised. Editorial Morgan Kaufmann, 2009. (5th Edition, 2014).
2. Marilyn WOLF. Computers as Components: Principles of Embedded Computing System Design, 4th
Edition. Editorial Morgan Kaufmann, 2017.
3. Barry B. BREY. The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium,
Pentium Pro Processor, Pentium II, Pentium III, Pentium 4, and Core2 with 64-Bit Extensions, Architecture,
Programming, and Interfacing, 8th Edition. Editorial Pearson Prentice Hall, 2009.
4. Pong P. CHU. Embedded SoPC Design with Nios II Processor and VHDL Examples. Editorial John Wiley &
Sons Inc., 2011.
5. David HARRIS y Sarah HARRIS. Digital Design and Computer Architecture, 2nd Edition. Editorial Morgan
Kaufmann, 2013.
6. Pong P. CHU. RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Editorial
John Wiley & Sons Inc., 2006.
7. Stephen BROWN y Zvonko VRANESIC. Fundamentals of Digital Logic with VHDL Design, 3rd Edition.
Editorial McGraw-Hill Education, 2009.
8. John F. WAKERLY. Digital Design: Principles and Practices, 4th Edition. Editorial Prentice Hall, 2005.
9. Intel Corp. https://www.intel.com/content/www/us/en/products/programmable.html
EE604-Syllabus Pág. 3 de 3