matlab caja de herramientas hdl. objetivo general....sistemas digitales ii. guía 9 1 matlab caja de...

12
Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para la elaboración de funciones que puedan exportarse a lenguaje VHDL. Utilizar la caja de herramientas HDL de Matlab para generar código VHDL. 1 Computadora con Vivado, versión V2016.2 instalado. 1 computadora con Matlab instalado. 1 tarjeta Arty (Xilinx Artix-35T - xc7a35ticsg324-1L) Development Board y su cable USB para programación y alimentación. MATLAB es el acrónimo de MATrix LABoratory (laboratorio matricial), el cual es un lenguaje de altas prestaciones para el cálculo técnico que incluye cálculo, visualización y programación con un entorno de fácil uso que contiene notación matemática familiar. Sus usos típicos incluyen: Matemáticas y cómputo. Desarrollo de algoritmos. Modelado, simulación y desarrollo de prototipos. Análisis, exploración y visualización de datos. Gráficos científicos y de ingeniería. Desarrollo de aplicaciones, incluyendo GUI’s . Su elemento básico de datos es el arreglo. Los arreglos no requieren dimensionamiento. La vectorización implica velocidad de cálculo. Figura 1: Circuito a simular (example CAPS.ckt). Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Sistemas Digitales II. Lugar de Ejecución: Microprocesadores (3.23). Objetivo General. Material y equipo. Introducción teórica

Upload: others

Post on 12-Mar-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 1

Matlab caja de herramientas HDL.

Que el alumno utilice el entorno de desarrollo de MATLAB para la elaboración defunciones que puedan exportarse a lenguaje VHDL.

Utilizar la caja de herramientas HDL de Matlab para generar código VHDL.

1 Computadora con Vivado, versión V2016.2 instalado. 1 computadora con Matlab instalado. 1 tarjeta Arty (Xilinx Artix-35T - xc7a35ticsg324-1L) Development Board y su cable

USB para programación y alimentación.

MATLAB es el acrónimo de MATrix LABoratory (laboratorio matricial), el cual es unlenguaje de altas prestaciones para el cálculo técnico que incluye cálculo, visualización yprogramación con un entorno de fácil uso que contiene notación matemática familiar. Sususos típicos incluyen: Matemáticas y cómputo. Desarrollo de algoritmos. Modelado, simulación y desarrollo de prototipos. Análisis, exploración y visualización de datos. Gráficos científicos y de ingeniería. Desarrollo de aplicaciones, incluyendo GUI’s. Su elemento básico de datos es el arreglo. Los arreglos no requieren dimensionamiento. La vectorización implica velocidad de cálculo.

Figura 1: Circuito a simular (example CAPS.ckt).

Facultad: Ingeniería.Escuela: Electrónica.Asignatura: Sistemas Digitales II.Lugar de Ejecución: Microprocesadores (3.23).

Objetivo General.

Material y equipo.

Introducción teórica

Page 2: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 2

Un circuito RC puede describirse matemáticamente por medio de un modelo, al mismotiempo puede obtenerse el comportamiento de carga y descarga del mismo, alimentando devalores a la variable tiempo, ya sea por medio de un simulador como circuit maker, unahoja de cálculo, Matlab o porque no una FPGA.

Figura 2: Respuesta en el dominio del tiempo del circuito de la figura 1.

Sabemos que la corriente que atraviesa al resistor de 909.1 es:

Aplicando la transformada de Laplace a esta expresión obtenemos:

Figura 3: Representación de bloques.

De la misma manera se sabe que el voltaje del capacitor es:

∙Figura 4: Representación de bloques.

Donde: 1

0 1.67 3.33 5 6.67 8.33 100

600m

1.2

1.8

2.4

3

3.6

Xa: 10.00 Xb: 1.933Yc: 1.860 Yd: 0.000

a-b: 8.067c-d: 1.860

freq: 124.0m

Ref=Ground X=1.67/Div Y=voltage

d

c

b aA

Page 3: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 3

Tomando ambas expresiones se puede plantear el siguiente diagrama de bloques:

Figura 5: Representación de bloques.

Un cambio en el sistema podría involucrar obtener la respuesta de Vc(t), como:

1 Parte I: Elaboración de archivos m para convertirlos a código VHDL.1) Encienda la computadora.2) Inicie Matlab.3) En la ventana de comandos de matlab escriba:

