Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables SISTEMAS ELECTRÓNICOS DIGITALES BLOQUE 2 CIRCUITOS DIGITALES CONFIGURABLES (PARTE 3: Tema 2) CONJUNTO CONFIGURABLE DE PUERTAS FPGA (Field Programmable Gate Array) Tecnología y Proceso de configuración Enrique Mandado Pérez María José Moure Rodríguez Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) TECNOLOGÍA Tipo de elemento de configuración utilizado. La tecnología de los elementos de configuración influye en la velocidad de operación y en el aprovechamiento del área de semiconductor. CLASES DE ELEMENTOS DE CONFIGURACIÓN – No volátiles Conservan el estado de corte o conducción al dejar de alimentar el circuito. – Volátiles No memorizan el estado al desconectar la alimentación del circuito. Esto hace que la configuración tenga que almacenarse en un sistema externo. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) Tecnologías de PLD/FPGA NO VOLÁTILES PLD/FPGA VOLÁTILES FPGA EPROM EEPROM FLASH ANTIFUSIBLE SRAM Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) TECNOLOGÍAS BASADAS EN CELDAS DE MEMORIA • El estado de un elemento de configuración está determinado por el valor almacenado en una celda de memoria: – No volátil: EPROM, EEPROM, FLASH, antifusible. – Volátil: SRAM. • Las celdas de memoria no están concentradas sino distribuidas por todo el dispositivo y cerca del elemento que configuran. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) TECNOLOGÍAS BASADAS EN CELDAS DE MEMORIA SRAM CLB CLB SRAM Celda SRAM + Transistor de paso CLB SRAM CLB SRAM Los interruptores programables están formados por transistores MOS de transmisión o paso, controlados mediante elementos de configuración que son celdas de memoria estática denominadas SRAM (Static Random Access Memory) Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) TECNOLOGÍA BASADA EN CELDAS DE MEMORIA SRAM En la figura se representa la estructura típica de la celda de una memoria SRAM (Static Random Access Memory). Dicha celda constituye el elemento de configuración y está formada por un biestable de tecnología CMOS y un transistor de control que permanece cortado durante la operación normal de la FPGA, y conduce para almacenar el nivel lógico de la línea de dato en el biestable, durante el proceso de configuración, o para leer el contenido del biestable a través de la línea de dato durante el proceso de lectura de la configuración (Readback). VCC VCC DATO LECTURA Y ESCRITURA Q Q A un transistor MOS de paso TRANSISTOR DE CONTROL Celda de memoria estática Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) TECNOLOGÍA BASADA EN CELDAS DE MEMORIA FLASH G G S Puerta de control VG = Vpp D Puerta flotante VS = Vpp S VD ≤ Vpp Puerta de control D Puerta flotante Aislante (Si O 2) (Si O 2) Canal Canal Surtidor n+ Drenador n+ Tipo p Surtidor n+ Drenador n+ Tipo p Sustrato Sustrato a) b) Transistor MOS de canal N de puerta flotante de espesor aislante reducido, borrable mediante impulsos eléctricos: a) Polarización durante la operación de escritura o programación; b) Polarización durante la operación de borrado o desactivación. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) TECNOLOGÍAS BASADAS EN ANTIFUSIBLES Antifusible (Antifuse) Elemento de memoria constituido por dos zonas conductoras separadas por un aislante de impedancia muy alta. Al aplicar una tensión elevada entre las dos zonas conductoras el aislante se convierte en conductor y pasa a tener una impedancia baja. Esta situación es irreversible y por ello el elemento no es reprogramable. Además su comportamiento es inverso al de un fusible y por ello se le denomina antifusible (Antifuse). Punto de ruptura Punto de ruptura Metal Si O 2 Polisicilio Nitruro Metal N+ Si O 2 Antifusible Metal-metal Antifusible de dieléctrico Óxido Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) TECNOLOGÍAS BASADAS EN ANTIFUSIBLES Antifusible (Antifuse) Características – – – – Menor retardo. Menor tamaño del elemento de configuración. No volátil. Mayor tolerancia a la radiación electromagnética. Suelen recibir el nombre de OTP FPGA. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) PROCESO DE CONFIGURACIÓN FPGA (Según el tipo de interruptor) NO RECONFIGURABLES (OTP) RECONFIGURABLES FUERA DEL SISTEMA (EPROM) BASADOS EN EEPROM/FLASH RECONFIGURABLES RECONFIGURABLES DENTRO DEL SISTEMA BASADOS EN SRAM (Reconfigurables en línea) Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) CONFIGURACIÓN FUERA DEL SISTEMA (OFF SYSTEM PROGRAMMABLE) Conexión • Puerto serie (USB) o paralelo • Conector específico PROGRAMADOR COMPUTADOR DE PERSONAL FPGA Equipo de configuración basado en un computador personal. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) CONFIGURACIÓN EN EL SISTEMA (IN SYSTEM PROGRAMMABLE) ISP FPGA PROCESADOR DE CONFIGURACIÓN Conexión serie PROCESADOR DE COMUNICACIONES CIRCUITO DE Recursos de la FPGA CONFIGURACIÓN Diagrama de bloques de una FPGA configurable en el sistema (ISP FPGA). Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) CONFIGURACIÓN EN EL SISTEMA (IN SYSTEM PROGRAMMABLE) Conexión serie PROCESADOR DE COMUNICACIONES FPGA SISTEMA COMPUTADOR ELECTRÓNICO PERSONAL BASADO EN UNA FPGA Diagrama de bloques típico de un sistema electrónico basado en una FPGA programable en el sistema mediante un computador en el que se instala la herramienta de CAD. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) CONFIGURACIÓN EN EL SISTEMA (IN SYSTEM PROGRAMMABLE) Software de programación (Herramienta CAD del fabricante) FPGAconfigurable en el sistema FPGA configurable en el sistema por medio de un computador personal en el que se ejecutan los programas que forman la herramienta de CAD Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) CONFIGURACIÓN EN EL SISTEMA (IN SYSTEM PROGRAMMABLE) Canal de comunicación EPROM serie o paralelo SRAM EEPROM FPGA o FLASH Configuración de un circuito FPGA de tipo SRAM mediante una memoria pasiva. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) CONFIGURACIÓN A TRAVES DE UN CANAL SERIE Preguntas que se tuvieron que hacer los ingenieros de los laboratorios de desarrollo de los fabricantes de circuitos FPGA en la década de 1990: -¿La configuración de una FPGA es un proceso con unas características especiales? Respuesta: Si. Es un proceso de control distribuido. El procesador de comunicaciones que forma parte del procesador de configuración tiene que enviar información a muchos sitios situados en puntos diferentes de la FPGA y debe comprobar que dicha información ha llegado al punto correcto. Hay que establecer una comunicación serie que recorra muchos sitios de la FPGA porque una comunicación paralelo es inviable. - ¿Existe algún tipo de solución hardware de una comunicación serie en el interior de un circuito integrado ya desarrollada que pueda servir para llevar a cabo el proceso de configuración? Respuesta: Si . Existe JTAG ( Joint Test Action Group). Deberíamos aprovecharla. Y eso hicieron. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Verificación de un sistema Proceso mediante el cual se comprueba que su comportamiento es acorde con las especificaciones. Es un proceso inherente a la Tecnología, y su importancia ha ido creciendo simultáneamente con el aumento de la complejidad de los sistemas creados por el ser humano. Para realizar la verificación de un sistema se aplican determinados estímulos a sus entradas y se observa la respuesta obtenida a sus salidas. Dichos estímulos pueden ser los mismos que recibe el sistema en funcionamiento normal, o específicos para efectuar la verificación. Sistemas digitales complejos realizados en un circuito integrado monolítico VLSI o ULSI Al fabricar un circuito integrado ULSI o GLSI se pueden producir numerosos fallos que es necesario detectar antes de que se conecte con otros para constituir un sistema complejo. El número de puntos a los que se tiene acceso desde el exterior está limitado en la práctica y es muy útil, en general, incluir circuitos digitales adicionales o redundantes (innecesarios desde un punto de vista funcional) para facilitar la verificación, y aumentar en un número pequeño los terminales de entrada y salida por encima de los estrictamente necesarios desde el punto de vista operativo. Esto sólo ha sido posible gracias al abaratamiento del sistema físico (hardware) propiciado por la elevación de la capacidad de integración. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Conceptos más importantes ligados a la verificación de los sistemas digitales complejos Controlabilidad (Controllability) Capacidad para fijar el estado de cualquiera de los nodos internos de un sistema a partir de los valores de las entradas, es decir, sin necesidad de tener acceso directo al nodo. Observabilidad (Observability) Capacidad para conocer el estado de uno cualquiera de los nodos internos de un sistema mediante la observación de las salidas operativas, es decir, sin necesidad de tener acceso directo al nodo. Factor clave: Elección de los puntos que se deben controlar u observar en un circuito para maximizar la probabilidad de detección de errores al comprobar su correcto funcionamiento. Depende de las características particulares de cada sistema, de la aplicación a que se destina el mismo y de las posibles fuentes externas de errores. En el caso de los circuitos digitales configurables hay que comprobar la programación de los elementos que establecen la configuración. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Técnicas para realizar la verificación de un sistema digital complejo - Verificación estática, activa o no concurrente (Testing) - Verificación dinámica, pasiva o concurrente (Checking) Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Verificación estática, activa o no concurrente (Testing) Se puede efectuar de dos formas diferentes con el sistema fuera de servicio: - Directamente sobre un prototipo. Solo válido para sistemas sencillos. - Indirectamente, sobre un modelo descriptivo de su comportamiento utilizando un simulador del mismo. La simulación se utiliza durante el proceso de diseño de un sistema digital complejo que se pretende realizar mediante un circuito digital a medida o mediante un circuito digital configurable. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Verificación dinámica, pasiva o concurrente (Checking) Se puede denominar en español comprobación o prueba. Se lleva a cabo de forma simultánea con la operación del sistema o sin desconectarlo del entorno en el que funciona normalmente, lo que constituye una de sus principales ventajas. Para realizarla se compara el comportamiento del sistema con un modelo abstracto del mismo. Presenta el inconveniente de que no permite detectar fallos latentes, que son los que están presentes en el sistema en un momento dado sin haber producido todavía un efecto detectable. Los fallos latentes no se detectan hasta que el funcionamiento normal del sistema propaga sus efectos hasta la salida, es decir hasta que se produce un error. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG El interés por reducir los costes de la verificación de los sistemas digitales complejos, en especial cuando están realizados en un circuito integrado monolítico, dio como resultado el concepto de verificabilidad (Testability). Verificabilidad Facilidad para desarrollar una secuencia de pruebas que comprueben el funcionamiento de un sistema mediante el aislamiento de fallos en componentes o subsistemas. Debe ser tenida en cuenta desde el momento en que se inicia la concepción de un sistema digital complejo, porque su coste y su complejidad aumentan a medida que se retrasa su consideración dentro del proceso de diseño. Esto motivó el desarrollo de técnicas de: Diseño orientado a la verificabilidad Conjunto de técnicas, conocidas bajo la denominación DFT (Design for Testability) cuyo objetivo es añadir a un sistema digital complejo, durante la fase de diseño, un conjunto de características especiales para facilitar su verificación externa o su autoverificación. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Diseño orientado a la verificabilidad DFT (Design For Testability) -Está ligado a la redundancia (redundancy). Una parte de un sistema es redundante cuando está formada por elementos que son innecesarios desde el punto de vista estrictamente funcional. - Comenzó en la década de 1970, al alcanzarse la gran escala de integración (LSI), con el establecimiento de diversas técnicas experimentales por parte de diseñadores de sistemas digitales pertenecientes a las empresas y universidades, en general norteamericanas, más activas en el área de diseño de sistemas digitales - Se pueden aplicar tanto a la verificación externa como a la autoverificación, y en el caso de la primera pueden ser específicas o estructuradas. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG DFT estructuradas para la verificación externa Técnicas de aplicación general consistentes en añadir elementos de forma sistemática para lograr un elevado grado de verificabilidad. Su evolución es el resultado de las actividades de desarrollo tecnológico realizadas por los principales fabricantes de procesadores digitales que fueron posibles gracias a la elevación de la capacidad de integración a partir de mediados de la década de 1970. La más utilizada de las primeras técnicas : Técnica del camino de exploración (Scan path technique) Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Sistema secuencial síncrono que utiliza la técnica del camino de exploración (Scan m p Variables de entrada Variables de salida CIRCUITO Path Technique) COMBINACIONAL n MUX Entrada de selección f. normal/exploración MUX G1 1 MUX G1 1 Entrada de exploración n 1D Q1 G1 1 1 1D 1 Q2 1 1D C1 C1 C1 R R R Qn Salida de exploración Impulsos de reloj Entrada de puesta a cero n La técnica del camino de exploración es difícil de aplicar en los sistemas digitales complejos que contienen gran cantidad de registros repartidos espacialmente, porque hay que enlazarlos entre sí para tener acceso a todos ellos. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG NACIMIENTO DE JTAG Los inconvenientes de la técnica del camino de exploración hizo que en 1985 varias empresas europeas y norteamericanas llegasen a un acuerdo para desarrollar una técnica normalizada que pudiese ser aceptada por todos y aplicable a cualquier tipo de sistema digital tanto si está formado por un solo circuito integrado como por varios colocados en una placa de circuito impreso. Para ello formaron un grupo de trabajo denominado "Joint Test Action Group"(JTAG) que desarrolló un sistema orientado a la verificación externa, que fue finalmente aceptado por el IEEE en 1990 bajo la norma IEEE 1149.11990 denominada también norma de exploración periférica (Boundary Scan Standard) [IEEE 94]. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Técnica de exploración periférica Está inspirada en la técnica del camino de exploración. Consiste, básicamente, en dotar al sistema que se quiere verificar, de un conjunto de celdas conectadas entre sí y situadas entre los puntos de verificación adecuados del mismo y los terminales de entrada y salida. Dichas celdas reciben el nombre de celdas de exploración periférica (Boundary Scan Cells) por estar situadas en la periferia del sistema digital objeto de verificación y deben ser capaces de realizar las siguientes funciones: •Si se trata de una celda de entrada debe permitir que el estado de un terminal de entrada se presente en el punto correspondiente del sistema. •Si se trata de una celda de salida debe permitir que el estado de un nodo del sistema a verificar pueda aparecer en el terminal de salida correspondiente. •Hacer que el estado de una celda se pueda desplazar a la celda siguiente y recibir el estado de la celda precedente. De esta forma el conjunto de celdas constituye un registro de desplazamiento. CIRCUITO INTEGRADO Celda de exploración periférica SISTEMA DIGITAL COMPLEJO Entrada de datos de verificación (TDI) Salida de datos de verificación (TDO) Circuito integrado que contiene un sistema digital complejo y recursos lógicos básicos de verificación mediante exploración periférica (Boundary Scan) Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo El conjunto de los biestables B1 de las diferentes celdas de exploración periférica forma un registro de desplazamiento que recibe la denominación de registro de exploración Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG El conjunto de los biestables B1 de las diferentes celdas de exploración periférica forma un registro de desplazamiento que recibe la denominación de registro de exploración periférica (Boundary Scan Register). MUX1 Salida de exploración ( Scan Out MUX ) G1 Señal de entrada procedente del circuito en prueba 1 MUX2 1 MUX G1 B1 1 1D Señal de salida que se aplica al circuito en prueba B2 Q 1D Q 1 C1 Variable de Entrada de entrada/ exploración desplazamiento ( Scan Reloj de desplazamiento C1 Reloj Variable auxiliar de modo In) Esquema de la celda utilizada en la técnica de verificación mediante exploración periférica Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Para reducir al mínimo los terminales del circuito integrado dedicados a las funciones de verificación, JTAG combina cuatro señales con un circuito digital que constituye un procesador de verificación. Dichas señales constituyen el puerto de acceso a la verificación TAP (Test Access Port) y son: -Entrada de datos de verificación TDI (Test Data Input) A través de ella se introducen las instrucciones de verificación así como los vectores de estímulo y los resultados de la verificación del sistema digital precedente. Es la entrada de exploración de la primera celda de exploración periférica. -Salida de datos de verificación TDO (Test Data Output) A través ella salen los resultados de la verificación procedentes de las celdas de exploración periférica. Circuito integrado que contiene recursos lógicos de verificación mediante exploración periférica CIRCUITO INTEGRADO Celda de exploración periférica SISTEMA DIGITAL COMPLEJO TCK TMS - Señal de reloj de verificación TCK (Test Clock Input) PROCESADOR DE VERIFICACIÓN TDI TDO - Entrada de selección del modo de verificación TMS (Test Mode Select) Indica al procesador de verificación el modo en el que debe funcionar. El estado cero corresponde al modo de verificación y el uno al de funcionamiento normal y si el estado uno se mantiene durante al menos cinco impulsos de reloj se reinicializa el procesador de verificación. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Elementos mínimos del procesador de verificación - El controlador de la verificación (TAP Controller) que es un sistema secuencial síncrono que recibe las señales TCK y TMS y genera las distintas señales de control de los restantes elementos. - El registro de instrucción (Instruction Register) que recibe la información de la forma de llevar a cabo la verificación a través de la entrada de datos de verificación TDI. - El registro de anulación de la exploración (Bypass Register) que permite enviar los datos de verificación desde TDI hasta TDO sin necesidad de que pasen a través del registro de exploración periférica (Boundary Scan Register). - Los multiplexores MUX1 y MUX2 que permiten seleccionar cual es el registro cuya información se presenta en la salida de datos de verificación TDO. Terminales de entrada/salida Registro de exploración periférica (Boundary Scan Register) MUX1 MUX G1 1 Entrada de datos de verificación (TDI) Registro de anulación de la exploración (ByPass register) 1 MUX2 MUX G1 1 1 Decodificación 1 1D C1 ∇ EN Registro de instrucción (Instruction register) Reloj de verificación (TCK) Modo de verificación (TMS) CONTROLADOR DE VERIFICACIÓN PERIFÉRICA (TAP CONTROLLER) PROCESADOR DE VERIFICACIÓN Salida de datos de verificación (TDO) Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) CONFIGURACIÓN DE LAS FPGA Boundary Scan (JTAG)DE LAS FPGA SPARTAN-IIE Spartan-IIE devices support all the mandatory boundary-scan instructions specified in the IEEE standard 1149.1. A Test Access Port (TAP) and registers are provided that implement the EXTEST, INTEST, SAMPLE/PRELOAD, BYPASS, IDCODE, and HIGHZ instructions. The TAP also supports two USERCODE instructions, internal scan chains, and configuration/readback of the device. Escuela Técnica de Ingenieros de Telecomunicación Departamento de Tecnología Electrónica Universidad de Vigo Circuitos digitales configurables FPGA (Field Programmable Gate Array) CONFIGURACIÓN DE LAS FPGA Circuito JTAG de la FPGA SPARTAN II