viernes, 29 de abril de 2016

Esquemático general: Ayuda para implementar el Contador ascendente del 0 al 15 con visualización en dos displays


Estacionarias dobles con optoacoplador en FPGA de Basys 2

Con el navegador de proyectos de Xilinx ISE 10.1  creamos como nuevo proyecto: LedParpadeo, y como nueva fuente en Módulo VHDL: clk1Hz. 

Copiamos y pegamos el programa ya visto, salvamos y chequeamos sintaxis

Para este caso no es necesario efectuar la simulación.

Procedemos a elaborar la síntesis y la asignación de pines. El pin del  Clock de 50 MHZ  es B8.

Procedemos ahora a estudiar la salida optoacoplada con el chip de 4 pines PC817, el cual se muestra en la figura siguiente: 


El chip PC817 dispone internamente de un diodo infrarojo y un fototransistor tal como se muestra en el siguiente diagrama



En muchas ocasiones se hace indispensable, para evitar ruidos que pueden incidir en un mal funcionamiento de un circuito secuencial, el uso de un optoacoplador que aisle la carga del circuito secuencial. Para este situación es muy util implementar una salida optoacoplada con el PC817, tal como se muestra en el siguiente esquema para manejar a traves de un relé de 5 voltios  una bombilla azul y otra roja, a 120 voltios AC.


Si la Entrada es 0 el relé está desenergizado y se activa la bombilla roja, y si la entrada es 1 se energiza el relé y se activa la bombilla roja.  Como el motor funciona al crearse un campo electromagnético en el,  si no existiera el aislamiento eléctrico causará ruido y molestaría en el circuito lógico que lo está activando, y por la alta corriente exigida dañaría la salida de la FPGA.

 El  Optoacoplamiento, quiere decir que el acoplamiento de las bombillas con el circuito lógico que lo activa, se hace en forma óptica, a través del diodo infrarojo y el fototransistor que existen en el interior del chip de 4 pines PC817. Con el 0 lógico el led infrarojo no emite luz, y el fototransistor está abierto, en cambio, si se tiene un 1 lógico a la entrada, el led emite luz. y el fototransistor conduce.


Observe además que se están utilizando  tanto los contactos normalmente abiertos como los normalmente cerrados, o sea los 5 pines de que dispone el relé de 5 voltios.El diodo de conmutacion dispuesto inversamente y en paralelo con la bobina del relevo actúa como supresor de picos de corriente cotrarrestando la Ley de Lenz (  VL = - L di / dt), y evitando que el voltaje autoinducido negativo que se genera en la bobina del relevo queme el transistor 2N2222A que se está utilizando como interface entre la salida del optoacoplador y la bobina o entrada del relevo.

Mas información sobre este interesante tema del optoacoplamiento se puede obtener en http://es.wikipedia.org/wiki/Optoacoplador

miércoles, 27 de abril de 2016

Contador asíncrono ascendente de 3 bits con flip flops T con visualización en display de 7 segmentos

EJERCICIO:  Usando esquemáticos se desea implementar en la FPGA de la Basys 2  un contador asíncrono ascendente  de 3 bits  utilizando 3 flip flops T  activos  en el flanco positivo de un reloj de 1 Hz  de frecuencia.  El flip flop T  debe previamente elaborarse a partir de un flip flop D activo en flanco de subida del reloj, el cual debe elaborarse utilizando 6 compuertas Nand.  El conteo debe visualizarse en un display de 7 segmentos, ánodo común, disponible en la tarjeta Basys 2 Digilent. 

Solución:

El proyecto debe llamarse contador_asincrono_3bits. 

Se crea una nueva fuente en esquemático llamado ffd_reloj de acuerdo al siguiente gráfico del libro Fundamentos de lógica digital de Brown. 


Este archivo ffd_reloj.sch  se salva y sintetiza, y despues de verificar que su RTL esquemático es idéntico al del gráfico del libro,  se procede en diseño de utilidades  a crear su símbolo esquemático.

