Download Configuracion de FPGA.Clase 2
Document related concepts
no text concepts found
Transcript
Configuración de las FPGA Diseño de Sistemas con FPGA Patricia Borensztejn Revisado 09/09 Configuración • Archivos de configuración: (bit files) contienen – datos: bits que se usan para definir el estado de los elementos directamente – Comandos: instrucciones que le indican al dispositivo que hacer con los datos • Recordamos que: – Dispositivos basados en E2 RoM y Flash se programan de forma similar a los basados en SRAM – Anti-fusibles: el archivo contiene una representación de los datos que se usarán para hacer crecer los antifusibles. – La programación del dispositivo se realiza mediante celdas de configuración. En general, estas celdas son de SRAM. Celdas de Configuración • bits de configuración lógica bits de configuración lógica • bits de configuración lógica bits de configuración lógica Son celdas de SRAM especiales (en el caso de FPGA´s basadas en SRAM) que van a utilizarse para que la lógica y sus interconexiones funcionen como queremos. Lo que no debemos olvidar es que esta tecnología es volátil, quiere decir que los dispositivos deben ser configurados in situ (en la placa) y necesitan volver a serlo cuando son desconectados de la corriente. Celdas de Configuración • En realidad, podemos ver el proceso de configuración de una FPGA, como el proceso de carga de las celdas de configuración. • El número de las celdas de configuración dependen del tipo de dispositivo (FPGA) y no del contenido de la inicialización. • Pueden variar desde 12038 para el XC2064 a 1924992 para el XC4085XL, approximadamente a 20 bits por “equivalent user gate”. (16bits de la LUT, al menos) • Dispositivos grandes, por ejemplo los Virtex6 o Spartan6 contienen …760.000 LC , o sea, seria 15 millones de bits de configuracion… Poco sobre configuración Hello everybody, I am not new to the world of FPGAs but have not found enough literature regarding the SRAMs used for configuration. I need some inputs, help or pointers(papers, articles) from the FPGA community regarding these. There are very few literature relating to this(May be I am not looking in the right places). 2. Are these SRAM cells arranged in a big nxn array like normal SRAM memory, or they are in small chunks of memories distributed all over the FPGA layout. 3. Are they physically placed adjacent to their corresponding CLB/Switch boxes. 4. As interconnects are fixed after configuration i guess they should always be read only mode, hence should be different from LUTs SRAM cells. Poco sobre configuración 1. Are these SRAM cells arranged in a big nxn array like normal SRAM memory, or they are in small chunks of memories distributed all over the FPGA layout. Physically they are scattered all over the chip. Each bit of memory controls a single transistor or mux input in the chip. The (pass) transistors are used to control routing or are used in the LUT ram mux. The muxes are used inside the logic elements to connect different inputs and outputs to provide the exact configuration of logic and FFs that you need. 5. Are they physically placed adjacent to their corresponding CLB/Switch boxes Yes, or even integrated. 9. As interconnects are fixed after configuration i guess they should always be read only mode, hence should be different from LUTs SRAM cells. In reality they don't typically distinguish between routing and LUT config memory. Both can be read back. This is useful for high reliability systems where the device is read back to verify the configuration has not changed due to electrical noise and/or radiation. SRAM de configuración, lógica e interconexiones bits de configuración lógica bits de configuración lógica bits de configuración lógica bits de configuración lógica Proceso de Configuración • Supongamos que cada bloque programable consiste de una LUT de 4 entradas, un multiplexor y un registro. – El multiplexor necesita una celda de configuración que especifique que entrada seleccionar – El registro, si trabaja como flip-flop o como latch, si estará inicializado a cero o a uno, etc – La LUT está basada en 16 celdas de configuración • Consideremos FPGA basadas en SRAM. Todas las celdas de configuración pueden verse como formando un único y largo registro desplazamiento. Configuration data in Configuration data out = I/O pin/pad = SRAM cell • • Consideramos también que el principio y fin de esta larga cadena es accesible desde afuera. El pin de configuration data out solo se usa si estamos configurando varias FPGA´s en cascada. Proceso de Configuración • • • • Las celdas de configuración las podemos ver como un larguísimo registro desplazamiento… pero esto no es así realmente. Lo que realmente sucede …. Es muy complejo. Si alguien quiere entenderlo… la única documentación que encontré es la patente… Pero lo que si podemos entender es lo que explica muy intuitivamente Maxfield en su libro (The Design Warrior…) Y es algo así: – La FPGA contiene un registro desplazamiento formado por, digamos que 1024 flip-flops. A este registro xilinx lo denomina frame. – A su vez, el conjunto de celdas de configuración (no son FF sino latches), tambien están organizados en frames. – Los bits van entrando serialmente a este registro. Cuando se llena, una circuitería especial copia en paralelo estos valores a los frames de latches. • • • Los bloques de RAM embebidos se implementan con latches de SRAM, y estos latches son las celdas de configuración que forman parte de esa “imaginaria” cadena. La LUT, formada por 16 latches, también es parte de esa cadena… Y asi….como ven, todo está muy mezclado, lógica y configuración… JTAG Port • • Actualmente, las FPGA vienen equipadas con un port JTAG. El port JTAG fue originalmente diseñado para testear circuitos en las placas, escaneando sus pines. • JTAG está construido en los pines del chip. Durante el testing los pines se desacoplan de sus funciones normales y funcionan como un shift register. • El puerto JTAG tiene 4 señales (una de entrada de datos, otra de salida, una de reloj, y modo de operación). • Internamente el controlador JTAG tiene un registro de operación, que permite decidir que hacer con los datos. Una de estas operaciones es : conectar el registro de configuración SRAM a la cadena de scan del JTAG. JTAG Port JTAG data out JTAG data in From previous JTAG filp-flop To internal logic Input pad Input pin from outside world JTAG flip-flops From internal logic To next JTAG filp-flop Figure 5-9 Output pin to outside world Output pad JTAG JTAG data out JTAG data in FPGA Primary scan chain Core Figure 5-10 Internal (core) scan chain