Explicación del gráfico de rendimiento del diseño de FPGA

4

Después de implementar una función matemática en un chip FPGA. El siguiente gráfico muestra para ~ 40 entradas el tiempo de respuesta, es decir, cuánto tiempo se tardó en calcular la salida. Estos datos son parte de los resultados de la simulación, que tomó todas las entradas de \ $ 0 \ $ a \ $ 2 ^ {32} -1 \ $ (la entrada y la salida son enteros), por lo que para enfatizar la pregunta, solo una parte fue poner en la imagen.

El eje y son los tiempos de ejecución en ns, el eje x son los valores de entrada. Ahora, ¿alguien puede explicar los picos en el gráfico, es decir, los altibajos alternos? ¿Qué podría influenciar tal comportamiento?

La función, este chip implementa, tiene la forma $$ f (x) = \ sum_ {k = 0} ^ x {\ frac {g (k)} {h (k)}} $$ para el la entrada x, donde g (k) y h (k) son funciones polinomiales. La complejidad total de la operación es $$ O (x \ log x) $$

PD: El FPGA es Altera Cyclone II, si tiene algún impacto en la respuesta.

    
pregunta user3209815

1 respuesta

1

Al observar la arquitectura del ciclón II , creo que no hay divisor de hardware en la arquitectura. Esto significaría que la división se implementa de alguna manera en el software, potencialmente en un tiempo no constante; mientras que en hardware debería haber sido un tiempo constante.

Intenté averiguar cómo se implementa la división en los tableros de Altera, pero no pude. Esto puede depender de si se están utilizando megafuncions o si se trata de un bloque como estos .

    
respondido por el Gonçalo Ribeiro

Lea otras preguntas en las etiquetas