DE0-NANO-SOC

Index:

Syllabus UPB Bucaramanga ECE10243 2016

  1. Introducción a las FPGAs
    1. CLB, LEs, LABs, ALMs.
    2. Concurrencia y paralelismo.
    1. Lenguajes y herramientas.
    1. Multiplexor,
    2. Contador.
    3. Sincronizador de frecuencia.
    4. Divisor de frecuencia.
      1. Generador de frecuencias.
    5. Registro de corrimiento con Generate(TAREA).
    1. ¿Qué son las FPGAs?
    2. ¿Como se programan?.
    3. Estado del Arte.
    4. Mi Primer Chip.
    5. Software Necesario(Copiado e instalación).
  2. Simulación e Introducción a las FSM
    1. Diseño de FSM,y diagramas.
      1. Decodificador de control de SNES.
    2. Diseño de FSMD y diagramas ASMD
    1. NCO.
    1. Sincronizador de datos de alta a baja.
    2. Sincronizador de datos de baja a alta.
    1. La importancia de la simulación(ModelSim) para el diseño digital.
    2. FSM, y FSMD.
    3. IP Cores.
    4. Sincronización de datos.
    5. Pipeline.
  3. Introducción a los Soft-Core y codiseño SW/HW. Parte 1
    1. Contador y secuencia.
    1. Generador de señales.
    1. Karplus Strong Algoritm(SW y HW).
    1. Mi primer micro en la FPGA (picoctrl).
    2. Mi primer Arduino en la FPGA.
    3. Mi primer Nios II(Qsys).
  4. Introducción a los Soft-Core y codiseño SW/HW. Parte 2 
    1. Performance Counter.
    1. Tipos de ventanas(Blackman, Hanning, Hamming, etc)
    2. Diseño de Filtros en SW y HW.
    1. Custom Hardware Nios II.
    2. Non-Volatile Nios II SW(extra).
    3. Nios II y DMA(Direct Memory Access).
    4. Filtro Comb Promediador.
    5. Filtros FIR.
  5. Introducción a los Soft-Core y codiseño SW/HW. Parte 3
    1. Micrium uCOS II.
    2. FreeRTOS.
    3. NutOS(op).
    4. uLinux(op).
    1. Introducción a los Sistemas Operativos de Tiempo real RTOS.
  6. Vistazo a las Herramientas de HLS(High Level Synthesis) (Pausa Activa)
    1. DSP Builder.
    2. Vivado HLx.
    3. LegUp.
    4. Bluespec.
  7. Introducción a los Soft-Core y codiseño SW/HW. Parte 4
    1. Mandelbrot.
    1. Practica de union de conceptos de parte 1, 2, y 3.
  8. Introducción a el diseño con HPS Parte 1.
    1. Diseño de Hardware(Qsys)
    2. Programación BareMetal.
      1. Acceso a perifericos del ARM.
      2. Acceso a perifericos por medio del F2H AXI, H2F AXI, y lightweight.
    1. Mi Primer ARM Cortex M9.
  9. Introducción a el diseño con HPS Parte 2.
    1. u-Boot and preloader.
    2. Linux Kernel.
    1. Creando mi primera Imagen de Linux.
  10. Introducción a el diseño con HPS Parte 3.
    1. Acceso a perifericos del ARM(usando C y shell).
    2. Acceso a perifericos por medio del F2H AXI, H2F AXI, y lightweight(usando C y shell).
    1. Compilación de Libreria PocketSphinx.
    1. Mi primer programa en Linux.
    2. Reconocimiento de Voz.
  11. Introducción a el diseño con HPS y codiseño SW/HW Parte 4.
    1. DMA transfer.
    1. HPS and Nios II.
  12. Introducción a el diseño con HPS y codiseño SW/HW Parte 5.
    1. pThreads.
    2. pThreads and HW accelerators.
    1. Parallel Computing.
  13. Introducción a el diseño con HPS y codiseño SW/HW Parte 6.
    1. Conceptos matematicos.
    2. Accelerando RayTracing.
    1. Introducción al algoritmo de RayTracing.
  14. Vistazo a OpenCL(Pausa Activa).
    1. Parallel Computing using OpenCL orientado a FPGAs.

 

1-Basic Concepts

2-Nios II

3-Other Soft Cores

4-FIR Filters

5-HPS SoC

6-Assigments

  1. Hacer practica Generate

  2. Hacer Ejercicio 7.3.1 Libro CHU.

  3. Hacer Practica de Pipeline.
  4. Hacer NCO Practica.
  5. Montar el diseño visto en clase y describir los módulos necesarios para generar la secuencia musical asignada (Tetris, Mario, Pacman, Misión imposible, Star wars, Bomberman, Canción de la alegría o Zelda).  El tutorial de Arduino puede servir de guía.
  6. Hacer lo mismo del punto 5 con el Nios II.
  7. ingresar la tabla de Karplus en las solucion de Karplus, para escucharla.
  8. Hacer Tarea de UCOS II.  La tarea consiste en la ejecución de tres tareas simultaneas.  La primera hace un conteo ascendentes siempre que un SW esté en bajo y un conteo descendente cuando la señal está en alto. La segunda tarea ejecuta una canción al igual que la tercera tarea, las canciones deben diferenciarse entre sí.  Para esta última parte ¡no usar usleep!.
    Tener en cuenta el siguiente diagrama de conexiones.

 

