-
MANUAL. Practica 1 Diseo de sistemas digitales
(telecomunicaciones) con KIT basys2 Xilinx FCHE-MAIC
26/10/11
Objetivo1: conocer cmo funciona la tarjeta
Objetivo2: Comprender como se construyen sistemas digitales con
el KIT basys2 y software xilinx
Objetivo3: activar el reloj
INTRODUCCION. Cmo funciona la tarjeta basys2 Es una tarjeta FPGA
que permite disear miles de compuertas, solo programando
hardware
mediante VHDL.
-
Que tiene?
-
Cada elemento, ya sea switchs, leds y push botom(o pulsadores),
se les asigna un pin para que se
enlace. La asignacin de pines de acuerdo al elemento, se observa
a continuacin.
-
Experimento 1.
Al final se espera: Que el alumno aprenda a utilizar el software
y hardware para un ejemplo
sencillo.
Objetivo: Programar una compuerta AND, las dos entradas estarn
asignadas a dos push botom
(para el push botom 0 le corresponde el pin G12 , y el push
botom 1 le corresponde el pin C11),
ambos utilizaremos y la salida la conectaremos a un led, se
escoge el LD0 con pin M5.
Tenemos que tener instalado Xilinx, y Diligent Adept.
-
(Todos los programas Xilinx ise 8.2i, despus submen: Project
navigator)
Debe aparecer as, sino en men File selecciona Close Projet
1) Crear un nuevo proyecto
2) Le llamamos ejemplo 1, y next.
3) Configurar la tarjeta basys2, de esta manera. Next.
-
4) Seleccionamos NEW SOURCE
5) Seleccionamos de la izquierda la opcin VHDL Module y
nombramos el archivo:
ejemplo1, luego NEXT.
-
6) Como es una AND la que vamos a realizar, las entradas le
llamamos A y B y la salida C
7) Estos valores se insertan a continuacin, tambin se debe
seleccionar si es entrada (in) o
salida (out), despus NEXT
-
8) Despus finish, next, next, finish. Y te queda esta
pantalla.
9) De esta pantalla seleccionamos la pestaa: ejemplo1.vhd
10) Aparece el cdigo a continuacin y comentarios con lneas de
color verde.
-
11) Entonces solo trabajaremos en esta parte del cdigo. Quitemos
los comentarios que estn
de color verde. (los comentarios se crean con dos guiones). Debe
quedar as.
-
12) En entity se declaran los puertos de entrada y salida, esta
entidad se le pone un nombre
aqu se le llama: ejemplo1.
13) En Architecture se coloca el comportamiento de nuestro
circuito, dadas las entradas y
salidas de la entidad. El comportamiento de nuestro proyecto es
una and.
Asi es que se coloca entre begin y End, lo siguiente:
C
-
Guardamos
Y tenemos en el recuadrado de abajo que salen varios avisos que
se est compilando, y si
no est equivocado saldr exitosamente successfully
-
Si estuviese equivocado checa con cuidado el cdigo, letras
maysculas deben ir en
mayscula, punto y coma al final. Y vuelve a checar la
sintaxis.
Ya sabiendo que est bien escrito el programa procedemos con
asignar pines; en process
se escoge men , user constraint. Adentro tenemos assign Package
Pins y aparece
caja de dialogo donde se escribirn los valores de los pines.
(Una caja de dialogo
intermedia para crear UCF, se debe decir yes)
-
Los nombres de los pines los dijimos al inicio que se sacaron de
la tarjeta o de la tabla de
asignacin de pines dada. Habamos quedado entrada A el pin C11 en
la entrada B
el pin g1 y en el led C de pin m5.
Ahora se guarda y cierra, estamos otra vez en la ventana
anterior y ahora lo que se hace es
darle DOBLE click a tres cosas 1) sinthesize 2) Implement Design
y 3) generate
programming File, en los iconos de
En la tercera opcin te muestra esto, solo cirralo.
-
Finalmente, si todo sali bien tendremos la pantalla
siguiente.
Sino checa los numero de pines si coinciden a lo pedido.
Si todo sale bien, ya se genero un archivo .bit dentro del
folder donde se ubica este
programa que hicimos.
Ahora vamos a descargarlo a la tarjeta basys2:
Requerimos el software de Adept de Diligent ya instalado,
requerimos abrirlo.(todos los
programas, Diligent, Adept,se llama Adept ).
Si no est conectada la tarjeta ni prendida, te saldr as:
-
Tenemos dos opciones, para ambas, conectar la tarjeta al USB y
adems el power (switch
de encendido que esta a la izquierda) de la tarjeta basys2, lo
pones en ON.
Opcin 1 escoges connect: la opcin de basys2
Opcion2 Cierra la aplicacin, y se vuelve a abrir ya con todo
conectado y prendido.
(Si estuviese conectado pero apagado solo se debe inicializar la
cadena , dndole click al
botn: Initialize Chain)
-
Despus buscamos en el browser nuestro archivo BIT
-
Se escoge ejemplo1.bit
Se acepta esto cada vez que salga (dos veces)
-
Y ahora solo programar y probar la tarjeta. Si se descargo bien
a la tarjeta se mostrara lo
siguiente. (Si fallo el programa, checa, esta prendida la
tarjeta?
Checa los pines si se grabaron adecuadamente.)
-
Ya se descarg a la tarjeta exitosamente. Solo resta probar en la
tarjeta moviendo los dos
switch dados y checar que con los dos switch en ON se prende el
led especfico
nicamente.
En xilinx se escoge la opcin CERRAR PROYECTO: Close project.(NO
close solo). En el
men FILE.
Siempre recuerda al terminar cerrar proyecto.
En la tajeta Basys2, despus de utilizarla solo apaga el switch
de power.
FIN practica 1
Ejercicio: realiza una OR con entrada en el swith5 y switch 6 y
que se prenda el led1.
Antes de empezar un proyecto nuevo checa que est cerrado algn
proyecto, en men
FILE y submenu: Close project
-
Practica 2. Conectando el reloj a un LED.
En la basys2 se tiene un reloj interno de 50mhz, si lo
conectamos directamente a un led, el
parpadeo de prender y apagar que produce el reloj en un tiempo
determinado ser
imperceptible para los ojos. De manera que debemos realizar un
divisor de frecuencias,
produciendo retardos de tiempo con un contador y al final
conectarle el LED.
PARTE 1:
Primero se programara directamente y checaremos que el LED no se
nota el parpadeo.
Entramos a Xilinx, vhdl modulo, como entrada ser clk y salida un
LED.
A la entrada solo se activa el reloj interno con el pin B8.
A la salida para el LED escogeremos el LED7 con pin G1
-
YES
-
Resultado final: se prende solo el led 7 y se mantiene prendido
todo el tiempo.
AL final, por favor apara el switch de la tarjeta.
Termina parte 1.
-
PARTE 2. Realizar el divisor de frecuencias.
Como entrada se tiene el reloj interno con pin b8, llamado
CLK
Internamente tendremos un bloque donde ya se cre un retardo a
propsito, al final de
ese retardo se le conectara el led.
A la salida del retardo se le conectara el LED7 con pin g1,
Llamado LED.
En la parte interna se producir un retardo o delay, con un
ciclo.
La variable que estar variando ser CLK, ya que a esta tenemos
conectado el reloj
interno.
Si en el reloj se tiene una transicin de cero a 1, entonces solo
se verificara si ya se llego a
un tiempo dado, si es as, entonces se realiza una cuenta, pero
si no, se reinicializa el
conteo; sumndole un uno a la variable: cuenta. Entonces despus
de lo que haya
pasado, solo se verifica si cuenta es menor que la mitad del
reloj (25 mil), si es as, prende
Led, sino apaga Led.
-
Por otro lado se intenta con el cdigo siguiente que se mantenga
prendido a la mitad del
tiempo y se apague la otra mitad.
Checa de respuesta que al pasar el programa a la tarjeta, se
prendera y apagara
automaticamente el led designado.
-
F= 50 000 000 hz si queremos a 10hz frec. Sa.l/frec. Ent. =2x10
e-8 es la cuenta