Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
PLATAFORMA ACADEMICA PARA EL DESARROLLO DE SISTEMAS DIGITALES
Raúl Alberto Brugés Moreno
PROYECTO DE GRADO
Asesor: Mauricio Guerrero Hurtado
Universidad de los Andes Facultad de Ingeniería
Departamento de Ingeniería Eléctrica y Electrónica Bogotá, D.C.
2007
1
TABLA DE CONTENIDO
Pag 1. INTRODUCCION…………………………………………………………………………………..4 1.1 Introducción General……………………………………………………………………………..4 1.2 Objetivos…………………………………………………………………………………………...4
2. MARCO TEORICO…………………………………………………………………………………5 2.1 Antecedentes Externos……………………………………………………………………………5 2.2 Antecedentes Internos……………………………………………………………………………5 2.3 Elementos técnicos………………………………………………………………………………..6 2.3.1 Boundary Scan / Estándar IEEE 1149.1……………………………………………………6 2.3.2 FPGA (Field Programmable Gate Arrays)…………………………………………………...7 2.3.3 Analizadores Lógicos.............................................................................................................8 2.3.4 ChipScope Pro Tools………………………………………………………………………..9
3. DESARROLLO…………………………………………………………………………………….11 3.1 Especificaciones de la plataforma……………………………………………………………..11 3.1.1 Especificaciones de la interfaz grafica...............................................................................11 3.1.2 Especificaciones de la tarjeta de adquisición……………………………………………11
3.2 Arquitectura de la plataforma………………………………………………………………….11 3.2.1 Tarjeta de adquisición……………………………………………………………………..12 3.2.2 Cable JTAG............................................................................................................................13 3.2.3 Interfaz grafica……………………………………………………………………………..13 3.2.4 Modos de configuración de la plataforma………………………………………............14 3.2.4.1 Modo de configuración: CLASE 1……………………………………………………...15 3.2.4.2 Modo de configuración: CLASE 2...................................................................................16 3.2.4.3 Modo de configuración: CLASE 3A……………………………………………............17 3.2.4.4 Modo de configuración: CLASE 3B…………………………………………….............18 3.2.4.5 Modo de configuración: CLASE 4A……………………………………………............19 3.2.4.6 Modo de configuración: CLASE 4B…………………………………………….............20
3.3 Implementación de la plataforma académica………………………………………………...22 3.3.1 Generación de los bloques ICON, ILA y VIO desde el ChipScope Pro Core
Generator………………………………………………………………………...…………22 3.3.2 Inserción de los módulos y desarrollo de los proyectos en Xilinx ISE……………….24 3.3.3 Implementación de la tarjeta de adquisición……………………………………………24 3.3.4 Implementación de la interfaz grafica…………………………………………………...27
4. PRUEBAS DE VALIDACION Y RESULTADOS……………………………………………...29 4.1 Pruebas del modo CLASE 1…………………………………………………………….............29 4.2 Pruebas del modo CLASE 2…………………………………………………………….............29 4.3 Pruebas del modo CLASE 3A…………………………………………………………..............30 4.4 Pruebas del modo CLASE 3B…………………………………………………………………..30 4.5 Pruebas del modo CLASE 4A…………………………………………………………..............31 4.6 Pruebas del modo CLASE 4B…………………………………………………………………..31 5. CONCLUSIONES…………………………………………………………………………………33
2
6. PERSPECTIVAS…………………………………………………………………………………..34
7. REFERENCIAS…………………………………………………………………………….............35
8. MANUALES (GUIAS PARA EL USUARIO)…………………………………………..............36 8.1 Guía rápida de cómo usar el ChipScope Pro…………………………………………………36 8.2 Guía para el uso de la Plataforma Académica………………………………………………..48
9. ANEXOS…………………………………………………………………………………………….58 9.1 Esquema de la tarjeta de protección …………………………………………………………..58 9.2 Dibujo de la tarjeta de protección (top)……………………………………………………….59 9.3 Dibujo de la tarjeta de protección (Bottom)………………………………………………….60
3
1. INTRODUCCION 1.1 Introducción General. Generalmente los cursos para el diseño y desarrollo de sistemas digitales de la Universidad de los Andes y otras instituciones, están complementados con prácticas o trabajos en el laboratorio. Estos son muy importantes, ya que su fin es fortalecer los conceptos vistos en las clases a través del diseño de sistemas digitales. En muchas ocasiones es difícil cumplir con todos los objetivos del trabajo en el laboratorio, esto se debe en parte a que existen herramientas muy limitadas para probar y validar los circuitos lógicos diseñados por los estudiantes. La herramienta más conocida para probar y validar circuitos lógicos es el analizador lógico. Mientras un osciloscopio permite examinar muy pocas señales (generalmente dos), un analizador lógico puede examinar hasta cientos de señales al mismo tiempo. Los pocos analizadores existentes en el laboratorio de la Universidad de los Andes (solo dos), no están totalmente disponibles para los estudiantes. Estas herramientas son muy costosas y se necesita un entrenamiento previo para operarlas. Por otro lado existen software como el ChipScope Pro desarrollado por Xilinx, que sirven para la visualización y el análisis de cualquier señal interna en una FPGA. Debido a los problemas mencionados en un principio, surgió la necesidad de diseñar e implementar una herramienta con la que fuera posible probar y validar cualquier sistema digital en el laboratorio. Un propósito fundamental de este proyecto, es buscar desarrollar una herramienta completa, fácil de operar, de fácil mantenimiento, económica y robusta. Este proyecto hace uso del ChipScope Pro, este se toma como base para visualizar las señales lógicas de un circuito. Para la adquisición de los datos se usó un FPGA que actúa como interfaz entre el circuito lógico y el PC. Para la plataforma se desarrolló un sistema que adaptara los niveles de voltajes externos al FPGA. La plataforma cuenta con una interfaz grafica que permite interactuar al usuario con la herramienta. 1.2 Objetivos Este proyecto tiene como objetivo principal el desarrollo de una herramienta con la que se podrá probar y validar cualquier circuito lógico desarrollado en el laboratorio de la Universidad de los Andes. Se debe diseñar e implementar una herramienta completa, fácil de operar, que sea viable económicamente para la universidad y que marque la diferencia con las otras ya existentes. Además se debe crear una plataforma modificable y que pueda ser mejorada con futuros proyectos.
4
2. MARCO TEORICO 2.1 Antecedentes Internos Este proyecto se desarrolló basado en anteriores proyectos realizados por la Universidad de los Andes, los objetivos planteados se especificaron con el fin completarlos basados en nuevas necesidades. Los proyectos que se mencionan a continuación se relacionan con La plataforma académica para el desarrollo de sistemas digitales: • “PLATAFORMA ACADEMICA DE DISEÑO Y DEPURACION DE
MICROPROCESADORES” [1]. Este proyecto se realizó con el fin de crear una herramienta para el diseño y la verificación de un microprocesador tipo MIPS a través de una FPGA (Dispositivo Lógico Programable). • “ANALIZADOR LOGICO CON PRESTACIONES ACADEMICAS PARA LA
VERIFICACION DE SISTEMAS DIGITALES” [2]. En este proyecto quiso crear una herramienta con la cual fuera posible hacer pruebas a diferentes circuitos lógicos, esta herramienta buscaba tener usos académicos y la validación de diseños hechos para la clase o el laboratorio. 2.2 Antecedentes Externos Como antecedentes externos se encontraron varios proyectos donde se implementan analizadores lógicos que están muy relacionados con el nuestro. Entre los proyectos existentes se mencionan los siguientes: • “Analizador Lógico de 100 MHz utilizando FPGA” [3]. Este proyecto describe la arquitectura de un analizador lógico implementado en un FPGA, dentro de las tareas estaba la creación de un componente hardware para la adquisición de datos y la interfaz con un PC. Este analizador se creó para ser usado en diferentes aplicaciones a un muy bajo costo. • “Analizador lógico de tiempos implementado en un FPGA utilizando el bus PCI como
interfaz de comunicación” [4]. De manera similar al anterior este proyecto describe la implementación de un analizador lógico en un FPGA, la comunicación en este caso es a través de un bus PCI. Las aplicaciones están más enfocadas a fines académicos.
5
2.3 Elementos técnicos 2.3.1 Boundary Scan / Estándar IEEE 1149.1 [5]. El JTAG es conocido formalmente como el Estándar IEEE 1149.1, este es un estándar de pruebas con el que se puede hacer test a grandes circuitos digitales de una manera sencilla y rápida. El estándar posee una arquitectura propia y un funcionamiento que se explicara a continuación. Arquitectura del Estándar IEEE 1149.1 La arquitectura de mas alto nivel del Std IEEE 1149.1 esta compuesta por 3 bloques principales, estos son el Controlador, el Registro de Instrucciones y el Registro de Datos. • Controlador El Controlador responde a las secuencias de control que le son asignadas a través del TAP (Test Access Port), este controlador también genera una señal propia de reloj y señales de control para los demás módulos. • Registro de Instrucciones Este es un bloque que esta basado en registros de corrimientos y que recibe las instrucciones que van a ser desarrolladas de forma serial. • Registro de Datos Este modulo es un banco de registros de corrimientos, los estímulos necesarios para realizar una operación son cargados de forma serial dentro de un registro del banco, el registro se selecciona a través de las instrucciones. • TAP (Test Access Port) El puerto TAP contiene cuatro (4) pines con los que se pueden manejar los demás bloques y controlar las operaciones especificadas. El TAP facilita la carga y descarga de las instrucciones y datos. Los Cuatro pines del TAP son el TMS, TCK, TDI y el TDO y se describen a continuación: TCK – Este pin es el Reloj del Std IEEE 1149.1. Este reloj lleva la secuencia del controlador al igual que la de los registros. TMS – Este pin es una entrada del bloque controlador, el controlador es una maquina FSM (Finite State Machine) de 16 estados que brinda el control lógico del JTAG. El estado del TMS en el borde de subida del TCK determina la secuencia de los estados. TDI – Este pin proporciona la entrada serial para los datos de los registros en cualquier instrucción JTAG. El estado de la maquina de control y el tipo de instrucción determina cual de los registros es alimentado por el TDI para una operación especifica.
6
TDO – Este pin proporciona la salida serial para los datos de los registros en cualquier instrucción JTAG. El estados de la maquina de control y el tipo de instrucción determinan cual de los registros alimenta la salida TDO para una operación especifica. 2.3.2 FPGA (Field Programmable Gate Arrays) [6]. Con las exigencias de la tecnología moderna, cada vez es necesario más compuertas dentro de un dispositivo lógico. Para implementar grandes circuitos lógicos se usan otro tipo de componentes diferentes a las SPLDs (Simple Programmable Logic Devices) y las CPLD (Complex Programmable Logic Devices). El FPGA es un dispositivo lógico programable que soporta la implementación de complejos circuitos lógicos. Los FPGAs son completamente diferentes de las SPLD y CPLD ya que estos no poseen planos de compuertas AND ó OR, los FPGAs poseen bloques lógicos para la implementación de sus funciones. La estructura general de un FPGA se puede apreciar en la figura 2‐1. Estos dispositivos contienen tres componentes principales: Los bloques lógicos (Logic Blocks) donde se implementan las distintas funciones lógicas, los módulos de entrada y salida (I/O Blocks) que sirven para crear conexiones con los pines externos del componente, y los interruptores programables (Interconnection Switches) que permiten la conexión de los bloques lógicos con los cables internos de la FPGA al igual que con los pines externos del dispositivo. Los FPGAs pueden ser usados para implementar circuitos lógicos con cientos de miles de compuertas. Cada bloque lógico en un FPGA tiene unas cuantas entradas y una salida. Los FPGAs comerciales tienen diferentes tipos de bloques lógicos, el más usado es el LUT (Lookup Table). El LUT contiene celdas de almacenamiento que son usadas para implementar pequeñas funciones lógicas, cada celda es capaz de almacenar cualquier valor lógico, 1 ó 0. La figura 2‐2 muestra la estructura de una LUT simple. Esta tiene dos entradas, x1 y x2 y una salida f, en este caso el LUT es capaz de implementar una función lógica de dos variables. Las dos variables son usadas como líneas de selección de entradas de tres multiplexores, dependiendo de los estados de x1 y x2 se muestra el contenido de una de las celdas en la salida del LUT.
Figura 2‐1: Estructura interna de un FPGA1
1 BROWN, Stephen y VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL design. Singapore: Mc Graw Hill, 2000. [Imagenes 3.35, 3.36 y 3.38]. 93, 94, 96 p.
7
Figura 2‐2: LUT de dos entradas lógicas1.
Las LUT usan bloques adicionales para mejorar sus funciones, en la figura 3‐1 se puede ver como un bloque lógico incluye un flip flop dentro de su arquitectura. El flip flop es usado para almacenar un dato (entrada D) bajo el control de la señal de reloj (clock).
Figura 2‐3: Inserción de un flip flop en un bloque lógico de un FPGA1
2.3.3 Analizadores lógicos [6]. Un analizador lógico permite examinar decenas y hasta cientos de señales al mismo tiempo. El analizador toma como entradas un grupo de señales en un circuito a través de puntas de pruebas, estas señales son digitalizadas y mostradas en formas de señales o vectores lógicos en una pantalla. Una característica apreciable del analizador lógico es que tiene módulos de almacenamiento con la capacidad de tomar distintas muestras de una secuencia de cambios, estos se hacen en periodos de tiempo determinados por el usuario. Luego el usuario puede desplegar los datos que desee en la pantalla.
8
Es fundamental al probar y validar un diseño o circuito observar las señales cuando el circuito presenta un mal funcionamiento. El analizador lógico puede ser condicionado (triggered), es decir, puedo desplegar en la pantalla solo los eventos que cumplan condiciones (depende de mi circuito) que el usuario decide. 2.3.4 ChipScope Pro Tools [7]. Con el crecimiento de los dispositivos programables como los FPGAs cada vez es más difícil hacer pruebas (test) sobre estos. ChipScope Pro Tools es un conjunto de herramientas que integran dispositivos de análisis y otros módulos hardware dentro de un FPGA, estos con el fin de analizar circuitos lógicos diseñados sobre el dispositivo. El ChipScope Pro Tools esta compuesto por tres herramientas software básicas, estas son: El ChipScope Pro Core Generator, el ChipScope Pro Core Inserter y el ChipScope Pro Analyzer. En la tabla 2‐1 se ofrece una breve descripción de cada herramienta.
Herramientas Descripción ChipScope Pro Core Generator
Genera el netlist y las plantillas para instanciar los siguientes módulos: • Integrated Controller (ICON) • Integrated Logic Analyzer (ILA) • Virtual Input Output (VIO)
ChipScope Pro Core Inserter Instancia automáticamente los módulos ICON y ILA ChipScope Pro Analyzer
Provee la configuración, evaluación de diferentes eventos y el muestreo de los módulos ILA y VIO. El modulo ICON es el que provee la comunicación a los diferentes pines del dispositivo (a los Boundary Scan Pins)
Tabla No 2‐1: Descripción de las herramientas del ChipScope Pro. Descripción de los bloques ICON, ILA y VIO Modulo ICON El ChipScope Pro utiliza el puerto JTAG para comunicarse con los diferentes dispositivos (FPGA en su mayoría), El Modulo ICON es aquel módulo que sirve como interfase de comunicación entre el puerto JTAG y los bloques ILA y VIO. Modulo ILA Este bloque se caracteriza porque al igual que en un analizador lógico se evalúan las condiciones lógicas (Trigger Conditions) y se capturan los datos de cualquier señal en un circuito digital. A través del ChipScope Pro se configuran las condiciones lógicas, estas permiten que los datos se almacenen en bloques de memoria y luego sean desplegados. Por ejemplo, a través del ILA puedo lograr conocer las señales de control de mi circuito cuando la salida alcanza un valor lógico específico. En una compuerta NAND con dos entradas A y B, podría asignar la condición para capturar los datos cuando la salida es cero ‘0’. Entonces si la compuerta no presenta ningún defecto yo veré en A y B el
9
valor de un ‘1’ lógico. Generalmente se pueden establecer varias condiciones dentro del ILA, esto permite hacer análisis de mayor complejidad sobre los diferentes diseños. Modulo VIO El bloque VIO permite generar vectores lógicos que permiten estimular mi diseño. El módulo VIO puede generar señales asíncronas y sincronas de acuerdo a las necesidades del usuario. A través del VIO también puedo visualizar señales en tiempo real, es decir no son almacenadas en memoria para después ser despegadas.
10
3. DESARROLLO 3.1 Especificaciones de la plataforma. Esta herramienta debe ser capaz de examinar circuitos combinacionales y secuénciales. La plataforma tendrá dos (2) componentes básicos: el primero será una interfaz grafica, esta permitirá al usuario manipular las pruebas y observar los resultados obtenidos. El segundo componte debe ser un componente hardware o tarjeta de adquisición, a través de esta se podrá conectar el diseño (circuito bajo prueba) a la plataforma y se adquirirán los datos de la prueba. 3.1.2 Especificaciones de la interfaz grafica Para la interfaz grafica de la plataforma se pensaron en las siguientes características o especificaciones que esta debe tener: • Debe ser una herramienta completa, donde se tengan todos los elementos necesarios para
validar un circuito lógico. • Se quiere una herramienta fácil de usar, es decir que al usuario le tome muy poco tiempo
aprender a operarla. • La interfaz debe ser robusta, esta debe permitir la validación de cualquier clase de circuito
lógico (secuenciales y combinacionales). • Desde la interfaz debe ser posible aplicar estímulos (señales de prueba) al circuito lógico, y
observar los resultados en tiempo real, al igual que los resultados de estímulos que se aplican con otras fuentes distintas a la plataforma.
• La interfaz permitirá ver la secuencia de toda la prueba en un diagrama (historial) y observar con detalle todas las señales lógicas que están involucradas en el análisis.
3.1.3 Especificaciones de la Tarjeta de adquisición. La tarjeta de adquisición de la plataforma debe tener las siguientes características o especificaciones: • 16 puntos de pruebas, es decir se podrán observar hasta 16 señales lógicas simultáneamente. • 16 señales de estímulos, estos puertos permitirán estimular el circuito bajo prueba si así se
desea. • Debe tener cables de fácil conexión al circuito bajo prueba, los cables deben estar diseñados
para ser conectados directamente a la tarjeta experimental (Protoboard o PCB). • La tarjeta de adquisición podrá ser conectada a circuitos de lógica TTL o CMOS, además
conectar circuitos que trabajan con voltajes de 3.3 ó 5 voltios. • Esta tarjeta esta diseñada con componentes comerciales y de bajo costo. 3.2 Arquitectura de la Plataforma En la figura 3‐1 se puede observar la arquitectura completa de la plataforma, los principales componentes que se muestran son los siguientes: La interfaz grafica, el cable JTAG y la tarjeta de adquisición. A continuación se explica en detalle todos los elementos que componen la arquitectura.
11
Figura 3‐1: Arquitectura de la plataforma
3.2.1 Tarjeta de Adquisición Esta tarjeta se encarga de capturar y generar las señales lógicas del circuito bajo prueba. La tarjeta de adquisición de la plataforma esta compuesta por 4 módulos básicos: Un módulo ICON, un módulo ILA, uno VIO y bloques de adaptación eléctrica de las entradas y salidas o bufers. En la figura 3‐2 se muestra un esquema de la arquitectura de la tarjeta. FPGA: Este es el componente mas importante de la plataforma, aquí se encuentran los módulos necesarios para la captura y generación de señales lógicas. Los módulos están en la capacidad de ser configurados desde la interfaz grafica. La arquitectura general de la plataforma contiene un bloque ICON, uno bloque ILA y un bloque VIO (ver sección 2.3.4).
ICON: Ya que este modulo es el que permite la comunicación entre la interfaz grafica y los demás módulos, debe estar conectado al cable JTAG que es un canal de comunicación del FPGA. Por medio del ICON se pueden configurar los módulos ILA y VIO desde la interfaz.
ILA: Este módulo es el encargado de capturar las señales lógicas provenientes del circuito bajo prueba, internamente este módulo tiene bloques de control que seleccionan los datos a capturar (datos condicionados), los módulos de memoria se usan para almacenar los datos. El ILA es un modulo sincrono, es decir necesita una señal de reloj para su funcionamiento. En cada pulso de reloj el ILA evalúa las condiciones de las señales y almacena los datos si es necesario. Se utiliza una frecuencia de reloj de 50 MHz, esta frecuencia no dejará que se pierdan datos que pueden ser importantes para la prueba.
VIO: A diferencia del ILA este módulo no tiene una memoria interna disponible, por esta razón muestra los datos en tiempo real. Este modulo también es capaz de generar señales lógicas para estimular el circuito. El módulo VIO puede manejar señales asíncronas y sincronas con un reloj.
12
Figura 3‐2: Arquitectura de la Tarjeta de Adquisición.
Bufers: Ya que la mayoría de los FPGA trabaja con niveles de voltajes de 3.3 voltios es necesario regular los voltajes provenientes del circuito. Con los bufers de protección, es posible conectar circuitos a la tarjeta de adquisición que trabajen con niveles de 5.0 ó 3.3 voltios. La tarjeta de adquisición tiene disponible 16 bufers de entrada y 16 bufers de salida, es decir se tienen disponibles 16 puntas de pruebas y 16 puntas de estímulos lógicos. 3.2.2 Cable JTAG Este cable es el canal de comunicación entre la interfaz grafica y el resto de la plataforma. 3.2.3 Interfaz grafica La interfaz grafica es el componente donde el usuario puede manipular todas las pruebas hechas al sistema. La interfaz permite ver un diagrama de los resultados obtenidos en la prueba para después ser analizados. A través de esta también se pueden generar y manipular estímulos lógicos para el sistema bajo prueba. En la figura 3‐3 se muestra un esquema de la interfaz grafica, este contiene una ventana de configuración, una ventana para ver el diagrama de pruebas y una ventana de control desde donde puedo ver la prueba en tiempo real.
13
Figura 3‐3: Arquitectura de la interfaz grafica
3.2.4 Modos de Configuración de la Plataforma. Una de las especificaciones de la plataforma es que debe poder examinar cualquier clase de sistema digital, tanto combinacionales como secuenciales. Los esquemas de la tarjeta y la interfaz en las figuras 3‐2 y 3‐3 respectivamente, muestran una arquitectura global de la plataforma. En realidad para cada circuito lógico a probar debería existir una arquitectura específica. Si vamos a examinar un sistema puramente combinacional, usamos módulos ILA y VIO diferentes a los que se necesitan para un sistema secuencial. Debido a lo mencionado anteriormente, se decidió crear dos grandes grupos de arquitecturas o modos de configuración. Esto permite diferenciar dos tipos de sistemas o diseños hechos por los estudiantes, los combinacionales y los secuenciales. El primer grupo son circuitos lógicos que están conformados por dispositivos que no dependen de una señal de reloj, por ejemplo, compuertas NAND, OR, XOR etc. El segundo grupo son los circuitos secuenciales, estos dependen de una señal de reloj, por ejemplo flip flops, contadores, registros, etc. Básicamente la diferencia entre los modos de configuración de la plaforma académica, se encuentra en las condiciones o “triggers” que necesita el bloque ILA para capturar los datos. En un circuito secuencial, se podrían tomar muestras de las señales de control cada borde de bajada de mi reloj, ya que no me interesa lo que ocurre entre borde y borde. En un circuito puramente combinacional, me interesa saber lo que esta pasando con mis señales en todo momento. Dentro de los modos de configuración para diseños combinaciones se diseñaron dos (2) categorías, el modo CLASE 1 y el CLASE 2. De los modos de configuración para diseños secuénciales se pueden distinguir cuatro (4) categorías: CLASE 3A, CLASE 3B, CLASE 4A y CLASE 4B. Después de conocer cada una de las clases o modos de configuración, el usuario podrá escoger cual usar para examinar su diseño desde la interfaz grafica.
14
3.2.4.1 Modo de configuración: CLASE 1 Este tipo de configuración de la plataforma permite probar y analizar circuitos combinacionales. En esta configuración el usuario dispone de 16 puntas de prueba. Desde la ventana de configuración de la interfaz grafica el usuario podrá configurar el número de muestras que desea capturar, estas serán potencias de 2 con un máximo de 512 muestras. La interfaz grafica permite ver los datos de la prueba en tiempo real a través de la ventana de control y con una señal interna (“Cargar”) se anexan los datos al historial o al diagrama de pruebas de la interfaz. Este modo servirá especialmente para circuitos puramente combinacionales, por ejemplo un sumador, un decodificador, etc. En esta clase el usuario debe proporcionar los estímulos lógicos al circuito con otras fuentes ya que el CLASE 1 no proporciona la opción de generar vectores lógicos (estímulos). Arquitectura del CLASE 1 En la figura 3‐4 se puede apreciar la arquitectura del CLASE 1 que se implementará sobre un FPGA. El bloque ILA tiene como entradas el reloj (clk), que opera a una frecuencia de 50 MHz. También existen dos (2) puertos de 8 bits cada uno, Puerto 1 y Puerto 2, la señal de control proveniente del ICON y por ultimo la señal cargar. Este modulo ILA esta configurado para capturar datos (Puerto 1 y 2) cada vez que se genere un estimulo (trigger) de la señal Cargar, este estimulo es generado por el usuario desde la interfaz grafica. El bloque VIO recibe como entradas el control y puerto. La primera es el control del ICON, la segunda recibe las señales provenientes de las puntas de prueba de la plataforma y las visualiza en tiempo real en la interfaz. Este módulo es el que genera la señal interna “cargar”.
Figura 3‐4: Arquitectura del modo CLASE 1
15
3.2.4.2 Modo de configuración: CLASE 2. Este modo de configuración permite al usuario el análisis de circuitos combinacionales. A diferencia del modo CLASE 1, con este se tiene la opción de generar estímulos lógicos al circuito bajo prueba. El usuario dispone de 16 puntas de pruebas y de 16 puntas de estímulos. Desde la interfaz grafica se modifican los valores de los estímulos lógicos. También es posible configurar el número de muestras que se desean capturar, estas serán potencias de 2 con un máximo de 512. Arquitectura del CLASE 2. En la figura 3‐5 se muestra la arquitectura del modo de configuración CLASE 2. A diferencia del CLASE 1 el modulo VIO tiene 16 salidas que son las entradas o estímulos del circuito bajo prueba. El modulo ILA tiene entradas de control, reloj (clk), salidas, entradas y carga. El control son todas las señales de control provenientes del ICON. El reloj (clk) del ILA opera a una frecuencia de 50 MHz. Las “salidas” son las señales provenientes de las puntas de prueba (salidas de mi diseño). Las “entradas” son tomadas directamente del modulo VIO, estas corresponden a los estímulos generados para el diseño. La activación de la señal interna “cargar”, es la condición necesaria para capturar los datos en la memoria del ILA. En el modulo VIO se reciben las señales de control provenientes del ICON, las señales de las puntas de prueba de la plataforma o “salidas”. Este módulo genera la señal interna “cargar” que se manipula desde la interfaz grafica. La señal “entradas” corresponde a los valores lógicos que estimulan el diseño y también se manipulan desde la interfaz grafica.
Figura 3‐5: Arquitectura del modo CLASE 2
3.2.4.3 Modo de configuración: CLASE 3A. Con este módulo se pueden probar circuitos secuenciales. El usuario tiene disponibles 15 puntas de pruebas, estas sirven para conectar a las señales que quiero observar de mi diseño. También tiene
16
disponible una entrada para el reloj (clk) global del diseño. El número de muestras es configurable desde la interfaz grafica, estas son potencias de 2 con un máximo de 512. Arquitectura de la CLASE 3A. La arquitectura del CLASE 3A corresponde a la de la figura 3‐6. El modulo ILA tiene 5 puertos de entrada: control, clk, Puerto 1, Puerto 2 y clk_dsg. La señal control proviene del modulo ICON, esta provee los datos para la configuración del ILA. El reloj del modulo ILA esta operando 50 MHz. Tiene dos puertos de entrada (Puerto 1 y 2), estos reciben los datos de las puntas de prueba de la plataforma. La señal clk_dsg es el reloj del diseño bajo prueba y funciona como estimulo o trigger, cada que vez a existe un flanco (borde) del clk_dsg se capturan los datos en los Puertos 1 y 2. El bloque VIO recibe un puerto de control del bloque ICON. Las señales lógicas provenientes de las puntas de prueba de la plataforma, junto con el reloj del diseño (clk_dsg) se reciben en un puerto, estos después son visualizados en tiempo real en la interfaz grafica.
Figura 3‐6: Arquitectura del modo CLASE 3A
Modulo Retraso Debido a los tiempos de respuesta que presentan los dispositivos lógicos, es muy normal que los diseños que probamos en la plataforma no respondan inmediatamente a los estímulos aplicados. El modulo “Retraso” genera retrasos programados en la señal proveniente del reloj del diseño, esto garantiza que las repuestas que se visualizan en el diagrama de pruebas de la interfaz no se muestren desfasadas. Por ejemplo, supongamos que estamos probando en la plataforma un flip flop que funciona en los bordes de bajada del reloj, si no existiera el bloque Retraso, el modulo ILA captura las señales de control actuales pero las salidas correspondientes a ese evento un tiempo después.
17
En la figura 3‐7 se muestran varios diagramas del análisis de un sistema secuencial. Este sistema es activo en los bordes de bajadas del reloj. Las señales de control toman valores de A, B y C y las salidas los valores de X Y y Z. En la figura 3‐7(a) se ven las señales del sistema secuencial que responde en borde de bajada. Nótese que las respuestas del sistema tienen un tiempo de retraso td. Hay que recordar que la plataforma tomaría los eventos en cada flanco de reloj (1, 2, 3, 4 y 5 en las figura 3‐7(a)). En la figura 3‐7(b) se ve como la plataforma mostraría las respuestas de mi circuito sin el modulo Retraso, las respuestas se ven desfasadas un evento ya que se capturan los datos antes de que termine el tiempo td. La figura 3‐7(c) muestra las respuestas de la plataforma con el modulo de Retraso, aquí las respuestas y las señales de control correspondientes se muestran en un mismo evento.
Figura 3‐7 ‐ (a): Diagrama de tiempos de un sistema secuencial. (b): Diagrama de eventos
capturados por la plataforma sin el modulo “Retraso”. (c): Diagrama de eventos capturados por la plataforma con el modulo “Retraso”.
Los módulos de Retraso para los modos CLASE 3A, 3B, 4A y 4B tienen un tiempo aproximado de 280 nseg. Es posible que si se tienen tiempos de respuestas mayores a este en el diseño se presenten problemas de desfases en los diagramas visualizados por la interfaz grafica. 3.2.4.4 Modo de configuración: CLASE 3B. Este modo de configuración es muy parecido al CLASE 3A. La diferencia se encuentra en la señal de reloj. En el CLASE 3B la señal de reloj del diseño es proporcionada por la plataforma para el sistema. El usuario podrá generar un pulso de reloj desde la interfaz grafica para estimular su diseño, además configurar un reloj para sistemas activos por borde de subida o por borde bajada. Arquitectura del CLASE 3B. Esta arquitectura difiere del CLASE 3A en tres módulos, en la figura 3‐8 se presenta la arquitectura del CLASE 3B. El modulo Divisor toma una señal de reloj de 50 MHz y genera una señal de reloj a una frecuencia de 11.9 Hz. El módulo Mux genera la señal clk_dsg negada si el select esta activo, de lo contrario el clk_dsg no es negado. El bloque VIO en este caso genera una señal secuencial llamada clk_dsg, esta señal corresponde a los pulsos de reloj para estimular el diseño. El pulso tiene un ancho de 84 milisegundos. Ya que el bloque VIO esta generando señales secuenciales es necesario agregarle una señal de reloj.
18
Figura 3‐8: Arquitectura del modo CLASE 3B.
3.2.4.5 Modo de configuración: CLASE 4A. Este modo de configuración esta diseñado para probar circuitos secuenciales. El modo de configuración CLASE 4A permite observar 15 puntas de pruebas de la plataforma. Además se pueden generar estímulos desde interfaz grafica, hasta 16 puntos de estímulos. Es necesario que la tarjeta tome el reloj global del diseño para poder capturar los datos y visualizarlos. Se pueden capturar hasta 512 datos en potencias de 2. Arquitectura del CLASE 4A. La arquitectura del modo de configuración CLASE 4A corresponde a la de la figura 3‐9. El bloque ILA tiene los siguientes puertos de entrada: control, clk, Salidas, Entradas y clk_dsg. El puerto control proviene del módulo ICON, este sirve como señal de control del ILA. El puerto “Salidas” corresponde a las señales provenientes de las puntas de prueba de la plataforma. El puerto “Entradas” corresponde a los estímulos del diseño hechos desde la plataforma. El clk_dsg es el puerto correspondiente al reloj del diseño, esta señal paso antes por el modulo Retraso (ver sección 3.2.4.3). Las condiciones de captura (triggers conditions) de ILA se dan en cada borde del clk_dsg. El modulo VIO tiene las entradas “control” y “Salidas”. Con la entrada control proveniente del ICON se da configuración al módulo VIO desde la interfaz. La entrada Salidas recibe las señales provenientes de las puntas de prueba, estas son visualizadas en la interfaz grafica en tiempo real. La salida Entradas son los estímulos hechos desde la interfaz grafica para el diseño.
19
Figura 3‐9: Arquitectura del modo CLASE 4A.
3.2.4.6 Modo de configuración: CLASE 4B. Con el modo de configuración CLASE 4B se pueden probar circuitos secuenciales. El CLASE 4B permite analizar 16 puntas de prueba de la plataforma. Este modo de configuración, genera 15 estímulos lógicos para el diseño que se esta probando. A Diferencia del CLASE 4A, el CLASE 4B proporciona el reloj del diseño. Desde la plataforma se pueden generar pulsos de reloj para estimular el diseño. Arquitectura del CLASE 4B. La arquitectura del CLASE 4B se muestra en la figura 3‐10. El modulo ILA es igual que el usado para el modo de configuración CLASE 4A (ver sección 3.2.4.6). El bloque VIO tiene tres (3) puertos de entradas: control, salidas y clk. Los puertos de salida del VIO son clk_dsg, select y entradas. El módulo VIO genera el reloj del diseño a través del puerto clk_dsg, la señal select es una señal interna que se usa para cambiar los flancos del reloj en el bloque Mux (Ver sección 3.2.4.5). Ya que el bloque VIO esta generando variables secuénciales es necesario un reloj para su funcionamiento, la señal de reloj (clk) tiene una frecuencia de 11.9 Hz. En la tabla 3‐1 se muestran resumidas las características de cada uno de los modos de configuración, estos podrán ser cargados desde la interfaz grafica. Nota: En la Guía para el uso de la plataforma académica (sección 8.2) se muestra como operar cada uno de los modos de configuración desde la interfaz grafica.
20
Figura 3‐10: Arquitectura del modo CLASE 4B
MODOS DE
CONFIGURACION CARACTERISTICAS
CLASE 1
• Para el análisis de diseños combinacionales • 16 puntas de pruebas • Se capturan los datos con la señal cargar desde la interfaz grafica
CLASE2
• Para el análisis de diseños combinacionales • 16 puntas de pruebas • Es posible generar hasta 16 estímulos lógicos desde la interfaz para el
circuito bajo prueba • Se capturan los datos con la señal cargar desde la interfaz grafica
CLASE 3A
• Para el análisis de diseños secuenciales. • 15 puntas de pruebas. • Recibe el reloj global del diseño • Captura los datos en cada flanco del reloj del diseño
CLASE 3B
• Para el análisis de diseños secuenciales. • 16 puntas de pruebas. • Genera pulsos de reloj para estimular el diseño • Captura los datos en cada flanco del reloj del diseño
CLASE 4A
• Para el análisis de diseños secuenciales • 15 puntas de pruebas • Es posible generar hasta 16 estímulos lógicos desde la interfaz para el
circuito bajo prueba • Recibe el reloj global del diseño • Captura los datos en cada flanco del reloj del diseño
CLASE 4B
• Para el análisis de diseños secuenciales • 16 puntas de pruebas • Es posible generar hasta 15 señales lógicas desde la interfaz para
estimular el circuito • Genera pulsos de reloj para estimular el diseño • Captura los datos en cada flanco del reloj del diseño Tabla 3‐1: Características de los modos de configuración
21
3.3 Implementación de la plataforma académica 3.3.1 Generación de los bloques ICON, ILA y VIO desde el ChipScope Pro Core Generator Como se había mencionado en la sección 2.3.4, el ChipScope Pro Core Generator [8] es una herramienta con la cual se pueden generar las plantillas para los módulos ICON, ILA y VIO de la tarjeta de adquisición. Una vez se hallan creado estas plantillas es posible instalar los módulos en un proyecto VHDL a través del programa Xilinx ISE 9.1i / Project Navigator [9]. Nota: En el Manual para el uso del ChipScope Pro Tools (sección 8.1) en las secciones del manual ChipScope Pro Generator e Insertando los módulos ICON, ILA y VIO se explica como se pueden generar e insertar los módulos de la tarjeta de desarrollo. En las tablas No. 3‐2 y 3‐3 se resumen las características de los bloques ICON, ILA y VIO de cada modo de configuración, estas deben tenerse en cuenta para poder generarlos con el ChipScope Pro Core Generator. .
Tabla 3‐2: Características de los bloques ICON, ILA y VIO para ser creados en el
ChipScope Pro Core Generator – Modos de configuración para circuitos combinacionales
22
Tabla 3‐3: Características de los bloques ICON, ILA y VIO para ser creados en el
ChipScope Pro Core Generator – Modos de configuración para circuitos combinacionales
23
3.3.2 Inserción de los módulos y desarrollo de los proyectos en Xilinx ISE. Después de haber generado los bloques ICON, ILA y VIO correspondientes a cada sección, el paso siguiente corresponde a insertarlos en un proyecto VHDL con los demás componentes. Este paso se tiene que hacer a través del programa Xilinx ISE. La implementación de los diseños se hizo sobre el dispositivo una FPGA con referencia XC3S200 De la familia Xilinx Spartan3 [10].El empaquetado (Package) es tipo FT256 y tiene un grado de velocidad (speed) de ‐4. Nota: En los anexos del CD de datos adjunto se muestran todos los códigos VHDL usados en la implementación de la plataforma 3.3.3 Implementación de la tarjeta de adquisición. Para el desarrollo de la tarjeta de adquision se dispuso de una tarjeta de desarrollo Digilent Spartan‐3 System Board [11]. Esta tarjeta cuenta con el dispositivo FPGA Spartan3 XC3S200 [10]. También tiene herramientas básicas como un cable JTAG, un oscilador de 50 MHz y expansiones de los pines de entrada y salida (I/O pins) del FPGA. Debido a que la tarjeta de desarrollo trabaja a niveles de voltajes de 3.3 voltios, fue necesario diseñar una tarjeta adicional (tarjeta de protección eléctrica) para regular los voltajes provenientes de los circuitos lógicos que se conecten a la plataforma. Si el circuito bajo prueba esta manejando niveles lógicos de 5.0 voltios (‘1’ lógico es 5.0 V y ‘0’ lógico es 0 V), también es necesario que los estímulos generados por la plataforma correspondan a niveles aceptados por el diseño. Diseño e implementación de la tarjeta de protección eléctrica La tarjeta de protección eléctrica tiene un puerto de salida y otro de entrada, cada uno de 16 bits. Los puertos que se seleccionaron como entradas y salidas del FPGA se muestran en la tabla 3‐4. Se escogieron dos (2) pines de los 32 para el manejo de la señal de reloj, un pin de entrada y otro de salida. El pin D9 del FPGA (input 15) sirve como la entrada de la señal de reloj para los modos CLASE 3A y 4A. El pin B14 (Output 15) es usado para generar los pulsos de reloj en los modos CLASE 3B y 4B Para la tarjeta de protección se usaron buffers o drivers con la referencia MC54/74HC244A de Motorola [12]. Estos son buffers 3 estados que pueden trabajar en niveles TTL o CMOS. Además son dispositivos de muy bajo costo que pueden ser cambiados en caso de que sean dañados. Si se generan corto circuitos en el diseño, los buffers recibirán la descarga sin afectar el FPGA. El la figura 3‐11 se muestra un esquema de la tarjeta de adquisición, esta conformada por la tarjeta de desarrollo y la tarjeta de protección.
24
Tabla 3‐4: (a) Pines de la FPGA correspondientes a las entradas de la plataforma
(b) Pines de la FPGA correspondientes a las salidas de la plataforma.
Figura 3‐11: Tarjeta de adquisición, conformada por la tarjeta de desarrollo y la tarjeta de adquisición.
La tarjeta de protección eléctrica posee tres puertos de expansión, 2 puertos de 20 pines cada uno y un puerto de 40 pines que se conectan a la tarjeta de desarrollo. La tarjeta de protección eléctrica
25
esta diseñada para ser conectada al puerto de expansión A2 de la tarjeta de desarrollo (ver figura 3‐11). En la figura 3‐12 se muestra la configuración de pines de la tarjeta de protección, El puerto From Design recibe todas las señales provenientes del diseño bajo prueba. El puerto To Design lleva todas las señales que generan estímulos al diseño. El puerto de 40 pines recoge y lleva todas las señales al puerto A2 de la tarjeta de desarrollo. Nota: En la sección 9.1, 9.2 y 9.3 (anexos) se muestran con detalle el esquema circuital y el dibujo de la tarjeta protección
Figura 3‐12: Configuración de pines de la tarjeta de protección electrica.
26
Tabla 3‐5: (a) Pines del puerto de 40 pines de la tarjeta de protección
(b) Pines del puerto FROM DESIGN ‐ (C) Pines del puerto TO DESIGN 3.3.4 Implementación de la interfaz grafica. La interfaz grafica de la plataforma se desarrolló con el programa de computador ChipScope Pro Analyzer [13]. Aunque muy parecidas cada modo de configuración tiene una interfaz grafica específica. Los modos de configuración son cargados desde la interfaz, para cada modo se necesita un archivo *.bit generado desde Xilinx ISE y otro archivo *.cpj generado desde el ChipScope Pro Analyzer. Lo más importante en el desarrollo de proyectos del ChipScope Pro Analyzer, es establecer las condiciones de estímulo (Triggers Conditions) y las condiciones de almacenamiento (Storage Qualification). Estas condiciones permiten el muestreo y captura de los datos correctamente. En la tabla 3‐6 se describen las configuraciones hechas en el ChipScope para cada modulo. Nota: En el Manual para el uso del ChipScope Pro Tools de la sección 8.1, se muestra cómo usar el ChipScope Pro Analyzer [13].
27
Modo Config. Match Unit Funtion Value RadixTrigger
Conditions Storage
Qualification CLASE 1 M0: DataPort[0] = R Bin M0 M0 CLASE 2 M1: DataPort[32] = R Bin M1 M1 CLASE 3A M1: DataPort[16] = B Bin M1 M1 CLASE 3B M1: DataPort[16] = B Bin M1 M1 CLASE 4A M2: DataPort[31] = B Bin M2 M2 CLASE 4B M2: DataPort[31] = B Bin M2 M2 Tabla 3‐6: Condiciones del Trigger Setup del ChipScope Analyzer para los Modos de configuración
28
4. PRUEBAS DE VALIDACION Y RESULTADOS De las distintas pruebas hechas a la plataforma se tomaron dos diferentes sistemas que se exponen a continuación. El primero es una compuerta NAND, este se usara para probar los modos de configuración CLASE 1 y 2. El segundo diseño es un flip flop toggle, este se usó para los demás modos de configuración. 4.1 Pruebas del modo CLASE 1. Para esta prueba se utilizó uno de los puertos disponibles en modo CLASE 1. Se uso una compuerta NAND de dos entradas, las señales de control de la NAND se conectaron a los puertos PTO_1 [0] y PTO_1 [1].La salida de la compuerta se conectó al puerto PTO_1 [3]. Las señales de control de la compuerta fueron manipuladas a través de interruptores en el diseño (fuentes externas). El circuito trabajó con niveles de voltajes de 5.0 voltios.
Figura 4‐1: Compuerta NAND probada en el modo CLASE 1.
Resultados: Los resultados fueron consistentes con los esperados. La salida (PTO_1 [2]) es solo cero ‘0’ cuando las dos señales de control de la compuerta son ambas 1 lógico. 4.2 Pruebas del modo CLASE 2. Para esta prueba se usaron los puertos Entrada [0] y Entrada [1] para conectarlos las entradas de la compuerta NAND. En el puerto Salida [0] se conecto la salida de la NAND. Los estímulos de las señales de control para la compuerta se hicieron desde la interfaz grafica.
Figura 4‐2: Compuerta NAND probada en el modo CLASE 2.
29
Resultados: Los resultados son consistentes con los esperados para una compuerta NAND. En este caso las entradas de la compuerta fueron proporcionadas por la interfaz grafica. 4.3 Pruebas del modo CLASE 3A. En esta prueba se usaron dos (2) flip flop toggle, los dos manejados por una misma señal de reloj. La entrada del primer flip flop se conectó al puerto PTO_1[0]. La entrada del segundo se conectó al puerto PTO_1[1]. Las salidas del primer y segundo flip flop se conectaron a los puertos PTO_2[0] y PTO_2[1] respectivamente. El reloj del diseño es conectado a la línea especial de la plataforma.
Figura 4‐3: flip flops toggle activos en borde de bajada probados en el modo CLASE 3A.
Resultados: Los resultados obtenidos en el modo CLASE 3A fueron los esperados de un flip flop toggle. El toggle del flip flop se activa cuando la entrada tiene el valor de ‘1’ lógico. Nótese que los estímulos se hacen en los bordes de subida del reloj, las respuestas se obtiene en los bordes de bajada del reloj. Sí los estímulos hubieran sido aplicados justo antes del borde de bajada del reloj, teniendo en cuenta que los tiempos de respuesta del diseño no fueran mayores de 280 nseg, las respuestas del flip flop y su correspondiente entrada se verían en una misma muestra, como si se tratara de un flip flop ideal (respuesta inmediata). Este fenómeno se menciono en la sección 3.2.4.3 al implementar el modulo Retraso. Si no existiera este modulo, las respuestas correspondientes del evento actual se verían como si pertenecieran al evento próximo. 4.4 Pruebas del modo CLASE 3B. Esta fue la misma prueba hecha en el modo CLASE 3A, con diferencia que el reloj en este caso fue generado por la plataforma. El usuario en este caso genera un pulso reloj cuando lo considera necesario para estimular su diseño. Los resultados en este caso fueron los mismos del CASO 3B.
30
Figura 4‐4: flip flops toggle activos en borde de bajada probados en el modo CLASE 3B.
4.5 Pruebas del modo CLASE 4A. En estas pruebas de nuevo se tienen dos flip flops toggle. La entrada del primer flip flop se conectó al puerto Entrada[0]. La entrada del segundo se conectó al puerto Entrada[1]. Las salidas del primer y segundo flip flop se conectaron a los puertos Salida[0] y Salida[1] respectivamente. En esta prueba la señal de reloj es proporcionada por el diseño bajo prueba. Los estímulos (entradas de los flip flops) son proporcionados por la plataforma desde la interfaz grafica.
Figura 4‐5: flip flops toggle activos en borde de bajada probados en el modo CLASE 4A.
Resultados: Los resultados de la prueba fueron muy buenos. El Toggle se activo en el momento en que las entradas de los flip flops tomo el valor lógico de ‘1’. La señal de reloj estuvo a una frecuencia lo suficientemente lenta para poder hacer cambios entre flancos. 4.5 Pruebas del modo CLASE 4B. Las pruebas hechas en este modo de configuración fueron iguales a las del CLASE 4A. La diferencia radica en que la señal de reloj del sistema fue proporcionada por la plataforma. Los resultados fueron los esperados de un flip flop toggle.
31
5. CONCLUSIONES Con los resultados obtenidos en este proyecto se han cumplido los objetivos propuestos en un principio. Se diseñó e implemento una herramienta para probar y validar distintos circuitos lógicos diseñados en el laboratorio. Esta plataforma posee distintas configuraciones que permiten examinar tanto circuitos combinacionales como secuenciales. También cuenta con otras herramientas como: elementos de protección eléctrica y cables que facilitan la manipulación y la conexión del circuito a la plataforma. A través de la plataforma es posible obtener muestras en tiempo real y generar un historial de todas las pruebas realizadas sobre un diseño. Cabe resaltar la importancia que tuvo en el desarrollo del proyecto el ChipScope Pro de Xilinx. Toda la plataforma académica se estructuro sobre las bases del ChipScope Pro. Este permitió establecer comunicación directa con señales internas de un FPGA, que fue usado para tomar y generar señales externas del circuito bajo prueba. Además el ChipScope es una herramienta flexible, ya que muchas de las tareas pueden ser reconfiguradas directamente desde un PC durante el funcionamiento. La plataforma académica es una herramienta bastante flexible. Esta tiene la capacidad de ser modificada o mejorada en futuros proyectos sin cambiar su hardware. La plataforma posee elementos que pueden ser potecializados, El FPGA tiene compuertas internas suficientes para agregar más funciones integradas con las ya existentes.
33
6. PERSPECTIVAS A este proyecto se le pueden agregar mejoras que faciliten la utilización de la plataforma, algunas podrían ser:
Mejorar la interfaz grafica a través de la integración de un software para facilitar el manejo de la plataforma. Es posible automatizar varias operaciones que el usuario debe hacer manualmente. A través de esta nueva interfaz grafica se podría dar más opciones al usuario como configurar el número de puertos, ajustar la frecuencia, etc. Diseñar e implementar una tarjeta de adquisición especifica para la plataforma. Con esto se lograría conseguir integrar todo el hardware en una sola tarjeta. También es posible recurrir a un FPGA de menor capacidad ya que la actual esta siendo subutilizada. Por ultimo se quiere que con otros proyectos la plataforma cuente con un microprocesador interactivo insertado en el FPGA. Se busca que el estudiante desde la plataforma pueda examinar los estados de todas las señales internas del microprocesador. Esto con el fin de que los estudiantes conozcan mejor el desarrollo de las instrucciones en un microprocesador.
34
7. REFERENCIAS [1] BUSTOS YUÑEZ, Paola. Plataforma académica de diseño y depuración de microprocesadores.
Bogotá, 2007. Proyecto de grado (Pregrado de Ingeniería Electrónica). Universidad de los Andes. Facultad de Ingeniería. Departamento de Ingeniería Eléctrica y Electrónica.
[2] DAVILA ORTIZ, Diego. Analizador lógico con prestaciones académicas para la verificación de sistemas digitales. Bogotá, 2007. Proyecto de grado (Pregrado de Ingeniería Electrónica). Universidad de los Andes. Facultad de Ingeniería. Departamento de Ingeniería Eléctrica y Electrónica.
[3] OLIVEIRA MEDEIRA, Oscar., et al. Analizador Lógico de 100 MHz utilizando una FPGA. [En línea]. [Consultado 20 Jun. 2007]. Disponible en < http://iie.fing.edu.uy/~geirea/pub/analiza.pdf >.
[4] TERAN AYALA, Juan. Analizador Lógico de tiempos implementado en una FPGA utilizando el bus PCI como interfaz de comunicación. [En línea]. [Consultado 20 Jun. 2007]. Disponible en < http://www.depi.itchihuahua.edu.mx/electro/archivo/electro2001/mem2001/articulos/dig5.pdf >.
[5] Xilinx, JTAG Programmer Guide. [Base de datos en línea]. [Consultado 20 Jun. 2007]. Disponible en: < http://toolbox.xilinx.com/docsan/3_1i/pdf/docs/jtg/jtg.pdf. >
[6] BROWN, Stephen y VRANESIC, Zvonko. Fundamentals of Digital Logic with VHDL design. Singapore: Mc Graw Hill, 2000. 92, 679 p.
[7] Xilinx, ChipScope Pro Software and Cores User Guide. [Base de datos en linea]. [Consultado 18 Jun 2007]. Disponible en < http://www.xilinx.com/ise/verification/chipscope_pro_sw_cores_9_1i_ug029.pdf. >
[8] Xilinx. ChipScope Pro Core Generator. [Programa de computador]: versión 9.1i: XILINX, 2007. [9] Xilinx. Xilinx ISE 9.1i Software Manuals and Help – PDF collection. [Base de datos en linea].
[Consultado 20 Jun de 2007]. Disponible: < http://toolbox.xilinx.com/docsan/xilinx9/books/manuals.pdf > [10] Xilinx. Spartan‐3 FPGA Family: Funtional Description. [Base de datos en linea]. [Consultado 18
Jun 2007]. Disponible en: < http://www.xilinx.com/bvdocs/publications/ds099.pdf > [11] Xilinx. Spartan‐3 Starter Kit Board User Guide. [Base de datos en linea].[Consultado 18 Jun
2007]. Disponible en < http://www.digilentinc.com/Data/Products/S3BOARD/S3BOARD‐rm.pdf >. [12] On semiconductor. MC74HC244A. [Base de datos en linea]. [Consultado 19 Jun 2007].
Disponible en: < http://www.onsemi.com/pub/Collateral/MC74HC244A‐D.PDF >. [13] Xilinx. ChipScope Pro Analyzer. [Programa de computador]: versión 9.1i: XILINX, 2007.
35
8. MANUALES (GUIAS PARA EL USUARIO) 8.1 MANUAL PARA EL USO DEL CHIPSCOPE PRO TOOLS. (ChipScope Pro Software 9.1.01i) Versión 9.1.01i, Junio de 2007 (ultima actualización)
TABLA DE CONTENIDO DEL MANUAL
Pag Características de los módulos ILA y VIO……………………………………………………………….37
Módulo ILA……………………………………………………………...……………...……………….37 Módulo VIO………………………………………………………………………………..……………38
ChipScope Pro Core Generator……………………………………………………………………………39
Como generar el módulo ICON.............................................................................................................39 Como generar el módulo ILA………………………………………………………………………….40 Como generar el módulo VIO…………………………………………………………………………41
Insertando los módulos ICON. ILA y VIO……………………………………………………………....42
Como insertar los módulos con Xilinx ISE………………………………………...............................42 Como usar el ChipScope Pro Analyzer…………………………………………………………………..44
Guardar un proyecto………………………………………………………………...............................44 Establecer conexión con la tarjeta (FPGA)……………………………………………………………44 Programar el dispositivo (FPGA)...........................................................................................................45 Comunicación con el ILA desde el ChipScope Analyzer…………………………………………...45
Agregar señales al waveform..........................................................................................................45 Configuración del Trigger Setup.………………………………………………….......................46 Como empezar el muestreo……………………………………………………………………….47
Comunicación con el VIO desde el ChipScope Analyzer...................................................................47
36
Características de los módulos ILA y VIO. Módulo ILA Ya que el ILA es un módulo sincrono es necesario que el reloj usado en el diseño también sea usado para el ILA. El módulo ILA esta compuesto principalmente por tres componentes. • Trigger Input and Output Logic Este es un capturador de eventos en las entradas del ILA. • Data Capture Logic Este componente captura y almacena en una memoria RAM la información. • Control and Status Logic Es el componente que controla todos los módulos internos del ILA.
Características Descripción Tamaño de los puertos Cada puerto puede ser de 1 a 256 bits de tamaño Múltiples Puertos Cada modulo ILA puede tener hasta 16 puertos
de entrada Múltiples comparadores (Match Units) para cada puerto del ILA
Cada ILA puede tener hasta 16 unidades comparativas (Match Units), distribuidas en todos los puertos de entrada.
Tipos de comparadores
Es posible escoger 6 tipos de comparadores (Match Units) diferentes. El comparador mas completo es capaz de detectar eventos dentro de un rango especificado por el usuario, valores concretos y detectar flancos o bordes. • Range comparator w/edges
Funciones: = ; <> ; > ; >= ; < ; <= ; in range ; not in range.
Detecta flancos de subida y de bajada o ambos
Tabla 8‐1: ILA Triggers Input Logic (Capturador de Eventos de entradas) Condiciones para el muestreo. A través de las condiciones de eventos (Trigger Conditions) y las condiciones de muestreo (Storage Qualification Conditions) se pueden definir condiciones para empezar el muestreo y los datos que deben ser capturados. Las condiciones de eventos son combinaciones boleanas que son detectados por las unidades comparadoras (Match Units), estas condiciones son usadas para marcar los datos con un punto distintivo en la ventana de muestreo. Las Triggers Conditions son las condiciones que se beben cumplir para empezar a capturar y guardar los datos. Similarmente las condiciones de muestreo (Storage Qualification Conditions) son también combinaciones Boleanas que deciden que datos son capturados y cuales no.
37
Figura 8‐1: Ejemplo de conexión del modulo ILA2.
Modulo VIO (Virtual Inputs Outputs) Cuatro clases de señales pueden ser utilizadas en el VIO. • Entradas Asincrónicas (Asynchronous Inputs ):
Estas son muestreadas usando el reloj del JTAG que es insertado a través del cable JTAG Los valores son muestreados periódicamente y mostrados a través del ChipsScope Analyzer.
• Entradas Sincrónicas (Synchronous Inputs): Estas son muestreadas a través del reloj del diseño (en la FPGA) que después son mostradas en el ChipScope Analyzer.
• Salidas Asincrónicas (Asynchronous Outputs): Estas son definidas por el usuario y son generadas desde el modulo VIO hacia el diseño.
• Salidas Sincrónicas (Synchronous Outputs): Estas son definidas por el usuario y son generadas sincrónicamente con el reloj del diseño.
2 XILINX. ChipScope Pro Software and Cores User Guide. [Base de datos en línea]. [Consultado 18 Junio 2007]. Disponible en < http://www.xilinx.com/ise/verification/chipscope_pro_sw_cores_9_1i_ug029.pdf >. Figura 1-3, P 27.
38
ChipScope Pro Core Generator Como generar el módulo ICON. Cuando iniciamos la herramienta ChipScope Generator escogemos dentro de las posibles opciones (Select core type to Generate) el ICON. Luego con el botón next en la siguiente ventana seleccionamos la ubicación del archivo .edn en Output Netlist, generalmente este archivo se ubica en la carpeta del proyecto de nuestro diseño creado en Xilinx ISE. Además de la ubicación del archivo debemos especificar el dispositivo FPGA que vamos a utilizar en Device Setting Device Family. Dentro de los parámetros del ICON (ICON Parameters) se especifican el numero de puertos de control (Number of Control Ports), estos pueden ser hasta 15 para diferentes módulos ILA y/o VIO. Dependiendo del dispositivo se podrá usar la cadena JTAG que uno desee en la opción Boundary Scan Chain, la existencia de varias cadenas dentro de un dispositivo son manipuladas a través del TAP, estas permiten que el Boundary Scan pueda ser compartido con otras aplicaciones. Por defecto se instancian componentes Boundary Scan dentro del modulo. Es posible deshabilitar la inserción del JTAG clock BUFG marcando Disable JTAG clock BUFG Insertion. Si desactivamos la inserción del BUFG estamos obligados a hacerlo manualmente a través de herramientas que generen el reloj del JTAG por medio del reloj global. El Core Utilization describe le numero de LUT, flip flops (FF) y bloques de memorias (BRAM) utilizados para la creación del modulo. En la siguiente ventana al seleccionar Generate Core se generan por defecto un archivo con extensión .edn y un archivo .vhd (Xilinx XST) que describen la entidad del modulo para poder insertarlo dentro de nuestro diseño.
39
Figura 8‐2: Ventana del ChipScope Pro Core Generator para crear un bloque ICON3.
Como generar el módulo ILA Del mismo modo que generamos los demás módulos en el ChipScope Pro Core Generator seleccionamos el ILA core, en la siguiente pagina seleccionamos ubicación del archivo y familia del dispositivo (FPGA). En Device Setting podemos seleccionar Use SRL 16s y/o Use RPMs (dependiendo del dispositivo), estos permiten optimizar el área del módulo dentro del FPGA. En clock Setting se puede seleccionar el flanco de reloj, subida (Rising) o Bajada (Falling). En la siguiente ventana se configuran los parámetros del ILA, en el Trigger Input and Match Unit Setting se pueden configurar el numero de puertos (Numbers of Input trigger ports) hasta un máximo de 16. Dentro de esta casilla aparecen el nombre de los puertos que estamos usando (TRIG0, TRIG1,…) donde se configuran el tamaño de los puertos (Trigger Width), numero de comparadores (# Match Units) y tipo de comparadores (Match Type). Cada puerto tiene un contador interno que puede contar hasta 32 eventos ocurridos en los comparadores o Match Unit.
3 XILINX. ChipScope Pro Core Generator. [Programa de computador]: versión 9.1i: XILINX, 2007.
40
Figura 8.3: Ventana del ChipScope Pro Core Generator para crear un bloque ILA4.
Dentro del Trigger Condition Setting se puede habilitar el un secuenciador (Enable Trigger Sequencer) que es una maquina de estado cíclica de hasta 16 transiciones que termina cuando se satisfacen las condiciones en todo el ciclo. También dentro de Storage Qualification Condition Settings se puede activar o desactivar el calificador de muestreo (Enable Storage Qualification), por defecto esta herramienta siempre esta habilitada. Cuando seleccionamos la siguiente ventana podemos configurar el bloque de memoria que vamos a usar configurando el numero de muestras (Data Depth) y el tamaño de cada muestra (Data Width). Otra opción es seleccionar Data Same as trigger que genera un bloque de memoria de 512 x el total de bits en los puertos de entada. Como Generar el VIO Para generar el VIO también es necesario especificar la ubicación del archivo y el tipo de FPGA que vamos a trabajar. En el cuadro Input/Output Port Setting podemos seleccionar el tipo de puertos y señales que queremos tener en nuestro módulo VIO. También en el cuadro que dice Width se
4 XILINX. ChipScope Pro Core Generator. [Programa de computador]: versión 9.1i: XILINX, 2007.
41
especifica el tamaño de las entradas y salidas del VIO (hasta 256 bits). Además también podemos ajustar el flanco reloj en Clock Setting si estamos trabajando con señales sincrónicas.
Figura 8‐4: Ventana del ChipScope Pro Core Generator para crear un bloque VIO5.
Insertando los módulos ICON, ILA y VIO A través de la herramienta ChipScope Pro Core Inserter es posible insertar los módulos ICON e ILA en un proyecto. El modulo VIO debe ser insertado manualmente en el código VHDL del diseño, además del VIO los módulos ICON e ILA también se pueden insertar manualmente si así se quiere. Como insertar los módulos con Xilinx ISE Cuando generamos los módulos ICON, ILA y VIO creamos archivos con extensiones *.edn y *.ncf, estos son archivos de activación para poder insertar los módulos en el proyecto, estos archivos deben ser ubicados en la carpeta de nuestro proyecto en Xilinx ISE. También el ChipScope Generator genera un archivo ejemplo xst_example.vhdl, este nos describe las entidades de cada módulo para poder insertarlo en nuestro diseño (lenguaje VHDL).
5 XILINX. ChipScope Pro Core Generator. [Programa de computador]: versión 9.1i: XILINX, 2007.
42
En el archivo de mayor jerarquía de nuestro proyecto insertamos los componentes de cada modulo (ICON, ILA y/o VIO) exactamente como se describen en el archivo ejemplo (xst_example.vhdl), en la figura 8‐5 se muestra la estructura de un proyecto en Xilinx ISE. Hacemos el mapeo de cada modulo con la función port map. Luego sintetizamos el proyecto, asignamos pines (si es necesario), implementamos nuestro diseño y generamos el archivo .bit. Anotaciones • Al generar los archivos *.edn y *.ncf con el ChipScope Pro Core Generator la ubicación de los
archivos debe hacerse en la carpeta del proyecto hecho en Xilinx ISE. • Al insertar los módulos del ChipScope en nuestro diseño se deben declarar los componentes y
puertos exactamente como están descritos en el archivo xst_example.vhdl, de otra forma no se podrá hacer la implementación completa del diseño.
• Al insertar los módulos y sintetizar el proyecto aparecen avisos (warning) diciendo que se están instanciando cajas negras en el proyecto, sin embargo el proyecto no debe contener errores al implementar el diseño y generar el archivo de programación.
Figura 8‐5: Estructura de un proyecto con bloques ILA , ICON y VIO instanciados
43
Como Usar el ChipScope Pro Analyzer. El ChipScope Pro Core Analyzer esta compuesto por cuatro partes: • Árbol del proyecto (Project Tree) que esta ubicado en la parte superior izquierda de la ventana • El browser de Señales (Signal Browser) esta ubicado en la parte inferior izquierda de la ventana • El panel de mensajes (message pane) en la parte inferior de la ventana. • La ventana principal (main window). Guardar un proyecto Al abrir la ventana del ChipScope Pro Core Analyzer se inicia con un proyecto nuevo, en el menú principal File Save Proyect As se pueden guardar el proyecto con la extensión *.cpj. También en File Open Project se puede abrir un proyecto ya existente, de igual modo en File New Project se puede crear un proyecto nuevo. Establecer conexión con la tarjeta (FPGA) La interfase del ChipScope se puede hacer a través de varios tipos de cables JTAG. Para detectar la cadena JTAG del dispositivo se debe especificar en el menú JTAG Chain Xilinx Parallel Cable, se selecciona el tipo de cable que se esta usando y aceptamos. Si la cadena JTAG se detecto correctamente entonces aparecerá un aviso donde aparecen el nombre de los componentes encontrados, el IDCODE y el IR de cada componente, de lo contrario el panel de mensajes aparecerá un Error diciendo Failed to detect Cable. Si el cable JTAG que estamos usando es tipo USB entonces se ingresa a JTAG Chain Xilinx Pratform USB Cable y procedemos igual. ChipScope
Analyzer puede detectar el cable automáticamente haciendo clic en el icono ubicado en la parte superior. En el menú principal JTAG Chain Auto Core Status Poll se puede activar y desactivar esta herramienta. La función del Auto Core Status Poll es desactivar automáticamente el puerto que se esta usando para permitir el uso de este en otras aplicaciones cuando no esta siendo usado por el ChipScope.
44
Figura 8‐6: Estableciendo conexión con la tarjeta6.
Programar el Dispositivo (FPGA) Cuando es detectada la cadena JTAG del dispositivo, en el menú principal se selecciona Device y se encontraran los diferentes dispositivos detectados; se selecciona el dispositivo que se desea programar y hacemos clic en Configure. Aquí se selecciona la ubicación del archivo *.bit (en Select New file) que generamos en Xilinx ISE y hacemos clic en OK. Por ejemplo si estamos trabajando con una FPGA Spartan 3 XC3S200 entonces los pasos son Device DEV:0 MyDevice0 (XC3S200) Configure, seleccionamos el archivo .bit y aceptamos. Al detectar la cadena JTAG en el dispositivo en el árbol del proyecto aparecerán todos los módulos ICON, ILA y/o VIO que fueron insertados y que pueden ser configurados y muestreados en el ChipScope Pro Analyzer. Comunicación con el ILA desde ChipScope Analyzer Si sobre el diseño que realizamos creamos los módulos ILA entonces después de haber detectado la cadena JTAG y programar el dispositivo, en el árbol del proyecto de la ventana del ChipScope Analyzer se mostraran los módulos insertados (VIO y/o ILA). Por orden jerárquico cada módulo ILA contiene cuatro elementos: Trigger Setup, Waveform, Listing y Bus Plot (como se muestra en la Figura 8‐9). Agregar señales al Waveform Para desplegar el Waveform en la ventana principal hacemos doble clic en Waveform dentro del árbol del proyecto (Project Tree). Después seleccionamos las señales que queremos visualizar en el Signal Browser con el clic derecho. Luego en el Waveform las señales se pueden distribuir en diferentes buses y cambiar los nombres. 6 XILINX. ChipScope Pro Software and Cores User Guide. [Base de datos en línea]. [Consultado 18 Junio 2007]. Disponible en < http://www.xilinx.com/ise/verification/chipscope_pro_sw_cores_9_1i_ug029.pdf>. Figura 4-17, P 127.
45
Configuración del Trigger Setup Para desplegar el Trigger Setup en la ventana principal es necesario hacer doble clic en el Trigger Setup dentro del árbol del proyecto (Project Tree) o en el menú principal Window New Unit Window Dev…MyILA y seleccionar Trigger Setup. El Trigger Setup contiene tres componentes básicos: Match Funtions, Trigger Conditions y Capture Setting que son expandibles y contraibles debajo y en la parte superior izquierda del trigger setup respectivamente. En el Match Funtions están desplegados todas las unidades (Match Unit) que especificamos y el puerto al que está adjunta cada unidad en la columna del Match Unit. En la columna Funtions se pueden escoger las funciones a realizar de cada unidad. En la columna de Value se puede escribir el valor (o el rango) para el cual queremos generar un evento. También se puede cambiar la base numérica en la columna correspondiente a Radix.
Figura 8‐7: El Match Funtions del Trigger setup7
En la ventana de Trigger Conditions dentro del Trigger Setup se especifican condiciones necesarias que deben cumplirse debido a los eventos generados por las unidades comparativas. Se pueden agregar o borrar condiciones en la parte izquierda de la ventana del Trigger Conditions. Si hacemos doble clic en una de las celdas de la columna Trigger Condition Equation, se abrirá una ventana en donde especificaremos la ecuación boleana correspondiente para la condición. En la ventana de Capture Setting se encuentra una celda llamada Storage Qualification, al hacer doble clic sobre la celda se puede especificar una ecuación boleana al igual que en el Trigger Condition Equation. Para empezar a capturar y guardar los datos es necesario que se cumplan las condiciones del Trigger Conditions. Solo los datos que cumplan con las condiciones del Storage Qualification serán almacenados en memoria.
Figura 8‐8: Capture setting8
7 XILINX. ChipScope Pro Software and Cores User Guide. [Base de datos en línea]. [Consultado 18 Junio 2007]. Disponible en < http://www.xilinx.com/ise/verification/chipscope_pro_sw_cores_9_1i_ug029.pdf>. Figura 4-28, P 133. 8 XILINX. ChipScope Pro Software and Cores User Guide. [Base de datos en línea]. [Consultado 18 Junio 2007]. Disponible en < http://www.xilinx.com/ise/verification/chipscope_pro_sw_cores_9_1i_ug029.pdf>. Figura 4-30, P 134.
46
Hay dos formas de desplegar los datos que fueron muestreados, en las ventana Type dentro del Capture Setting se puede seleccionar Window o N sample. Si seleccionamos el tipo Window debemos especificar el número de ventanas (en Windows) y el número de muestras por cada ventana (Depth) que son en potencias de 2 hasta 512. Si seleccionamos N Sample entonces será solo una ventana y el numero de datos muestreados (Sample per Trigger) será cualquier entero entre 1 y 512.
Figura 8‐9: Ventana del ChipScope Pro Analyzer
Trigger Setup y Waveform desplegados en la ventana principal9
Como empezar el muestreo Una vez configuradas todas las condiciones en el Trigger Setup, nos vamos al menú principal Trigger Setup Run. Cuando finaliza el muestreo de los datos entonces son desplegadas cada una de las señales que desplegamos en el Waveform. Comunicación con el VIO desde ChipScope Analyzer Si sobre el diseño que realizamos en Xilinx ISE insertamos módulos VIO y después de haber detectado la cadena JTAG y haber programado el dispositivo (FPGA) desde el ChipScope Analyzer, en el árbol del proyecto se mostraran todos los módulos VIO que insertamos, cada modulo VIO contiene un elemento llamado VIO Console, para desplegar el VIO en la ventana principal (Main Window) hacemos doble clic sobre la VIO Console que queremos ver. Para agregar las señales que queremos visualizar en la consola VIO hacemos clic derecho sobre las señales en el Signal Browser y elegimos la opción add to view. Luego en la consola VIO podemos distribuir las señales en diferentes buses y cambiarles los nombres. Las salidas del VIO (entradas de nuestro diseño) son de color verde y las entradas del VIO (salidas del diseño) están visualizadas en color azul.
9 XILINX. ChipScope Pro Analyzer. [Programa de computador]: versión 9.1i: XILINX, 2007
47
5.2 MANUAL PARA EL USO DE LA PLATAFORMA ACADEMICA Versión 1.0 – Junio de 2007
TABLA DE CONTENIDO DEL MANUAL
Pag Como operar los modos de configuración desde la interfaz…………………………………………..49
Modo CLASE 1………………………………………………………………………..…………………49 Modo CLASE 2…………………………………………………………………………..………………50 Modo CLASE3A………………………………………………………………………………………...50 Modo CLASE 3B.......................................................................................................................................51 Modo CLASE 4A…………………………………………………………………………………...…...52 Modo CLASE 4B…………………………………………………………………………………….…..53 Tabla de conexiones…………………………………………………………………………….………55
Uso de la interfaz grafica de la plataforma………………………………………………..……………..57
Establecer conexión con la tarjeta de adquisición…………………………………………….…..….57 Como cargar un modo de configuración…………………………………………………………..…57 Como configurar y correr el muestreo de señales……………………………………………….......57
48
Como operar los modos de configuración desde la interfaz La plataforma académica cuenta con seis (6) modos de configuración distintos que pueden ser cargados desde la interfaz grafica. Modo de configuración: CLASE 1 En la figura 8‐10 se muestra un esquema de la interfaz grafica del modo CLASE 1. Las señales de este modo se encuentran organizadas en dos (2) vectores de 8 bits llamados PTO_1 y PTO_2. La señal Cargar se puede manipular en la ventana de control de la interfaz.
Figura 8‐10: Modo de configuración CLASE 1.
Pasos para usar el Modo CLASE 1.
1. Abrir el programa de computador ChipScope Pro Analyzer y establecer comunicación con la tarjeta de adquisición. (ver sección Como establecer conexión en este manual)
2. Descargar el modo de configuración CLASE 1 para usarlo desde la interfaz. (ver sección Como cargar un modo de configuración en este manual)
3. Conectar al puerto From Design las señales que se quieren observar en la interfaz. (ver la tabla de conexiones de este manual). Verificar la conexión en la ventana de control de la interfaz.
4. Configurar el número de muestras que se quieren visualizar en el diagrama de pruebas y correr la interfaz para capturar los datos (ver la sección como configurar y correr el muestreo de este manual).
5. Verificar el dato visualizado en la ventana de control y pulsar el botón Cargar de la interfaz. El numero de pulsaciones del botón Cargar debe corresponder al numero de muestras configuradas para finalizar la prueba.
6. Para iniciar otra prueba el retoma el proceso desde el paso 4.
49
Modo de configuración: CLASE 2 En la figura 8‐11 se muestra la interfaz grafica del modo de configuración CLASE 2. En la interfaz se pueden las señales Entradas (estímulos) y Salidas en puertos de 16 bits, además de la señal interna Cargar.
Figura 8‐11: Modo de configuración CLASE 2
Pasos para usar el Modo CLASE 2.
1. Abrir el programa de computador ChipScope Pro Analyzer y establecer comunicación con la tarjeta de adquisición. (ver sección Como establecer conexión en este manual)
2. Descargar el modo de configuración CLASE 2 para usarlo desde la interfaz. (ver sección Como cargar un modo de configuración en este manual)
3. Conectar los puertos From Design y To Design a las señales de observación y los estímulos del circuito respectivamente. Verificar la conexión en la ventana de control. (ver la tabla de conexiones de este manual)
4. Establecer el número de muestras que se quieren visualizar en el diagrama de pruebas y correr la interfaz para capturar los datos. (ver la sección como configurar y correr el muestreo de este manual)
5. Con el mouse y el teclado se podrán manipular los datos de las señales Entradas en la ventana de control y ver los resultados de los estímulos hechos en las señales Salidas.
6. Verificar el dato visualizado en la ventana inferior y pulsar el botón Cargar de la interfaz. El numero de pulsaciones del botón Cargar debe corresponder al numero de muestras configuradas para finalizar la prueba.
7. Para iniciar otra prueba el retoma el proceso desde el paso 4. Modo de configuración: CLASE 3A. En la figura 8‐12 se muestra la interfaz del modo de configuración CLASE 3A. En la ventana de control de la interfaz se muestran las señales de observación en dos (2) vectores llamados PTO 1 y
50
PTO 2, de 8 y 7 bits respectivamente; también se muestra la actividad del reloj del diseño bajo prueba, esta señal se llama CLK.
Figura 8‐12: Modo de configuración CLASE 3A.
Pasos para usar el modo CLASE 3A
1. Abrir el programa de computador ChipScope Pro Analyzer y establecer comunicación con la tarjeta de adquisición. (ver sección Como establecer conexión en este manual)
2. Descargar el modo de configuración CLASE 3A para usarlo desde la interfaz. (ver sección Como cargar un modo de configuración en este manual)
3. Conectar al puerto From Design las señales que se quieren observar en la interfaz y el reloj del diseño bajo prueba. (ver la tabla de conexiones de este manual). Verificar la conexión en la ventana de control de la interfaz.
4. Configurar el número de muestras que se quieren visualizar en el diagrama de pruebas y correr la interfaz para capturar los datos (ver la sección como configurar y correr el muestreo de este manual).
5. Los datos se anexarán automáticamente al diagrama de pruebas con cada borde de reloj. Se debe tener en cuenta que cada pulso de reloj equivale dos muestras del diagrama de pruebas.
6. Para iniciar otra prueba el retoma el proceso desde el paso 4. Modo de configuración: CLASE 3B. En la figura 8‐13 se muestra la interfaz grafica del modo de configuración CLASE 3B. En la ventana de control se visualizan las señales provenientes de las puntas de prueba, estas se encuentran organizadas en dos puertos de 8 bits llamados PTO_1 y PTO_2. En esta ventana también se encuentra una señal interna en la que se debe especificar el flanco de operación del circuito bajo prueba. La señal CLK genera pulsos de reloj con clic hechos en la interfaz.
51
Figura 8‐13: Modo de configuración CLASE 3B.
Pasos para usar el modo CLASE 3B.
1. Abrir el programa de computador ChipScope Pro Analyzer y establecer comunicación con la tarjeta de adquisición. (ver sección Como establecer conexión en este manual)
2. Descargar el modo de configuración CLASE 3B para usarlo desde la interfaz. (ver sección Como cargar un modo de configuración en este manual)
3. Conectar al puerto From Design las señales que se quieren observar en la interfaz. Del puerto To Design se debe tomar la señal de reloj que estimulará el diseño bajo prueba (ver la tabla de conexiones de este manual).
4. Verificar las conexiones en la ventana de control generando pulsos de reloj y viendo el funcionamiento del diseño paso a paso.
5. Configurar el número de muestras que se quieren visualizar en el diagrama de pruebas y correr la interfaz para capturar los datos (ver la sección como configurar y correr el muestreo de este manual).
6. Los datos se anexarán automáticamente al diagrama de pruebas con cada borde de reloj. Se debe tener en cuenta que cada pulso de reloj equivale dos muestras del diagrama de pruebas.
7. Para iniciar otra prueba el retoma el proceso desde el paso 5. Modo de configuración: CLASE 4A En la figura 8‐14 se muestra la interfaz grafica del modo de configuración CLASE 4A. En la ventana de control se visualiza la señal CLK que muestra la actividad del reloj del diseño y las señales que se examinan son los vectores Entradas (estímulos) y Salidas.
52
Figura 8‐14: Modo de configuración CLASE 4A.
Pasos para usar el modo CLASE 4A.
1. Abrir el programa de computador ChipScope Pro Analyzer y establecer comunicación con la tarjeta de adquisición. (ver sección Como establecer conexión en este manual)
2. Descargar el modo de configuración CLASE 4A para usarlo desde la interfaz. (ver sección Como cargar un modo de configuración en este manual)
3. Conectar al puerto From Design las señales que se quieren observar en la interfaz y la señal de reloj del diseño. Del puerto To Design se deben tomar las señales de control o estímulos para el diseño bajo prueba (ver la tabla de conexiones de este manual).
4. Verificar las conexiones en la ventana de control generando estímulos y viendo los resultados, además comprobar la actividad en el reloj.
5. Configurar el número de muestras que se quieren visualizar en el diagrama de pruebas y correr la interfaz para capturar los datos (ver la sección como configurar y correr el muestreo de este manual).
6. Los datos se anexarán automáticamente al diagrama de pruebas con cada borde de reloj. Se debe tener en cuenta que cada pulso de reloj equivale dos muestras del diagrama de pruebas.
7. Para iniciar otra prueba el retoma el proceso desde el paso 5. Modo de configuración: CLASE 4B En la figura 8‐15 se muestra la interfaz grafica del modo de configuración CLASE 4B. En la ventana de control se muestran los vectores Salidas y Entradas (estímulos). En esta ventana también se encuentra una señal interna en la que se debe especificar el flanco de operación del circuito bajo prueba. La señal CLK esta conectada al diseño bajo prueba y genera pulsos de reloj con cada clic hecho en la interfaz.
53
Figura 8‐15: Modo de configuración CLASE 4B.
Pasos para usar el modo CLASE 4B.
1. Abrir el programa de computador ChipScope Pro Analyzer y establecer comunicación con la tarjeta de adquisición. (ver sección Como establecer conexión en este manual)
2. Descargar el modo de configuración CLASE 4B para usarlo desde la interfaz. (ver sección Como cargar un modo de configuración en este manual)
3. Conectar al puerto From Design las señales que se quieren observar en la interfaz. Del puerto To Design se deben tomar las señales de control para el diseño bajo prueba al igual que la señal del reloj. (ver la tabla de conexiones de este manual).
4. Verificar las conexiones en la ventana de control generando pulsos de reloj y cambios en el vector Entradas para ver el funcionamiento paso a paso.
5. Configurar el número de muestras que se quieren visualizar en el diagrama de pruebas y correr la interfaz para capturar los datos (ver la sección como configurar y correr el muestreo de este manual).
6. Los datos se anexarán automáticamente al diagrama de pruebas con cada pulso de reloj. Se debe tener en cuenta que cada pulso de reloj equivale dos muestras del diagrama de pruebas.
7. Para iniciar otra prueba se retoma el proceso desde el paso 5.
54
Tabla de Conexiones En la figura 8‐16 se muestra un esquema de la tarjeta de adquisición de la plataforma académica. La plataforma cuenta con un puente jumper (Configuración eléctrica), que permite adaptar la plataforma a circuitos que trabajen con niveles de voltajes de 3.3 o 5 voltios. En la tabla 8‐2 y 8‐3 se muestra la configuración de los puertos FROM DESIGN y TO DESIGN respectivamente.
Figura 8‐16: Esquema de la tarjeta de Adquisición.
55
Pin conector Color CLASE 1 CLASE 2 CLASE 3A CLASE 3B CLASE 4A CLASE 4B
1 Negro PTO_1 [0] Salida [0] PTO_1 [0] PTO_1 [0] Salida [0] Salida [0] 2 Blanco PTO_1 [1] Salida [1] PTO_1 [1] PTO_1 [1] Salida [1] Salida [1] 3 Gris PTO_1 [2] Salida [2] PTO_1 [2] PTO_1 [2] Salida [2] Salida [2] 4 Violeta PTO_1 [3] Salida [3] PTO_1 [3] PTO_1 [3] Salida [3] Salida [3] 5 Azul PTO_1 [4] Salida [4] PTO_1 [4] PTO_1 [4] Salida [4] Salida [4] 6 Verde PTO_1 [5] Salida [5] PTO_1 [5] PTO_1 [5] Salida [5] Salida [5] 7 Amarillo PTO_1 [6] Salida [6] PTO_1 [6] PTO_1 [6] Salida [6] Salida [6] 8 Naranja PTO_1 [7] Salida [7] PTO_1 [7] PTO_1 [7] Salida [7] Salida [7] 9 Rojo PTO_2 [0] Salida [8] PTO_2 [0] PTO_2 [0] Salida [8] Salida [8] 10 Marrón PTO_2 [1] Salida [9] PTO_2 [1] PTO_2 [1] Salida [9] Salida [9] 11 Negro PTO_2 [2] Salida [10] PTO_2 [2] PTO_2 [2] Salida [10] Salida [10] 12 Blanco PTO_2 [3] Salida [11] PTO_2 [3] PTO_2 [3] Salida [11] Salida [11] 13 Gris PTO_2 [4] Salida [12] PTO_2 [4] PTO_2 [4] Salida [12] Salida [12] 14 Violeta PTO_2 [5] Salida [13] PTO_2 [5] PTO_2 [5] Salida [13] Salida [13] 15 Azul PTO_2 [6] Salida [14] PTO_2 [6] PTO_2 [6] Salida [14] Salida [14] 16 Verde PTO_2 [7] Salida [15] CLK PTO_2 [7] CLK Salida [15] 17 Amarillo NC NC NC NC NC NC 18 Naranja NC NC NC NC NC NC 19 Rojo NC NC NC NC NC NC 20 Marrón GND GND GND GND GND GND
Tabla 8‐2: Conexiones del puerto FROM DESIGN
Pin conector Color CLASE 1 CLASE 2 CLASE 3A CLASE 3B CLASE 4A CLASE 4B
1 Negro NC Entrada [0] NC NC Entrada [0] Entrada [0] 2 Blanco NC Entrada [1] NC NC Entrada [1] Entrada [1] 3 Gris NC Entrada [2] NC NC Entrada [2] Entrada [2] 4 Violeta NC Entrada [3] NC NC Entrada [3] Entrada [3] 5 Azul NC Entrada [4] NC NC Entrada [4] Entrada [4] 6 Verde NC Entrada [5] NC NC Entrada [5] Entrada [5] 7 Amarillo NC Entrada [6] NC NC Entrada [6] Entrada [6] 8 Naranja NC Entrada [7] NC NC Entrada [7] Entrada [7] 9 Rojo NC Entrada [8] NC NC Entrada [8] Entrada [8] 10 Marrón NC Entrada [9] NC NC Entrada [9] Entrada [9] 11 Negro NC Entrada [10] NC NC Entrada [10] Entrada [10]12 Blanco NC Entrada [11] NC NC Entrada [11] Entrada [11]13 Gris NC Entrada [12] NC NC Entrada [12] Entrada [12]14 Violeta NC Entrada [13] NC NC Entrada [13] Entrada [13]15 Azul NC Entrada [14] NC NC Entrada [14] Entrada [14]16 Verde NC Entrada [15] NC CLK Entrada [15] CLK 17 Amarillo NC NC NC NC NC NC 18 Naranja NC NC NC NC NC NC 19 Rojo NC NC NC NC NC NC 20 Marrón GND GND GND GND GND GND
Tabla 8‐3: Conexiones del puerto TO DESIGN
56
57
Uso de la interfaz grafica de la plataforma. Establecer conexión con la tarjeta de adquisición. Para detectar la cadena JTAG del dispositivo se debe especificar en el menú JTAG Chain Xilinx Parallel Cable, se selecciona el cable Xilinx Parallel III y aceptamos. Si la cadena JTAG se detecto correctamente entonces aparecerá un aviso donde aparecen el nombre de los componentes encontrados, de lo contrario el panel de mensajes aparecerá un Error diciendo Failed to detect Cable.
ChipScope Analyzer puede detectar el cable automáticamente haciendo clic en el icono ubicado en la parte superior. Nota: Para la plataforma académica el ChipScope debe detectar dos dispositivos: el FPGA XC3S200 y la memoria flash XCF02S Como cargar un modo de configuración. Para el uso de la interfaz grafica es necesario descargar en el PC seis (6) carpetas cada una correspondiente a los modos de configuración existentes. Cada carpeta contiene un archivo *.bit y uno *.cpj. Para cargar un modo de configuración primero se programa el FPGA con el archivo *.bit y luego abrimos un proyecto con el archivo *.cpj. Para cargar un modo primero se debe detectar la cadena JTAG, luego en el menú principal se selecciona Device DEV:0 MyDevice0 (XC3S200) Configure. Aquí en Select New File se ubica el archivo *.bit ubicado en la carpeta del modo que queremos usar y hacemos clic en OK. En la parte inferior de la ventana aparecerá una barra de proceso de la programación. Si antes de cargar el modo configuración se encontraba abierto un modo distinto, entonces aparecerá una ventana preguntando si se quieren cambiar las señales del proyecto actual a lo cual se debe responder que NO. Una vez programada la tarjeta se va al menú en File Open Project y se carga el archivo *.cpj correspondiente al modo de configuración que queremos cargar. Aparecerá una ventana que preguntara si queremos guardar el proyecto anterior a lo cual se responderá que NO. Como configurar y correr el muestreo de señales.
Para correr el muestreo de las señales en el diagrama de pruebas debemos seleccionar en la ventana de configuración el número de muestras a desplegar (Depth), estas son en potencias de 2 hasta un máximo de 512. Luego nos vamos al menú principal Trigger Setup Run. Cuando finaliza el muestreo de los datos entonces son desplegadas cada una de las señales en un diagrama.