Está en la página 1de 7

Los FPGA pueden ejecutarse a velocidades más altas que la de la simulación, y detectarán

errores y errores que no pueden detectarse en la simulación, como problemas de


sincronización del sistema. La depuración de problemas de diseño e integración del sistema en
FPGA es una tarea difícil debido al acceso limitado a las señales internas, el diseñador solo
puede observar las señales conectadas a los pines de salida FPGA.

Los analizadores lógicos integrados se utilizan para proporcionar visibilidad para las señales
internas dentro del FPGA.

Estos analizadores se implementan en los recursos FPGA, usan bloques de memoria integrados
como búferes de rastreo (trace buffers).

La principal desventaja de usar analizadores lógicos integrados es que las señales observadas
que están conectadas al búfer de rastreo del analizador lógico incorporado se seleccionan
antes de sintetizar, colocar el diseño del usuario y enrutado.

La reconfiguración parcial dinámica (DPR) para FPGAs permite configurar una parte de la FPGA
mientras el resto de la lógica sigue funcionando.

En DPR, el diseño consta de varios Módulos reconfigurables (RM), cada módulo tiene varios
modos que se cambian durante el tiempo de ejecución de acuerdo con los modos operativos
del sistema. Una región reconfigurable (RR) es una ubicación en el FPGA en la que se asigna el
RM.

DPR extiende la flexibilidad de diseño a través del mapeo de múltiples RMs al mismo RR físico,
lo que reduce el costo de diseño y el uso de recursos.

Nuestro enfoque utiliza DPR en FPGA para aliviar los problemas del uso de analizadores lógicos
integrados al dividir la gran cantidad de todas las señales potenciales para la depuración. Para
cada modo del RM, se conecta un conjunto de señales a las sondas del analizador lógico
incorporado. La metodología se puede extender para usar los pines de salida del FPGA para
observar las señales seleccionadas en lugar del analizador lógico incorporado, conectando las
salidas del RM a los pines de salida del FPGA. La metodología propuesta evita la compilación de
todo el flujo de FPGA al cambiar las señales observadas durante el tiempo de ejecución, y
también controla el tamaño del analizador lógico controlando el número de sus sondas sin
afectar la observabilidad de las posibles señales de depuración, ya que son todavía observables
cambiando el modo de RM en tiempo de ejecución.

Mejorar la depuración de FPGA utilizando técnicas basadas en escaneo o trazas.

En ese caso, el diseñador necesita repetir el flujo de diseño de FPGA desde la síntesis hasta la
programación de FPGA, lo que lleva mucho tiempo. Además, observar un gran número de
señales no es factible en el flujo de depuración tradicional debido a los recursos limitados de
la FPGA.

Esto obliga al diseñador a repetir el flujo de diseño de FPGA varias veces para observar
diferentes conjuntos de señales para depurar diferentes escenarios defectuosos.

En este trabajo se presenta un nuevo enfoque para la depuración de FPGA para superar las
limitaciones del flujo de depuración de FPGA tradicional. Este enfoque permite al diseñador
cambiar entre las señales en tiempo de ejecución sin necesidad de repetir el flujo de diseño
de FPGA. Esto se logra insertando un RM en el diseño para cambiar entre las señales a
observar. Este RM se implementa en un RR en el FPGA. Todas las señales potenciales a
observar están conectadas como entradas a este módulo.

Las salidas del RM están conectadas al analizador lógico incorporado o los pines de salida de
depuración. En este trabajo se presenta un nuevo enfoque para la depuración de FPGA para
superar las limitaciones del flujo de depuración de FPGA tradicional. Este enfoque permite al
diseñador cambiar entre las señales en tiempo de ejecución sin necesidad de repetir el flujo
de diseño de FPGA. Esto se logra insertando un RM en el diseño para cambiar entre las
señales a observar. Este RM se implementa en un RR en el FPGA. Todas las señales
potenciales a observar están conectadas como entradas a este módulo.

Las salidas del RM están conectadas al analizador lógico incorporado o los pines de salida de
depuración.

Para cada modo del RM, se conecta un conjunto de señales a las sondas del analizador lógico
incorporado. Para cada modo, un conjunto de señales se enruta a la salida mientras que las
demás permanecen desconectadas, por lo que solo se usarán memorias intermedias para
hacer esta conexión. Esta es una gran ventaja para usar este enfoque porque el área será lo
más mínima posible en comparación con otros enfoques que usan MUX para cambiar entre
los conjuntos de señales como el enfoque propuesto en [10].