syms xtaylor (exp(x))

4) Escriba en la ventana de comandos: edit y presione Enter.5) En la del editor de archivos m escriba la siguiente función:

function Vc = carga(t)R = 909.1;C = 2200e-6;Vmax = 3.3;tau = R*C;x = -t/tau;y = (x^5/120) + (x^4/24) + (x^3/6) + (x^2/2) + x + 1Vc = Vmax*(1-y);

Código 1: Función que determina el voltaje de carga de un capacitor.

Procedimiento.

Page 4: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 4

6) Cree un nuevo archivo, con las siguientes instrucciones:

V = carga(2);V = carga(10);

Código 2: Instrucciones con las que se probará el código 1.

7) Guarde el archivo del código 2 con el nombre: probe_vc.m8) Dé clic izquierdo en la cinta de comandos de la parte superior de la ventana de Matlab:

Apps / HDL Coder.

Figura 5: Representación de bloques.

9) Verifique que la dirección de la ubicación de los archivos no posea espacios en blanco.10) Asigne un nombre para el proyecto: Volt_c.prj.11) Presione el botón OK.12) En la ventana de la figura 7, dé clic izquierdo en: Add MATLAB function y agregue la

función del código 1.13) En la ventana de la figura 8, dé clic izquierdo en: Add Files y agregue el archivo m del

código 2.

Page 5: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 5

Figura 6: Ubicación del proyecto del HDL Coder.

Figura 7: Agregue la función a convertir a VHDL.

Figura 8: Agregue el archivo para probar el funcionamiento de la función.

Page 6: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 6

14) En la ventana de la figura 8, dé clic izquierdo en el botón Workflow Advisor.15) En la ventana Workflow Advisor, dé clic izquierdo en Define Input Types.16) Dé clic izquierdo en el campo Click to define y seleccione el tipo single luego 1 x 1

(scalar).

Figura 9: Agregue el archivo para probar el funcionamiento de la función.

17) Dé clic derecho sobre la opción Fixed-Point Conversion. Seleccione la opción RunThis Task.

18) Espere a que el compilador ejecute la acción de evaluar la función con los valores delcódigo 2.

Figura 10: Agregue el archivo para probar el funcionamiento de la función.

19) Seleccione la opción HDL Code Generation.20) En las pestañas Target, Clock & Ports y Coding Style deje las opciones tal como

aparecen.21) En la pestaña Optimizations (figura 14) quite la opción de RAM Mapping.22) En la pestaña Advanced (figura 15) quite la opción de Initialize Block RAM.

Page 7: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 7

Figura 11: Designación del tipo de código a generar (VHDL o Verilog).

Figura 12: Designación del tipo de reset, cuando será activo y del flanco del reloj.

Figura 13: Designación del tipo de extensión de los archivos a generar.

Page 8: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 8

Figura 14: Designación de registros para entradas y salidas.

Figura 15: Designación de archivos de Simulink y IP Cores.

23) En la pestaña Script Options, seleccione la opción Xilinx ISE (o alguno similar comoVivado, dependiendo de las aplicaciones instaladas en la computadora) dentro deSynthesis.

Figura 16: Parametrización del HDL Coder.

Page 9: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 9

24) Dé clic derecho sobre la opción HDL Code Generation. Seleccione la opción RunThis Task.

Figura 17: Generación de archivo VHDL.

25) Notará que se han creado dos archivos, el primero de ellos es el archivo VHDL queinstanciaremos en nuestra aplicación, el segundo es un paquete creado para lautilización de ciertos Arrays el cual ya se encuentra referenciado dentro del archivoVHDL.

26) Ambos archivos deberá copiarlos a la carpeta del proyecto de Vivado de la aplicación agenerar.

Figura 18: Parametrización de la tarjeta Arty.

Page 10: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 10

27) Ingrese a la carpeta F:\MATLAB\SDI112\codegen\carga\hdlsrc, esta es la carpetadonde se creó la guía, usted deberá buscar el path correspondiente a su computadoradonde creó el proyecto del HDL Coder.

28) Cree un proyecto en vivado para la aplicación generada.29) Asigne los pines a los puertos PMOD de su elección.30) Sintetice.31) Implemente el diseño.32) Desarrolle el archivo Bitstream.33) Programe la tarjeta Arty.34) Conecte interruptores a las entradas y leds a la salida.35) Verifique el funcionamiento.36) Apague la tarjeta.37) Desconecte la tarjeta Arty de la computadora.

