ARQUITECTURA DE UNA FPGA
Es complicado referirse a este tema como un concepto general, ya que cada compañía presenta sus propias arquitecturas y se encuentran en constante desarrollo. Básicamente en una FPGA la lógica se divide en un gran número de bloques lógicos, estos bloques se encuentran distribuidos a través de todo el chip en una infinidad de interconexiones programables, en los márgenes del chip se forma una fila de IOBs. En esta sección se describirá la arquitectura de la familia Spartan 3E de Xilinx, debido a que será la FPGA a utilizar para la implementación.
Se puede identificar cuatro elementos que son a grandes rasgos los componentes más importantes y ahora veremos más en profundidad que es cada uno.
CLB: Un CLB es la pieza fundamental de un FPGA y es lo que le da su capacidad para asumir diferentes configuraciones de hardware. Un FPGA en su forma más básica es un chip de CLB, juntos hacen un FPGA. Los muchos miles de estos que se pueden encontrar en los FPGA modernos pueden programarse para realizar virtualmente cualquier función lógica.
Un CLB individual consiste en un conjunto de slices. En el caso de la familia Spartan-3E cada CLB contiene cuatro slices, y cada slice contiene dos tablas de consulta (LUT) para implementar la lógica y dos elementos de almacenamiento dedicados que se pueden usar como flip-flops o latches.
Los LUT se pueden usar como una memoria 16x1 o como un registro de desplazamiento de 16 bits, y los multiplexores adicionales y la lógica de transporte simplifican las funciones de lógica amplia y aritmética.
La lógica de propósito más general en un diseño se asigna automáticamente a los recursos de la porción en los CLB.
Slices: Cada CLB comprende cuatro slices interconectados. Estos slices se agrupan en pares. Cada par está organizado como una columna con una cadena de acarreo independiente. El par izquierdo admite funciones lógicas y de memoria y sus slices se denominan SLICEM. El par derecho admite solo la lógica y sus slices se denominan SLICEL. Por lo tanto, la mitad de las LUT admiten tanto la lógica como la memoria mientras que la mitad solo admite la lógica, y los dos tipos se alternan en las columnas de la matriz. En resumen, un slice incluye dos generadores de funciones LUT y dos elementos de almacenamiento, junto con lógica adicional, como se verá en la siguiente figura.
Comentarios
Publicar un comentario