Tema 4 Parte 1: Tecnologías de configuración Parte 2: Lenguajes de descripción de Hardware#4
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.
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: Volátil: SRAM. EPROM, EEPROM, FLASH, antifusible. Las celdas de memoria no están concentradas sino distribuidas por todo el dispositivo y cerca del elemento que configuran.
TECNOLOGÍAS BASADAS EN CELDAS DE MEMORIA 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)
TECNOLOGÍAS BASADAS 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).
TECNOLOGÍA BASADA EN CELDAS DE MEMORIA No volátil 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.
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
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.
PROCESO DE CONFIGURACIÓN
CONFIGURACIÓN FUERA DEL SISTEMA (OFF SYSTEM PROGRAMMABLE)
CONFIGURACIÓN EN EL SISTEMA (IN SYSTEM PROGRAMMABLE)
CONFIGURACIÓN EN EL SISTEMA (IN SYSTEM PROGRAMMABLE)
CONFIGURACIÓN EN EL SISTEMA (IN SYSTEM PROGRAMMABLE)
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.
BREVE HISTORIA Y DESCRIPCIÓN DE JTAG Verificación deun 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 son necesarios 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.
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.
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)
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.
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.
BREVE HISTORIA Y DESCRIPCIÓN DE JTAG DFT (Design For Testability) 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) 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.
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.1-1990 denominada también norma de exploración periférica (Boundary Scan Standard).
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 uncircuito digital que constituye un procesador de verificación. Dichas señales constituyen el puerto de acceso a laverificació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 laverificación del sistema digital precedente. Es laentrada de exploración de laprimera 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. - Señal de reloj deverificación TCK (Test Clock Input) - 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.
Parte 2: Diseño de Sistemas Embebidos en FPGA Curso de Posgrado Lenguajes de descripción de Hardware#4
Descripción del sistema - Descripción estructural (Structural modeling) Especifica los elementos y sus Interconexiones -Descripción funcional o de comportamiento (Behavioural modeling) Describe el funcionamiento -Descripción física o geométrica (Physical design) Genera los datos para la realización física Usaremos la descripción funcional para describir sistemas secuenciales
Tipos de sistemas digitales Sistemas Secuenciales Elementos de Memoria Entradas Circuito Combinacional Salidas Sistemas Combinacionales x x 1 2 SC z z 1 2 z f ( x, x,, x ) 1 1 1 2 z f ( x, x,, x ) 2 2 1 2 n n x n z m z f ( x, x,, x ) m m 1 2 n
Tipos de sistemas secuenciales #1 Sistemas secuenciales asincrónicos Elementos de Retardo s1, s2,, s k S1, S2,, Sk z f ( x, x,, x, s, s,, s ) 1 1 1 2 n 1 2 z f ( x, x,, x, s, s,, s ) 2 2 1 2 n 1 2 z f ( x, x,, x, s, s,, s ) m m 1 2 n 1 2 k k k Circuito Combinacional x1, x2,, xn 1 2 z, z,, zm S fs ( x, x,, x, s, s,, s ) 1 1 1 2 n 1 2 S fs ( x, x,, x, s, s,, s ) 2 2 1 2 n 1 2 k k S fs ( x, x,, x, s, s,, s ) k k 1 2 n 1 2 k
Tipos de sistemas secuenciales#2 Sistemas Secuenciales Sincrónicos z f ( x, x,, x, s, s,, s ) 1, u 1 1 2 n 1, u 2, u k, u z f ( x, x,, x, s, s,, s ) 2, u 2 1 2 n 1, u 2, u k, u u clock z f ( x, x,, x, s, s,, s ) m, u m 1 2 n 1, u 2, u k, u s, s,, s 1, u 2, u k, u Elementos de Memoria s fs ( x, x,, x, s, s,, s ) 1, u 1 1 1 2 n 1, u 2, u k, u s fs ( x, x,, x, s, s,, s ) 2, u 1 2 1 2 n 1, u 2, u k, u Circuito Combinacional s fs ( x,,,,,,, ) k, u 1 z, z,, z x1, x2,, x 1, 2,, n u u m u k 1 x2 xn s1, u s2, u sk, u
Modelos de SSS clock Modelo Mealy Z F( X, S ) u u u S Fs( X, S ) u 1 u u s, s,, s 1, u 2, u k, u u Elementos de Memoria Circuito Combinacional z, z,, z x1, x2,, x 1, 2,, n u u m u Modelo Moore Z u F( S ) S Fs( X, S ) u 1 u u u z, z,, z 1, u 2, u m, u CC2 s, s,, s 1, u 2, u k, u u clock Elementos de Memoria x1, x2,, xn CC1
Otro modelo de SS Grafcet Z u F( S ) S Fs( X, S ) u 1 u u u Máquina de Estados Permite la descripción gráfica de un control de procesos. GRAfico Funcional de Control de Etapas y Transiciones. Metodología para automatizaciones industriales
Ejemplo: Semáforo de intersección de avenida Reloj S1 S2 S3 S4 {X} SSS {S} {Z} R1 R2 R3 R4 V1 V2 V3 V4 {x} = { Habilitado, No Habilitado} -> Alfabeto de entrada {S} = {sem1, sem2, sem3, sem4} -> Conjunto de estados {Z} = { Z1, Z2, Z3, Z4} -> Alfabeto de salida Z1 V1, R1, V 2, R2, V 3, R3, V 4, R4 Z 2 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Z3 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Z 4 ( V1, R1, V 2, R2, V 3, R3, V 4, R4)
Semáforo de intersección de avenida. Mealy Reloj {X} SSS {S} {Z} S1 S2 S3 S4 R1 R2 R3 R4 V1 V2 V3 V4 Z1 V1, R1, V 2, R2, V 3, R3, V 4, R4 Z 2 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Z3 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Z 4 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Diagrama de estados
Semáforo de intersección de avenida. Moore Reloj {X} SSS {S} {Z} S1 S2 S3 S4 R1 R2 R3 R4 V1 V2 V3 V4 Z1 V1, R1, V 2, R2, V 3, R3, V 4, R4 Z 2 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Z3 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Z 4 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Diagrama de estados
Semáforo de intersección de avenida. Grafcet Reloj {X} SSS {S} {Z} S1 S2 S3 S4 R1 R2 R3 R4 V1 V2 V3 V4 Z1 V1, R1, V 2, R2, V 3, R3, V 4, R4 Z 2 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Z3 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Z 4 ( V1, R1, V 2, R2, V 3, R3, V 4, R4) Diagrama de estados
VHDL. Semáforo de intersección de avenida según MOORE.
Simulación. Semáforo de intersección de avenida según MOORE.
Descripciones de estados en VHDL clk Q[2..0]
Simulación Contador MOD 5 clk Q[2..0] VARIABLE Las variables se utilizan para almacenar un valor Tienen validez solo en los bloques PROCESS SIGNAL Las señales se utilizan para conectar diversas partes del diseño Tienen validez en todo el bloque ARCHITECTURE
Contador con todas las características de 4 bits Reloj d_ent[3..0] borrar cargar descendente habil_cnt Conta MOD16 q[3..0]
Contador con todas las características de 4 bits
Contador con todas las características de 4 bits Simulación