You are on page 1of 10

IMPLEMENTACION DE FUNCIONES BOOLEANAS

USANDO EL CPLD XC2C64A


AREA DE ARQUITECTURA DE COMPUTADORAS
Reporte Tcnico 03, verano 2013
Autor: MC Apolonio Ata Prez.
Objetivo:
Programar funciones Booleanas en un CPLD XC2C64A
Material:
Un CPLD XC2C64A en base tipo DIP
Tarjeta de desarrollo para CPLD-FCC
Software ISE 12.1

PROCEDIMIENTO
1 .-Instalar el compilador: Instalacin del compilador
ISE12 de la compaa Xilinx.
2.- Iniciar un proyecto Se disea el archivo VHDL con las
funciones booleanas que se quieren utilizar, empleando el
compilador ISE 12,
3.-Sintesis :Se une todo se prueba la sintaxis
4.- Simulacin Para la simulacin se emplea el simulado
ISIM
5.-Asignacion de terminales; Se emplea el software
XILINX PACE.
6.-Generacion del archivo .jed
7.- Programacin del cpld Se programa el CPLD con el
archivo JDEC. Y se prueba en el laboratorio

2.- INICIAR UN PROYECTO


1.- En el men File dar Nuevo proyecto
2.- Damos el nombre del proyecto, le asignamos el nombre
Func_booleana
3.- Damos la ruta donde ubicar la carpeta de nuestro
proyecto, en nuestro caso
C:\Prac_VHDL\Func_booleanas
De preferencia ubicarlo en en un lugar que genere una
trayectoria corta ya que ISE acepta hasta 64 caracteres para
definir la ruta del archivo, si la ruta es ms larga reporta que
no encuentra al archivo. Damos next

1 .- INSTALAR EL COMPILADOR
ISE12 .
El compilador ISE 12 es desarrollado por la compaa
Xilinx , que es la misma que fabrica el CPLD XC2C64A.
1.- Instalar ISE 12.1 para ello ejecutar xsetup.exe
Seleccionar ISE Design Suite

Al terminar y ejecutar por primera vez nos pide la licencia,


seleccionar por medio de un archivo
O bien en el men HELP => Manage Xilinx Licenses=>
Copy License, indicar la trayectoria donde esta la licencia o
bien dejar que el busque la trayectoria del archivo.

4.- Seleccionamos el tipo del archivo de alto nivel del


proyecto. Seleccionamos HDL
Configuracin del dispositivo
3.- Configuramos el dispositivo con el que se va a trabajar.

Seleccionamos VHDL Module

Vamos a trabajar con el :


Dispositivo: XC2C64A
Familia: CoolRunner2 CPLDs
Empaquetamiento: VQ44
Velocidad: -7
Simulador: ISim
Lenguaje: VHDL
Damos next y presenta un resumen de la configuracin de
nuestro proyecto
Y nos muestra la siguiente ventana

Damos el nombre del archivo de trabajo, en nuestro caso


damos el mismo nombre que tiene el proyecto
Func_booleana

Activamos la casilla de aadir al proyecto.

En define modulo damos next


En resumen del proyecto damos Finish
Aparece del lado derecho un rea donde podemos editar
nuestro archivo VHDL
Aparecen varios comentarios (en verde)
y 7 lneas de
instrucciones, que definen una plantilla con la librera, la
entidad y la arquitectura de nuestro archivo VHDL.

Archivo de trabajo
4.- A nuestro proyecto le vamos a anexar un archivo VHDL.
Situamos el cursor en la ventana donde indica Empty View,
damos click derecho y aparece un men seleccionar new
Source, esta opcin tambin la podemos seleccionar desde el
men
Proyect => new Source
Muestra el menu siguiente

Para el ejemplo vamos a programar las funciones booleanas


F1 = A and B
F2 = A or B
Al editar el programa y quitar los comentarios el archivo
VHDL queda:

En la ventana de diseo seleccionamos el archivo VHDL que


queremos simular y activamos la opcin de simulacin

Damos File => salvar

En la ventana inferior seleccionamos Simulate Behavioral


Model y damos doble click

3.-SINTESIS
Para compilar y sintetizar el proyecto seleccionamos
processes => Synthesize-XST ,
o tambin podemos seleccionar
Process => Implement Top Module seleccionando con el

Se activa el programa de simulacin ISIM,

mouse el icono

Podemos observar tres columnas, en la primera estn las


variables usadas: a,b,f1,f2 , en la segunda los valores que
tienen y en la tercera un diagrama de tiempos.

Si no hay errores de sintaxis en el programa aparece la


ventana CPLD Reports

En la primera columna las variables aparecen con alguno de


los iconos siguientes :

Con el icono
corremos la simulacin, si queremos
correrla por un periodo de tiempo determinado lo indicarlo
usando la ventana
el periodo debe estar dado en
nanosegundos(ns), microsegundos(us) o milisegundos(ms),
esta ventana indica el tiempo que la simulacin se ejecutara

4.- SIMULACIN
Para la simulacin usamos el programa ISIM de Xilinx

cada vez que se active el comando


