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