Para cada modo, se genera un flujo de bits parcial y se utilizará para reprogramar el RR en
tiempo de ejecución. Se generan flujos de bits parciales durante el flujo de diseño DPR y se
guardan en una memoria externa. El tamaño de un flujo de bits parcial es directamente
proporcional al tamaño del RR [11]. Dado que el área consumida por cada modo del RM es
muy pequeña porque solo usa memorias intermedias, el tamaño del flujo de bits parcial será
pequeño y, en consecuencia, la reconfiguración requerirá pocos milisegundos para
reprogramar el RR. El pequeño tiempo de reconfiguración es una gran ventaja para el
propuesto enfoque en este trabajo cuando se compara con el flujo de depuración de FPGA
tradicional, ya que evita la recompilación, y también cuando se compara con otros enfoques
que hacen modificaciones en el flujo de bits y luego reprograman todo el FPGA como en [10].

El flujo de depuración de FPGA propuesto se muestra en la figura 5.


Estamos interesados en calcular las métricas para el RM para compararlo con el MUX de área
optimizada presentado en [10]. El proceso DPR se realiza utilizando el puerto de
configuración externo JTAG en serie para cargar los flujos de bits parciales de las interfaces
de los modos de depuración desde una PC externa a la memoria de configuración FPGA con
una velocidad de datos de 66 Mb / s [11].

El atributo de Xilinx, keep, se utilizó para evitar la eliminación de estas señales durante la
optimización.

La depuración de dispositivos FPGA es una tarea difícil debido al acceso limitado a las señales
internas en el diseño. El flujo de depuración tradicional requiere una nueva compilación del
flujo de diseño de FPGA para cambiar el conjunto de señales observadas, ya sea a través del
analizador lógico incorporado o los pines de salida del FPGA. Este trabajo presenta una nueva
técnica para usar el flujo de diseño DPR para reducir el costo de la depuración en dispositivos
FPGA. La nueva técnica tiene un uso de área pequeña ya que el flujo DPR permite la
conmutación entre señales para usar buffers solo para conectar un conjunto de señales
seleccionado al analizador lógico incorporado o los pines de salida FPGA. La reconfiguración
de FPGA para cambiar el conjunto de señales rastreadas requiere milisegundos para
programar el RR en el FPGA.
La reconfiguración parcial (PR) es la capacidad de reconfigurar áreas seleccionadas de
un FPGA en cualquier momento después de su configuración inicial.
La reconfiguración parcial dinámica o reconfiguración parcial activa, permite cambiar
una parte del dispositivo mientras el resto de un FPGA aún se está ejecutando.
La reconfiguración parcial dinámica se lleva a cabo para permitir que el FPGA se adapte a los
algoritmos de hardware cambiantes, mejore la tolerancia a fallas y la utilización de recursos,
mejore el rendimiento o reduzca el consumo de energía. DPR es especialmente valioso
cuando los dispositivos operan en un entorno de misión crítica que no se puede interrumpir
mientras se redefinen algunos subsistemas.

En la reconfiguración parcial estática, el dispositivo no está activo durante el proceso


de reconfiguración. En otras palabras, mientras los datos parciales se envían al FPGA, el
resto del dispositivo se detiene y se muestra después de que se completa la
configuración.
Xilinx inc. sugiere en [2] dos estilos básicos de reconfiguración dinámica en un solo FPGA: la
reconfiguración parcial basada en la diferencia y la reconfiguración parcial basada en el
módulo.

La reconfiguración parcial basada en la diferencia se puede utilizar cuando se realiza un


pequeño cambio en el diseño. Es especialmente útil en caso de cambiar las ecuaciones de la
tabla de búsqueda (LUT) o el contenido de bloques de memoria dedicados. El flujo de bits
parcial solo contiene información sobre las diferencias entre la estructura de diseño actual
(que reside en el FPGA) y el nuevo contenido de un FPGA.

Cambiar la configuración de un módulo de una implementación a otra es muy rápido, ya que


las diferencias de flujo de bits pueden ser extremadamente menores que todo el flujo de bits
del dispositivo.

La reconfiguración parcial basada en módulos utiliza conceptos de diseño modular para


reconfigurar grandes bloques de lógica. Las distintas partes del diseño a reconfigurar se
conocen como módulos reconfigurables. Debido a que las propiedades específicas y los
criterios de diseño específicos deben cumplirse con respecto a un módulo reconfigurable,
cualquier diseño FPGA que pretenda utilizar la reconfiguración parcial debe planificarse y
presentarse teniendo esto en cuenta.

VENTAJAS DE EAPR

1) Se elimina el requisito descrito en PR para dispositivos Virtex-II para regiones PR de


