¿De dónde vienen las líneas de selección de mux en un CLB?

4

Estoy tratando de entender el funcionamiento interno de un CLB en un FPGA pero parece que no puedo descubrir exactamente cómo funcionan los multiplexores de enrutamiento DENTRO del CLB. Bueno, entiendo cómo funcionan y qué hacen, pero parece que no puedo encontrar dónde se almacena la información para configurar los multiplexores.

Esta imagen es de un manual de Xilinx spartan-3. Entiendo que los datos de configuración cargan valores en la LUT y configuran el mux para elegir el enrutamiento, pero si no me equivoco, la señal elegida con el mux debe estar constantemente activada o desactivada, es decir, el mux no tiene memoria. Esta información de selección debe almacenarse en algún lugar, pero ¿dónde?

    
pregunta nhoughto

3 respuestas

3

Mirando una descripción más detallada de la división (en la página 204 de esta UG ) Nos proporcionará estos detalles. Como puede ver, la señal de selección para el FiMUX viene de la entrada BY a la mitad superior del segmento y el F5MUX se controla mediante la entrada BX a la mitad inferior. Estas dos entradas tienen funciones adicionales y se describen en la página 207 de ese mismo PDF como:

  

Pasar por alto o salida (SLICEM) o elemento de almacenamiento, o control   entrada a F5MUX, entrada para llevar la lógica o entrada de datos a la RAM   (SLICEM)

y

  

Pasar por alto o salida (SLICEM) o elemento de almacenamiento, o control   entrada a FiMUX, entrada para llevar la lógica o entrada de datos a la RAM   (SLICEM)

Por supuesto, esto es específico del Spartan-3, que mencionas en tu pregunta. Sin embargo, en general, los multiplexores de función amplia (como MUXF7 / MUXF8 en Virtex-5 / Virtex-7) se controlan desde una entrada externa (como SELF7 para FPGA más recientes que tienen LUT6). Esto es un resultado del hecho de que estos multiplexores se utilizan para implementar funciones amplias. Dado que la entrada de la función debe venir externamente (ya que una función de 7 entradas con una entrada fija no es mejor que una función de 6 entradas que se ajusta a la LUT6), es lógico que no se pueda controlar simplemente por un bit de configuración. / p>     

respondido por el Andrey Akhmetov
2

La mayoría del enrutamiento se ve como selecciones de MUX basadas en un flujo de bits fijo. A continuación se muestra una tabla de fusibles para un FPGA al estilo de Manhattan que hice que era muy similar a una serie Xilinx 4000 más antigua (opciones hechas porque tengo el enrutador de gráficos). El CLB contiene 4 bloques BLE. La tabla de verdad de la LUT tiene 16 bits con entradas que forman los MUX en las líneas de entrada que componen el BLE.

Esto significa que la selección de LUT es dinámica pero la configuración de bits es estática; sin embargo, puede tener lógica dinámica pero recibe un golpe de velocidad porque los bits de estado en realidad están saturados para los árboles MUX basados en nFET.

    
respondido por el b degnan
-1

En realidad, hay algo de memoria que controla el mux, en la mayoría de los FPGA es sram, algunos CLB usan eeprom y algunos CPLD de bajo consumo usan flash, es la memoria que se programa cuando se configura el chip, no es realmente accesible para el usuario ya que cada uno El fabricante utiliza su propia forma especial de estructurar los archivos de configuración, pero los archivos de configuración programan esos muxes, configuran los relojes y cargan las LUT y la memoria del usuario (si están presentes)

    
respondido por el Sam

Lea otras preguntas en las etiquetas