Luego se crea una nueva fuente en esquemático llamada fft_reloj de acuerdo al siguiente gráfico del libro Fundamentos de lógica digital de Brown. 

Se solicita al lector  estudiar su tabla característica  y el diagrama de tiempo  del gráfico.

Debe salvarse el archivo fft_reloj.sch, sintetizarlo, y  despues de verificar en su RTL que obedece a lo requerido, debe crearse su respectivo  símbolo esquemático.

Posteriormente, debe crearse un tercer esquemático como nueva fuente: contador_3bits.sch, el cual dispone de 3 flips flops T, acorde con la siguiente gráfica tambien del libro Fundamentos de lógica digital de Brown. Debe salvarse, sintetizarse, verificar su RTL y crear su respectivo símbolo esquemático.


Posteriormente debe crearse un cuarto esquemático adjuntando al simbolo esquemático anterior el divisor de frecuencia que permite a partir del clock de cristal de 50 Mhz lograr la frecuencia de 1 hz.

Se salva este cuarto esquemático que puede llamarse: contador_reloj1hz, se sintetiza, se verifica RTL y se crea su símbolo esquemático.

Falta por último  crear un quinto esquemático: contador1hz_display  adjuntandole el decoder elaborado en clase para visualización en display de 7 segmentos provisto en la tarjeta Basys 2.

Nota:

Debe cada archivo estar actualizandose esquemáticamente, antes de sintetizarlo.

La asignación de pines sólo debe efectuarse en el archivo final (quinto esquemático). Los pines son el Reset del reloj, el clock de 50 Mhz (B8), y los cátodos del display de 7 segmentos, ánodo común.

Es importante analizar en el diagrama de tiempos del contador segun la figura 7.20 del libro de Brown, el por qué el autor del libro llama la atención del lector en el cambio del  3  al  4, cuando todos los 3 bits cambian. 


martes, 26 de abril de 2016

Parpadeo de un Led en la tarjeta Basys 2 Digilent con VHDL

Ejercicio: Un Led disponible en la tarjeta Basys 2 Digilent debe parpadear cada segundo.

Solución:

La tarjeta Digilent Basys 2 dispone de un reloj a cristal de 50 Mhz, y el Led hay que hacerlo encender y apagar con una frecuencia de 1 Hz, de tal manera que lo primero requerido es un divisor de frecuencia.

El divisor de frecuencia es un componente para reducir la frecuencia de entrada. Éste se implementa con ayuda de una Escala  y un contador, donde la Escala  es la relación o división entre la frecuencia de entrada y la frecuencia de salida deseada: 

Escala = \frac{f_{entrada}}{f_{deseada}}  


Recordemos que la frecuencia y el periodo de la señal son inversamente proporcionales, tal como se observa en las ondas mostradas, las cuales corresponden a un contador binario ascendente de 3 bits.

Como el contador cuenta del 0 al 7 (modo 8) al dividir la señal de entrada (50 Mhz) por 8 nos dá 6.25 Mhz, en el bit más significativo del contador.

Como el cristal tiene una frecuencia de 50MHz ( frecuencia de entrada) y deseamos una salida de  1 Hz, tenemos que:
Escala = 50 Mhz / 1Hz = 50 000 000 

Si el reloj tiene el mismo tiempo en alto que en bajo:

t_{alto} = t_{bajo} = \frac{50 000 000}{2} = 25 000 000

SI empezamos el conteo desde cero, y  un contador al llegar a  24 999 999 genera un pulso, esto quiere decir que la frecuencia de salida , de los pulsos generados,  debe ser de 1 Hz.

Veamos el programa en VHDL:

--Divisor de frecuencia de 50MHz a 1Hz para parpadeo de LED
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
 entity clk1Hz is
    Port (
        clk50Mhz: in  STD_LOGIC;
        reset   : in  STD_LOGIC;
        led     : out STD_LOGIC
    );
