Curso para iniciarse con FPGAs

1- Postea el código.
2- Postea el error, copiado tal cual sale.

No somos adivinos para saber qué es lo que pasa... :D
 
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

-- Uncomment the following library declaration if using
-- arithmetic functions with Signed or Unsigned values
--use IEEE.NUMERIC_STD.ALL;

-- Uncomment the following library declaration if instantiating
-- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;

entity sumador_tutorial is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
C : in STD_LOGIC;
S : out STD_LOGIC;
SC : out STD_LOGIC);
end sumador_tutorial;

architecture Behavioral of sumador_tutorial is

begin
S <= A XOR B XOR C;
SC <=(B AND C) OR (A AND (B XOR C ));


end Behavioral;


ese es el texto del codigo, como algun manual que baje traia las indicaciones para hacer proyectos en el ise webpack pero era la version 6, el que tengo es la 12.3, la nueva, entonces al usar el Adept, porqeu para programar la tarjeta necesitas el Adept, dice lo siguiente al programar

"Startup clock for this file is CCLK instead of JTAG CLK, Problems will likely occur Associate config with file device anyway?

Y si lo baja y programa, pero solo se enciend un led y se queda sin hacer nada, y eso no es lo que debe hacer, como comente antes, deberia aparecer un wizard para poner el reloj pero esta version ya no la trae, me imagino obviamente entonces que hay que declarar relojes en codigo
 
Hola

Efectivamente en ese diseño no hay reloj con lo cual no debe pedirte nada (yo de todas formas no recuerdo que te tenga que pedir nada, pero bueno, quizá es una nueva "feature"). Supongo que A, B, C serán pulsadores o interruptores, y S y SC serán leds, para poder manejarlo externamente ¿no?

Sobre el error, me suena, fijate si en la carpeta donde se genera el .bit hay dos archivos .bit, uno que se llama download.bit es el que en teoría debes cargar, el otro no.

Saludos
 
es que ese es el gran problema Ferny, te paso la liga del documento donde viene ese pequeño codigo, el asunto es que si lleva reloj pero en el ISE 6 lo ponen "por fuera" en un wizard que se suponia salia en esa version, en algun momento que tengas oportunidad leelo, el wizard aparece en la pagina 14 del documento

http://www.scribd.com/doc/37267090/Tutorial-Para-Programar-en-Xilinxx

y muchisimas gracias por contestar......

otra cosa en la version 12.3 se genera un solo .bit que es el descargable y lleva el nombre del proyecto.....
 
Última edición:
Hola

Ese reloj es para realizar una simulación del comportamiento del VHDL. En realidad ni le haría falta ponerlo, es más para cuando usas un circuito síncrono (con señal de reloj). Lamentablemente nunca he usado el simulador de Xilinx así que con eso poco puedo ayudarte. Para simular he usado el Modelsim, donde te tienes que construir un test bench (también en VHDL) donde excitas las entradas y observas las salidas en el simulador. Eso está bien para simulaciones complejas, pero para simulaciones rápidas me gusta mucho el simulador del Quartus II de Altera...

¿Lo que te sucede es que lo programas pero no funciona? En ese caso puede ser que tengas mal asignados los pines de entrada o salida.

otra cosa en la version 12.3 se genera un solo .bit que es el descargable y lleva el nombre del proyecto.....
Cierto, es normal, no me acordaba que eso sucede cuando usas el EDK e integras un microprocesador dentro de la FPGA, en ese caso genera un .bit sin el código del programa del micro y otro .bit (download.bit) que sí lleva el programa del micro. No es tu caso, así que nada que ver...
 
Pues segui al pie de la letra el tutorial, en la pantalla donde asigno variables le pongo si es entrada o salida, lo que he podido entender en lo que he leido de ustedes es que hay que designar los pines, en este caso no me aparece ninguna pantalla para designar pines, eso si me pide al principio en que tarjeta voy a trabajar, y la designacion que trae es spartan 3e 250, x3s250e es la designacion oficial en la lista, entonces me quiero imaginar que los pines al declararlos como entrada o salida en la pantalla de asignacion de variables, automaticamente los identifica, alguien que haya trabajado con la Basys por ahi tendra alguna soluciona esto??

