Вы находитесь на странице: 1из 18

Benemrita Universidad

Autnoma de Puebla
FACULTAD DE CIENCIAS DE LA
ELECTRNICA
Prctica 1
Contador ascendente (0-16)
Nombre de la Asignatura:
Desarrollo de Aplicaciones.

Integrantes:
Lara Toral Amairany Tiare
Martnez Orozco Jos Javier
Snchez Prez Armando
Trevio Ziga Nayar

201134239
201134852
201126355
201137699

Profesor:
Dra. Mara Aurora Diozcora Vargas Trevio.
Seccin: 001

Primavera 2015

NDICE
Ttulo

Nmero de pgina

1. INTRODUCCIN
3
2. OBJETIVOS.
..3
a. General
3
b. Especficos..
.3
3. MARCO TERICO.
...3
4. DESARROLLO
.5
Material5
Diagrama de flujo ...8
Diagrama de estados ...9
Cdigo...10
Smbolo del sistema...10
Simulacin.11
5. RESULTADOS
...13
6. CONCLUSIONES
..16
7. REFERENCIAS.
....17

1. INTRODUCCIN
El vertiginoso desarrollo de las tecnologas de fabricacin de dispositivos electrnicos ha
marcado un importante avance en todos los sectores de la sociedad. reas como el Procesamiento
Digital de Seales han sufrido una verdadera revolucin gracias a las bondades de las nuevas y
eficientes tecnologas, permitiendo comprobar y crear nuevos algoritmos matemticos y tcnicas
especializadas en las diferentes plataformas existentes.
Esta prctica se realiza para la materia de sistemas de adquisicin y procesos basados en
FPGAs, como propsito introductorio para familiarizarse con el programa Quartus II, para este
programa se har uso de un autmata tambin llamado mquina de estados usando el lenguaje de
AHDL de la compaa Altera, as mismo se debe hacer la asignacin de pines en el FPGA
EPC2Q8C208C7, por lo que se tiene que tomar en cuenta su configuracin de pines.

2. OBJETIVO GENERAL
Desarrollar un programa en lenguaje AHDL que cumpla la funcin de iniciar un contador
ascendente/descendente, el cual inicie la cuenta hasta 16, nmero en el cual comenzar a descender
hasta llegar a 0 y repetir el ciclo nuevamente.

OBJETIVOS ESPECFICOS
-

Conocer la ubicacin de los puertos y pines del FPGA Cyclone II EPC2Q8C208C7.


Programar el FPGA mediante el programador TERASIC BLASTER-USB.
Comprobar la funcionalidad en el analizador de seales.

3. MARCO TERICO
FPGAs
Los FPGA (Field Programmable Gate Array) son circuitos lgicos programables
directamente por el usuario, lo cual requiere de herramientas de costo relativamente bajo, como lo
son el software de desarrollo y el dispositivo grabador. La grabacin o programacin de uno de
estos dispositivos se puede llevar a cabo en milisegundos. Los FPGA son muy utilizados por
fabricantes que producen tecnologa a baja escala, como por ejemplo diseadores de equipos de
propsito especfico, los cuales no pueden justificar la produccin de ASICs por los bajos
volmenes de dispositivos que venden. Los FPGAs tienen una funcionalidad similar, a costos
menores y con una velocidad ligeramente menor. Tambin los FPGAs se utilizan como prototipos,
3

los cuales se pueden depurar y permiten refinar el diseo. Con el software de diseo se puede
simular en hardware antes de mandar a fabricar el ASIC correspondiente.

ARQUITECTURA GENERAL DE UN FPGA


Un FPGA consiste en arreglos de varios bloques programables (bloques lgicos) los cuales
estn interconectados entre s y con celdas de entrada/salida mediante canales de conexin
verticales y horizontales, tal como muestra la figura 1. En general, se puede decir que posee una
estructura bastante regular, aunque el bloque lgico y la arquitectura de rutado varan de un
fabricante a otro.

Figura 1. Arquitectura interna de una FPGA

