¿Cómo puedo convertir la cantidad de DSP48 / BRAM a la cantidad de LUT y FF en FGPA?

1

Tengo problemas con la estimación de la utilización de la lógica.

Soy un estudiante de doctorado que investiga la implementación eficiente de algoritmos de procesamiento de señales. Por lo tanto, tengo que comparar la utilización lógica del método propuesto con el método convencional.

Por lo tanto, la comparación de los conteos de compuertas para cada método es la mejor manera de evaluar la eficiencia de la utilización lógica. Desafortunadamente, como usted sabe, el simulador Xilinx ya no proporciona los conteos de puertas.

En lugar del conteo de puertas, podemos estimar la utilización lógica con el número de LUT y FF. Por lo tanto, no usé el DSP48 ni la memoria de bloque al usar la configuración de síntesis para que todas las lógicas puedan ser implementadas por LUT y FF.

Sin embargo, aunque había configurado –max_dsp = 0, el filtro de reducción / FFT generado por IP, compilador FIR / FFT, todavía se utiliza DSP48 y BRAM.

Aquí están las preguntas.

1.Cómo puedo generar un filtro de decimación sin DSP48 utilizando el compilador FIR. Me gustaría generar un filtro de reducción solo con los CLB que utilizan el compilador FIR.

2. ¿Hay algún criterio para convertir la cantidad de DSP48 en la cantidad de LUT y FF?

3.Además, ¿hay algún criterio para convertir la cantidad de memoria de bloque en la cantidad de LUT o LUT de memoria?

    
pregunta PILSU

3 respuestas

2
  

¿Cómo puedo generar un filtro de decimación sin DSP48 usando el compilador FIR? Me gustaría generar un filtro de decimación solo con CLB usando el compilador FIR.

Configure su núcleo FIR IP y / o sus filtros de síntesis para no utilizar los segmentos DSP. Hay restricciones que te permiten configurar eso.

Por cierto, dudo que esto sea algo sensato. Estás haciendo DSP, así que usa el hardware DSP. Comparar las cosas como si eso no existiera está favoreciendo injustamente a las cosas que no utilizan los segmentos DSP.

  

¿Hay algún criterio para convertir el número de DSP48 en el número de LUT y FF?

Claro. Implementar un multiplicador en lógica discreta. De hecho, su sintetizador hará exactamente eso cuando le prohíba utilizar sus tamaños DSP.

Al igual que con todo en los FPGA: hay una compensación entre la velocidad, la cantidad de recursos utilizados y la latencia. Sin definir los límites para los tres, no puedes decir cómo debes implementar algo. Puedes construir un multiplicador de un solo reloj de miles de LUTs; puede crear un ciclo de reloj múltiple mucho más pequeño, o puede construir uno de ciclo múltiple de ciclo múltiple. Todo depende de lo que usted defina como apropiado.

  

Además, ¿hay algún criterio para convertir la cantidad de memoria de bloque en la cantidad de LUT o LUT de memoria?

Esto debería estar respondiendo solo, pero: estoy seguro de que puedes modelar un poco almacenado en el bloque RAM como un FF.

    
respondido por el Marcus Müller
1

Definitivamente el punto 3 está equivocado. La memoria tiene una estructura totalmente diferente de las puertas. En el mundo ASIC, de donde vengo, el área de un bloque siempre se divide en puertas-área y área de memoria.

La razón es que el tamaño de una memoria no es lineal. Los recuerdos pequeños ocupan mucho más área por celda que los grandes. Por lo tanto, los recuerdos muy pequeños se implementan utilizando lo que llamamos un 'archivo de registro'.

Un archivo de registro es una memoria compuesta de registros reales, pero debido a la estructura regular, están en densidad entre registros aleatorios + puertas y memorias.

Por cierto: contar LUTS tampoco ayuda. Una LUT puede representar una única puerta NAND o un grupo complejo tan grande como muchas, muchas puertas NAND. (El área de una compuerta NAND se usa como unidad para el área del circuito ASIC).

Por último, pero no menos importante: el área por sí sola no es suficiente.
Su nuevo algoritmo puede ser "más pequeño" en las puertas pero no es adecuado para el revestimiento de tuberías y, por lo tanto, no puede funcionar a altas velocidades. En cuyo caso, se descartará en favor de uno que puede ser forrado por tuberías o uno que sea más fácil de colocar utilizando un compilador de ruta de datos.

    
respondido por el Oldfart
0
  

Soy un estudiante de doctorado que investiga la implementación eficiente de la señal   algoritmos de procesamiento.

Este será un tema interesante: primero debe definir "eficiente". Como han dicho otros, realmente no se puede comparar "área" usando LUTs (¡y ese ha sido el caso durante mucho tiempo!).

Como ingeniero en ejercicio, lo que suele ser importante en el mundo real es más probable que sea "¿cuánto cuesta?" o "¿cuánta energía consume?" etc.

  

Por lo tanto, tengo que comparar la utilización lógica de   Método propuesto con método convencional.

No creo que tengas para comparar la utilización lógica ...

¿Puede apuntar a un dispositivo de diferentes maneras y comparar

  • el "costo equivalente" (según la cantidad de bloque que podría caber en su dispositivo seleccionado)
  • o la cantidad de energía consumida?

tu Tal vez podría comparar diferentes familias de dispositivos de esta manera, o incluso dispositivos de diferentes tamaños en la misma familia, para ver de dónde viene el punto óptimo para el costo del área de silicio o la energía, etc.     

respondido por el Martin Thompson

Lea otras preguntas en las etiquetas