ahora, tampoco me voy a frustrar por un codigo que no salio, voya checar otros codigos y cargarlos a ver que es lo que sucede, son mis primeros pasos y sin ayuda mas que la de ustedes que se los agradezco mucho, pues si es un poco dificil........
 
Última edición:
La designación de pines se hace desde el archivo .ucf

No suelo usar los configuradores automáticos, quizá ahí haya estado el error y no se han asignado bien. Olvida que haga asignaciones automáticas, tú tienes que configurar cada pin y decirle si es entrada o salida. Lo de definirlo como entrada/salida se hace en el VHDL cuando lo declaras como "in" o como "out", y luego en el .ucf asignas esa señal a un pin físico de la FPGA. Mirando el esquemático de tu tarjeta, puedes saber a dónde va ese pin (un led, pulsador, display de 7s, etc.)


Pon por aquí el contenido del archivo .ucf de tu proyecto. Me voy a bajar el esquemático de la Basys2 y con eso podemos saber si están bien asignados...
 
Última edición:
Si, entiendo perfectamente tu punto, pero no podemos negar que por ejemplo una basys2 a 49 dolares contra una Cyclone II a 125 dolares( eso si el Consejo Academico de Altera te autoriza vendertela a ese precio, yo he mandado 3 correos con monton de datos para que me aprueben y es fecha que no he recibido respuesta:unsure:) o a 199 precio normal, es un mundo de diferencia en dinero, y no olvidemos que todavia no estoy incluyendo el costo de envio, para cuanto les gusta el envio? 30 dolares por UPS?:cry: aparte de que en Mexico la gran mayoria sino es que todos los libros de VHDL hacen referencia inmediata a Xilinx y las Spartan, y los cursos(rarisimos) que se llegan a impartir se van sobre Xilinx, nada menos en Diciembre vienen los de Xilinx a dar curso sobre Spartan 6, buscate LABVIEW FPGA en youtube y los primeros 20 resultados que te brincan son sobre Spartan y Virtex ambos de la misma casa, eso si, Cyclone II trae montones de cosas que no traen las otras, que es lo que pasa entonces? falta de difusion de los productos de Altera? o la gente simplemente porque los demas hacen algo ahi van y hacen lo mismo y no prueban otras cosas distintas?:confused: Por mi parte sigo esperando la respuesta del Consejo Academico de Altera aver si me quieren vender la tarjeta a 125 sino a ver que hare..........desprenderme de 199 dolarucos.. jeje:rolleyes:

he comprado un bemicro a €95 (con costo de envio) pero no puedo usarlo en linux :confused: pensé que un cyclone 3 fuera empieza bueno ahora no estoy cierto.
 
En la página 3 del manual de Bemicro (http://www.arrownac.com/offers/alte.../BeMicro_Instructions_Embedded_System_Lab.pdf)

Intel Pentium III or compatible Windows PC, running at 866MHz or faster, with a minimum of 512MB of systemmemory. NOTE REGARDING UNSUPPORTED OPERATING SYSTEMS: Neither Linux nor 64-bit versions of Windows Vista or Windows 7 are not supported by the BeMicro drivers at this time.
No soporta linux ni las versiones de 64 bits de WinVista o Win7

Mi experiencia me dice que nada que vaya por puerto USB funciona en linux, salvo que se demuestre lo contrario :D (obviamente muchas cosas sí, pero cuando instalas algo más "raro" suelen venir los problemas)
 
Estoy practicando un poco de VHDL, utilizando Xilinx ISE 12.1 en Ubuntu 10.10. Pero la verdad es que cuando comprendemos la sintaxis del lenguaje, podemos escribir el código en un editor de texto común.

Recomiendo Geany, que soporta las plataformas Windows y Linux. Para escribir el código, me agrada más incluso que la propia IDE de xilinx. Luego tomamos los archivos, al final, los agregamos a un proyecto en el Xilinx y listo. Creen un programita sencillo y observen además el panel de símbolos. Es práctico y muy pero muy liviano!

- Podemos minimizar el código.
- Autocompletado.

Otra opción es Emacs, aunque prefiero el que mencione anteriormente.

Pregunta: Alguien sabe como configurar Geany con el compilador de Xilinx?. En realidad lo que realmente me interesa es saber si mi código tiene un error (Ya que nos resalta las palabras reservadas pero no si me olvide un punto y coma, etc..), no compilarlo para pasarlo a la FPGA...
 
Hola soy novato en el tema y me dejaron en la escuela diseñar e implementar en una Gal22v10 usando VHDL (el programa que utilizo es Galaxy WARP R4) una Unidad Aritmético Lógica (ALU) que acepte dos números de 3 bits cada uno, representados por A2,A1,A0 y B2,B1,B0, además incluya 2 selectores S1S0 y las respectivas salidas Z2,Z1,Z0. Las operaciones que debe realizar la ALU son:
1) Z=A +- B
2) Z=A OR B
3) Z=A AND B
4)Z= COMPARACION SOBRE: SI A<B ==> Z=1
SI A>_B ==>Z=0
 
