intekhnia vol6n2.indd - Revistas Universidad Santo Tomás

Anuncio
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
JTAG: conceptos y diseño de una herramienta
para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
(Recibido: 13 de diciembre de 2010; aprobado: 26 de septiembre de 2011)
Resumen
El JTAG (Boundary Scan Architecture IEEE 1149.1), es una arquitectura eficiente que facilita la depuración de errores,
así como las pruebas de funcionamiento para dispositivos digitales. Actualmente, esta arquitectura es utilizada por algunos
fabricantes en la programación y la emulación de diseños basados en microcontroladores, FPGAs y microprocesadores. En
el presente artículo se hace una revisión de los principales aspectos técnicos de este estándar y se utiliza en la elaboración
de una aplicación que permite la programación de una FPGA Spartan II.
Palabras clave – JTAG, IEEE 1149.1, arquitectura, borde.
Adriana Carolina Sanabria: [email protected], Facultad de Ingeniería Electrónica, División de Ingenierías, Universidad Santo Tomás, Carrera 9
No. 51 - 11 (C.P. 110311), Bogotá, Colombia.
César Pedraza Bonilla: Doctor en Ingeniería Informática, [email protected], Facultad de Ingeniería de Telecomunicaciones, División de
Ingenierías, Universidad Santo Tomás, Carrera 9 No. 51-11 (C.P. 110311), Bogotá, Colombia.
Jaime Vitola Oyaga: Máster en Ingeniería Electrónica, [email protected], Facultad de Ingeniería Electrónica, División de Ingenierías,
Universidad Santo Tomás, Bogotá, Colombia.
Alexander Aponte: Máster en Ingeniería, [email protected], Facultad de Ingeniería Electrónica, División de Ingenierías, Universidad Santo Tomás, Carrera 9 No. 51-11 (C.P. 110311), Bogotá, Colombia.
Artículo de investigación derivado de proyecto de investigación realizado por los grupos GPDUS e INVTEL de las facultades de Ingeniería Electrónica
e Ingeniería de Telecomunicaciones de la Universidad Santo Tomás.
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
39
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
JTAG: Concepts and Design of a Tool for FPGAs
Abstract
The JTAG (Boundary Scan Architecture IEEE 1149.1), is an efficient architecture that facilitates debugging and performance
testing for digital devices. Nowadays this architecture is used by many manufacturers in the programming and emulation of
microcontrollers, FPGAs and microprocessors based systems. This article reviews the main technical aspects of this standard
and shows an application designed to allow programming a Spostan II FPGA.
Keywords – JTAG, IEEE 1149.1 boundary, scan, architecture.
JTAG: conceitos e desenho de uma ferramenta
para FPGAs
Resumo
O JTAG Boundary Scan architecture IEEE 1149.1 () é uma arquitetura eficiente que facilita a depuração de error , assim
como o testes de desempenho para os dispositivos digitais. Atualmente esta arquitetura é usada por alguns fabricantes na
programação e emulação de desenhos baseados em microcontroladores, FPGAs e microprocessadores. Neste artigo vamos
rever os principais aspectos técnicos desta norma e é usado na preparação de um aplicativo que permite a programação de
um FPGA Spartan II.
Palavras - chave – JTAG, IEEE 1149.1, arquitetura, borda.
40
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
I. Introducción
Las pruebas son un elemento relevante en el desarrollo
de productos y servicios. Con el avance tecnológico han
aparecido nuevos retos para cumplir con las expectativas
de los usuarios, es así como se ha hecho necesaria la implementación de pruebas cada vez más robustas tanto a
nivel de dispositivos como a nivel de sistemas complejos.
El DFT (Design for Testability), un esfuerzo que se dirige
a desarrollar dispositivos con facilidades para la realización
de dichas pruebas, las cuales necesariamente se han complejizado por los avances tecnológicos, ha orientando estos
trabajos a la implementación de estándares que faciliten la
realización de pruebas a nivel de dispositivos [1].
El JTAG es una arquitectura que se ha empleado para la
realización de pruebas de dispositivos digitales. En este
artículo se describe su uso para la programación de una
FPGA, evidenciando las líneas y señales presentes, como
también el procedimiento y los resultados de las pruebas
experimentales realizadas.
II. Antecedentes y problema
Desde el inicio de la electrónica, los fabricantes de dispositivos se han enfrentado al problema de cómo probar sus
sistemas y/o dispositivos. Es así como los diseñadores han
ofrecido diferentes tipos de soluciones a este inconveniente,
entre las que se encuentran los puntos de pruebas, las camas
de agujas (bed of nails) para el diagnóstico de los circuitos
impresos y los procedimientos de evaluación de sistemas
de baja y mediana complejidad, siendo estas pruebas relativamente sencillas para los sistemas que poseían niveles de
integración bajo SSI (Small-Scale Integration) compuestos
por unos cuantos transistores en los años sesenta. Luego en
las postrimerías de esta década se pasó al MSI (MediumScale Integration), donde cientos o miles de transistores
eran encapsulados en un dispositivo. En los años setenta
se llegó a los LSI (Large-Scale Integration), pero cuando
se alcanzó en la década del ochenta los VLSI (Very LargeScale Integration), el número de transistores se incrementó
exponencialmente pasando de miles a millones, con lo cual
la complejidad de los sistemas y con ello la dificultad para
la elaboración de pruebas aumentó en gran medida. Adicio-
nalmente, los dispositivos contaban con nuevas formas de
presentación como son los dispositivos de superficie (SMT
- Surface Mount Technology) [2], que tenían un nivel de
interconexión superior trayendo consigo circuitos impresos
más complejos, con más de dos caras, haciendo inviables
las camas de pruebas, y los procedimientos sumamente
dispendiosos.
En 1985 se reunió el JETAG (Joint European Test Action
Group), que como su nombre lo indica fue establecido en
Europa, pero luego se integró un solo grupo con Norteamérica para constituir el JTAG (Joint Test Action Group)
[3] en 1986. Desde esta época y hasta 1988 se desarrolló
una serie de propuestas y publicaciones, que perfilarían un
bus con capacidad para hacer pruebas, que desembocó en
el estándar de 1990 denominado IEEE Std 1149.1-1990
(IEEE Standard Test Access Port and Boundary-Scan Architecture) [4]. Las medidas recomendadas por este grupo son
atendidas por compañías como Phillips, IBM, NEC, DEC,
British Telecom, Gen Rad, Texas Instruments, National
Semiconductor, AT&T y muchas otras [5]. Otro esfuerzo
paralelo que evidencia la relevancia de esta tarea fue el
VHSIC ETM-BUS [1], aunque menos conocido dado el
interés despertado por el JTAG. Existe también un esfuerzo
orientado a la prueba de sistemas analógicos, es así como
en 1999 se definió el estándar IEEE 1149.4 para cubrir esta
serie de elementos [6].
Son tres las condiciones que deben ser tenidas en cuenta
cuando se realizan pruebas de un equipo: en primera instancia, que los dispositivos implicados realicen adecuadamente
la tarea para la cual fueron diseñados; posteriormente, que
los dispositivos estén interconectados de la manera apropiada; y por último, que el producto final desarrolle la tarea
para la cual fue diseñado.
Las tareas mencionadas influyen para que los dispositivos
sean diseñados con la filosofía DFT (Design for Testability),
en tanto procesadores de Motorola [7], FPGAs [8], sistemas
como fuentes de alimentación [9], sistemas más complejos
como los controladores embebidos [10] y procesadores
digitales de señales [11], pueden ser también monitoreados
utilizando las bondades de esta arquitectura.
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
41
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
Este puerto ha tenido tanta acogida que su horizonte de
aplicación se ha visto expandido no sólo a la realización
de pruebas, sino también a la programación y emulación
de dispositivos facilitando la depuración [12][13][14][15]
[16] de códigos y síntesis de los mismos. En el mismo sentido, y dado su grado de penetración y el incremento de la
complejidad de los sistemas, se están haciendo esfuerzos
para aumentar su robustez y velocidad [17].
Figura 1. Diagrama de interconexión del TAP y el anillo registro
de frontera
Es también interesante destacar que las pruebas se pueden
realizar en circuito y en sitio, facilitando la verificación del
correcto comportamiento de los sistemas para aplicaciones
críticas, como lo demuestra el uso del puerto en un TDC
(Time to Digital Converter), para un aplicativo experimental
en el CERN [18].
Hoy en día se está explorando la posibilidad de realizar
pruebas remotas sin las restricciones que supone la conexión
física, es el caso del uso de un puerto JTAG en conjunción
con un sistema de comunicaciones inalámbricas que permite
monitoreo no invasivo remoto de dispositivos [19][20].
El desarrollo de un puerto con este estándar ha tenido tanta
penetración, que se está considerando la idea de proteger
información crítica a la cual se pueda tener acceso por éste.
Es así como el JTAG protegido podrá ser en el futuro un
mecanismo para tal fin [21].
III. JTAG
Como se mencionó anteriormente, el JTAG es la respuesta
a una necesidad que exigen las pruebas en un producto a
diferentes niveles [22]. Es así como mediante un registro de
desplazamiento y una máquina de control, implementados
al interior de los dispositivos, se obtiene acceso a cada uno
de sus pines permitiendo leer o alterar su valor. Esto, más
una máquina de estados que permite el acceso a este anillo
y algunas características adicionales, es lo que se conoce
como JTAG. En la Figura 1 se observa la ubicación del
anillo JTAG en la periferia de un dispositivo, logrando
de esta manera reemplazar la funcionalidad de la cama de
pruebas que permitía el acceso sobre cada pin, pero con la
ventaja adicional de facilitar la ejecución de pruebas más
sofisticadas a un menor costo.
42
Fuente: adaptación de autores L. Wang, M. Marchoefer Edward,
J. McCluskey[23].
El acceso a la infraestructura de pruebas del dispositivo se
realiza por medio del controlador TAP (Test Access Port)
[24], que aunado a unos registros permite el control sobre
todo el sistema. Este controlador consiste en una máquina
de estados, que mediante una señal de control y otra de reloj
permite alcanzar los diferentes valores de estados posibles,
para activar las distintas funcionalidades del bus que hay
en la actualidad. Adicionalmente, permite la emulación y
programación de dispositivos como lo demuestra el presente
trabajo.
En la Tabla 1 se consignan las líneas definidas por el estándar IEEE 1149.1, el cual declara cuatro líneas obligatorias
y una opcional.
Tabla 1. Líneas del JTAG
Línea
TDI
TDO
TMS
Descripción
Test Data In, entrada serial de los datos
Test Data Out, salida serial de los datos
Test Mode Select, entrada que modifica los
diferentes estados del controlador del TAP
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
TCK
nTRST
Test Clock, para temporizar el controlador
del TAP
Test Reset Input, reset asíncrono del TAP
(opcional)
Figura 3. Arquitectura del registro de datos
Fuente: Autores.
El núcleo fundamental del JTAG es la celda lógica que es
conectada entre el pin del dispositivo y la lógica de control
del mismo. Esta arquitectura es la encargada de ofrecer
observabilidad y controlabilidad sobre cada uno de los pines
del elemento, dependiendo de las necesidades particulares
se pueden implementar celdas más o menos complejas. En
la Figura 2 se muestra la arquitectura de una celda típica.
Figura 2. Diagrama de una celda de un registro de frontera
Fuente: Adaptación deautores IEEE Standards Board[4].
El estándar exige la presencia de dos tipos de registros: uno
es el boundary-scan register y el otro es el bypass register.
El primero es el anillo de celdas conectado a cada uno de
los pines del dispositivo y el segundo es un registro de un
bit, que permite omitir dispositivos sobre los cuales no se
quiera realizar ninguna operación. Aparte de estos dos registros de naturaleza obligatoria, existen otros que pueden
ser opcionales, como es el caso del registro de identificación
que como su nombre lo indica, contiene un número referencial del dispositivo, pero por necesidad del fabricante se
pueden incluir otros registros que ofrezcan características
adicionales de control y observación sobre el dispositivo.
En la Figura 3 se observa la conexión de estos registros.
Fuente: Adaptación de autores Texas Instruments. IEEE std
1149.1 (JTAG) Testability primer [25].
Otro registro importante es el de instrucciones, que almacena las operaciones que serán ejecutadas. El estándar determina tres instrucciones básicas que son: BYPASS que permite
que el dispositivo esté en operación normal y esté fuera del
anillo de pruebas, EXTEST que permite el acceso desde el
exterior al anillo de pruebas y SAMPLE/PRELOAD [26],
que permite al dispositivo estar en funcionamiento normal
pero que se pueda acceder al estado de los pines. Existen
otras instrucciones que permiten, por ejemplo, el acceso
al registro de identificación del dispositivo (IDCODE) o
colocar las salidas en estado de alta impedancia (HIGHZ).
La Figura 4 muestra las señales de control que ofrece el
controlador TAP y su interconexión con los registros de
datos y de instrucciones.
Figura 4. Diagrama de interconexión del TAP
Fuente: Adaptación de autores Texas Instruments. IEEE std
1149.1 (JTAG) Testability primer [25].
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
43
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
Es el controlador TAP el encargado de permitir el acceso
a todas las funcionalidades del puerto JTAG, es así como
esta máquina de estados posee la característica de poder
alcanzar y modificar los valores de los registros de datos
y de instrucciones. En la Figura 5 se muestra cómo son
las secuencias para acceder a cada uno de los registros,
siendo la señal TMS la que determina el estado futuro del
controlador TAP [27].
Figura 6. Circuito de conexión
Figura 5. Diagrama de estados del controlador TAP
Fuente: Xilinx [28].
IV. Implementación del programador JTAG
A. Diagrama de interconexión del bus JTAG
En primera instancia se debe resolver lo pertinente a la
parte física del puerto JTAG. La Figura 6 presenta el circuito necesario para poder acceder a un bus JTAG desde
un puerto paralelo. Este diagrama es el recomendado por el
fabricante Xilinx para la programación de sus dispositivos
[29], haciendo la aclaración de que dado que el objetivo era
programar por dicho puerto sólo se conectaron los datos
pertenecientes a este, a saber: TCK, TDO, TDI y TMS.
44
Fuente: Xilinx [29].
B. Archivo de programación .bit
En la Figura 7 se muestra el encabezado de un archivo
con extensión .bit, que es el archivo de configuración dela
FPGA. De allí se puede extraer la información que a continuación se relaciona:
A partir de la dirección 10H se encuentra el nombre del
proyecto, que para este caso es led1.ncd; el tipo de empaquetado de la FPGA, 2s200epq208,está a partir de la
dirección 1CH; la fecha a partir de la dirección 2BH, para
este archivo 2005/05/14 y la hora a partir de la dirección
39H, en este caso 17:38:31. Los datos de configuración
se encuentran desde la dirección 47H comenzando con 8
bytes de sincronismo que son FFH FFHFFHFFH AAH 99H
55H 66H, luego de estos está la descripción para la FPGA.
Los cuatro bytes anteriores a los bytes de sincronismo indican el tamaño en bytes de los datos de configuración, en
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
nomenclatura big-endian (comienzo por el mayor) que en
este caso 0002C01CH siendo la dirección final del archivo
2C01CH-1H +47h = 2C062H.
Figura 7. Encabezado del archivo .bit
figuración empezando por el msb hasta el lsb de cada byte
teniendo cuidado de colocar el TMS en 1 durante el último
bit que será el lsb del byte en la posición 0C2C062H, para
finalizar en el estado SELECT-DR-SCAN.
Figura 9. Diagrama de flujo del algoritmo de programación
Fuente: Autores.
Por tanto, el archivo debe ir hasta el dato 2C062H. En la
Figura 8 se muestra el final del archivo demostrando hasta
dónde se encuentran consignados los bytes de programación.
Figura 8. Datos finales del archivo .bit
Fuente: Autores.
Concluyendo que para este archivo los datos de programación de la FPGA se encuentran desde la dirección 47H hasta
la dirección 2C062H.
C. Algoritmo de programación de la Spartan II
En la Figura 9 se muestra el algoritmo de programación
dela FPGA, siguiendo el diagrama de estados del puerto
JTAG de la Figura 5. Éste se resume en los siguientes
pasos: primero, encontrar los datos de configuración en el
archivo .bit, que es a partir de los 8 bytes de sincronismo;
luego, llevar el TAP al estado TEST-LOGIC-RESET, esta
tarea se logra colocando el TMS en 1 y haciendo 6 pulsos
de reloj por la señal TCK, una vez allí se lleva la máquina
al estado SHIFT-IR, donde se envía el comando 00101 que
es el CFG_IN, enviando primero el lsb (least significant
bit) hasta el msb (most significant bit), durante el último bit
es necesario colocar el TMS en 1 para que pase al estado
EXIT1-IR. De allí se pasa al UPDATE-IR y finalmente al
SELECT-DR-SCAN, en este estado se pone el TMS en 0,
se pasa al SHIFT-DR y se envía bit a bit el archivo de con-
Fuente: Autores.
V. Resultados.
A. Experimento
Para el experimento se implementó el montaje mostrado en
la Figura 6, el cual se conectó al puerto paralelo del PC, y se
ejecutó el programa cuyo algoritmo se muestra en la Figura
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
45
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
9. Este programa fue desarrollado en lenguaje C y como
herramienta de compilación se utilizó el compilador GCC
(GNU Compiller Collection) sobre sistema operativo Linux.
Con el fin de verificar el correcto funcionamiento del programa se realizaron pruebas utilizando la tarjeta Digilab 2E del
fabricante Digilent que cuenta con una FPGA Spartan 2E.
La primera prueba consistió en la lectura del identificador
del dispositivo que corresponde al número propietario del
fabricante, esto se logró mediante el comando básico del
JTAG, IDCODE (01001). Una vez se obtuvo el número de
identificación se garantizó que la navegación por la máquina
de estados del JTAG se estaba haciendo correctamente.
A continuación se realizó una descripción en VHDL de un
contador sincrónico de 26 bits con una entrada de reinicio
asincrónica conectando el bit 25 de este contador a la salida
de la FPGA, el cual a su vez en esta tarjeta estaba unido
a un indicador led, descripción cuyo modelo gráfico se
puede observar en la Figura 10. Finalmente, se descargó el
programa utilizando la herramienta ofrecida por Digilent
para estos propósitos denominada iMPACT, verificando el
correcto funcionamiento de la descripción; es decir, que el
led se encendiera de manera intermitente con un periodo
de 2.68s. Una vez comprobado el funcionamiento se procedió a programar el dispositivo utilizando el hardware y
el software descrito en el presente artículo verificando su
igual comportamiento.
Figura 10. Circuito de prueba descrito
mecanismo JTAG, básicamente lleva la máquina a un estado
inicial de Test-logic-reset y con una apropiada secuencia de
señales en las entradas TMS y CLOCK la conduce hasta
el estado SHIFT-IR y una vez allí descarga todo el archivo
de configuración de la FPGA. El programa se probó con
tres descripciones de hardware utilizando el procedimiento
descrito en el apartado anterior y se verificó su correcto
funcionamiento. Estas pruebas se realizaron utilizando el
hardware y software para este trabajo concebido y se contrastó con los resultados ofrecidos utilizando las herramientas de programación del fabricante Xilinx, evidenciando el
correcto e igual funcionamiento por los dos mecanismos.
VI. Conclusiones y recomendaciones
Se pueden desarrollar herramientas de muy bajo costo, como
la mostrada en este trabajo, que posee la ventaja adicional
que estriba en el conocimiento ofrecido del estándar JTAG.
En estos momentos el estándar JTAG es un mecanismo que
no sólo permite realizar pruebas de funcionamiento, sino
también programación de dispositivos e inclusive emulación
en circuito.
El estándar JTAG es muy flexible, se están desarrollando
sistemas para hacer pruebas remotas y en operación, de tal
suerte que se pueda obtener información en sitio sobre el
comportamiento de algún sistema, lo cual facilita la toma
de decisiones y labores de supervisión y mantenimiento.
Son muchas las empresas fabricantes de dispositivos que
ofrecen soporte sobre JTAG, facilitando las pruebas de los
desarrollos finales.
Fuente: Autores.
B. Funcionamiento del algoritmo
El algoritmo implementado está concebido para manipular
el controlador TAP que administra toda la funcionalidad del
46
Como ingenieros, es importante el correcto diseño de los
sistemas, pero de igual manera es indispensable ofrecer
plataformas que faciliten la realización de pruebas de funcionamiento y que verifiquen el estado del circuito impreso
así como de las soldaduras, daños en los componentes y
demás circunstancias que puedan afectar el objetivo trazado.
A manera de continuación del trabajo se ha considerado
realizar un programa de pruebas de hardware, para verificación de estado de señales y evaluación de conexiones.
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
VII. Referencias
[1] D. J. Richards, Value of Testability Standards in Testing Commercial Products,1988, pp. 201-202.
[13] I. Chum, and C.Lim. ES- Debugger: the Flexible Embedded System Debugger based on JTAG Technology.
2004, pp. 900-903.
[2] P. Fleming. Semiconductor Perspective on Test Standards,1990, pp. 197-198.
[14] Y. Jeang, L. Chen, Y. Chou and H. Su. An Embedded
In-Circuit Emulator Generator for Soc Plataform,
2003, pp. 315-318.
[3] R.P. Van Riessen, H.G. Kerkhoff, and A. Kloppenburg.
Designing and Implementing an Architecture with
Boundary Scan, 1990, pp. 9-19.
[15] E. Tarra and B. Terry, Programming Flash Memory
with Boundary Scan Using General Purpose Digital
Instrumentation, 2010, pp. 1-5.
[4] IEEE Standards Board. IEEE Standard Test Access
Port and Boundary-Scan, pp. 1-44, 1990.
[16] I. Igor, and G. Rostislav, Internal Structure of Software
Application for Controlling Devices Via JTAG 1149
Interface, 2010, pp. 119-126,.
[5] R. Dettmer, JTAG Setting the Standard for BoundaryScan Testing, 1989, pp. 49-52.
[6] B. Van Ngo, P. Law, and A. Sparks, Use of JTAG
Boundary-Scan for Testing Electronic Circuit Boards
and Systems, 2008, pp. 17 -22.
[7] T. Sponhrer, D. Marquette, and M. Gallup. Test Architecture of the Motorola 68040, 1990, pp. 191-194.
[8] H. Ehrenberg. PXI Express based JTAG / Boundary
Scan Ate for Structural Board and System Test. , 2006,
pp. 467-473.
[9] M. Kärkkäinen, K. Tiensyrjä and M. Wissenfelt.
Boundary Scan Testing Combined with Power Supply
Current Monitoring, 1994, pp. 232-235.
[10] J. Saalmueller, and J. Wuertz. Embedded Controllers
for Solving Complex Industry Applications, 2006, pp.
149- 152.
[11] F. Pichon. Implementing BIST and Boundary Scan in a
Digital Ignal Processor Asic for Radiocommunication
Applications, 1993, pp. 361-369.
[12] E. de la Torre, M. Garcia, T Riesgo, Y. Torroja and
J. Uceda, Non-Intrusive Debugging using the JTAG
Interface of FPG-based Prototypes, pp. 666-671.
[17] S. Ostendorff, H. Wuttke, J. Sachße, and J. Meza, Test
Pattern Dependent FPGA Based System Architecture
for JTAG Test, Fifth International Conference on
Systems 2010.
[18] C. Ljuslin, J. Christiansen, A. Marchioro and O.
Klingsheim, CERN. An Integrated 16 Channel CMOS
Time to Digital Converter, 1994, pp. 1104-1108.
[19] H. Eberle, A. Wander and N. Gura. Testing Systems
Wirelessly, 2004, pp. 1-6.
[20] A. Sparks, M. van Houcke, and I. Reis. A BoundaryScan Solution for Remote System Monitoring, Testing
and Configuration Via Inherent Secure Wired or Wireless Communication Protocols, 2006, pp. 704 - 712.
[21] R. F. Buskey, B. Oabara and B. Frosik. Protected
JTAG, 2006.
[22] E. M. Miller. Nondestructive Inspection Via Boundary
Scan, 1989, pp. 1964-1969.
[23] L. Wang, M. Marchoefer Edward, and J. McCluskey. A
Self-Test and Self-Diagnosis Architecture for Boards
Using Boundary Scans, 1989.
[24] L. Whetsel. A Proposed Standard Test Bus and Boundary Scan Architecture, 1998, pp. 330-333.
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
47
JTAG: conceptos y diseño de una herramienta para FPGAs
A. C. Sanabria, C. Pedraza, A. Aponte, J. Vitola
[25] Texas Instruments. IEEE std 1149.1 (JTAG) Testability primer, 1997.
[26] T. John. Toshiba IEEE 1149.1 (JTAG) Development
Summary, 2002, pp. 1-4.
[28] Xilinx. Configuration and Readback of Spartan II and
Spartan IIE. FPGAs Using Boundary ScanXapp188.
2005.
[29] Xilinx. JTAG Programmer Guide, pp. 1-142.
[27] H. Zhang, and Z. Yu, An FPGA Configuration Circuit
Based on JTAG. 2009, pp. 2588-2590.
48
Intekhnia | Vol. 6 | No. 2 | Julio - diciembre de 2011 | ISSN: 1900-7612 | pp. 39 - 48
Descargar