, con este comando
podemos ejecutar paso a paso la simulacin.

Antes de simular debemos asignarles valores a las variables


de entrada, la podemos hacer de dos formas.

Como una constante (force Constant)


Que cambie de valor entre un mximo y un mnimo
(Force Clock)

Para definirlo nos situamos con el cursor sobre la variable y


damos click derecho y aparece el men siguiente:

Para visualizar las formas de onda debemos manipular los


comandos

Como se aprecia la salida F1 se comporta como una AND


y F2 como una OR.
Configuramos las variable A y B para que cambien de 0 a 1,
con un periodo para A de 5 useg y para B de 10 useg.

Para resetear la simulacin usamos el comando

Para ello seleccionamos la variable A damos click derecho y


seleccionamos la opcin Force Clock, configuramos con los
siguientes valores:
Signal Name : a
Value Radix : Binary
Leading Edge Value :1
Trailing Edge Value :0
Starting at Time Offset:0
Cancel after Time: en blanco
Duty Cycle (%): 50
Period: 5us

5.-ASIGNACION DE TERMINALES
Para la asignacin de las terminales del CPLD a
nuestras seales de entrada y salida se puede
hacer de dos formas:
Automtica.
ISE
asigna
automticamente las terminales a los
pines del CPLD.
Manual. Se da de forma manual cada
una de las seales y la terminal que
queremos asociarle.
4.1.- Asignacin Automtica.
En la ventana Design
en
seleccionamos Implementacion.
Y luego marcamos Func_booleana

View

Posteriormente configuramos la variable B a 10us.

Activamos el comando
varias veces, el simulador
muestra en forma de diagrama de tiempo el valor que toman
las variables de entrada (a,b) y las de salida (f1,f2) .

En el men principal seleccionamos Process


=> Implement Top Module o bien con el mouse
seleccionamos el icono

El archivo .UCF se puede crear de dos formas:


Usando el programa Xilinx PACE.
Creando y editando manualmente el
archivo.

Si no hay errores de sintaxis en el programa aparece la


ventana CPLD Reports. La cual nos da informacin de los
recursos del CPLD que fueron empleados en el proyecto.

4.2.A USANDOXILINX PACE,


Para usar el programa, seleccionamos en la
ventana de procesos
User Constraints => Floorplan IO Pre- Synthesis.

Al seleccionar Pin List aparece una tabla que con las


variables usadas en nuestro proyecto y los pines
asignados automticamente por ISE
Aparece un aviso de que se va ha crear el
archivo .ucf le damos Yes.

ISE asigna automticamente las terminales 34, 36, 37 y 38 a


las variables B, A, F2 y F1 respectivamente.
Al seleccionar en la ventana de CPLD Reports la opcin
Pin List aparece el reporte en forma de texto, en ella
est en forma grafica y de tabla la distribucin de las
terminales del CPLD

4.2.- ASIGNACIN MANUAL CON XILINX


PACE.
Si por alguna razn no se quieren utilizar la terminales
asignadas automticamente por ISE, se puede hacer la
asignacin en forma manual para esto necesitamos un
archivo de texto con extensin .ucf, en el cual se da la
distribucin de las terminales que queremos.

Aparece una ventana con una lista de las


variables usadas
en el proyecto nuestro
proyecto

Del lado derecho aparece el diagrama del


CPLD , al mover el cursos sobre las terminales
aparece el nombre y el tipo de la terminal
seleccionada.

Seleccionamos las terminales de entrada y


salida que le vamos a asignar a nuestras
variables de acuerdo a la siguiente tabla

Al guardar y cerrar el programa se genera un


archivo tipo .UCF,
el cual se aade
automticamente al proyecto.

Al seleccionar el archivo UCF y dar doble click


muestra el contenido del archivo

.
4.2.B EDICIN DEL ARCHIVO .UCF
Si no se quiere usar el programa Xilinx PACE, para
generar el archivo UCF
se puede crearlo
manualmente.
Seleccionamos en el men principal FILE =>
New => TextFile, aparece una ventana donde editamos el
archivo siguiendo el formato

En nuestro seleccionamos:
Entradas A,B terminales 1 y 2
Salidas F1,F2 terminales 43 y 44
En
la
ventana
Design
ObjectList
seleccionamos Loc y damos el numero de la
terminal seleccionada, automticamente se le
antepone la letra P

NET seal LOC = P# ;


Donde: Seal es variable usada y # es el numero de
terminal

Lo guardamos y le asignamos un nombre con extension .UCF


Posteriormente lo aadimos al proyecto,
Design => Func_Boolena => click derecho
=> AddSource => archivo .UCF

7.- PROGRAMACIN DEL CPLD


Para la programacin y prueba del diseo se usara la trajeta
CPLD-FCC

6.- GENERACION DEL


ARCHIVO .JED
El archivo que se graba en el CPLD tiene la
extensin .JED para generarlo en la ventana
de procesos se la opcin Generate
Programming File

7.1. Caractersticas de la tarjeta


El sistema tiene los siguientes mdulos

Tambin se puede usar la opcin Implement Top Module


seleccionando con el mouse el icono