Hola, soy nuevo por aqui, es un alivio ver un foro en español por fin sobre FPGA´s. Mi duda:

Estoy haciendo un proyecto (filtros FIR para audio) para la universidad sobre una placa SPARTAN 3AN, pero el tema es que me gusto mucho el tema de FPGA y quieria comprarme una placa de pruebas para mi, y tengo una duda sobre el modelo. Estoy dudando entre:
*SPARTAN 3AN (sobre 200 euros) , la
*SPARTAN 3E 1600 (sobre 220 euros) -- que trae mas capacidad para proyectos futuros, y la
*SPARTAN 3E 500k (sobre 190 euros)
Trataria de terminar el proyecto en mi placa por lo que necesito que lleve los ADC y DAC y pantalla 2x16 LCD, ya que por trabajo no tengo tiempo de ir a la universidad cada dia a probar el firmware que hago por las noches.
Para el proyecto me vale cualquiera de las 3 ya que es muy basico. que placa comprarian ustedes??
Un saludo
 
La experiencia me dice que es difícil llenar una FPGA, pero dado que la diferencia de precio no es mucha, "burro grande, ande o no ande":

SPARTAN 3E 1600 --> 1600k gates
SPARTAN 3AN --> 700k gates
SPARTAN 3E 500k --> 500k gates

PD: en realidad cualquiera te iría bien ;)
 
"...ir a la universidad cada dia a probar el firmware que hago por las noches..."

Por instinto quienes hacemos cosas en electrónica nos gusta "ver la cosa funcionar"; mismo que en la practica lo que realmente veremos serán algunas pantallas mostrando la interpretación de algunas señales eléctricas.

Quienes inician en FPGA deberían tener mucho cuidado con esto. Muchos de mis alumnos y quienes nos consultan por proyectos tienen esa tendencia. Es un camino peligroso que tiende a buscar fallas y errores de diseño en placa en lugar de hacerlo en el simulador.

Si la intención es aprender, primero el diseño debe funcionar en simulación. Cuando el diseño funcione, recién en este momento necesitaras la placa para calmar los instintos naturales...
 
hola... necesito hacer un contador de 0 a 99 usando el ise foundation y la spartan 3e pero lo tengo que hacer a una frecuencia de 1hz mas o menos y hasta donde se la tarjeta te proporciona una frecuancia de 50MHz entonces no se como hacer esto, lo tengo que realizar en schematic porq eu todavia no se VHDL espero que alguin me pueda ayudar.. gracias de antemano
 
"...ir a la universidad cada dia a probar el firmware que hago por las noches..."

Por instinto quienes hacemos cosas en electrónica nos gusta "ver la cosa funcionar"; mismo que en la practica lo que realmente veremos serán algunas pantallas mostrando la interpretación de algunas señales eléctricas.

Quienes inician en FPGA deberían tener mucho cuidado con esto. Muchos de mis alumnos y quienes nos consultan por proyectos tienen esa tendencia. Es un camino peligroso que tiende a buscar fallas y errores de diseño en placa en lugar de hacerlo en el simulador.

Si la intención es aprender, primero el diseño debe funcionar en simulación. Cuando el diseño funcione, recién en este momento necesitaras la placa para calmar los instintos naturales...

Creo que también, en parte, depende de la formación recibida. Los que estudiamos cuando los simuladores no existían tenemos otra percepción de lo que es un desarrollo.

