Click <OK> Guardar el modelo como lab5.mdl

  Lab 5: Contador decimal en System Generator Introducción

  Este laboratorio guia al asistente a través de las herramientas System Generator y Simulink para analizar la representación de números en System Generator

  Objetivos

  Después de completer este laboratorio, el alumno será capaz de: Crear un diseño en System Generator y realizar la simulación en MATLAB

  • Estar familiarizado con el entorno de desarrollo de Simulink y System Generator • Aprender el uso de algunos bloques: Counter, ROM, Down-Sample.
  • Aprender a realizar divisores de frecuencia usando bloques de Xilinx •

  Descripción del diseño

  Crear un modelo en Simulink que realice un contador decimal del 0 al 9 con una cuenta ascendente/descendente a una frecuencia de 2 Hz. El objetivo principal es trabajar con un diseño conocido para el asistente y explorar como implementarlo usando bloques de System Generator.

50 Mz

  clk

  Divisor de

  Clk 2Hz

  frecuencia

  rst

  Decodifi- display Contador

  7 cador BCD 4 binario

  dir Figura A. Diagrama conceptual para el contador decimal en SG

  Procedimiento

  En esta sección el asistente encontrará todos los pasos necesarios para realizar el laboratorio. El procedimiento incluye los siguientes pasos principales:

  1. Crear un nuevo modelo Simulink

  2. Realizar diagrama esquemático (colocación, configuración e interconexión de bloques )

  3. Simular el diseño usando MATLAB

  4. Implementar el diseño en la tarjeta FPGA Cada paso principal del procedimiento es indicado por el ícono . Cada paso a su vez tiene instrucciones específicas para alcanzar el objetivo final. Cuando se pida alguna información al asistente o que responda ciertas preguntas aparecerá el ícono

  Paso 1. Crear un nuevo modelo Simulink Abrir Xilinx System Generator mediante MATLAB y crear un nuevo modelo Simulink.

  Abrir System Generator seleccionando Seleccionar en la ventana Current Directory la carpeta de trabajo Work\Lab_user (e.g. $MATLAB\work\Lab_user) tal y como se muestra en la figura 1-1. Si la carpeta “Lab_user” no existe entonces crear una nueva. En la carpeta “Lab_user” estarán todos los laboratorios hechos por el usuario.

  Figura 1-1. Seleccionando la carpeta de trabajo como Current Directory

  Crear una nueva carpeta llamada Lab5 y convertirla en el current directory (i.e. Current

  Directory = $MATLAB\work\Lab_user\Lab5)

  Ir a la ventana de Simulink Library Browser y seleccionar el botón New Model. A continuación se abrirá una “hoja en blanco” en donde se captura el modelo Simulink.

  Figura 1-2. Crear un nuevo modelo Simulink

  En la ventana del nuevo modelo ir al menú Simulation

   Configuration Parameters…

  Colocar las siguientes configuraciones:

  Start time: Final time: 200

  Fixed-step discrete (no continuous state)

  Type: Solver: Fixed-step size: 0.01

  Click &lt;OK&gt; Guardar el modelo como lab5.mdl

  Paso 2. Realizar diagrama esquemático Una vez creado el nuevo modelo el siguiente paso es crear el diseño mediante

bloques de System Generator y Simulink. Este paso incluye la colocación,

configuración e interconexión de los bloques.

  En la ventana Simulink Library Browser. En la librería Sources, agregar 1 bloque Constant y 1 bloque Step. En la librería Sinks, agregar 1 bloque Scope (figura 2-1).

  Figura 2-1. Agregando bloques de Simulink

  El siguiente paso es agregar los bloques de System Generator. En la ventana Simulink Library

  Browser. Expandir el Xilinx Blockset y dar click en Index, en donde aparecerán todos los bloques de System Generator disponibles para realizar diseños con FPGAs.

  Del Xilinx Blockset agregar 1 bloque System Generator, 2 bloques Gateway In, 3 bloques

  Gateway Out, 1 bloque Counter, 1 bloque ROM, 1 bloque Constant, 3 bloques Down Sample, 1 bloque Clock Enable Probe.

  Realizar las interconexiones entre los bloques tal y como se muestra en la figura 2-2. Configurar el Scope para que tenga 4 entradas. Además renombrar los puertos E/S como lo indica la figura.

  Figura 2-2. Agregando bloques de Xilinx y realizando las interconexiones

  El siguiente paso es configurar los parámetros para los bloques de System Generator. Realizar las siguientes configuraciones: Step

1 Initial value: Final value:

  Gateway In (rst) y Gateway In (dir)

  Output type: Boolean

  Counter Free-running

  

Counter type: Counter direction: Up/Down

Output type: UFix_4_0 Provide synchronous reset: Habilitar

Provide enable port: Habilitar

  ROM

  Depth:

  16 Memory type: Distributed memory

  