columna completa. El flujo EAPR ahora permite regiones PR de cualquier tamaño rectangular
en Virtex-4.

2) La macro del bus se basa en el segmento, no en el búfer triple. Esta mejora drásticamente
el rendimiento del tiempo y simplifica el proceso de creación de un diseño de PR.

Las macros de bus basadas en sectores proporcionan medios para bloquear el enrutamiento
entre los PRM y el diseño base, haciendo que el pin PRM sea compatible con el diseño base.
Como resultado, todas las conexiones entre el PRM y el diseño base deben pasar a través de las
macros del bus, excepto la señal del reloj. La macro de bus basada en segmentos cableados
garantiza que los canales de enrutamiento entre los módulos permanezcan sin cambios,
evitando contenciones dentro del FPGA y manteniendo la conexión correcta entre módulos,
aunque cada vez que se realice una reconfiguración parcial. El método de diseño de
reconfiguración parcial proporciona varios tipos de macro de bus en términos de dispositivo,
dirección y sincronía.

La macro de bus debe colocarse en el límite del módulo reconfigurable.

El módulo estático es el diseño que permanece en funcionamiento durante el proceso de PR.


El módulo de reconfiguración parcial (PRM) es el módulo de diseño que se puede
intercambiar dentro y fuera del dispositivo sobre la marcha, se pueden definir múltiples PRM
para una región específica. La Región de reconfiguración parcial (PRR) es la parte de la FPGA
que se reserva para módulos reconfigurables parciales.

Las macros de bus (BM) son macros preenrutadas y enrutadas previamente. Todas las
señales no globales entre los PRM y los módulos estáticos deben conectarse a través de BM.

EAPR. En este sistema, un contador Gray y un contador Johnson se reconfiguran


dinámicamente en un chip FPGA Xilinx Virtex4-FX12. El módulo de control led que habilita los
leds es parte del módulo estático.

FLUJO DE DISEÑO

A. Diseño y síntesis del lenguaje de descripción de hardware (HDL)


1) Diseño de Top-Level

Solo contiene instancias de E / S, primitivas de reloj, instancias de módulo estático,


instancias de módulo de reconfiguración parcial y declaraciones de señal. Además, el
módulo Top-level debe definir macros de bus. El diseño basado y cada PRM deben
conectarse a través de la macro de bus.
2) Diseño base

Los módulos estáticos contienen lógica que permanecerá constante durante la


reconfiguración. Este paso es el mismo con el método de diseño HDL tradicional, pero
los módulos estáticos no pueden contener ningún reloj o primitivas relacionadas con
el reinicio.

3) Diseño de PRM

Al igual que los módulos estáticos, los módulos de reconfiguración parcial tampoco
deben contener señales de reloj globales, pero pueden usar las del módulo Top-level.
Al diseñar múltiples módulos reconfigurables para utilizar la misma área
reconfigurable, el nombre del componente y la configuración del puerto de cada
módulo debe coincidir con la Instanciación del módulo reconfigurable ubicada en el
módulo Top-level. El sistema propuesto tiene dos PRM que son el contador Gray y el
contador Johnson.

B. Establecer restricciones de diseño

Las restricciones de diseño incluyen el grupo de área, el modo de reconfiguración, la


restricción de tiempo y las restricciones de ubicación. La restricción del grupo de área
especifica qué módulos del módulo de nivel superior son estáticos y cuáles son
reconfigurables.

C. Implementar diseño base


La implementación del diseño base sigue tres pasos: es decir, traducir, mapear y
colocar y encaminar (PAR).
D. Implementar PRM
Cada PRM debe implementarse por separado y sigue los pasos de implementación
del diseño base: traducir, mapear y PAR.
E. Fusionar
Durante la fase de fusión, se construye un diseño completo a partir del diseño base y
cada PRM. En este paso, se crean muchos flujos de bits parciales para cada PRM y
flujos de bits completos iniciales para configurar el FPGA.

Dado que el tamaño del flujo de bits es directamente proporcional al número de recursos
configurados [8], la reconfiguración parcial utiliza un flujo de bits más pequeño que un flujo
de bits completo para el FPGA. El beneficio directo es menos espacio necesario para
almacenar las configuraciones necesarias para la operación. Como los tiempos de
reconfiguración dependen en gran medida del tamaño y la organización de los PRR.

Un beneficio adicional es que el tiempo de reconfiguración es más corto.

Clara ventaja del flujo de EAPR sobre el XAPP290, este método puede disminuir el tamaño de
los flujos de bits obviamente.

También podría gustarte