También es peligroso confiar demasiado en los entornos automáticos como simuladores, o ruteadores. Por más que los hacen muy inteligentes, siguen habiendo cosas que no se pueden simular: en especial aspectos subjetivos como criterios de trabajo, formas de ordenar ideas, ubicación "mental" del ambiente donde va a operar el equipo, consideración de posibles adversidades (azar), etc.

Está bien que como primera etapa de depuración de errores, y como economizador de recursos, sea súmamente útil el manejo de herramientas digitales, pero el que cree que sabe un tema porque maneja bien un simulador, se puede llevar una sorpresa muy grande al chocar con la realidad.

No se trata de instintos naturales: el equipo a la larga va a tener que funcionar "en físico".
Tal vez lo que pasa es que desde el punto de vista pedagógico, las cosas "reales" quedan un poco demasiado fuera de programa (no son tan académicas).
 
Última edición:
Solo para poner el escenario,
Son mis primeros intentos de entrar en esta comunidad, con el animo de una discusión creativa.
Cuando yo me formé en electrónica y ya pasé los 50 hace algunos años, los cálculos los hacíamos con regla de calculo...nada se calculadoras y menos computadores en clase.
Nota para lo viejos : cuidado algunas de las cosas que veíamos en lógica discreta y funcionaban no funcionan en FPGA.

Estoy en el área industrial no académica si bien las universidades nos llaman para dar cursos de posgrado a los docentes y egresados.


Comparto que el resultado final será cargando una configuración dentro de un FPGA, pero el resultado final es un buen proyecto no simplemente un proyecto que funcione hoy.
Durante las consultorias en las industrias veo proyectos que funcionaban y simplemente dejaron de funcionar al implementar el mismo código HDL otra vez, o porque cambiaron de FPGA, o porque nadie sabe el porque...

Estos diseños generalmente tienen errores de metodología de diseño y/o no fueron bien simulados, son generalmente diseños que recorrieron varios ciclos de edición-implementación hasta que finalmente funcionaron y se pensó que todo estaba bien...hasta que empezó la producción y nada parece funcionar.

En nuestros diseños todo es verificado en simulación antes de pasar a placa, a nivel industrial esto ahorra tiempo y dinero. La meta es que si esta bien planificado el proyecto; el bitstream y la placa montada deberían llegar al mismo tiempo.

Por otro lado si el diseño funciona en simulación (considerando que el banco de prueba esta bien construido y cumple con las normas de diseño y verificación), se siguió la metodología de diseño correcta (mucho cuidado aquí), se colocaron las directivas y restricciones de la herramienta en forma correcta, los posibles errores se deberán exclusivamente a lo físico pero externo al FPGA.

El simular en forma independiente cada modulo de un proyecto permite trabajar mas eficientemente concentrándose el proyectista en una sola funcionalidad del diseño. Los años nos demostraron esto mas de una vez.

Los bancos de prueba independientes por modulo y remarco bien construidos, son una herramienta invaluable para el mantenimiento del proyecto.

Un punto mas, la simulación ayuda a salir de dudas sobre la idiosincrasia de las herramientas, tanto del simulador como en la implementación, y a descubrir si el error es de la herramienta o del diseño, pero esto ya es harina de otro costal.
 
Última edición:
Todo bien, Walter, mi intención es la misma. Qué bueno es que aporte alguien que está en la "línea de fuego" con todas las herramientas de la tecnología moderna. Desde ya bienvenido.
En lo personal trataré de aprovechar para sacarme algunos prejuicios de mi vision parcializada.
Mi experiencia viene primero del lado de la física (he sido auxiliar de laboratorio de física durante varios años) y más tarde de alguna práctica en empresas (no demasiado formales).

PD: Lo de desconfiar de los autómatas viene por alguna experiencia negativa con el ruteador automático del Protel. Conozco gente que han quedado con pistas a ningún lado porque le faltaba el footprint adecuado de un CI, ... y el soft ni avisa !

PD2:
A pesar de que remarqué el punto de vista contrario, entiendo bien a qué te refieres.
He conocido gente que creía que investigar era tomar un modelo y empezar a variar los parámetros.
 
Última edición:
Atrás
Arriba