• No se han encontrado resultados

PLATAFORMA ACADEMICA PARA EL DESARROLLO DE SISTEMAS DIGITALES

N/A
N/A
Protected

Academic year: 2022

Share "PLATAFORMA ACADEMICA PARA EL DESARROLLO DE SISTEMAS DIGITALES"

Copied!
60
0
0

Texto completo

(1)

   

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  

(2)

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 

(3)

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   

                                                                     

(4)

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.  

                   

(5)

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  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. 

                

(6)

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. 

 

(7)

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.

(8)

 

  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 

(9)

 

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 

(10)

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.  

                                                                           

(11)

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. 

 

(12)

  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).  

 

9 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. 

  

9 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. 

 

9 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.   

 

(13)

  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. 

 

(14)

  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.  

(15)

 

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  

 

(16)

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 

(17)

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. 

 

(18)

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. 

 

(19)

  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. 

 

(20)

  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. 

 

(21)

  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 

 

(22)

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 

 

(23)

  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 

(24)

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.  

 

(25)

  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 

(26)

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. 

   

(27)

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].  

           

(28)

Modo Config.  Match Unit  Funtion Value Radix

Trigger  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   

                                                                         

(29)

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. 

 

(30)

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. 

 

(31)

  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. 

 

(32)

  Figura 4‐6: flip flops toggle activos en borde de bajada probados en el modo CLASE 4B. 

                                                                             

(33)

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.    

                                                       

(34)

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. 

                                                         

(35)

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. 

                                   

Referencias

Documento similar

mayor diversificación de actividades para atenderlo, abriendo espacios para el hos- pedaje, alimentación, transporte terres- tre y marítimo. Aunque los beneficios a nivel

Tras haber conseguido trasladar la importancia del drama de la despoblación a toda la sociedad, este año 4GATOS pretende escapar del victimismo y la lamentación y abordar la

Reglamento (CE) nº 1069/2009 del parlamento Europeo y del Consejo de 21 de octubre de 2009 por el que se establecen las normas sanitarias apli- cables a los subproductos animales y

CECEBRE Mero 20,61 8,34 40,44 59,56 ABTO. UXIA BARRIÉ DE LA MAZA VILAGUDÍN VILASENÍN

re-routing Nuevo flujo de información: Periodo final.

En Japón 4 , el 59% de los niños de seis a 48 meses dormía con los padres, y lo hacía todas las noches, toda la noche y desde el nacimiento (a diferencia de lo que

Este libro intenta aportar al lector una mirada cuestiona- dora al ambiente que se desarrolló en las redes sociales digitales en un escenario de guerra mediática mantenido por

o esperar la resolución expresa&#34; (artículo 94 de la Ley de procedimiento administrativo). Luego si opta por esperar la resolución expresa, todo queda supeditado a que se