AHDL
Lenguaje de descripcin de hardware propietario de Altera. Tiene caracterstica de HDL
que le permiten ser eficiente para desarrollos de baja a media complejidad. Es un paso intermedio
entre los lenguajes de bajo a alto nivel de abstraccin complejidad. Utiliza el modelo behavioral
(de comportamiento) para describir la lgica que se desea implementar. Compilado con el Quartus
de Altera y la serie de compiladores Max+, este lenguaje tiene una sintaxis parecida al lenguaje de
programacin C y una funcionalidad similar a VHDL.

Quartus II
Quartus II es una herramienta de software producida por Altera para el anlisis y la
sntesis de diseos realizados en HDL.
Quartus II permite al desarrollador o desarrolladora compilar sus diseos, realizar anlisis
temporales, examinar diagramas RTL y configurar el dispositivo de destino con el programador.
4

Con el programa de diseo Quartus II los diseadores pueden usar los dispositivos HardCopy
Stratix de manera que puede prever y verificar su rendimiento, el cual resulta en promedio un 50
por ciento ms rpido que su FPGA equivalente. Adems, en el flujo de diseo del HardCopy
Stratix, Quartus II incluye una serie de utilidades que reducen el tiempo de diseo. Como contraste
adicional el bajo precio del Quartus II en comparacin con otras herramientas de diseo de ASIC.

CONTADOR
Un contador es un circuito en el que sus salidas siguen una secuencia fija que cuando acaba
vuelve a empezar, o circuitos que reciben sus datos en forma serial, ordenados en distintos
intervalos de tiempo.

Los pulsos de entrada pueden ser pulsos de reloj u originarse en una fuente externa y
pueden ocurrir a intervalos de tiempos fijos o aleatorios.
El nmero de salidas limita el mximo nmero que se puede contar.

TIPOS DE CONTADORES
Podemos clasificarlos segn:

El nmero de salidas del contador: 3 salidas (Max.8), 4 salidas (Max.16),...


El tipo de cuenta: ascendente, descendente, binaria, BCD, secuencias varias...
Dos grandes grupos: contadores asncronos y contadores sncronos.

4. DESARROLLO
MATERIAL

Fuente de voltaje
FPGA Cyclone II EPC2Q8C208C7
Terasic USB-Blaster
Quartus II
Keysight 1682AD
POD E5382A

CARACTERISTICAS TERASIC USB-BLASTER DOWNLOAD CABLE


El cable USB-Blaster tiene un conector universal USB que se conecta al puerto USB de
la PC y un conector hembra de 10 pines que se conecta a la placa del circuito.
Los datos son descargados desde el puerto USB de la PC a travs del cable USB-Blaster
a la placa del circuito.
5

Figura 2. Terasic USB-Blaster


Caractersticas

100% compatible con Altera USB-Blaster


Mejores capacidades anti-ruido
Mismo circuito utilizado en Altera DE2 Board diseada/fabricada por Terasic
Requisitos de alimentacin: 5.0 V del cable USB y 1.5-5.0V de la placa del circuito destino.
Disponible para Windows 2000, Windows XP y Linux.
Utilice la versin de software Quartus II 4.0 o posterior para configurar dispositivo.

Figura 3. Requerimientos de voltaje


Diagrama de bloque

Figura 4. USB-Blaster Diagrama de bloque


CARACTERISTICAS
Keysight 1682AD Logic Analyzer
Especificaciones, caractersticas y compatibilidad

Figura 5. Keysight 1682AD

CARACTERISTICAS FPGA Cyclone II EPC2Q8C208C7

130 terminales de entreda/salida mximas


7 terminales de entrada que pueden ser usadas como reloj o de propsito especfico.
Densidad de elementos lgicos de 10,320
7

46 M9K Bloques
423,936 bit de RAM
23 (18x18) Multiplicadores
2 PLLs
10 Relojes universales
Bajo consumo de energa

La prctica consisti en realizar un contador de 0 a 16 en cdigo AHDL. Para esto, se hizo uso del
software Quartus II con ambiente de Maxplus para poder llevar a cabo los procesos necesarios para
su simulacin y posterior programacin.

DIAGRAMA DE FLUJO
Para poder crear el cdigo AHDL se necesita entender el funcionamiento que tendr el sistema. Para
esto, se crea el diagrama de flujo (ilustracin 1), el cual ayudar a crear el algoritmo del contador.
Inicio

input

Resetneg, clock

Conta[5..0], salida

