0% encontró este documento útil (0 votos)
73 vistas25 páginas

Configuración FPGA con Matlab y Quartus

Este documento describe los pasos para configurar Matlab y Quartus para programar un FPGA. Explica cómo crear diagramas en Matlab para simular canales ADC, PWM y una señal ADC128S022, y cómo generar código VHDL para implementar estos diagramas en un FPGA usando Quartus.

Cargado por

German Muñoz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
73 vistas25 páginas

Configuración FPGA con Matlab y Quartus

Este documento describe los pasos para configurar Matlab y Quartus para programar un FPGA. Explica cómo crear diagramas en Matlab para simular canales ADC, PWM y una señal ADC128S022, y cómo generar código VHDL para implementar estos diagramas en un FPGA usando Quartus.

Cargado por

German Muñoz
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tarea 1

Germán Muñoz González - 159913

Objetivo Introducción a la programación FPGA

Introducción En este reporte se podrá observar la configuración utilizada en las aplicaciones,


Matlab y Quartus y la programación hecha en cada una de estas.
FPGA por sus siglas en ingles (Fiel Programmable Gate Array), es un dispositivo
basado en bloques lógicos los cuales pueden ser programables, la ventaja principal
de un FPGA es que nos permite hacer procesamientos en paralelo tanto como el dis-
positivo lo permita,esto abre la posibilidad a desarrollar proyectos con velocidad de
procesamiento y evitar el retardo, utilizado en la actualidad para la programación
de televisiones y vídeo.

Procedimiento Una de las desventajas del FPGA es que no existen muchas librerías en la red,
por lo que el usuario debe crearlas, otra es que tiene un alto grado de dificultad,
ya que esta es una programación de Hardware donde el usuario debe establecer
la interconexión para los resultados esperados, para ello se utiliza el programa
Quartus.
Así que, por lo ya mencionado, a continuación se va a desarrollar como se confi-
guro el programa Matlab y Quartus para el uso del FPGA. Y también como fue
la creación de las librerías utilizadas en la primera sesión de Programación para
FPGA.
Configuración en Matlab
1. Abrir el programa Matlab, en este ejemplo se utilizo la versión 2020a, pero
puede ser utilizada cualquier versión, solo cambiara la interfaz para encontrar
los iconos.

Figura 1: Abrir Matlab

1 of 25
2. Para el correcto funcionamiento de Matlab se debe establecer una ruta la cual
tenga permisos de lectura y escritura, para evitar problemas en el futuro es
lo principal que se debe configurar.

Figura 2: Ejemplo de ruta

3. Para consulta de que versión de Matlab se esta utilizando y que librerías tiene
instalado Matlab. Para ello en Command Window se escribe el comando ver
y se oprime enter.

Figura 3: Comando ver

4. Revisar si la librería de HDL Coder esta instalada.

Figura 4: Revisar libreria HDL Coder

2 of 25
5. Abrir simulink dentro de Matlab y seleccionar un modelo en blanco, donde
se crean algoritmos para poderlos convertir a la programación usada por los
FPGA.

Figura 5: Blank model en simulink

6. Se debe configurar Matlab para que nos permita simular sistemas discretos, se
realiza presionando las teclas ctl+e. Lo cual abre la ventana de configuration
parameters.

Figura 6: Ventana de configuración de parámetros

7. Se deben cambiar los parametros de Solver selection, seleccionando Fixed-


step en Type y Discrete en Solver.Y en Solver Details establecemos un 1. Se
puede observar mejor en la siguiente figura.

Figura 7: Parametros para sistema discreto

3 of 25
Configuración de Quartus.

1. Abrir programa Quartus.

Figura 8: Quartus

2. Seleccionar New Proyect Wizard.

Figura 9: New proyect wizard

3. Seleccionar la dirección donde se van a salvar los archivos, preferentemente


que sea el mismo donde se guardan los archivos de Matlab para evitar pro-
blemas al importar las librerías. También en esta ventana se asigna el nombre
al proyecto

4 of 25
Figura 10: Ruta y nombre del proyecto

4. En la siguiente ventana se deja de fabrica y se selecciona next.

Figura 11: Tipo de proyecto

5. En la ventana de Family devices, se va seleccionar la familia a la que pertenece,


se introduce el nombre del FPGA y se selecciona.

5 of 25
Figura 12: Familia y nombre del FPGA

Hasta esta configuración ya es posible empezar a utilizar el programa, pero


por temas de seguridad del dispositivo es conveniente que aseguremos que en
caso de un corto circuito los pines del sistema no se van a quemar.
6. Seleccionar el menu de assigments y luego seleccionar device.

Figura 13: Protección de pines para el sistema FPGA

7. En la ventana de device, seleccionar, Device and Pin Options.

6 of 25
Figura 14: Protección de pines para el sistema FPGA

8. En el menu de izquierda se selecciona unused pines y del lado derecho se


selecciona as input tri-state. Esto hara que se protegan los pines del FPGA.

Figura 15: Protección de pines para el sistema FPGA