end clk1Hz;

architecture Behavioral of clk1Hz is
    signal pulso: STD_LOGIC;
    signal contador: integer range 0 to 24999999 := 0;
begin
    divisor_frecuencia: process (reset, clk50Mhz) begin
        if (reset = '0') then
            pulso <= '0';
            contador <= 0;
        elsif rising_edge(clk50Mhz) then
            if (contador = 24999999) then
                pulso <= NOT(pulso);
                contador <= 0;
            else
                contador <= contador+1;
            end if;
        end if;
    end process;
     led  <= pulso;
end Behavioral;


El contador dispone de una entrada de reset que se activa con nivel bajo, es decir si reset = 0, sin importar el flanco del reloj el contador se resetea. 
La primera vez que el contador llega   al 24999999, la señal interna pulso pasa del nivel bajo a nivel alto, el contador pasa a 0, y vuelve a comenzar a contar, mientras la entrada reset sea alta, y al volver a llegar a  

24999999,pulso pasa ahora de 1 a 0, completando un pulso completo, o sea un periodo de reloj; 

de esta forma la salida es de solo 1 Hz.


¡ Cada 50 millones de pulsos a la entrada se produce 1 pulso a la salida !

Con captura esquemática es imposible lograr esto; en cambio con lenguaje VHDL se hace de una
forma muy sencilla. Por eso VHDL se impone cada día mas, como lenguaje para describir hardware y efectuar en forma simple y práctica el diseño digital, pero se requiere, por ejemplo, de una FPGA 
donde el programa se pueda aplicar e implementar.


Con el navegador de proyectos de Xilinx ISE 10.1  creamos como nuevo proyecto: LedParpadeo, y como nueva fuente en Módulo VHDL: clk1Hz. 

Copiamos y pegamos el programa ya visto, salvamos y chequeamos sintaxis

Para este caso no es necesario efectuar la simulación.

Procedemos a elaborar la síntesis y la asignación de pines. Para el cristal de 50 Mhz se dispone el pin B8 de la tarjeta Basys 2.

miércoles, 20 de abril de 2016

Display de 7 segmentos con decodificador y compuertas Nor en VHDL

Ejercicio:  Utilizando un decoder de 3 entradas y 8 salidas, y 8 compuertas Nor de 8 entradas cada una elaborar un programa en VHDL para visualizar en el display de 7 segmentos, ánodo común, de la tarjeta Basys 2, Digilent, los dígitos del 0 al 7, y con el punto digital detectar los números primos:0,1,2,3,5 y 7.

Solución:

Dibujamos el esquemático tal como lo muestra la siguiente gráfica:

El  circuito principal  entonces  dispone de las tres entradas binarias, C,B,y A, y las 8 salidas Ca,Cb,Cc,Cd,Cd,Ce,Cf,Cg,P. 

Se requiere antes de crear el programa principal elaborar el VHDL del decodificador y de la compuerta NOR,   salvarlos y  sintetizarlos, puesto  que son los componentes  con los cuales va a trabajar el programa principal.

Al sintetizar podemos ver su esquemático RTL:

y al dar doble clik, observamos el circuito lógico del decoder con sus compuertas:

Esto quiere decir que el ISE nos ha entendido el decoder que deseamos trabajar.

Seguimos con la NOR_8  ( se hace su VHDL una vez y la llamamos 8 veces) desde el programa principal.


Se salva. Para sintetizarlo se requiere fijar el archivo Nor_8.vhd  como modulo superior: Set as Top Module


Vemos RTL en su caja:

Y luego la compuerta como tal al dar doble clik a la caja:


Pasamos entonces al VHDL del programa principal, el cual  dispone de las tres entradas binarias, C,B,y A, y las 8 salidas Ca,Cb,Cc,Cd,Cd,Ce,Cf,Cg,P.

La entidad junto con las librerias iniciales para el circuito principal  queda así:


En la arquitectura tenemos que definir las señales (internas) y los dos componentes así:


Luego al comenzar la arquitectura como tal, despues de haber definido las señales y componentes, elaboramos el mapa de puertos para cada componente llamado:

Esto se escribe después del begin: 

Al salvar  observamos que este programa principal contiene el decoder y ocho nor:


Fijamos este programa principal como modulo superior: Set as Top Module y lo sintetizamos.

Despues de corregir un error de sintaxis el programa principal es sintetizado, pudiendose verificar su esquemático RTL.

Al dar doble clik se obtiene el circuito completo, el cual se observa en cierta forma complejo.

Se solicita al lector ubique los pines de la FPGA y  verifique el buen comportamiento del circuito.







jueves, 14 de abril de 2016

Compuertas lógicas en VHDL implementadas en FPGA de Basys 2

EJERCICIO: Utilizando dos Switches se dan valores binarios a las entradas X,Y y se generan las diferentes compuertas lógicas para ser visualizadas en los leds de la tarjeta Basys 2.

Vamos a indicar los pasos básicos sin entrar en detalle. Si el lector requiere paso a paso las indicaciones se sugiere previamente  estudiar los laboratorios con la tarjeta Spartan 3E explicados en  entradas anteriores del blog para que adquiera habilidad en el manejo del software Xilinx ISE 10.1

1). Primero cerramos el proyecto existente en el navegador de Xilinx 10.1 y creamos un nuevo proyecto que vamos a guardar en una carpeta que previamente se ha creado para trabajar con Basys 2.
El proyecto lo llamamos compuertas  e indicamos  como HDL el tipo de nivel superior de fuente   en el que se van a trabajar las compuertas lógicas.

Indicamos las propiedades  del proyecto  y las características propias de la FPGA de la tarjeta basys 2:


2). Creamos como nueva fuente un módulo VHDL para indicar el programa respectivo:

 3). Se efectúa la síntesis del circuito para compilar el archivo VHDL después de haber chequeado su sintásis.

 4),  Se hace ahora la simulación respectiva:
5).. Se efectúa la asignación de pines y luego editamos el archivo compuertas.ucf para verificar que está correcto.



6).estando el circuito sintetizado y simulado, se procede a implementar el diseño, generar el archivo de programación y configurar la FPGA en la tarjeta Basys 2, tendiente a generar el archivo compuertas.bit, que es el objetivo final.  En las FPGA el archivo .bit es el equivalente al archivo .JED para programar  las GAL:

7) Se conecta el cable  USB que alimenta y permite la programación de la FPGA de la tarjeta Basys 2.
Abrimos el software ADEPT de la empresa Digilent, fabricante de la tarjeta.
Con Browse  buscamos el archivo compuertas.bit en la carpeta donde guardamos el proyecto.
Damos Si  en la advertencia que aparece.
Se da click en program, y si nuevamente a la ventana con adevertencia, y la tarjeta debe funcionar perfectamente despues de titilar brevemente el led rojo, indicativo de que la programación ha sido exitosa.
En Adept  debe aparecer en la parte de abajo un mensaje indicando que la programación de la FPGA se ha efectuado satisfactoriamente.
 Mediante Adept se puede chequear el correcto funcionamiento de la tarjeta con un test de prueba.

 Se muestra en tiempo real que switches o pulsadores se accionan.Los displays de 7 segmentos muestran un contador en hexadecimal desde 0000 hasta FFFF (4 dígitos unificados)

Después de realizado el test de prueba se requiere volver a grabar la FPGA para que vuelva a funcionar.
Si se desenergiza se pierde la programación.Ello es debido a que las LUTS (tablas de búsqueda) de la FPGA se efectúan sobre memorias RAM volátiles. Si se desea que el programa perdure aun cuando se quite  la alimentación hay que grabarlo en la memoria PROM Flash que dispone la tarjeta junto con la FPGA.

Manual de referencia tarjeta Basys 2 Digilent

