
Contenido del curso 2 de digitales aplicado a FPGA.
Introducción a lo que es un FPGA, características, historia y sus alcances.
Veremos comparativos de FPGA vs Microcontroladores, características de cada uno y cuando usarlos.
Hablaremos de los lenguajes o formas de prgramación en el QUARTUS para el FPGA.
Veremos la arquitectura de nuestra tarjeta de trabajo y puntos importantes para empezar a programar.
Descarga del Quartus ll Web edition.
Instalación del Software - Parte 1.
Instalación del Software - Parte 2.
Primer circuito en Quartus para editar y simular.
Compuerta AND en Quartus para editar y simular.
Compuerta NAND y NOR en Quartus para editar y simular.
Compuerta XOR en Quartus para editar y simular usando compuertas lógicas.
Encontraremos con el simulador los resultados en la tabla de verdad.
Realizar este ejercicio para encontrar con el simulador los resultados en la tabla de verdad.
Diseñaremos el ALU en Quartus.
Simularemos el comportamiento del MUX -74153 en Quartus.
Veremos algunos detalles internos del bloque del MUX y el formato del texto.
Veremos el diseño y la edición de un ALU con compuertas lógicas en Quartus.
Haremos el diseño del BCD a 7-segmentos y su simulación.
Haremos copia de un proyecto a otro usando 2 métodos.
Vamos a crear un bloque (libreria) de un circuito eléctrico para facilitar la edición.
En la simulación usaremos el generador de CLOCK.
Veremos como usar nuestro bloque para ser usado en otros proyectos.
Implementamos ahora un contador BCD para nuestro decoder a 7 segmentos.
Veremos la instalación del Programador USB BLASTER - Parte 1.
Veremos la programación del archivo del código al FPGA - Parte 2.
Hablaremos de las reglas para usar los pines de I/O - Parte 1.
Hablaremos de las reglas para usar los pines de I/O - Parte 2.
Hablaremos de las reglas para usar los pines de I/O - Parte 3.
Hablaremos de las reglas para usar los pines de I/O - Parte 4.
Hablaremos de las reglas para usar los pines de I/O - Parte 5.
Estas son 2 formas muy similares de generar un diagrama visual antes de la fabricación para ver conexiones y con qué elementos QUARTUS decidió generar nuestros códigos.
Practicaremos las configuraciones de los pines para Salida y para Entrada.
Practicaremos las configuraciones de los pines para Salida y para Entrada para prender el LED al pulsar el Botón.
Practicaremos las configuraciones de los pines para Salida y para Entrada para la compuerta AND.
Veremos el uso del Reloj interno de la tarjeta FPGA para hacer un Blink en un LED.
Este ejercicio comprende la creación de bloques, un retardador de 1-segundo, y nuestro DECODER BCD a 7-segmentos. Te va a gustar.
Realiza este examen de acuerdo con la descripcion del video, configura sus pines y testealo en el protoboard.
Introducción al lenguaje VHDL en QUARTUS.
Mostraremos las diferentes librerías que se pueden usar para la programación en VHDL.
Haremos el VHDL para la AND - Parte 1.
Haremos el VHDL para la AND - Parte 2.
Haremos el VHDL para la OR - Parte 1.
Haremos el VHDL para la OR - Parte 2.
Haremos el VHDL para un circuito combinado AND-OR.
Haremos el VHDL para la NOT.
"SIGNAL" es una forma de conexión interna "lógica", lo veremos en este ejemplo.
Veremos otro ejemplo con SIGNAL.
Realizar este ejercicio con SIGNAL.
Realizar este ejercicio con SIGNAL.
Hablaremos de una arquitectura PARALELA llamada PROCESS.
Haremos un ejercicio usando PROCESS con IF-ELSE.
Veremos como usar mensajes MASIVOS usando /* .... */ SIN ERRORES.
Haremos un ejercicio usando varios PROCESS con IF-ELSE.
Haremos un progama usando CASE-WHEN (equivalente al SWITCH-CASE).
Veremos la declaración de variables I/O con "STD_LOGIC_VECTOR" que nos fascilita el tamaño del código y de ciertas arquitecturas.
Adaptaremos el código anterior del CASE-WHEN usando STD_LOGIC_VECTOR.
La idea de este ejercicio es que comparemos su código con otras arquitecturas condicionales que veremos en un momento.
WHEN-ELSE es otra arquitectura condicional que facilita la edición del código VHDL.
Realizaremos este ejericio usando std_logic_vector con When- Else.
Realicen este ejercicio usando STD_LOGIC_VECTOR con WHEN-ELSE.
Algunas notas sobre el WITH-SELECT vs WHEN-ELSE.
Realizaremos este ejericio usando std_logic_vector con WITH-SELECT.
Veremos otro tipo de condicional IF-ELSIF con PROCESS.
Haremos un código VHDL para hacer parpadear a un LED, la función con la que vamos a diseñar es muy poderosa.
Este es un ejercicio típico en FPGA para ver Máquinas de Estado Finito FSM, pero haremos algo parecido usando TYPE.
Haremos un PLC muy sencillo para el control de una bomba usando sensores. Arma el circuito del video.
Despedida.
Bienvenid@s a este nuevo curso de Electrónica Digital 2,
debido a la solicitud constante de l@s estudiantes de introducirnos a los FPGA, este nuevo curso está dedicado a aprender a programar FPGA desde CERO.
Usaremos 2 técnicas de programación:
1) La edición de diagramas eléctricos y a bloques que serán contruidos dentro del FPGA.
2) y aprenderemos el lenguaje VHDL para diseñar nuestro hardware interno.
Para estas técnicas, se han distribuido las clases en dos secciones que son: Programación de circuitos esquemáticos y Programación VHDL en Quartus.
Usaremos el programa QUARTUS ll para editar y programar nuestros códigos y circuitos, y mostraremos muchas de las técnicas y arquitecturas usadas para la elaboración del VHDL.
En cada video del curso, aprenderás todo lo necesario para que domines el FPGA a través de teoría, ejercicios visuales, simulaciones y prácticas en Protoboard. Usaremos el FPGA EP2C5T144C8, pero... puedes trabajar con cualquier otro FPGA, todo el curso te servirá para usar el que mejor te convenga.
También te dejaré los códigos de las clases que podras descargar.
En base a este curso 2, ya estoy trabajando en el siguiente curso de FPGA para realizar circuitos más complejos, la idea es llegar a diseñar nuestro propio Microcontrolador con todas las funciones tradicionales (PWM, UART, I2C, contadores y Timers, puertos I/O, ALU, ADC, PID) y también incluiremos otra forma de programación que será la de STATE MACHINES.
TE ESPERO!!!
Este es el temario del curso de Electrónica Digital 2:
1. Introducción a los FPGA.
2. FPGA vs. Microcontroladores.
3. Lenguajes de programación en FPGA-QUARTUS.
4. Características de Tarjeta EP2C5T144C8.
5. Descarga del software QUARTUS.
Programación de circuitos esquemáticos
6. Compuertas lógicas, programación y fabricación en Esquemático (ejercicios).
7. Ejercicios con circuitos digitales.
8. ALU 74HC181.
9. Multiplexor 74153 en FPGA.
10. Diseño de ALU con compuertas y MUX.
11. Diseño de codificador BCD a 7-segmentos.
12. Copia de Proyectos.
13. Crear Bloques (librería) a partir de un diagrama eléctrico.
14. Diseño de codificador BCD a 7-segmentos (CONTADOR).
15. Programador para FPGA (USB BLASTER) .
16. Asignación de pines al FPGA (Pin Planner).
17. Creación de archivo RTL Viewery TechnologyMapViewer.
18. Prácticas (usando el Programador y PIN PLANNER)
18.1. Prender un LED
18.2. Prender un LED pulsando un interruptor
18.3. Compuerta AND
18.4. BLINK LED (Retardos en Esquemático)
18.5. CONTADOR 0-9 usando Codificador BCD a 7-segmentos
18.6. EXAMEN. Realiza un contador SINCRONO de acuerdo al curso 1 de digitales.
Programación VHDL en Quartus ll
19. Introducción al lenguaje VHDL
20. Librerías.
21. VHDL para compuertas lógicas.
22. "SIGNAL" (Entrada o Salida Virtual) en VHDL
23. PROCESS en VHDL.
24. IF-ELSE con PROCESS
25. ERROR de mensajes masivos
26. IF-ELSE con múltiples "PROCESS“
27. CASE-WHEN (Switch-Case)
28. STD_LOGIC_VECTOR
29. CASE-WHEN (Switch-Case) con STD_LOGIC_VECTOR.
30. Ejercicio - Diseñar un DECODER con STD_LOGIC_VECTOR de forma TRADICIONAL.
31. WHEN – ELSE.
32. Diseño de un DECODER usando STD_LOGIC_VECTOR con WHEN-ELSE.
33. Ejercicio - Diseñar un BCD-7 Segmentos usando STD_LOGIC_VECTOR con WHEN-ELSE.
34. WITH - SELECT.
35. Diseño de un DECODER usando STD_LOGIC_VECTOR con WITH-SELECT.
36. Diseño de un DECODER usando STD_LOGIC_VECTOR con PROCESS - IF-ELSIF.
37. Retardos en VHDL - BLINK LED.
38. Diseño de un Semáforo en VHDL (usemos retardador y TYPE).
39. Proyecto final - Control de Bomba automática de Tinaco con FPGA (PLC).