16
Diseño y verificación de sistemas complejos con FPGA Nicolás Catalano ([email protected]) Gastón Rodríguez ([email protected])

Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Diseño y verificación de sistemas complejos con FPGA

Nicolás Catalano ([email protected])

Gastón Rodríguez ([email protected])

Page 2: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Alto grado de paralelismo y throughput en procesamiento de señales

Interfaces estandar y customizadas

Reconfigurabilidad y reutilización

Escalabilidad en el flujo de diseño

Tiempo de llegada al mercado vs ASIC

Características de las FPGA

Page 3: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Radares

Proyectos espaciales

Software defined radio

Integración sistemas preexistentes

Ejemplos de aplicaciones

Page 4: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Flujo de desarrollo

Page 5: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Flujo de desarrollo

Page 6: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Core de interfaces

• Interfaces con los componentes externos

• Interfaz de depuración (UART, JTAG, etc.)

• Comunicación interna con buses estándar (Wishbone, AMBA, etc)

Page 7: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Core de interfaces

Permite validar:

• Timing

• Niveles eléctricos

• Protocolos

• Software

• Señales de clock

Page 8: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Core de interfaces

Buses estándar:

• Wishbone

• AMBA3: AHB Multilayer, APB

• AMBA4: AXI, AXI stream

• Compatibilidad

• Reusabilidad

• Escalabilidad

Page 9: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Core de interfaces

Interfaz de depuración:

• Agrega visibilidad al interior del core

• Acceso a registros con valores conocidos

• Configuración de generadores internos de datos

• Lectura de datos generados

• UART <-> USB (FTDI, Cypress, Silabs…)

Page 10: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Core de interfaces

Testbench

Page 11: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Core de procesamiento

Page 12: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Integración, Puesta en Marcha

Page 13: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Verificación formal

Además de funcional:

• Casos extremos

• Casos aleatorios

• Cobertura de código

Reporte de Verificación

Page 14: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Documento de diseño

• Arquitectura interna

• Descripción de las Interfaces

• Entradas

• Salidas

• Registros

• Rangos de funcionamiento

• Descripción de los cores internos y sus IF

Page 15: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Proyectos espaciales

• Mayor esfuerzo en verificación (tiempo, $)

• Simulaciones Post Place And Route (PAR)

• Desarrollo con modelos de ingeniería

• Mayor esfuerzo en la documentación

• Revisiones independientes del Diseño, de la Verificación y de la Documentación

Page 16: Diseño y verificación de sistemas complejos con FPGA · Alto grado de paralelismo y throughput en procesamiento de señales Interfaces estandar y customizadas Reconfigurabilidad

Problemas encontrados

• Metaestabilidad

• Doble/triple registrado

• Comportamiento errático del sistema

• Verificar interfaces

• Simulación ≠ Ensayo

• Verificar conexiones internas

• Rebotes en señal de entrada

• Antirrebote

• Metaestabilidad

• Verificar interfaces