1 tema 6: instrumentación Diseño Automático de Sistemas José Manuel Mendías Cuadros Dpto. Arquitectura de Computadores y Automática Universidad Complutense de Madrid 2 Xilinx ChipScope Es un conjunto de herramientas de Xilinx que permiten analizar en tiempo real el comportamiento temporal de cualquier señal de un diseño volcado sobre una FPGA Funciona como un analizador lógico de muestreo síncrono: © J.M. Mendías, 2012 captura el valor de la señal en un flanco del reloj del sistema no requiere modificar el diseño ni la configuración del proyecto monitoriza cualquier conjunto de señales en tiempo real y de forma no intrusiva ¿Cómo utilizar ChipScope para depurar un diseño?: Sintetizar e implementar normalmente la especificación. Insertar en la netlist del diseño los cores de muestreo – ChipScope Core Inserter Alternativamente pueden instanciarse directamente en el VHDL – Core Generator Re-implementar la netlist (sin re-sintetizar la especificación). Bajar el conjunto a la FPGA en modo Boundary Scan (JTAG) – Xilinx Impact Configurar el analizador y arrancar el muestreo – ChipScope Analizer las muestras se toman en la FPGA cuando se cumplen las condiciones de disparo. una vez recogidas se envían a través de JTAG al PC para ser visualizadas. diseño automático de sistemas 3 ChipScope Core Inserter (i) Inserta en la netlist (*.ngc) de un diseño un conjunto de cores configurados ad-hoc para muestrear síncronamente bajo ciertas condiciones disparo el valor de un conjunto dado de señales de la netlist. © J.M. Mendías, 2012 ILA: analizador lógico que integra "sondas", lógica de disparo y memoria de muestras. ICON: comunica a través de JTAG los cores ILA con el ChipScope Analyzer La inserción se realiza a través de un asistente que permite: Seleccionar la netlist del diseño que se desea depurar (Input Design Netlist). Seleccionar el dispositivo (Device Family) Insertar un core (o varios) de análisis lógico (New ILA Unit) Configurar el core de análisis lógico: Configurar los parámetros de disparo (Trigger Parameters). Configurar los parámetros de captura (Capture Parameters). Seleccionar las señales del diseño que se desean muestrear (Net Connections). Insertar el sistema de muestreo en la netlist del diseño que se desea depurar (Insert). diseño automático de sistemas 4 ChipScope Core Inserter (ii) Selección de la netlist a depurar y del tipo de dispositivo de volcado © J.M. Mendías, 2012 netlist dispositivo diseño automático de sistemas 5 ChipScope Core Inserter (iii) © J.M. Mendías, 2012 Insertar cores de análisis lógico insertar core diseño automático de sistemas 6 ChipScope Core Inserter (iv) Configuración de los parámetros de disparo Determina el número y características de los "pods" de disparo © J.M. Mendías, 2012 Número de "pods" de disparo – Number of Input Trigger Ports Número de "sondas" por "pod" – Trigger width Número de unidades de comparación por "pod" – # Match Units Funcionalidad de las unidades de comparación – Match Type Basic (==, <>) Extended (==, <>, >, <, >=, <=) Range (==, <>, >, <, >=, <=, “in range”, “not in range”) Cada uno de ellos puede ser configurado para detectar transiciones (opción 'edges). Las unidades de comparación pueden estar asociados a contadores de ocurrencias de cierta anchura (Counter Width) Al menos n ocurrencias de la condición de disparo Exactamente n ocurrencias de la condición de disparo Al menos n ocurrencias consecutivas de la condición de disparo Las unidades de comparación pueden ser combinadas en una expresión lógica y encadenadas en una cascada (Enable Trigger Sequencer) de n niveles (Max Number of Sequencer Levels) Asimismo las unidades de comparación pueden usarse para determinar que clase de valores se almacenan una vez disparado el muestreo (Enable Storage Qualification) diseño automático de sistemas 7 ChipScope Core Inserter (v) © J.M. Mendías, 2012 Configuración de los parámetros de disparo diseño automático de sistemas 8 ChipScope Core Inserter (vi) Configuración de los parámetros de captura Determina como se realiza la captura de datos © J.M. Mendías, 2012 Flanco de reloj bajo el que se muestrean las señales – Sample on ... Clock Edge Si los "pods" de datos son los mismos que los de disparo - Data Same As Trigger en caso de ser distintos, número de "sondas" del "pod" de datos – Data Width Número máximo de muestras que pueden tomarse por el "pod" de datos tras el disparo Depth of sampling Selección de las señales del diseño que se desean muestrear Conecta (Modify / Make Connections) cada "sonda" a una señal del diseño Las "sondas" de cada "pod" de disparo (Trigger Signals) y de cada "pod" de datos (Data Signals) se conectan a las señales del diseño que correspondan. La "sonda" de reloj (Clock Signals) debe conectarse al reloj que define el dominio de las señales muestreadas (clk_BUFGP). diseño automático de sistemas 9 ChipScope Core Inserter (vii) © J.M. Mendías, 2012 Configuración de los parámetros de captura diseño automático de sistemas 10 ChipScope Core Inserter (viii) © J.M. Mendías, 2012 Selección de las señales del diseño que se desean muestrear diseño automático de sistemas 11 ChipScope Core Inserter (ix) © J.M. Mendías, 2012 Selección de las señales del diseño que se desean muestrear diseño automático de sistemas 12 Xilinx Impact © J.M. Mendías, 2012 Es una herramienta que asiste la configuración de FPGAs/CPLDs según distintos modos de comunicación (Boundary Scan, Slave Serial, etc.) y a través de cables específicos de Xilinx, permitiendo: Bajar configuraciones (download) . Subir configuraciones (read back) . Depurar problemas de configuración. Crear ficheros de configuración en distintos formatos. diseño automático de sistemas 13 ChipScope Analyzer (i) © J.M. Mendías, 2012 Permite configurar los elementos de analizador lógico, arrancar/parar la monitorización de señales y visualizar las formas de onda resultantes a través de JTAG. Los elementos a configurar antes de arrancar la monitorización son: Valores y número de ocurrencias para disparar el muestreo (Match Functions) Muestras que deben almacenarse hasta agotar la profundidad de muestreo (Capture Settings) n muestras desde cada disparo una ventana (o varias) de n muestras donde el disparo está en una cierta posición de la ventana. Habilitar/desabilitar/combinar condiciones de disparo (Trigger Conditions) diseño automático de sistemas 14 © J.M. Mendías, 2012 ChipScope Analyzer (ii) diseño automático de sistemas