Cómo decirle a mi computadora que ejecute un programa en mi fpga [cerrado]

-2

Tengo una pregunta importante que no puedo resolver.

digamos que estoy diseñando un fpga que todo lo que está haciendo es multiplicar matrices, estoy escribiendo un programa matlab y quiero que mi fpga use el fpga para (algunos / todos) cálculos, ¿cómo se puede hacer?

Pensé en algunas cosas: 1.quemínelo al programa matlab (de alguna manera, bit / hex / (estoy contento de haberlo hecho de otra manera)) en la SDRAM fpga: bueno, esto es más como un bypass que una solución ...

2. Construye un compilador para la fpga - Tengo mucha motivación, pero no soy Superman ...

Incluso las ideas anteriores, no estoy seguro de ellas y yo (aún) no sé cómo implementarlas, no sé qué es posible y qué no, ¿es posible hacer que la fpga "ayude"? (suena como una pérdida de tiempo), o todo el programa debe ejecutarse en el fpga?

cuando estoy pensando en que el fpga esté ayudando a la CPU, estoy pensando que necesito hacer algo como un controlador entre los dos ... Pero otra vez, estoy perdido en la oscuridad.

Es por eso que necesito su ayuda. Estaré feliz de escuchar su conocimiento.

¡Gracias!

EDITAR: Lo siento, probablemente no estaba lo suficientemente claro, no estoy realmente tratando de diseñar un circuito en fpga para múltiples matrices, estoy tratando de aprender (!). Soy un cuarto año en EE, y estoy interesado en aprender cómo funciona fpga, estoy escribiendo en systemVerilog. Ahora, para aquellos de ustedes que se preguntan: "¿Su cuarto año en EE y no saben cómo usar FPGA?" , entonces sí ... todos aprendemos teoría teoría teoría.

Y Marcus Müller, sí ... no sé nada de FPGA, pero estoy aprendiendo, y es por eso que pedí, aprender ... Pensé que ese es uno de los propósitos de este Foro ...

Definitivamente el peor foro que hay ...

    
pregunta albert1905

1 respuesta

2

No habrá una forma simple y fácil de hacer esto (a menos que su fpga sea compatible con OpenCL, e incluso entonces ...). A juzgar por tu publicación, no parece que tengas mucha experiencia con los FPGA, y si ese es el caso, realmente vas a tener dificultades para hacer esto.

Para conectar tu FPGA a tu computadora, casi cualquier cosa excepto PCIe será lenta, por lo que deberías comprar una tarjeta PCIe FPGA. A continuación, deberá escribir un controlador para permitir que su computadora hable con el FPGA a través de PCIe, y tendrá que escribir o encontrar una IP PCIe para permitir que su FPGA use PCIe (y si usa el de otra persona, Con frecuencia es bastante caro). Luego, deberá volver a escribir o buscar otra pieza de IP que permita que el controlador PCIe se comunique con su núcleo de matriz. Finalmente, deberá generar el núcleo de matriz a partir de matlab utilizando HDL Coder o escribir uno usted mismo. Además, a menos que sea un superhombre, cualquier IP que escriba no funcionará la primera vez, por lo que deberá escribir bancos de pruebas para verificar que cada pieza del diseño funcione antes de colocarlo en el FPGA.

De manera realista, seguiría los consejos de MadHatter para usar una GPU, a menos que sus matrices sean fácilmente convertibles a puntos fijos, la GPU le dará muchos menos dolores de cabeza que intentar poner su diseño en un FPGA.

    
respondido por el C_Elegans

Lea otras preguntas en las etiquetas