La tarjeta BASYS 2 es una tarjeta de desarrollo,fabricada por la compañía DIGILENT, que contiene una FPGA  Xilinx  Spartan 3E-100,XC3S100E-CP132, un arreglo lógico programable de campo con 100.000 compuertas. 
  Está diseñada para el aprendizaje de sistemas  digitales de complejidad media utilizando un entorno de desarrollo profesional. Es  la ideal para el estudio de Digitales 2 a nivel de Ingeniería Electrónica y Biomédica en la UAN.

Además de la FPGA, esta tarjeta contiene una serie de recursos que pueden ser utilizados en los diseños de los circuitos. Concretamente contiene:
• 4 pulsadores.
• 8  interruptores deslizables.
• 8 LEDS, cátodo común.
• 4 displays de 7 segmentos en visualización dinámica.
• Un conector de teclado de PC (PS2)
• Una salida VGA para monitor de computador.

Todos estos recursos se encuentran conectados a las patillas de la FPGA de la forma que se indica en la siguiente figura:
Observe que cada elemento se identifica con una Letra y un Número de uno o dos dígitos,  con el cual se identifica el Pin, por ejemplo el LD0 se localiza como M5, el Switche SW0 está asociado con el pin P11, etc.
 Además la FPGA posee una entrada conectada a un reloj de 50 MHz que  corresponde a  la localización de pin B8.
 Se entiende que para el conector de teclado o el monitor VGA del computador tambien hay pines asociados que por el momento no se requieren, debido al uso inicial que se pretende dar a la tarjeta en las primeras prácticas, solo utilizando Switches y pulsadores como Entradas  y los Leds y Displays de 7 segmentos en las salidas de los circuitos a implementar.  Mas adelante se puede utilizar el Teclado para introducir datos, y el Monitor del PC para visualizar la salida.

Adicionalmente existen 4 conectores para trabajar externamente entradas y salidas, por ejemplo con el protoboard. Los cuatro conectores de expansión estándar permiten a la tarjeta Basys2 crecer utilizando circuitos diseñados por el usuario o PMods. (Los PMods son módulos de E/S analógicos y digitales de bajo costo que ofrecen conversión A/D y D/A, drivers para motor, entradas de sensor y muchas otras características). 
Supongamos que por ejemplo se desea trabajar con 4 leds de alto brillo o leds de chorro. Digilent ofrece por 10 dólares  un módulo de expansión  de 6 pines con los leds y sus transistores para que los manejen.

 Veamos el diagrama lógico de los leds y transistores:

Si necesitamos un display de cristal líquido LCD, por 35 dólares Digilent ofrece la respectiva tarjeta expansora que utiliza  dos puertos, o sea 6 pines:

Veamos su diagrama eléctrico:

 Se ofrece adicionalmente documentos de soporte para cada módulo expansor.

El lector puede conocer todos los módulos de expansión disponibles con sus respectivos precios en https://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,401&Cat=9


Uno de los 6 pines del conector es tierra (GND) y otro es Vcc de 3,3 voltios en cada puerto de expansión.
  .
 Se pueden observar en el gráfico anterior las resistencias de protección contra corto circuitos a las salidas, lo mismo que Diodos de protección ESD a tierra contra descargas electrostáticas.
Las descargas electrostáticas, como su nombre lo indica, consisten en un flujo repentino de corriente a través de un material, que generalmente es un aislante, pero que la diferencia de potencial entre sus extremos genera un campo eléctrico de cierta magnitud, convirtiendo los átomos del material en iones que conducen corriente.
Estas descargas se convierten en una seria amenaza para algunos dispositivos electrónicos sensibles, ya que gran parte de ellos incorporan una capa delgada de aislante, como por ejemplo dióxido de silicio, la cual se rompe cuando es sometida a altos voltajes, dañando irreparablemente el dispositivo.

Síntesis de circuitos mediante la tarjeta BASYS 2:

