Mayor influencia en el área del circuito: a) Unroll, b) Loop_Flatten, c) Inline, d) Pipeline.
Mayor influencia en la latencia: a) Unroll, b) Pipeline, c) Allocation, d) Inline.
Al crear una nueva solución: (Varias correctas) a) Se pueden aplicar nuevas directivas, b) Debe seleccionarse el código fuente, c) El TB es válido, d) El código de la función es válido, e) No es necesario volver a sintetizar.
Mayor influencia en el throughput: a) Loop_Merge, b) Loop_Flatten, c) Latency, d) Pipeline.
2. Tipos de datos y sintaxis en HLS
¿Qué tipos de datos pueden utilizarse en HLS? d) Estándar C y C++ más tipos enteros de precisión arbitraria.
Modificar código C para que sea sintetizable: Se admite la mayor parte de la sintaxis de C, C++ y SystemC, siempre que todo esté definido en tiempo de compilación (no en tiempo de ejecución). Funciones como malloc no son válidas.
Reglas de uso:
C: archivos .c
C++/SystemC: archivos .cpp
Const: crea valores constantes (en hardware se implementan como ROM).
Static: mantiene el valor entre llamadas (en hardware se inicializan solo en el arranque).
Restricciones: No se permiten llamadas al sistema (printf, getc, time), memoria dinámica, casting de punteros, recursión, aritmética de punteros ni acceso múltiple complejo a punteros.
3. Métricas de rendimiento: Latencia y Throughput
Cálculo: En un circuito de 4 etapas con PIPELINE (4, 4, 5 y 3 ciclos), la latencia es 16 (suma de ciclos hasta la salida) y el throughput es la máxima latencia de las funciones.
Definición de Throughput: Indica cuántos ciclos de reloj transcurren entre dos muestras consecutivas. Se expresa en ciclos por muestra.
Definición de Latencia: Número de ciclos de reloj que transcurren entre la entrada i-ésima y la salida i-ésima.
Pipeline vs Unroll:
PIPELINE: Mejora el throughput y empeora el área.
UNROLL: Mejora la latencia (y por ende el throughput) y empeora el área.
4. Interfaces y Comunicación
Exportación IP en Vivado: Se utiliza la interfaz d) AXI.
Información en xparameters.h: b) Definiciones/funciones de la arquitectura hardware.
BSP (Board Support Package): Software que incluye los drivers específicos del hardware.
Hardware Platform: Conjunto de hardware compatible para ejecutar aplicaciones.
I/O Interfaces:
Data ports IO: Argumentos de entrada/salida (obligatorios).
Block-level IO: Señales de control como ap_start, ap_done y ap_idle (muy recomendables).
Port-level IO: Señales de control individuales para cada puerto (opcional).
5. Arquitectura PS y PL
PS (Processing System): Contiene los cores ARM y periféricos.
PL (Programmable Logic): Parte del chip que funciona como una FPGA (ej. Artix 7).
Conexión PS-PL: Mediante un bus del uP de tipo AMBA (versión AXI4-Lite para periféricos).
Scheduling y Binding:
Scheduling: Determina en qué ciclo de reloj ocurre cada operación.
Binding: Determina qué primitiva de cómputo se utiliza para cada operación.