Programación en Matlab, Ejercicio 1 En esta programación se espera simular


los canales de conexión análoga-digital del convertidor ADC128S022, por
medio de conexiones lógicas.

1. En el lienzo blanco de simulink se da doble click, para luego escribir Logic


Operator.

7 of 25
Figura 16: Agregar operadores lógicos

2. Para configurar que tipo de operador lógico se requiere dar doble click en el
operador.

Figura 17: Tipo de operador lógico

3. Para cambiar el tipo de dato, se da doble click en el icono y se cambia a la


pestaña de data type.

8 of 25
Figura 18: Tipo de dato

4. Se conectan todos los operadores lógicos y se agrega las constantes booleanas,


y se obtuvo el siguiente resultado.

Figura 19: Ejercicio 1

Programación en Matlab Ejercicio 2, PWM


1. Para el algoritmo de PWM, se utilizo un contador, el cual va ir sumando los
ciclos establecidos.

9 of 25
Figura 20: Contador

2. Se agrego la ganancia, que va permitir ajustar el parámetro dentro de 0-100


y manteniendo la frecuencia.

Figura 21: Ganancia en PWM

3. Por ultimo se puede observar el diagrama final en Matlab y el resultado de


la gráfica en el scope.

10 of 25
Figura 22: Diagrama de PWM

Figura 23: Gráfica de PWM

4. Se genera el código traducido a la programación VHDL, para ser usado en el


FPGA.

11 of 25
Figura 24: Parámetros para la conversión a VHDL

5. En la siguiente imagen se puede observar que en el command windows nos


aparece el link para abrir la programación generada.

Figura 25: Código generado

Programación en Matlab, Ejercicio 3, ADC128S022


Para el siguiente ejercicio se realizo la simulación de las señales de un ADC128S022.

12 of 25
Figura 26: ADC128S022 Diagrama de tiempo

1. Para realizar el ejercicio se agrego un index vector de 17 bits, para cada canal
de comunicación, un contador y las constantes booleanas dependiendo del
valor de cada bit del canal.A continuación se puede observar el diagrama y
las gráficas de la señal CS.

Figura 27: Diagrama de la señal CS

13 of 25
Figura 28: Gráficas de la señal CS

2. Para la señal de Din, se utilizo los mismos materiales del paso anterior con
diferencia de la colocación de las constantes, ya que los pines 3, 4 y 5 pueden
ser diferentes de cero. En la siguiente imagen se puede observar el diagrama
de Din.

Figura 29: Diagrama de Din

14 of 25
3. Para la señal DOut se tuvo que establecer del bit mas significativo al menor,
también se utilizo un switch para hacer la comparación, para luego crear un
bloque de integrador que ayuda a sumar los valores y una memoria. En la
siguiente figura se puede observar el diagrama de Dout

Figura 30: Diagrama Dout

En las siguientes imágenes se puede observar el bloque del integrador, bloque


de memoria y la gráfica de la señal DOUT.

Figura 31: Integrador

15 of 25
Figura 32: Memoria

Figura 33: Gráfica Dout

16 of 25
Programación en Quartus,ADC128S022
Para este procedimiento se va simular la libreria creada en Matlab dentro del sis-
tema Quartus, para ser conectado con un FPGA

1. En la simulación del bloque en Matlab se genera el código en lenguaje VHDL,


se debe guardar en el misma carpeta que fue salvados los archivos generados
por Quartus.

Figura 34: Generación de código en Simulink

2. Dentro de la pestaña de Files, se selecciona click derecho y se selecciona Add


Files.

Figura 35: Agregar librerías a Quartus

17 of 25
3. Se selecciona el archivo creado por Simulink.

Figura 36: Abrir librerias en Quartus.

4. En la pestaña de file se selecciona New, para en la siguiente ventana seleccio-


nar Block [Link] aparecera el lienzo blanco donde se van a agregar
los diagramas.

Figura 37: Block Diagram

18 of 25
5. Dentro del lienzo blanco se da doble click para poder agregar el bloque
ACD128S022.

Figura 38: Agregar librerías a Quartus

6. Por medio de Quartus se genera el bloque de los multiplicadores y divisores


de [Link] despues con ayuda del Wizard se genera el reloj que ira
conectado al bloque del ACD128S022.

Figura 39: Wizard

19 of 25
Figura 40: Wizard

Figura 41: Wizard

20 of 25
Figura 42: Wizard

7. Se hace la conexión entre los bloques.

Figura 43: Diagrama final de conexiones en Quartus

21 of 25
8. Se realiza una precompilacion y se asignan los pines al ADC128S022

Figura 44: Precompilacion

Figura 45: Precompilacion Exitosa

22 of 25
Figura 46: Asignacion de pines

Figura 47: Pines de ADC128S022

23 of 25
9. Compilacion Final y Diagrama final en Quartus.

Figura 48: Compilacion Final

Figura 49: Diagrama final

24 of 25
Figura 50: Prueba

25 of 25

También podría gustarte