La solucion de las tareas pueden encontrarse en https://github.com/Adrizcorp/ece10243upb2016/tree/master/Estudiantes 

 

Team and Contributors

Prof. Holguer A Becerra
Holguer Andrés Becerra Daza. 
BEng. Electronics Engineering, Universidad Pontificia Bolivariana, Bucaramanga
MEng in Biomedical Engineering, University of British Columbia



 
 
 
Nombre: Fabio Andrés Hernández Rueda
Cargo: Monitor Diseño Avanzado de Hardware
f_a_b_io_ at hotmail.com

 

Ingeniero Electrónico de la Universidad Pontificia Bolivariana, Bucaramanga y Magister en Ingenieria Biomedica de la misma universidad. Áreas de interés: el estudio de optimización de sistemas digitales mediante FPGAs, el tratamiento de señales digitales, y la implementación de plataformas experimentales para el control avanzado en tiempo real.

El motivo de mi interés por las FPGAs es debido a que con el paso del tiempo han demostrado ser una buena alternativa para desarrollar circuitos digitales que se adapten a diferentes áreas de estudio que van desde la Bioingeniería hasta el control sistemas industriales complejos gracias a su arquitectura hardware reconfigurable, con esta herramienta se expanden las posibilidades de diseño y desarrollo de equipos electrónicos de bajo consumo de potencia, de bajo costo y de rápido prototipado en el proyecto que se requiera, además de ser una útil herramienta para el aprendizaje de sistemas Digitales y Arquitectura de computadores. 

 


 

 

Nombre: Pedro Javier León Uribe
javi31155 at gmail.com
 
Intereses:
Los avances en ciencia y tecnología y de forma especial todo lo relacionado con la micro electrónica, los sistemas digitales e informática (hardware y software);  la política, la música Rock, y los avances en protección medioambiental.
¿Por qué quiere aprender FPGAs?
Por que me interesa aprender el diseño de sistemas tanto Hardware como software,  y con las FPGAs se puede integrar ambos mundos.

 



Nombre: Guillermo Alexander Acevedo Hernandez
maxaceher at hotmail.com
 
Estudiante de ingeniería electrónica de la Universidad Pontificia Bolivariana seccional Bucaramanga. áreas de interés: microelectrónica, procesamiento digital de imágenes y audio, nanotecnologia, diseño electrónico digital, aceleración de sistemas Mi interés por las FPGa, es que con el paso de los años, se ha convertido en el el principal medio para crear nuevas cosas en el mundo microelectrónico y digital, y puede ayudar a acelerar cualquier proceso que necesite mas velocidad.
 

 
Nombre: Juan David Delgado 
 

Me gusta la tecnología, el deporte, la música, me llama la atención estar en contacto con la tecnología porque siento que es algo muy importante y que será aún más importante. Hasta el momento en mi proceso de formación para ser ingeniero electrónico la línea que más me ha gustado es la del área digital, siento que me desempeño bien en esta área, mi experiencia al trabajar en Sistemas Digitales 2 con la FPGA fue muy productivo gracias a que aprendí varias aplicaciones que tiene y siento que lo que tiene para ofrecer aun es mucho y quiero conocer y aprender más aplicaciones que puede tener. 

 

 
 
Nombre; Sebastian Augusto Baquero Peña
This email address is being protected from spambots. You need JavaScript enabled to view it.
 
Estudiante de Ingeniería Electrónica de la Universidad Pontificia Bolivariana – Bucaramanga.
El curso de Diseño Avanzado de Hardware es de mucho interés para mí debido a que es un dispositivo el cual se está utilizando últimamente en diferentes aplicaciones. Por tal motivo quiero aprender mucho acerca de las FPGA’s ya que en ellas se puede programar software y crear hardwares, se puede realizar procesamiento digital de señales, sistemas aeroespaciales y de defensa, prototipos ASICs, sistemas de imágenes para medicina, sistemas de visión para computadoras, reconocimiento de voz, bioinformática, emulación de Hardware de computadora, además que permite realizar aplicaciones que requieran un alto grado de paralelismo.  Además que da la posibilidad de crear diferentes proyectos que uno quiera realizar ya sea enfocados en la parte de Control de un proceso industrial, para un prototipo en el área de bioingeniería o para el área de informática.

 
 
Nombre: One Punch Man
 
Mis intereses es derrotar a las FPGAs, porque es el unico enemigo q no he sido capaz de derrotar, espero poder dominar el tema

 
Nombre: Walter Moreno Quiroz
 
Estudiante de ingeniería  de Electrónica De La Universidad  Pontificia Bolivariana
En la áreas de interés, me gustan lo que  es la parte de videos , imagen y un poco de la parte de videojuegos sabiendo que todo los anterior se puede combinar y igualmente por la parte de la bioingeniería y la microelectrónica  me gustaría enfocarme en mi carrera,  sabiendo que estas ramas van hacer un fuerte para el avance de la ingeniería electrónica.
Por que  decidí aprender FFPGA  porque es una herramienta  de gran utilidad para realizar varios procesos  que son importantes para nuestra carrera  y que de gran ayuda para realizar diferentes cambios para en los métodos como se realizan ciertas cosas de  nuestro entorno