" QUIEN NO VIVE PARA SERVIR, NO SIRVE PARA VIVIR" TERESA DE CALCUTA. EL COMPARTIR ME DA FELICIDAD
viernes, 29 de abril de 2016
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
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.
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.
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:
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:
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
--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.
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:
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í:
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í:
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:
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.
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:
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.
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.
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.
• 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.
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:
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.
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.
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 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:
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.
Suscribirse a:
Entradas (Atom)