- Muchas notas - Fran Acién

20210104 - VHDL 10 - Síntesis de alto nivel

Paralelismo y pipeline

Dos métricas comunes:

  • Latencia (latency): tiempo en completar la tarea
  • Rendimiento (throughput): Número de tareas completadas por unidad de tiempo

Estructura pipeline (tipo cola)

La latencia será la misma pero nuestro rendimiento cambiará. Tenemos varias tareas a la vez que usan recursos diferentes:

Captura%20de%20pantalla%20de%202021-01-05%2017-20-45.png

Estructura paralela

La latencia es la misma pero ahora multiplicamos recursos, es decir, tenemos varias tareas a la vez que usan el mismo tipo de recurso pero multiplicado.

a.png

Síntesis de alto nivel

Tiene como fin diseñar un algoritmo que tenga en cuenta en el hardware las restricciones de area, frecuencia, latencia, etc.

Data flow diagram muestra las dependencias entre los datos. Los nodos son operaciones, las flechas son variables.

3.png

Metodología de síntesis de alto nivel

Allocation -> Asignación

Selección del número y tipo de unidades de hardware que vamos a utilizar. Podemos compartir operadores

Scheduling -> Lista del programa - orden temporal

Distribuimos las operaciones que tenemos en los diferentes ciclos, nunca excediendo el número de unidades de hardware que tenemos. Importante porque tiene impacto en nuestra latencia y rendimiento.

Binding -> Unión

Para cada etapa determinar cual de las unidades de hardware realiza la operación.

Implementación

Resulta en un datapath capaz de realizar el algoritmo para el que se diseñó.

  1. Estudio tiempo de vida de las varaibles -> registros
  2. Unión de los registros
  3. Asignación de multiplexores a cada operando
  4. Implementación hardware

Fixed point desing

Sin signo <a.b>
  • a = número entero (bits)
  • b = número fraccionario (bits)
  • N = a+b
Con signo <s.a.b>
  • s = signo
    • b = número fraccionario (bits)
  • N = 1+a+b
Suma
  • <a.b> + <a.b> = <a+1.b>
  • <s.a.b> + <s.a.b> = <s.a+1.b>
Multiplicación
  • <a1.b1> x <a2.b2> = <a1+a2.b1+b2>
  • <s.a1.b1> x <s.a2.b2> = <s.a1+a2.b1+b2> [Peor escenario]