71.1.-Base de VQ44 a DIP44


Es un circuito impreso que permite trabajar con el chip
del CPLD XC2C64 que tiene un encapsulado VQ44, esta
base convierte la distribucin de terminales VQ44 a una
forma DIP 44 para poder trabajar en un protoboar. (figura
1)
Tiene indicado el nmero de terminales las cuales se
numeran en sentido contrario a las manecillas del reloj.

Al final de la compilacin se crea un archivo JEDEC, el cual


contiene la informacin de los fusibles a ser quemados en el
CPLD, para que implemente las funciones booleanas
deseadas, as como la asignacin de terminales.
El archivo JDEC tiene la extensin .jed y se encuentra en la
carpeta de nuestro proyecto.

Figura 1.- Base VQ44 a dip44


7.2.-Base para programar y alimentar el CPLD
Contiene una entrada de 5volts que alimenta a un
reguladores de 3,3V que proporcionan voltajes a las
terminales de salida, tambin tiene un regulador de 1,8V
que proporciona el voltaje al ncleo del CPLD.
Tiene dos terminales de 3,3 volts y GND, que
proporcionan el voltaje a los mdulos perifricos.
Las seales para programar el CPLD se agrupan en un
conector JTAG que tiene 6 terminales: TMS, TDI, TDO,
TCK, VDD, GND (Figura 2)

Figura 2 Base para programar y alimentar el


CPLD.
71.3.-Programador USB
Una parte importante es el programador USB, el cual est
basado en el circuito FT2232D de la compaa FTDI Chip,
del cable USB se deriva otro que proporciona 5 volts para
alimentar la tarjeta. (figura2)

Figura 4.- Generador de pulsos


7.2.- PROGRAMACION DEL CPLD
Instalacin del programador
Copiamos la carpeta prog, en el directorio
raz, la carpeta contiene los archivos:

Figura 3.- Programador USB para el CPLD


1.

71.4.-Modulo de Salidas
Conectamos el programador a la PC, la PC
reconoce al programador y lo instalara de
forma automtica.

Est formado por :


Un arreglo de 12 leds conectados en forma de ctodo
comn, por lo cual se activan con un nivel ALTO
4 Display conectado en forma nodo comn, por lo
cual se activa con nivel BAJO
2.

71.5.- Modulo de Entradas


Est formado por:
4 botones normalmente abiertos, Sin oprimirse dan
un nivel ALTO y si se oprimen dan un nivel BAJO
12 interruptores tipo DIP. En la posicin de arriba el
interruptor proporciona un nivel ALTO y abajo
proporciona un nivel BAJO

Figura 3.- Perifricos de entrada y salida


71.6.- Generador de pulsos
El Generador de pulsos est basado en el temporizador TS555
que trabaja a 3.3volts y genera pulsos de frecuencia variable,
va de 1 a 2505hz.
Adems contiene un oscilador de cuarzo de 25Mhz

Para comprobarlo ir a :
Iniciar=>Panel de control=>Hardware y
sonido=> Administrador de
dispositivos=>Controladoras Bus Serie
Universal, en esta ventana aparecern los
drivers :
USB Serial Converter A
USB Serial Converter B
Que corresponden a nuestro programador

Si por alguna razn no se instala, hay que


hacerlo de forma manual usando el drive
Drive FTDI que est en la carpeta Prog
Instalacin del software para programar
Para programar utilizamos el programa
prog_cpld, este programa est hecho en JAVA

y lo podemos situar en cualquier lugar de


nuestro disco duro en nuestro caso lo
copiamos y lo situamos en el escritorio o bien
hacemos un acceso directo.

Al ejecutar el programa aparece la ventana

8.- PRUEBA DEL DISEO


Se alambra el circuito de acuerdo a la asignacin de
terminales del archivo .UCF
Seleccin del CPLD
Ponemos el CPLD en la base de programacion,
conectamos el programador y movemos el
switch de encendido

Selecionamos la opcion de Conectar, el


programa reconoce al programador y muestra
el
mensaje
de
Conectado.,
despues
seleccionamos la opcion de Dispositivo se
reconoce al CPLD conectado y muestra su
identificacin.
Al mover los interruptores , se comprueba que
las salidas se comportan como una AND y OR.

9.- EJEMPLOS
Programacion del CPLD
Seleccionamos el archivo.jed que queremos
grabar para lo cual selecionamos la opcion de
Archivo.jed, posteriormente damos la
opcion de Grabar , al terminar de grabar
aparece el mensaje de Grabado

Podemos usar los archivos .jed localizados en


la carpeta de Ejemplos, para probar el
funcionamiento de sistema.
EJEMPLO1
El archivo Ent_sal _cpld.jed lee cuatro bits
de entrada y muestra su estado usando 4 leds
La distribucin de las terminales y salidas son:

EJEMPLO2
El archivo de ejemplo
mux_4dig_6543.jed,
muestra el nmero 6543 en los 4 display
utilizando la tcnica de multiplexado, para
generar la frecuencia de multiplexado (250hz)
se utiliza el oscilador de 25 Mhz
La distribucin de las terminales y salidas son:

You might also like