Matlab-Vhdl
-
Upload
michael-ssermeo -
Category
Documents
-
view
18 -
download
3
description
Transcript of Matlab-Vhdl
![Page 1: Matlab-Vhdl](https://reader033.fdocuments.es/reader033/viewer/2022042904/56d6be7e1a28ab3016925f58/html5/thumbnails/1.jpg)
1
Resumen — El siguiente documento explica la relación que tiene
VHDL y MATLAB® al trabajar unificadamente, describiendo las
características de Simulink HDL Coder, de esta manera familiarizar
el procedimiento necesario para generar código VHDL utilizando
el Software MATLAB® de forma automática. Esto se lo realiza
mediante un ejemplo ilustrativo que utiliza la herramienta
Simulink Filter Design HDL Coder que genera un código eficiente,
sintetizable y portable para la implementación de hardware.
Palabras clave— VHDL, MATLAB®, Simulink, HDL Coder,
Filter Design, Xilinx, FPGA, filter builder.
I. INTRODUCCIÓN
El avance tecnológico y la creciente complejidad de los
circuitos electrónicos digitales han hecho que los diseñadores
de circuitos necesiten descripciones de alto nivel de la lógica
digital, es decir, que no dependa de nada, así como lo es HDL.
Al utilizar HDL facilita mucho construir un hardware
utilizando software es decir co-simula en hardware lo que se
simula en software, la ventaja al usar esto es la implementación
de toda la estructura por software y genera el hardware
deseado.
Se realiza esto con la ayuda de MATLAB®, es un software de
alto nivel que permite varios tipos de simulaciones, un ejemplo
es el diseño de filtros en el caso de la electrónica. El uso de
estos en la vida real es indispensable debido a que en base a eso
la información se puede transmitir de manera clara, precisa y
concisa, tanto en medios analógicos como digitales, pero es
necesario implementar hardware que garanticen esto.
MATLAB® es compatible con VHDL por lo es posible que un
programa realizado con el System Generator o Simulink sea
generado para el lenguaje de VHDL, de esta manera se facilita
el entorno de trabajo ya que se automatiza con las herramientas
que brinda MATLAB®.
II. DESARROLLO DEL ARTÍCULO
A. Características de Simulink Filter Design HDL Coder
Genera sintetizable IEEE 1076 compatible con código
VHDL y código IEEE 1364-2001 compatible con Verilog
para la implementación de filtros de punto fijo en ASCIs y
FPGAs.
Controla el contenido, optimización y el estilo de código
generado.
Proporciona opciones para compensaciones en zona de
velocidad frente a la arquitectura y la exploración,
incluyendo la aritmética distribuida.
Genera VHDL y Verilog bancos de prueba para la
verificación rápida y validación de código generado por un
filtro HDL.
Genera simulación y síntesis de secuencias de comandos.
Además Simulink genera directamente el archivo de
configuración FPGA (.bit) ya que utiliza un flujo de diseño
integrado a éste.
Fig. 1. Flujo de diseño integrado a Simulink
B. Generación de código VHDL con MATLAB®
MATLAB® es un software con lenguaje de programación
matemático, el cual es muy utilizado, por ello cuenta con
herramientas que permiten realizar un programa en este
software y transformarlo a otros lenguajes, facilitando así la
generación de código VHDL por ejemplo, para así poder
desarrollar algoritmos para trabajar con FPGAs.
La herramienta Simulink HDL Coder es de uso muy
intuitivo, pero para un correcto uso es necesario conocer sobre
programación de FPGAs y software de Xilinx como lo es ISE
Design Suite. HDL Coder permite convertir automáticamente
código MATLAB de punto flotante a de punto fijo y genera
VDHL sintetizable y código Verilog, esta característica hace
que se puedan desarrollar aplicaciones en un lenguaje de alto
nivel para luego transformarlo a código HDL para su
implementación en software, además mediante
configuraciones se puede optimizar el uso de recursos en el
momento de la implementación.
•MATLAB®, Simulink
•HDL síntesis
• Librerías de DSP
•Herramientas de implementación para FPGA
• Simulación en doble precisión y punto fijo
INTEGRA
•Bloques de distitnas funciones implementables en FPGA
•Generación de archivos VHDL
• Simulación
• IP cores (48 hasta ahora)
PROVEE
M. Bermeo, F. Cachago, D. Vallejos, M. Zurita, Escuela Politécnica del Ejército
MATLAB - VHDL
![Page 2: Matlab-Vhdl](https://reader033.fdocuments.es/reader033/viewer/2022042904/56d6be7e1a28ab3016925f58/html5/thumbnails/2.jpg)
2
Fig. 2. Generación de código VHDL
C. Ejemplos Filter Design HDL Coder
Filter Design HDL Coder es una herramienta desarrollada por
MATLAB® que permite la implementación de Hardware
generando código VHDL. Se puede diseñar filtros y generar
código VHDL. Se puede hacer el diseño de filtros de distintas
formas como las siguientes a continuación:
En el workspace de MATLAB® ingresar el comando
filterbuilder.
Fig. 3. Comando en workspace de MATLAB®
Despliega la pantalla (Fig. 4) y se escoge el tipo de filtro
Fig. 4. Ventana “Response Selection” de MATLAB®
Se selecciona “Lowpass” y luego se despliega la ventana
en la cual se configuran los valores para el filtro a diseñar
Fig. 5. Ventana “Lowpass Design”
Parámetros a configurar:
Fs = 11000 Hz.
Banda de paso: 0 a 1700 Hz
Banda eliminada: 3000 a 5000 Hz
Atenuación en frecuencias bajas = 3 dB
Atenuación en frecuencias altas = 50 dB
Luego se da clic en “View Filter Response”
Fig. 6. Botón para diseñar el filtro pasabajo.
Se da clic y luego se verifica la información del filtro.
Fig. 7. Respuesta del filtro diseñado
En la barra de menús se selecciona “Code Generation” y
se da clic en “Generate HDL…”
Código en MATLAB®,Extensión .m
HerramientaHDL CODER
Código con Extensión .VHD
Software de XilinxISE Design Suite
Tarjeta FPGA
![Page 3: Matlab-Vhdl](https://reader033.fdocuments.es/reader033/viewer/2022042904/56d6be7e1a28ab3016925f58/html5/thumbnails/3.jpg)
3
Fig. 8. Ventana del diseño de filtro pasabajo para generar código VHDL.
Se elige el lenguaje a generar, se da un nombre y se elige
una dirección en la cual se van a guardar los archivos
generados por este método.
Fig. 9. Ventana para generar el código VHDL.
Una vez configurado los parámetros antes mencionados
se da clic en “Generate” y se revisa el workspace para
verificar si se creó correctamente el código VHDL.
Fig. 10. Verificación del código VHDL generado.
Se verifica en la ruta indicada anteriormente si se
generaron los siguientes archivos
Y se procede a generar un proyecto en ISE Design Suite.
A continuación se mostrará que archivos deben añadirse
Fig. 11. Ventana para añadir los archivos generados
Y finalmente se chequea la sintaxis para generar
correctamente los archivos para cargar a la tarjeta.
D. Ejemplos empleando Simulink HDL coder
Lo primero que se debe hacer es abrir Simulink en el Matlab y
dentro de los paquetes de Simulink se escoge el paquete Xilinx
Blockset en cual posee diversos bloques para trabajar con
Xilinx en Matlab.
Después se procede abrir un nuevo modelo en el que se
colocaran los bloques mencionados; es importante colocar el
bloque System Generator.
![Page 4: Matlab-Vhdl](https://reader033.fdocuments.es/reader033/viewer/2022042904/56d6be7e1a28ab3016925f58/html5/thumbnails/4.jpg)
4
En el new model realizamos la configuración de los bloques
para la aplicación que se desee realizar.
Se configura el número de bits en las entradas y salidas, a
utilizarse en las tarjetas.
Una vez que se haya verificado los pasos anteriores se
procede a abrir el bloque System Generetor y se configura
los parámetros de acuerdo a la FPGA a utilizarse.
A continuación se presiona Generate con lo cual se
generara el respectivo código VHDL.
![Page 5: Matlab-Vhdl](https://reader033.fdocuments.es/reader033/viewer/2022042904/56d6be7e1a28ab3016925f58/html5/thumbnails/5.jpg)
5
Luego se abre el archivo generado en ISE el cual posee el
mismo nombre que el nombre del New Model de
simulink.
E. Ejecución del Programa
Para poder generar un archivo .VHDL con la herramienta
SIMULINK de MATLAB, se utilizará la siguiente función:
𝑓 = 𝐴 ∗ 𝐵 ∗ 𝐶 ∗ 𝐷
Es necesario tomar en cuenta que se necesita siempre
ejecutar el System Henerator para iniciar Matlab el cual
nos direccionará automáticamente a simulink, en el cual
se eligirá la opción generate blocks. De esta forma al
ejecutar el programa y especificando el tipo de FPGA a
utilizar se generará el código en VHDL. (OPCIONAL)
Una vez configurada la FPGA se puede especificar la
carpeta en donde se desea crear el VHDL, en Target
Directory, y se elegirá la opción Browse de esta forma se
guardará en una carpeta diferente el código de VHD de
ISE DESIGN
Una vez seleccionado y abierto el programa, se verifica la
sintaxis del programa en ISE DESIGN
III. CONCLUSIONES
Se concluye que la generación de código VHDL desde
MATLAB usando HDL Coder es la más óptima para
implementar en un hardware ya que entrega el mejor
algoritmo posible.
Al momento de generar el código HDL desde MATLAB,
se producen errores si la carpeta donde se compilará en
MATLAB es distinta a la carpeta en donde se crearon las
funciones.
Se comprobó que el software ISE Design de Xilinx sirve
para verificar que el código generado por MATLAB es el
correcto mediante el chequeo de la sintaxis.
Los diseños realizados con Simulink y el código HDL
generado por este, también soportan el desarrollo de
aplicaciones de alta integridad.
Se verificó que al usar MATLAB y sus herramientas
como Simulink, resultó más sencilla la programación ya
que su entorno facilita mediante diagrama de bloques el
desarrollo de la misma, además de comprender de mejor
manera.
Se concluye que la herramienta Filter Design Coder de
MATLAB diseña cualquier tipo de filtro de forma más
eficiente y óptima debido a que solo se necesita
especificar ciertos parámetros como frecuencias de corte,
de paso, atenuaciones, etc para su implementación y
generación de código VHDL.
El trabajar con MATLAB y generación de código VHDL
permite no solo tener simulaciones en software sino que
también se las puede tener en hardware, por lo que no
estará limitado solo a software.
IV. RECOMENDACIONES
Se recomienda instalar primero MATLAB 2012a, y
después Xilinx, dado que System Generator necesita de
MATLAB 2012a para poder configurarse.
Se sugiere que al utilizar Filter Design Coder se diseñe
que filtro se desea utilizar ya que según el tipo se deben
usar diferentes comandos por lo que podría darse
resultados no deseados.
![Page 6: Matlab-Vhdl](https://reader033.fdocuments.es/reader033/viewer/2022042904/56d6be7e1a28ab3016925f58/html5/thumbnails/6.jpg)
6
En caso de trabajar con el sistema operativo Windows 8
es necesario instalar una máquina virtual debido a que el
software ISE Design Suite no es compatible con este
sistema operativo.
Al momento de generar código VHDL mediante Filter
Design HDL Coder se recomienda modificar el tamaño
de las entradas y salidas del filtro.
V. REFERENCIAS
[1] A, Palazzesi. Desarrollo de Sistemas de automatización y Control.
http://www.upnfm.edu.hn/bibliod/images/stories/xxtindustrial/libros%2
0de%20electricidad/electronica%201y%202/Compuertas_Logicas.PDF.
pdf. Extraído el día 15 de Diciembre del 2015 desde fuente. [2] Raúl Jiménez, (2008), Digital II, Introducción a circuitos secuenciales,
http://www.uhu.es/raul.jimenez/DIGITAL_II/dig2_i.pdf. Extraído el 20
de Diciembre de 2015.
[3] Morris Mano M,Duchén G, (2003), Diseño Digital, Pearson Education,
México
[4] Sicard E, Delmas S, (2007),Basics of CMOS Cell Design, Secuential Cell Design.
[5] Mathworks, 2015 Verilog.
http://www.mathworks.com/products/datasheets/pdf/hdl-coder.pdf. Extraido el 24 Diciembre del 2015
[6] Mathworks, 2015 HDL Coder
http://www.mathworks.com/videos/using-matlab-simulink-and-ise-design-suite-to-develop-dsp-applications-on-xilinx-fpga-based-systems-
81700.htmlExtraido el 24 Diciembre del 2015
[7] Mathworks, 2015 HDL Coder http://www.mathworks.com/products/hdl-
coder/features.html#generating-hdl-code Extraido el 25 Diciembre del
2015 [8] Mathworks, 2015 HDL Coder
https://www.aldec.com/en/support/resources/documentation/articles/990 Extraido el 25 Diciembre del 2015
VI. BIOGRAFÍAS
Michael Alonso Bermeo Ramón nació en
Quito, Pichincha, Ecuador, 18 de marzo de
1992. Se graduó en Colegio San Gabriel en el
año 2011 de bachiller físico matemático y
actualmente estudia ingeniería Electrónica en
Automatización y Control en la Universidad
de las Fuerzas Armadas ESPE.
Francis Andrés Cachago Tandazo nació en
Santo Domingo, Santo Domingo de los
Tsáchilas, Ecuador, 14 de marzo de 1995. Sus
estudios primarios lo realizó en la Escuela
Particular Maristas “PIO XII” y sus estudios
secundarios los realizó en el Colegio Particular
Maristas “PIO XII”, estuvo en el cuadro de honor
tanto en su escuela como colegio. Se graduó en
el año 2012 de bachiller físico matemático y
actualmente estudia ingeniería Electrónica en
Automatización y Control en la Universidad de
las Fuerzas Armadas ESPE.
David Alejandro Vallejos Brito, nació el 16
de Marzo de 1986 en la ciudad de Otavalo,
Imbabura, Ecuador. Sus estudios primarios los
realizó en el “Instituto Inocencio Jácome”, y
los secundarios en el “Instituto Tecnológico
Superior Otavalo”, graduándose como
Bachiller Técnico en Electrónica. Sus estudios
superiores los realizó en la “Escuela de
Formación de Tecnólogos” perteneciente a la
Escuela Politécnica Nacional y en la Escuela
Superior Militar de Aviación “Cosme Rennella B.”, en la cual se
graduó como Licenciado en Administración Aeronáutica Militar.
Actualmente se encuentra cursando en la Universidad de las Fuerzas
Armadas ESPE, en sexto semestre de la carrera de Ingeniería
Electrónica en Automatización y Control.
Marco Antonio Zurita nació en Machala, El
ORO, Ecuador, 03 de abril de 1990. Se graduó
en el Colegio Militar Héroes del 41 en el año
2007 de bachiller físico matemático y
actualmente estudia ingeniería Electrónica en
Automatización y Control en la Universidad de
las Fuerzas Armadas ESPE. Desarrollador de
aplicaciones en C – Microchip, programador en
Java de la Escuela Politécnica Nacional con suficiencia en inglés e
italiano.