output

Estado 0
Conta[] < 16
N

Conta[] =
conta[] + 1
Salida = GND
Estado 1
N

Conta[] > 0

Conta[] =
conta[] 8-1

Ilustracin 1. Diagrama de
flujo.

El diagrama de flujo es la representacin grfica del algoritmo o proceso. Da una idea clara sobre el
comportamiento del sistema. As, se procede a crear el algoritmo en AHDL.
Declaramos nuestra variable conta la cual ser flip-flop D DFF para que no haya prdida de
datos.
Una vez declarando nuestras seales y las variables que ocuparemos. Asignamos las variables
correspondientes al RESET y al CLOCK.
DIAGRAMA DE ESTADOS
Como se observa en el diagrama de flujo anterior, se hace el uso de dos estados de una mquina de
estados. Para visualizarlos de mejor forma hay que ver el siguiente diagrama por separado.

Ilustracin 2. Diagrama de estados.


En el diagrama se observa ST0 que es nuestro estado 0 y ST1 nuestro estado 1. Se tiene que
refrescar las variables que ocupemos, esto es para evitar una prdida e informacin al pasar de un
9

estado a otro. Cuando el firmware se ejecuta y se encuentra en el estado 0 entonces el conteo es


ascendente hasta 16. Al llegar a 16 cambia al estado 1 y el conteo desciende de 16 hacia 0.

En Quartus II se abre una nueva ventana (AHDL File) para escribir el cdigo, quedando el cdigo
de la siguiente manera:

Ilustracin 3. Cdigo AHDL.


Una vez creado y guardado el cdigo AHDL, se procede a crear el smbolo del sistema en Create
symbol files for current files.
Posteriormente se crea un nuevo archivo con el smbolo del sistema (Block Diagram/Schematic
File). Se inserta el smbolo y se le asignan las entradas y salidas correspondientes (ilustracin 3).

10

Ilustracin 4. Smbolo del sistema.


Una vez asignadas las entradas y salidas, se mapean a los pines correspondientes en el FPGA.
(Assignments Pins).

Ilustracin 5. Asignacin de pines.

Ilustracin 6. Diagrama con pines asignados.


Una vez concluido lo anterior, proseguimos con la simulacin del comportamiento del sistema.
Mediante la ventana Vector Waveform File, asignamos las variables involucradas en el proceso y
comprobamos el correcto funcionamiento del programa.
Ilustracin 7. Variables a incluir en la simulacin.

11

Asignamos la seal de reloj correspondiente y forzamos el RESET a un valor alto, ya que se trata de
una entrada negada. As, al darle un 1 lgico, lo deshabilitamos.
Una vez agregados seales y valores necesarios, empezamos la simulacin (Start simulation) y
observamos que el programa se comporte como se espera.

Ilustracin 8. Simulacin 1.

Ilustracin 9. Simulacin 2.

12

Ilustracin 10. Simulacin 3.

Ilustracin 11. Simulacin 4.

13

Mediantes las ilustraciones anteriores podemos observar que el programa funciona correctamente,
ya que inicia el contador de 0 y al llegar a 16, comienza a disminuir hasta regresar a 0 nuevamente y
repetir el ciclo.
Una vez comprobado el correcto funcionamiento del programa, se procedi a programar el FPGA y
observar, en tiempo real, el comportamiento en el analizador de seales.

5. RESULTADOS
En esta parte se prueba fsicamente el comportamiento, por lo que los resultados deben ser similares
a los obtenidos en la simulacin, slo que en tiempo real.
El FPGA se alimenta con una fuente independiente a 3.2 V, como se observa en la ilustracin 11.

Ilustracin 12. Alimentacin del FPGA.

14

Se configura el dispositivo y se efecta nuevamente la asignacin de pines con base en la ilustracin


12.

Ilustracion 12 Puertos y pines del FPGA

15

Ilustracin 13. Conexin de pines del FPGA a seales de entrada y visualizacin del analizador de
seales.

Ilustracin 14. Mapeo de seales en analizador de seales y compilacin.

Una vez asignados los pines correspondientes, se procede a programar el archivo con ayuda del
programador. Lo conectamos al puerto USB del analizador y seleccionamos el archivo con
extensin-pof

16

