Se puede unir C++ con VHDL

Mi nombre es Silvia y estoy haciendo mi tesis de grado en VHDL, estoy haciendo un prototipo de una cámara inteligente en una FPGA, en este momento estoy especificando en VHDL y tengo que probarlo pero mi director quiere que la pruebe en tiempo real utilizando directamente las entradas de la cámara por el puerto paralelo, ya tengo un prototipo en C++ donde hice funcionar la cámara y las cosas que quiero hacer con ella pero no se como puedo hacer que esta información aparezca en el vhdl, leyendo encontré que puedo llamar a un ejecutable pero no tengo información como.
En Resumen tendría que llamar un ejecutable desde el VHDL, donde obtengo señales para ir simulando mi circuito.
Si sabes como hacerlo o se te ocurre otra cosa te lo agradecería muchísimo.
1

1 respuesta

Respuesta
1
Creo que no he entendido muy bien la pregunta. Si que se puede enlazar VHDL con C, pero en ese caso nos olvidamos del tiempo real porque es todo simulación.(Ahora mismo no sabría decirte como, pero te lo puedo mirar). Pero antes de hacerlo confírmame exactamente lo que quieres hacer.
¿Tienes la FPGA físicamente?
¿El VHDL esta en la FPGA o en un simulador?(¿Cuál?)
¿Quieres conectar la FPGA(que modeliza la cámara) al PC a través del puerto paralelo?
¿Cómo lo probaste la ultima vez y donde estaba todo?
Tampoco he entendido muy bien lo del ejecutable.
Dame más información y espero poder ayudarte.
Primero que todos muchas gracias por tu pronta respuesta.
Ahora espero ser más clara, yo tengo una cámara, a la que le voy a programar una FPGA que la maneje, pero por ahora estoy escribiendo el VHDL que lo maneje.
Tengo un programa en C que lee y escribe sobre el puerto paralelo, donde tengo conectada la cámara.
La idea de mi director es probar el VHDL, simulándolo, pero las entradas del puerto paralelo sean reales o sea cuando se necesite leer o escribir en el puerto paralelo, se llame al programa en C que lo hace.
El simulador de VHDL que en este momento estoy usando es el Active VHDL,
Luego si voy a usar una FPGA,
Lo que he probado hasta ahora es el programa en C que maneja la cámara y hace los postprocesamientos que yo quiero.
Y tengo escrito en VHDL los módulos que leen de la cámara y escriben en ella así como los procesamientos que yo quiero pero esta todo probado con simulaciones como yo creo que trabaja la cámara.
Lo del ejecutable es porque leí sobre que de VHDL se podía ejecutar algo, y pensé que tal vez podía ejecutar el programa en C que lee y escribe el puerto paralelo y usar entradas y salidas de ese ejecutable para simular el VHDL. Pero no entendí mucho porque el tutorial donde lo leí tenia para ese tema 2 lineas (literalmente)
Espero haberte dado la información que necesitas para ver si podes contestarme. Si no es así volveme a escribir y tratare de explicarme mejor.
Gracias Silvia
Muchas gracias por la sugerencia es la que estoy haciendo, el que quería probarla en tiempo real es mi director, y como no sabia si se podía hacer por eso estaba preguntando.
Te tendré presente en el futuro.
Muchas gracias
Silvia
Lo tienes bastante mal para hacer lo que quieres. Supongo que ya lo sabes, pero el VHDL es un lenguaje de simulación de circuitos integrados en principio. Lo que permite simular un circuito antes de gastarte los millones que supone un prototipo de silicio, aunque también se adapte a las FPGAs.
No se cuales son los requisitos de velocidad de tu cámara pero va a ser casi imposible hacerla funcionar en tiempo real con VHDL. Yo estoy trabajando con FPGAs, y las utilizamos precisamente para acelerar las simulaciones VHDL. Lo que yo haría en tu caso, es confiar en que tu diseño para la FPGA es correcto y probarlo (pero no es una practica adecuada).
Lo que se suele hacer en la industria, y lo que puedes hacer si no tienes mucha experiencia en VHDL, es crearte un testbench en VHDL con varios tests donde pruebes las funciones básicas de la cámara y haz lo mismo en C. Create ficheros de entradas y salidas de tu circuito (ASCII), previamente habrás tenido que especificarlo para el VHDL y escribir el código, y en C supongo que ya lo tienes.
Luego lanzas los tests (pero no en tiempo real), que te van a comprobar que el fichero de entrada ´x´ genera las mismas salidas en C y en VHDL.
Ya se que es bastante rudimentario y que en pleno Siglo XXI debería de haber formas de hacerlo más rapido pero te aseguro que esto es lo que están haciendo las empresas de semiconductores ahora mismo.
El paso siguiente sera meterlo en tu FPGA y esperar que funcione, las posibilidades serán más elevadas y si no funciona siempre puedes reprogramarla.
(fase de debug.. )
No dudes en consultarme si algo no esta muy claro o si tienes otros problemas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas