Está en la página 1de 9

Lab 5: Contador decimal en System Generator

Introduccin
Este laboratorio guia al asistente a travs de las herramientas System Generator y Simulink para
analizar la representacin de nmeros en System Generator

Objetivos
Despus de completer este laboratorio, el alumno ser capaz de:

Crear un diseo en System Generator y realizar la simulacin 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

Descripcin del diseo


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 diseo
conocido para el asistente y explorar como implementarlo usando bloques de System Generator.

clk
rst

dir

50 Mz
Divisor de
frecuencia

Clk 2Hz

Contador
binario

Decodificador BCD

display
7

Figura A. Diagrama conceptual para el contador decimal en SG

Lab 5: Contador decimal

2-1

Procedimiento
En esta seccin 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 esquemtico (colocacin, configuracin e interconexin de bloques )

3.

Simular el diseo usando MATLAB

4.

Implementar el diseo en la tarjeta FPGA

Cada paso principal del procedimiento es indicado por el cono


. Cada paso a su vez tiene
instrucciones especficas para alcanzar el objetivo final.
Cuando se pida alguna informacin 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 estarn 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 botn New Model. A
continuacin se abrir una hoja en blanco en donde se captura el modelo Simulink.

Lab 5: Contador decimal

2-2

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:
0
Type:
Fixed-step
Fixed-step size: 0.01

Final time:
Solver:

200
discrete (no continuous state)

Click <OK>

 Guardar el modelo como lab5.mdl

Paso 2. Realizar diagrama esquemtico


Una vez creado el nuevo modelo el siguiente paso es crear el diseo mediante
bloques de System Generator y Simulink. Este paso incluye la colocacin,
configuracin e interconexin de los bloques.
 En la ventana Simulink Library Browser. En la librera Sources, agregar 1 bloque Constant y
1 bloque Step. En la librera 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 aparecern todos los bloques
de System Generator disponibles para realizar diseos 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.

Lab 5: Contador decimal

2-3

 Realizar las interconexiones entre los bloques tal y como se muestra en la figura 2-2. Configurar
el Scope para que tenga 4 entradas. Adems 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 parmetros para los bloques de System Generator. Realizar las
siguientes configuraciones:
Step
Initial value:

Final value:

Gateway In (rst) y Gateway In (dir)


Output type:
Boolean
Counter
Counter type:
Free-running
Output type:
UFix_4_0
Provide enable port: Habilitar

Counter direction:
Up/Down
Provide synchronous reset: 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' ] )
Latency: 0
Output type:
UFix_8_0
Gateway out (test_simulation y test_simulation1)
Translate into output port:
Deshabilitar
Constant
Output type:

Boolean

Sample Constant:

Habilitar

Down Samples
Ningn cambio para propsitos de simulacin

 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 diseo 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 disear 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 frmula:
Fclk_out = Freloj / (cte1*cte2* cte3)

[ecuacin 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 frmula puede extenderse a la forma genrica Fclk_out = Freloj / (cte1*cte2 * * cteN),
colocando N bloques tipo Down Sample.

Lab 5: Contador decimal

2-5

Paso 3. Simular el diseo usando MATLAB


El siguiente paso consiste en verificar el comportamiento del diseo en la
simulacin. Para lograr esto se utilizan las herramientas de simulacin de MATLAB
 El siguiente paso es realizar la simulacin dando click en el botn Start Simulation y colocando
el tiempo de simulacin en el cuadro de dilogo, 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?, Cul es la relacin
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
seran posibles valores para las constantes cte1, cte2 y cte3 de los bloques Down sample?

Lab 5: Contador decimal

2-6

4.

Si se implementa el diseo cuantos puertos de salida se tendran?, note que algunos bloques
gateway out estn 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 simulacin , etc.

Lab 5: Contador decimal

2-7

Paso 4. Implementar el diseo en una tarjeta FPGA


El paso final es implementar el diseo en una tarjeta FPGA. Este paso incluye la
asignacin de pines E/S y la generacin del archivo BIT necesario para la
programacin 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. Asignacin de pines para los Gateways In (entradas rst y dir
respectivamente)

Figura 4-2. Asignacin 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 ecuacin 1.

Figura 4-3. Configurando el divisor de frecuencia

 Una vez asignados los pines de E/S, abrir el cuadro de configuracin 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 <APPLY>, Click <GENERATE>. Ahora
System Generator generar el archivo BIT (tarda aprox. 5 10 min).

Lab 5: Contador decimal

2-8

Figura 4-4. Configurando el bloque System Generator

 Ir a la carpeta netlist y buscar el archivo lab5_cw.bit. Despus 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 diseo dando las entradas mediante los Switches y push-button y leyendo
la salida en los DISPLAYs

Lab 5: Contador decimal

2-9

También podría gustarte