Parte II: Elaboración de archivos m para generación de patrones de imágenes.38) En el editor de archivos m cree un nuevo archivo.39) Digite el siguiente código.

format compactR=zeros(480,640);G=zeros(480,640);B=zeros(480,640);

R(1:360,1:160)=31;R(1:360,481:640)=31;G(1:360,161:320)=63;G(1:360,481:640)=63;B(1:360,321:480)=31;B(1:360,481:640)=31;

R=uint8(R);G=uint8(G);B=uint8(B);

Datos=zeros(480,640,3);Datos(:,:,1)=R;Datos(:,:,2)=G;Datos(:,:,3)=B;figureimshow(Datos)

Código 3: Formación de patrón de imagen 1.

Page 11: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 11

40) Guarde el archivo con el nombre img1.41) Mientras está en la ventana del editor de archivos m, presione la tecla F5 (o dé clic

sobre el icono Run).42) ¿Cuál es el resultado obtenido?_____________________________________________43) En el editor de archivos m cree un nuevo archivo.44) Digite el siguiente código.

R=zeros(480,640);G=zeros(480,640);B=zeros(480,640);

R(1:360,161:480)=31;R(361:480,1:640)=31;G(1:360,1:160)=63;G(1:360,321:480)=63;G(361:480,1:640)=63;B(1:360,1:320)=31;B(361:480,1:640)=31;

R=uint8(R);G=uint8(G);B=uint8(B);

Datos=zeros(480,640,3);Datos(:,:,1)=R;Datos(:,:,2)=G;Datos(:,:,3)=B;figureimshow(Datos)

Código 4: Formación de patrón de imagen 2.

45) Guarde el archivo con el nombre img2.46) En la ventana de comandos de matlab escriba: img2 y presione Enter.47) En el editor de archivos m cree un nuevo archivo.48) Digite el siguiente código.

clear all;clca=[1,1,1,1,1,0,0,0,0,0,1,1,1,1,1;...

1,1,1,0,0,1,1,1,1,1,0,0,1,1,1;...1,1,0,1,1,1,1,1,1,1,1,1,0,1,1;...1,0,1,1,1,1,1,1,1,1,1,1,1,0,1;...1,0,1,1,1,1,1,1,1,1,1,1,1,0,1;...

Page 12: Matlab caja de herramientas HDL. Objetivo General....Sistemas digitales II. Guía 9 1 Matlab caja de herramientas HDL. Que el alumno utilice el entorno de desarrollo de MATLAB para

Sistemas digitales II. Guía 9 12

0,1,1,1,1,0,1,1,1,0,1,1,1,1,0;...0,1,1,1,1,0,1,1,1,0,1,1,1,1,0;...0,1,1,1,1,1,1,1,1,1,1,1,1,1,0;...0,1,1,1,1,1,1,1,1,1,1,1,1,1,0;...0,1,1,1,1,1,1,1,1,1,1,1,1,1,0;...1,0,1,1,0,1,1,1,1,1,0,1,1,0,1;...1,0,1,1,1,0,0,0,0,0,1,1,1,0,1;...1,1,0,1,1,1,1,1,1,1,1,1,0,1,1;...1,1,1,0,0,1,1,1,1,1,0,0,1,1,1;...1,1,1,1,1,0,0,0,0,0,1,1,1,1,1];

figureimshow(a)b=not(a);figureimshow(b)

Código 5: Formación de patrón de imagen 3.

49) Guarde el archivo con el nombre img3.50) En la ventana de comandos de matlab escriba: img3 y presione Enter.51) Cierre las aplicaciones abiertas y apague la computadora.

1. Pedroni, Volnei A. Circuit Design and Simulation with VHDL (2nd Edition). (2010).MIT Press:http://app.knovel.com/hotlink/toc/id:kpCDSVHDLN/circuit-design-simulation/circuit-design-simulation

2. Ashenden, Peter J. Designer’s Guide to VHDL (3rd Edition). (2008). Elsevier.:http://app.knovel.com/hotlink/toc/id:kpDGVHDLEO/designer-s-guide-vhdl/designer-s-guide-vhdl

3. http://alumni.cs.ucr.edu/~kstephen/ventilator/Grout_2000.pdf

Bibliografía