Por lo tanto, estamos implementando el cálculo inverso de 8 * 8 matrices utilizando la descomposición de LU en un FPGA Basys 3 Artix 7:
1) Tras la síntesis y la implementación, encontramos que el consumo de LUT y los inconvenientes de E / S son extremadamente altos y superan en gran medida. Los valores se tabulan a continuación:
Consumption Number Available in the Basys3 board
LUT 173897 20800
IO 931 106
DSP 90 90
FlipFlop 3743 41600
¿Cómo puedo optimizar la cantidad de LUT e IO consumidos?
MÁS INFORMACIÓN:
Usamos una representación de 8 bits para cada elemento de la matriz y el código usa muchas variables temporales dentro de las declaraciones para obtener los resultados intermedios.
Los módulos son los siguientes: En el módulo superior, calculamos la descomposición de LU de la matriz de entrada y luego pasamos las matrices L y U al módulo que calcula lo inverso. Luego pasamos los valores resultantes al puerto de salida.
2) Nos preguntamos cómo pasar la matriz como entrada al FPGA.
Consideramos dos opciones:
a) Serialización completa de la entrada (transmitir los bits a través de una conexión UART desde la computadora) y desarrollar un circuito de decodificación apropiado para asignar las entradas en consecuencia en el tiempo de ejecución. Estamos preocupados por el consumo de hardware, ya que ya hemos excedido los límites de consumo.
b) Ingresando los valores en la computadora y almacenando la entrada en la memoria RAM, leyendo los valores de la memoria RAM y enviándolos a nuestro programa. Nos referimos al siguiente enlace: enlace , pero la respuesta no fue muy clara sobre cómo abordar cada uno de los métodos paso a paso. (Por ejemplo, cómo crear una GUI (si es necesario) para pasar los valores de entrada y luego pasarlos a la placa y almacenarlos en una memoria RAM y leer de la RAM) y cómo incorporar el código (para leer o escribir en la RAM) en un código fuente (si es necesario). También me referí un poco a este manual: enlace , pero como soy un completo novato, no estoy seguro de cómo proceder.
Proporcione un procedimiento paso a paso sobre cómo pasamos y almacenamos la matriz como una entrada y leemos y almacenamos los resultados en una salida, cualquier enlace a las IP relevantes que se pueden incluir en el código y cualquier referencia adicional que podemos aprender de
Gracias.