La síntesis de circuitos se puede realizar por medio del editor esquemático o mediante el lenguaje de descripción hardware VHDL. Se compilará utilizando el entorno ISE de XILINX como el XILINX ISE 10.1 que está disponible en el laboratorio de Simulación de Electrónica-Biomédica en la UAN,sede Sur,Bogotá.   Este entorno es capaz de crear un archivo para la configuración de la FPGA a partir del código VHDL que se escribe(archivo de “bit stream” con extensión .bit). Dicho archivo debe ser cargado en la tarjeta BASYS 2. Esto hace que el hardware interno de la FPGA se configure para seguir las especificaciones de  lo que se requiere implementar.
Para volcar el contenido del archivo en la FPGA y configurarla es necesario utilizar el programa ADEPT de DIGILENT, el cual también debe estar  disponible en el PC adicional  al XILINX ISE.

Para implementar un circuito digital en la FPGA de la tarjeta Digilent Basys 2 deben seguirse los siguientes pasos:
1). Dibujar el circuito lógico en el Editor Esquemático o escribir un código en VHDL que describa el hardware que queremos sintetizar.
2). Compilar el esquemático o el código VHDL  y generar el archivo de “bit stream”. Evidentemente el archivo no se generará si el programa tiene errores.
3) Efectuar la simulación del circuito a implementar. 
4). Una vez generado el fichero de “bit stream”, deberá utilizarse el programa ADEPT para volcarlo en la FPGA.
5). En este momento, la FPGA se convierte en un circuito que deberá realizar la tarea que haya sido descrita mediante el esquemático o el código  VHDL.

Utilización del entorno ISE:
Para realizar una síntesis mediante el entorno ISE debe crearse un proyecto.
Vaya al menú FILE -> NEW PROJECT. Aparecerá una ventana donde tendrá que escribir el nombre del nuevo proyecto.  Asegúrese también que en la casilla de selección “Top level Source Type” aparece “HDL”.
En la siguiente pantalla deberá ajustar los siguientes valores:
Family: Spartan 3E
Device: XC3S100E
Package: CP132
Speed: -5
Synthesis tool: XST (VHDL/Verilog)
Simulator: ISim (VHDL/Verilog)
Preferred Language: VHDL

Por último sáltese las siguientes pantallas pulsando en “Next”. En la última aparecerá el botón “Finish”.

Para compilar el código y generar el “bit stream” , seleccione el fichero o archivo  principal del proyecto y haga doble click en “Generate Programming File” en la parte inferior izquierda, después de haber efectuado la asignación de pines con el editor respectivo “Edit Constraints" y generar el respectivo archivo con extensión UCF.

Programación de la FPGA de la tarjeta Digilent  Basys 2:

Contiene un cable USB que le proporciona energía y es utilizado como interfaz de programación, por lo que ninguna otra fuente de poder o cable de programación es requerido.

 Para el uso de las tarjetas de Digilent que cuentan con conector Mini-USB como  la Basys2  se requiere un software extra para poder realizar la comunicación: Adept de Digilent; El software puede descargarse de manera gratuita en el sitio web http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2, en la sección “Software”: Digilent Adept, el paquete a descargar para Windows es Adept 2.6.1 System, 32/64-bit. Su instalación es muy sencilla, basta con hacer doble clic en el icono del software descargado y seguir las instrucciones.


Conecte la tarjeta Basys2 a un puerto USB disponible de una computador, Windows reconocerá que se ha conectado un nuevo dispositivo y procederá a asociarlo con el controlador adecuado.  Arranque el  programa: ADEPT.   y si la tarjeta se encuentra conectada  adecuadamente, se debe tener algo como lo que se muestra en la figura siguiente:

 Mediante el botón “Browse…” situado en la línea superior puede seleccionar el archivo que desea cargar. El archivo debe tener extensión .bit  A continuación haga click en el botón “Program”.a la derecha de “Browse…   Acepte la ventana que aparece y el fichero será transferido a la FPGA configurándola de tal manera que obedezca  el circuito descrito en su diseño.
 Durante la programación, un led de color rojo, que se encuentra a un lado de los pines de alimentación externa de la tarjeta se enciende, una vez terminado el proceso se indica si ha sido exitoso en la ventana de mensajes de Adept.

Recomiendo consultar un excelente trabajo de investigación realizado por el ingeniero Mario Merino Marquez del Instituto  Tecnológico  de  Tehuacán, México, titulado "Viabilidad de la tarjeta Basys 2 para su implementación en el control de un proceso".http://es.scribd.com/doc/97695972/Vibilidad-de-La-Tarjeta-Basys2-Para-Su-Implementacion-en-El-Control-de-Un-Proceso

PRIMOS EN BASYS 2 EN ESQUEMATICO

EJERCICIO:  Utilizando un decodificador de 3 a 8 y  una compuerta OR de  5 entradas implementar un circuito que para  3 entradas binarias  detecte los números binarios del 0 al 7.  Un Led con catodo a tierra debe encender al detectar los números 1,2,3,5 y 7,  suponiendo que el  1  es número primo.

Solución:

Cerramos el  proyecto anterior  y  creamos un proyecto nuevo.Lo llamamos: Practica1, el cual salvamos en una carpeta apropiada.

Configuración:


Debe aparecer:


Ubicandonos sobre la FPGA XC3s100e, creamos nueva fuente, la cual seleccionamos como ESQUEMATICO  y  que denominamos ejercicio1,  el cual va a tener extensión sch.

Dibujamos el circuito así:


Se  sintetiza el archivo  esquemático:


Observamos  el esquemático RTL  de acuerdo a la síntesis:



Al dar doble clik  se obtiene el esquemático RTL con el decoder y la compuerta OR:


Luego en USER CONSTRAINTS  procedemos a la asignación de pines post sintesis en Floorplan Area/IO/ Logic-Post-Synthesis


Al dar doble clic el ISE  va al programa de asignación de pines:PACE


Se asignan las entradas binarias  C,B,A  en los interruptores SW2,SW1 y SW0 de la Basys 2, denominados en la tarjeta como K3, L3 y  P11,   y  la salida PRIMOS se visualiza en el LED LD0 de montaje superficial: denominado M5.


Se salva y se regresa al ISE (Integrated Software Entorne ) del Xilinx para seguir con la implementación del diseño en la FPGA:


Se implementa el esquemático sintetizado o compilado de acuerdo al gráfico RTL que el ISE entendió en la FPGA teniendo en cuenta los pines asignados para las entradas C,B,A  y la salida que hemos llamado PRIMOS.

Hasta el momento tenemos;

Proyecto:   practica1
FPGA:      XC3S100E
Archivo esquemático asociado al proyecto: ejercicio1.sch
Archivo de pines  asociado al proyecto: :    ejercicio1.ucf


El  paso siguiente  es generar el archivo  de  programación:

Para nuestro archivo  esquemático ejercicio1.sch, correspondiente al  proyecto practica1, el archivo de programacion  se denomina  ejercicio1.bit  y se localiza en la carpeta en la cual se guardó  el proyecto.

Hasta aquí  no ha sido necesario conectar via USB la tarjeta Basys 2 al computador, pero para el paso siguiente si es indispensable hacerlo para que el PC reconozca la tarjeta y la configure:



Con este paso se termina con el trabajo del ISE, y  seguimos con el software ADEPT de la empresa Digilent  con el cual se programa la FPGA:


El adept debe reconocer la basys 2:


Buscamos el archivo ejercicio1.bit  en la carpeta practica1  donde guardamos el proyecto.


Lo seleccionamos en Adept   para efectuar la programación de la FPGA:

Verificamos que se cumpla e objetivo:


En la fotografia se puede apreciar que para el número decimal 5, cuyas entradas binarias estan en 101 en los interruptores, se enciende el led verde, al detectar que es un número primo.