Ilustracin 15. Programador.


Observamos el comportamiento en tiempo real
en el analizador de seales.

Ilustracin 16. Comportamiento en tiempo real.

6. CONCLUSIONES
Con esta prctica podemos llegar a las siguientes conclusiones:

Los conocimientos que se adquirieron en clase al realizar distintos firmware en el entorno


de MAX PLUS II y QUARTUS II son importantes para la realizacin de la prctica, ya que
bsicamente se realizan los mismos pasos para la creacin de un proyecto.
Lo interesante de realizar la prctica es que ahora ya no solo se realiza de forma terica,
simulando los resultados en los entornos de MAX PLUS II y QUARTUS II, sino que ahora
gracias al uso de una FPGA y un analizador lgico de seales, se carga el firmware a la
FPGA la cual realiza todo el proceso de seales del proyecto, en este caso el contador, y
puede ser visualizado en el analizador lgico el cual, al estar conectado a distintos pines de
la FPGA, capta estas seales ya procesadas y las manda a mostrar en pantalla demostrando
que el contador funciona y el resultado es exactamente como se realiz en las simulaciones
tericas.
Otra consideracin que se debe tener a la hora de la prctica es que al usar una FPGA se
debe tener especial cuidado en sus especificaciones comenzando por el voltaje de
alimentacin que necesita para funcionar, y no sobrepasarlo para no daarla. Tambin se
17

debe tener cuidado en la conexin de los pines para evitar un corto circuito y para evitar
hacer conexiones incorrectas ya que entonces nuestro proyecto no funcionar de la forma
que esperamos.
Esta prctica del contador resulta fcil y bsica para comprender el comportamiento real del
Firmware en una FPGA conectada a un analizador lgico de seales, sin embargo las
aplicaciones que se pueden realizar al contar con todas estas herramientas son muy diversas
dependiendo de las necesidades que tengamos, adems de que estas aplicaciones pueden
llegar a tener un grado de complejidad muy grande pero muy til.

7. REFERENCIAS
[1] Mouser, "Terasic-USBBlaster", http://www.mouser.mx, [En lnea] Disponible:
http://www.mouser.mx/pdfdocs/Terasic_ug_usb_blstr_v23.pdf. [Consulta: 25 de marzo de
2015]
[2] Testequity, "Keysight 1682AD Logic Analyzer", http://www.testequity.com/products/1334/.
[En linea] Disponible: http://www.testequity.com/documents/pdf/agt1680-90.pdf. [Consulta: 25
de marzo de 2015]
[3] Altera,"My First FPGA Design Tutorial", www.altera.com, [En lnea]. Disponible:
https://www.altera.com/en_US/pdfs/literature/tt/tt_my_first_fpga.pdf. [Consulta: 01 de abril de
2015]
[4] Universidad de la Repblica de Uruguay, Facultad de Ingeniera, Gua para realizar el
primer diseo con
QUARTUS II, [En lnea]. Disponible desde laboratorio,
https://eva.fing.edu.uy/file.php/508/laboratorio/guia_Quartus_II_V5.pdf. [Consulta 01 de abril
de 2015].
[5] Universidad de Illinois en Chicago, Altera Quartus II Tutorial, [En lnea]. Disponible desde
ece368, http://www.ece.uic.edu/~dutt/courses/ece368/quartus_ii_tutorial.pdf [Consulta 01 de
abril de 2015].
[6] Bozich Eduardo, "Introduccin a los Dispositivos FPGA", ao 2005, [En lnea] Disponible:
http://www.ing.unlp.edu.ar/islyd/Trabajo%20Final.pdf [Consulta 03 de abril de 2015].
[7] Noriega Sergio, @Introduccin a los Sistemas Lgicos y Digitales-AHDL", 2008, [En lnea]
Disponible: http://www.ing.unlp.edu.ar/islyd/Tema%2012b%20Logica%20Programable
%20AHDL%202009.pdf [Consultado 03 de abril de 2015].
[8] Gonzlez Rubn, Bardn Mrcos, "Contadores", [En lnea] Disponible:
http://personales.unican.es/manzanom/Planantiguo/EDigitalI/CONTG5.pdf. [Consultado 03 de
abril de 2015]

18

Вам также может понравиться