Practicas Dsd Con Basis

30
MANUAL. Practica 1 Diseño de sistemas digitales (telecomunicaciones) con KIT basys2 Xilinx FCHE-MAIC 26/10/11 Objetivo1: conocer cómo funciona la tarjeta Objetivo2: Comprender como se construyen sistemas digitales con el KIT basys2 y software xilinx Objetivo3: activar el reloj INTRODUCCION. Cómo funciona la tarjeta basys2 Es una tarjeta FPGA que permite diseñar miles de compuertas, solo programando hardware mediante VHDL.

description

Practicas Dsd Con Basis

Transcript of Practicas Dsd Con Basis

  • 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