Fpga con interfaz otro lenguaje

#1
Hola, espero que no este equivocado y este sea el buen lugar para preguntar, ya que el FPGA es un embebido..


Mi pregunta es, en una FPGA se le puede incluir codigo de otro lenguaje que no sea VHDL, osea por ejemplo, si quieres hacer un "juego" . Pues tienes que programar ese juego en VHDL? o haces un paquete en otro lenguaje, ejemplo JAVA o C, y crear un paquete, para implementarlo en VHDL? osea como una interfaz? Al igual que para hacer interfaces de salida de video , sonido..


Estoy un poco perdido, empeze este Lunes a estudiar FPGA con VHDL y tengo bastantes dudas hehe. Adema sde que estudio por mi cuenta.

Un saludo!
 
Última edición:
#2
VHDL es un lenguaje de descripcion de Hardware. O sea, describes compuertas, flip flops y memorias. De alli para arriba, como se suele decir, el cielo es el limite. Dado que, por dar un ejemplo, todo microprocesador esta basado en compuertas, flip flops y memorias, si tienes el codigo VHDL de un procesador determinado puedes implementarlo (si entra) en tu FPGA y correr programas en ese micro. Del mismo modo puedes hacer interfaces de video, sonido o lo que sea, desde cero o utilizando bloques ya realizados por otros.
 
#3
Tiene razón chclau, vas de a bloques armados (en una interfaz gráfica) y/o con código VHDL.
Por cierto los bloques armados son en código VHDL normalmente, o con la interconección de las compuertas en una especie de diagrama (raras veces, cuando el bloque realiza una función menor o muy puntual)

No hay C, ni java, ni ningún otro porque aquellos son para hacer modelos secuenciales, y los FPGA tienen un modelo concurrente (o sea que un pedazo del chip puede funcionar como video mientras que al mismo tiempo -sin usar interrupciones- otra parte del mismo chip es sonido, USB, lo que sea)

Saludos.
 
#4
Duda...
De echo si hay, por ejemplo el programa Altium Designer no solo es dedicado a hacer PCB de buen nivel, también soporta o mejor dicho es capaz de programar para FPGAs en C,C++ o gráficamente, ahora no se si solo es para su propio hardware como el NanoBoard 3000 o es más libre...
Bueno igual no es tan conocido y es caro...
 
#5
ByAxel, el soporte de Altium para C y C++ es justamente para ser usado en microprocesadores sintetizados en FPGA, tales como el Nios II de Altera o el MicroBlaze de Xilinx.

Con eso no quiero decir que NO se pueda usar C para modelar Hardware. En realidad, hay una tendencia a comenzar a utilizar sistemas tales como System C para lo que se denomina co-desarrollo de HW y SW.

Pero, y hasta donde yo se, Altium Designer NO utiliza C para desarrollo de HW sino para desarrollo de SW sobre procesadores sintetizados en FPGA
 
#6
VHDL es un lenguaje de descripcion de Hardware. O sea, describes compuertas, flip flops y memorias. De alli para arriba, como se suele decir, el cielo es el limite. Dado que, por dar un ejemplo, todo microprocesador esta basado en compuertas, flip flops y memorias, si tienes el codigo VHDL de un procesador determinado puedes implementarlo (si entra) en tu FPGA y correr programas en ese micro. Del mismo modo puedes hacer interfaces de video, sonido o lo que sea, desde cero o utilizando bloques ya realizados por otros.
No he entendido lo siguiente: microprocesador en VHDL? pero no se programa en ensamblador? o C?

A ver una fpga es el " chip" pero luego esta la placa que incluye mas cosas, como microprocesador , salidas de audio, video etc.. e incluso unas tienen un procesador.


Al comprar la placa FPGA te viene en el manual el codigo del microprocesdor? y si entra, podria modificarlo? Lo de la interfaces ya para mi es como llegar a marte sin ni siquiera a ver empezado a volar... Porque yo solo estoy ahora en el pensmiento de FPGA= puertas logicas, con ello solo llega a "robots" pero nada de cosas informaticas como interfaces de video, o cosas analogica. Si pudieras explicar mas o enviar algun apunte te lo agredeceria mucho.

Gracias



Tiene razón chclau, vas de a bloques armados (en una interfaz gráfica) y/o con código VHDL.
Por cierto los bloques armados son en código VHDL normalmente, o con la interconección de las compuertas en una especie de diagrama (raras veces, cuando el bloque realiza una función menor o muy puntual)

No hay C, ni java, ni ningún otro porque aquellos son para hacer modelos secuenciales, y los FPGA tienen un modelo concurrente (o sea que un pedazo del chip puede funcionar como video mientras que al mismo tiempo -sin usar interrupciones- otra parte del mismo chip es sonido, USB, lo que sea)

Saludos.
Pero FPGA tambien tiene modelos secuenciales, como el if, when.. .

Que es un bloque armado? un paquete?
 
Última edición:
#7
Te diria que te lo tomes con un poco de paciencia, comiences a tomar las clases de VHDL y si luego de eso todavia hay cosas que no entiendes, lo hablamos. Me parece que lo que te diga ahora te va a confundir mas de lo que te va a ayudar.

Lo que si, trata de pensar para que se usa VHDL. Principalmente para dos cosas:


1. Para describir HW
2. Para realizar verificacion de HW

En el caso (1) en que estas describiendo HW, el "programa" de VHDL se "ejecuta" en forma secuencial pero el resultado cuando se lo sintetiza es una pieza de HW que NO es secuencial. Un flip flop se genera mediante codigo secuencial (IF) que "primero" revisa el reset y "luego" el clock, pero como sabemos un flip flop responde en forma paralela a todas sus entradas, tanto las de datos, como la de reset, como la de clock.

Creo que cuando hayas visto varios ejemplos de como se describen compuertas y flip flops entenderas mejor la relacion entre el codigo VHDL y el HW que intenta representar.

Si estas realizando verificacion (2) de HW ahi si el VHDL es mas parecido en su comportamiento a los lenguajes de computacion secuenciales.
 
Última edición:
Arriba