Initial value vector: hex2dec( ['C0'; 'F9'; 'A4'; 'B0'; '99'; '92'; '82'; 'F8'; '80'; '90'; '88'; '83';

  'C6'; 'A1'; '86'; '8E' ] ) UFix_8_0

  Latency: 0 Output type:

  Gateway out (test_simulation y test_simulation1)

  Translate into output port: Deshabilitar

  Constant Boolean Habilitar

  Output type: Sample Constant:

  Down Samples

  Ningún cambio para propósitos de simulación

  Cuando el bloque Counter se configura se agregan varias entradas, conectar estas nuevas entradas tal y como lo indica la figura 2-3. Con este cambio el diseño esta completamente conectado y configurado.

  Lab 5: Contador decimal 2-4

  Figura 2-3. Conectar las conexiones faltantes APARTADO 1: DIVISOR DE FRECUENCIA EN SYSTEM GENERATOR

  En el presente laboratorio se aprende a diseñar un divisor de frecuencia usando bloques de Xilinx, este divisor se logra implementar de la siguiente manera:

  cte1 cte2 cte3

  La frecuencia de salida será la salida del bloque Clock Enable, y esta dada por la siguiente fórmula:

  Fclk_out = Freloj / (cte1*cte2* cte3) [ecuación 1]

  Por ejemplo, si Freloj = 50 MHz, cte1=cte2=cte3=2 se tiene que la frecuencia de salida es: Fclk_out = 50 MHz / (2*2*2) = 50 MHz / 8 = 6.25 MHz

  En realidad la fórmula puede extenderse a la forma genérica Fclk_out = Freloj / (cte1*cte2 *… * cteN), colocando N bloques tipo Down Sample.

  Paso 3. Simular el diseño usando MATLAB El siguiente paso consiste en verificar el comportamiento del diseño en la simulación. Para lograr esto se utilizan las herramientas de simulación de MATLAB

  El siguiente paso es realizar la simulación dando click en el botón Start Simulation y colocando el tiempo de simulación en el cuadro de diálogo, que para este caso siempre será 200 seg.

  1. Con los valores por default de los bloques de Simulink. Explicar los valores vistos en el bloque Scope. Definir que significa cada una de las 4 entradas del Scope.

  2. ¿Cada cuantas muestras se da el reloj de salida del divisor de frecuencia?, ¿Cuál es la relación entre el reloj de System Generator y el reloj de salida del divisor de frecuencia? 3. ¿Si se requiere un divisor de frecuencia para generar una frecuencia de salida de 1 Hz, Cuales serían posibles valores para las constantes cte1, cte2 y cte3 de los bloques Down sample?

  4. ¿Si se implementa el diseño cuantos puertos de salida se tendrían?, note que algunos bloques gateway out están en color gris.

  5. Realice los cambios necesarios para que se vea tanto el conteo ascendente como el conteo descendente en la misma ventana del Scope. Puede cambiar bloques tipo Sink y Source, tiempos de simulación , etc.

  Paso 4. Implementar el diseño en una tarjeta FPGA El paso final es implementar el diseño en una tarjeta FPGA. Este paso incluye la asignación de pines E/S y la generación del archivo BIT necesario para la programación del FPGA.

  El primer paso es asignar los pines de E/S a los Gateways In/Out. Realizar las siguientes asignaciones a los Gateways In/Out (figuras 4-1 y 4-2).

  Figura 4-1. Asignación de pines para los Gateways In (entradas rst y dir respectivamente) Figura 4-2. Asignación de pines para los Gateways Out (salida display)

  Recuerde que el divisor de frecuencia que se tiene genera un divisor de 8. Si se requiere generar una frecuencia de salida de 2 Hz para un reloj de entrada de 50 MHz entonces habrá que configurar los 3 bloques Down Sample con las constantes: 2500, 100 y 100 respectivamente. Consulte el APARTADO 1 para verificar este resultado haciendo uso de la ecuación 1.

  Figura 4-3. Configurando el divisor de frecuencia

  Una vez asignados los pines de E/S, abrir el cuadro de configuración de System Generator y configurar los campos Compilation, Part, FPGA clock period, Clock pin location; tal y como se observa en la figura 4-4. Una vez configurado, Click &lt;APPLY&gt;, Click &lt;GENERATE&gt;. Ahora System Generator generará el archivo BIT (tarda aprox. 5 – 10 min).

  Figura 4-4. Configurando el bloque System Generator

  Ir a la carpeta netlist y buscar el archivo lab5_cw.bit. Después se puede usar la herramienta iMPACT para programar la tarjeta FPGA como habitualmente se hace

   Programas Xilinx ISE Design Suite 1

  Validar e interpretar el diseño dando las entradas mediante los Switches y push-button y leyendo la salida en los DISPLAYs

Mostrar más