You are on page 1of 8

A General Purpose FPGA Based

Radar Controller and Signal Processor
Charles Martin*, Eric Loew, Chris Burghart
National Center for Atmospheric Research, Boulder, Colorado

1. Introducción
1 implementaciones de radar comenzaron como sistemas completamente
analógicos. Las tecnologías digitales han ocupado puestos importantes durante
muchos años, pero hasta las últimas dos décadas la funcionalidad digitales
importante comenzó en gran medida en el analógico al digital y digital para
conversiones analógicas que se produjeron en la banda base. Señal abajo y
conversión ascendente, así como formación de impulsos especializada, se
realizaron con módulos de hardware discretos. Como convertidores analógicos
se convirtieron capaz de operar a frecuencias de muestreo de FI, se hizo
posible migrar el procesamiento de SI en el mundo digital. Normalmente, esto
se realizó mediante placas de circuito de encargo diseñado en torno a
componentes especializados, junto con procesadores de señal digital a bordo.
Esta solución de software integrado de hardware y luego realizar las funciones
de procesamiento de señal hacia arriba y hacia abajo de conversión y otros, y
se les permite la comunicación con el ordenador central de ocurrir a
frecuencias de muestreo de banda base.
En la última década, las nuevas capacidades han surgido en el ámbito digital,
debido al aumento de capacidades de la Field Programmable Gate Array
(FPGA). Este dispositivo proporciona una base para la construcción de hardware
de propósito general que se puede adaptar a las necesidades de
procesamiento de señales de radar o muchos tipos (u otro) sistemas. Debido a
que la FPGA es un re-configurable, dispositivo de computación genérico, y de
alto rendimiento, puede servir como el componente central en un control de
propósito general y la señal de subsistema de procesador. De hecho, ahora hay
transceptores comerciales disponibles que pueden ser utilizados en tan sólo de
esta manera. Los diseñadores de sistemas de radar pueden configurar una
tarjeta de transceptor comprado, en lugar de tener que desarrollar hardware
complejo y especializado. El propósito de este trabajo es resumir uno de estos
proyectos, y proporcionar orientación para aquellos que están explorando la
idea de desarrollar capacidades similares. Una breve introducción a la FPGA se
da primero, seguido por una descripción de la arquitectura del procesador.
Ejemplos de algunos diversa dirección de Autor para la correspondencia *:
Charles Martin, del Centro Nacional de Investigación Atmosférica, P.O.
2 El FPGA
El FPGA es simplemente un circuito integrado con un número extremadamente
grande de celdas lógicas digitales genéricas. Estas células pueden ser
dinámicamente conectadas para crear bloques de construcción capaces de
funciones digitales básicos. Estos componentes se combinan para producir una
lógica más sofisticada, y así sucesivamente hasta que se realiza una
funcionalidad muy compleja. Por ejemplo, los dispositivos con la complejidad

en el entorno digital reconfigurable de la FPGA. memorias. El Medio Ambiente Sistema Integrado de Xilinx (ISE) es un paquete de esarrollo muy conocido. Una muestra de código VHDL se presenta en la figura 1. se define en el lenguaje. que los datos digitales a través de la puerta de las células configurados. conversión de frecuencia. El número de líneas de E / S digitales pueden contarse por cientos de los dispositivos más grandes. El desarrollador crea descripciones de texto que definen las conexiones y operaciones de entidades tales como señales. etc. Estos componentes son entonces "conectados" juntos para implementar un sistema de control y procesamiento de señal completa. El FPGA es también muy adecuado para la aplicación de cálculos pipeline que pueden ser altamente paralelizado. Procesamiento en el FPGA es impulsada por numerosas señales de reloj. cuando se trata de aplicaciones de frecuencias mixtas. Operaciones lógicas y numéricas básicas. La configuración de la FPGA completa se definirá en una colección de archivos de texto VHDL que se puede modificar con cualquier editor de texto de código fuente. GESTIÓN reloj es uno de los aspectos más desafiantes de diseño de firmware. como el filtrado. originalmente ubicada en componentes digitales analógicas o discretas. la actividad de edición se lleva a cabo generalmente dentro de un entorno de desarrollo integrado. controladores de memoria DMA. Componentes computacionales sofisticados se construyen a partir de estos bloques de construcción. 3 El FPGA Workflow La configuración de la FPGA se especifica comúnmente con un lenguaje de especificación de hardware. y controladores de interfaz de bus PCI pueden ser sintetizados por FPGAs modernas.de las CPU completa. la suma y el cambio. Sin embargo. de enganche. registros y buses. y de la transformada rápida de Fourier. por ejemplo. Afortunadamente las herramientas de desarrollo FPGA ofrecen capacidades para gestionar correctamente la intersección de dominios de reloj. La secuencia típica del desarrollo es el siguiente: • Editar el archivo VHDL (s) • Prueba a través de la simulación • Sintetizar un flujo de bits • Descargar el flujo de bits a la FPGA • Probar y depurar . De hecho una única FPGA menudo se estará presentando todas estas funciones y más de una vez. Esto es común para los diseños que se conectan las señales que se derivan de si las tasas para los autobuses de computadoras. Proporciona una colección integrada de herramientas que gestionan el flujo de trabajo FPGA completa. tales como el VHSIC Hardware Description Language (VHDL). Estos nos permiten implementar muchas de las funciones. El dispositivo FPGA tendrá conexiones I / O digitales para traer las señales dentro y fuera del chip.

La tarea lugar y la ruta es a la vez combinatoria y heurística. y así un ciclo a través del flujo de trabajo puede llevar mucho tiempo. Primero el lenguaje de descripción se traduce en una red de especificaciones registro lógicas. El flujo de bits ahora debe ponerse a disposición de la FPGA. y es un reto computacional significativo. en general. sólo la carga FPGA volátil se puede realizar a través de la .• Volver a la edición Algunos de estos pasos puede ser bastante largo. En algunos casos. esta red lógica debe ser asignado a las celdas lógicas reales dentro de la FPGA física. La simulación es esencial para el desarrollo FPGA eficiente. La etapa de síntesis es donde la descripción VHDL se convierte en una especificación para las conexiones celulares digitales en el FPGA. Esto elimina la necesidad de hardware especializado para apoyar la capacidad JTAG. Un vector est de entradas simuladas son creados y conectado al componente. Módulos Higherlevel compuestos de múltiples componentes se simulan y se ensayaron de la misma manera. y la entrada de reloj es impulsado con el fin de ejecutar la simulación. y no hay garantía de que la herramienta será capaz de llegar a una solución que satisfaga las limitaciones de tiempo de diseño. y la etapa de síntesis está libre de errores. Crafting y que pasan con éxito los bancos de pruebas de simulación son fundamentales para la creación de diseños rmware FPGA fiables. Hay varios sub-pasos de este proceso. que proporciona una conexión directa por hardware al dispositivo FPGA. Por último. Las simulaciones son suficientemente preciso que. que es la especificación de nivel más bajo de las conexiones FPGA. si el VHDL simula correctamente. Las salidas se verifican para el comportamiento correcto. la descarga se puede realizar a través de un nterface JTAG. La especificación del registro se asigna luego a los tipos de componentes básicos disponibles en la FPGA particular que se utilice. En cualquier caso. el lugar y la ruta se ejecuta en unos 20 minutos. a menudo habrá un mecanismo para cargar el FPGA directamente a través del bus de host. Las herramientas de desarrollo proporcionan instalaciones que permiten al ser humano para proporcionar alguna orientación. Herramientas para facilitar la simulación son proporcionados por el entorno de desarrollo. Si la FPGA es parte de una tarjeta se encuentra en plano posterior de un ordenador central. como sugiriendo lugares lógicos para colocar los componentes principales del diseño. El algoritmo lugar y la ruta es iterativo. pero es más común para "quemar" en una memoria no volátil tal como una EEPROM. Para este proyecto. El producto de la síntesis es el "flujo de bits". Se puede descargar directamente a la FPGA. como el software intenta converger en una solución que cumple con los requisitos de temporización. La parte de síntesis del flujo de trabajo puede hacer que el flujo de trabajo FPGA a ser tedioso. Esta es otra razón por la simulación puede mejorar en gran medida el ciclo de desarrollo. que posteriormente se carga en la FPGA volátil. el firmware generada ejecutará correctamente en la FPGA. Esta última actividad se conoce como "lugar y la ruta". No es raro para el lugar y la tarea ruta a requieren 12 horas o más en una estación de trabajo capaz.

El usuario final puede personalizar el VHDL suministrado para sus fines específicos. la memoria local. Una vez que la FPGA se ha configurado con el flujo de bits. Lo ideal es que vendrá con una especificación de proyecto completo para un entorno de desarrollo como el ISE. digital I / O líneas e interfaces de bus. Una amplia variedad de tarjetas de soporte están disponibles para acoger el PMC en placas madre de ordenador común. 4 Transceptor Tarjetas El FPGA proporciona la base de cálculo para un procesador controlador radar y la señal. El Pentek Modelo 7142 (Figura 2) se utilizó para este proyecto. El paquete de firmware puede ser una versión de código VHDL que se ejecutará en la FPGA y proporcionar funcionalidad de línea de base. Existe otra técnica de gran alcance para la creación de componentes de firmware. Un algoritmo de procesamiento puede estar escrito en un lenguaje de alto nivel. esto debe hacerse indirectamente. transformadas de Fourier rápidas. Este código se compila a continuación. Matlab proporciona un conjunto de herramientas completo para la elaboración de elementos de procesamiento de señales. Dibujos esquemáticos tipo tienen un valor incalculable. etc. Por lo general. Vendedores comerciales proporcionan productos que proporcionan esta funcionalidad de propósito general. por lo que la tarjeta se puede utilizar en algunos casos sin ningún desarrollo VHDL. Como es común con estos productos. lo que proporciona a los conductores y bibliotecas de aplicaciones para el sistema host. Se debe lógicamente organizada y bien documentado. tanto en los archivos VHDL y con otros documentos. Cabe señalar que la calidad del paquete de firmware tendrá un impacto significativo en el éxito del desarrollo. y la capacidad de JTAG aún se requiere para la programación del almacenamiento no volátil. El FPGA se combina típicamente con analógico-digital y digital-analógico convertidores. pero debe integrarse con otros equipos. El proveedor de hardware normalmente ofrece un paquete de tablero de soporte.placa posterior de acogida. como Matlab. Si se detectan problemas FPGA. La funcionalidad completa de Matlab está disponible para investigar y caracterizar el rendimiento de estos componentes. transmitir y controlar las funciones de señal. la depuración puede ser iniciado. esta tarjeta compacta se basa en el formato de tarjeta intermedia Portable (PMC). las pruebas del sistema y depuración se puede realizar. Los mejores paquetes contendrán bloques de usuario explícitas incrustados en . tales como filtros. tal como mediante la alteración de la configuración del sistema con el fin de exponer y diagnosticar el comportamiento FPGA. y el código fuente del firmware para el FPGA. Xilinx también proporciona un método muy potente (ChipScope) para la inserción de sondas de firmware en el código VHDL para que el comportamiento lógica puede ser rastreado directamente dentro de la FPGA operativo. Los dos primeros ofrecen facilidades de acceso a la tarjeta en diversos sistemas operativos. para producir un componente firmware que se puede integrar con el código VHDL. Es necesaria una tarjeta transceptor que puede proporcionar recibir.

GateFlow ofrece un diseño de firmware referencia que es capaz de ejecutar la tarjeta transceptor con muestreo básico A / D. sin embargo. Esta consolidación tiene varios beneficios. marcado el pulso. El firmware SD3C se basa en la infraestructura "GateFlow" Pentek. GateFlow proporciona "bloques de usuario" específicos que interceptan el flujo de datos a través de la FPGA. La implementación SD3C se describe aquí en términos de la tarjeta Pentek que actualmente se ejecuta en. 6. sin ninguna modificación de hardware adicional. Gran parte del firmware se puede reutilizar con otro hardware vendedor. . Debido a que la conversión de frecuencia y el filtrado se producen en el dominio digital. enrutamiento de datos y la configuración del dispositivo. la integración coherente y procesamiento de código de cortesía se implementan en componentes VHDL que se crean instancias de los bloques de usuario. pero debe tenerse en cuenta que una arquitectura muy similar podría realizarse usando muchas de las tarjetas transceptoras disponibles comercialmente disponibles. construcción y ensayo de algunas secciones analógicas caros son completamente eliminados.el flujo de datos. El diseño. filtrado adaptado.1 SD3C Firmware La figura 4 presenta un diagrama de alto nivel de la tubería SD3C de procesamiento de señales. que proporciona capacidades flexibles para la captura de memoria interna. 5 Implementaciones de radar Diagramas de alto nivel que representan los sistemas de radar con y sin una tarjeta de transceptor basado en FPGA se muestran en la Figura 3. Se basa en: (a) el firmware que opera en una tarjeta de transceptor Pentek 7142. para facilitar la inserción de un tratamiento personalizado. 6 El Digital de Down Software-Defined Converter (SD3C) El SD3C es un framework que implementa las funciones de procesamiento y control de señales de radar. Lo más importante. El soporte de la tarjeta para la tarjeta Pentek se encontró que era de primera clase en este sentido. y (b) las bibliotecas de soporte de software para el sistema informático central. es que todas estas funciones se pueden adaptar para aplicaciones específicas. La conversión hacia abajo. las respuestas de procesamiento están completamente emparejados y caracterizados sin ningún procedimiento de medición. y en la que el usuario puede insertar un tratamiento personalizado. La tarjeta Pentek es muy sofisticado. La tarjeta transceptor sustituye a un gran número de componentes discretos. Los bloques de usuario cumplen algunas pero no todas las necesidades SD3C. Estos dos subsistemas interactúan a través del bus de computadoras que la tarjeta está conectada. D / A de salida y la E / S digital.

el vendedor comercializa una interfaz de software de bajo nivel que controla las funciones de las tarjetas básicas. el impulso de transmisión es generada por la alimentación de los valores de banda de base a la convertidor elevador. Las funciones de las clases primarias se describen en la Tabla 2. Parámetros típicos incluyen coeficientes de filtro. GateFlow tiene un módulo de registro de control que permite que el software de host de escribir y leer registros de configuración para las funciones GateFlow existentes. Estas señales se pueden usar dentro de la FPGA a la puerta del procesamiento de la señal. etc. La secuencia típica programa es el siguiente: . Muchas de las funciones personalizadas dentro del SD3C son configurables. Si se requieren señales adicionales. y por lo tanto no proporciona inherentemente las funciones necesarias para los sistemas de impulsos. Un componente temporizador programable VHDL fue creado con el fin de generar señales de temporización. y para configurar otras funciones en la FPGA. y el control de potencia del amplificador PRF. períodos de temporizador. 6. Como es común con la mayoría de las tarjetas de transceptores comerciales. y era GateFlow modificado para permitir también que esto se sincroniza con la PRF. cuya clase jerarquía se muestra en la Figura 5. supresor. Estas tres clases son todo lo que se requiere con el fin de operar el transceptor como un sistema de radar. El diseño actual ofrece ocho temporizadores independientes. es una cuestión simple para crear instancias de temporizadores adicionales. y gestiona las capacidades personalizadas del firmware SD3C. donde pueden ser llevados fuera integrado para conectar a otros equipos. Este módulo fue ampliado para permitir que la misma configuración para las funciones SD3C. En este caso. ReadyFlow permite al usuario configurar y capturar datos de acceso directo a memoria (DMA) traslados en autobús. El paquete se basa en ReadyFlow SD3C para crear una interfaz de programación que representa las características de un procesador de radar. como el. Esto requirió otras áreas de GateFlow a ser modificados de manera que las señales de datos de conversión descendente podrían ser muestreados en la repetición de impulsos frecuencia (PRF) límites.GateFlow está orientada hacia el procesamiento de las comunicaciones. Una infraestructura de software implementa una capacidad de alto nivel para el equipo host para interactuar con la tarjeta. Del mismo modo. intervalos de integración. y se dirigen a los pines de E / S FPGA I. Múltiples copias del temporizador se crean instancias de las señales de temporización requeridas. La Tabla 1 resume las funciones VHDL SD3C personalizados que se incorporan a la base GateFlow. Esto toma la forma de una biblioteca C ++ clase. Pentek ofrece el paquete "ReadyFlow" para apoyar el P7142.2 SD3C software host La tarjeta transceptor y su firmware proporcionan el componente de hardware para el SD3C.

• Loop en lectura () llama a cada uno de los objetos p7142sd3cDn. Algunos de estos procesos pueden publicar los resultados para otros suscriptores de aguas abajo. archivado y procesos de productos derivados. la clase p7142sd3cDn es capaz de detectar si los datos se dejan caer durante la transferencia de DMA entre el transceptor y el sistema anfitrión. Imágenes del anfitrión transceptor FPGA. • Crear un p7142Up arriba-convertidor de objeto. según sea necesario. uno por canal.• Crear un objeto p7142sdc3. sin impactar negativamente en cualquiera de los procesos. Una arquitectura típica software de host se muestra en la Figura 6. La experiencia también ha demostrado que la separación de funciones específicas en los procesos independientes conduce a un sistema que es más simple de construir. un sistema de radar completa puede ser desarrollado. Uso de la biblioteca de clases ++ SD3C C. Esto puede convertirse en un problema en un host muy cargado con un ancho de banda de datos de gran tamaño. • Configure los temporizadores en el p7142sdc3. El proceso de transceptor digital (DRX) controla la tarjeta de transceptor. Los suscriptores son la visualización. y publica la corriente en tiempo real a múltiples abonados. lee los datos de banda base de la misma. las antenas. lo que representa una tarjeta Pentek P7142. cuyas características se resumen en la Tabla 3. y observaciones de la muestra se presentan en las figuras 8 a 16 para cada sistema. La segregación de las funciones utilizando un modelo de publicación / suscripción permite el procesamiento a distribuir entre varios hosts de la red. la ingestión de los datos de banda base recibida. que de otro modo sería ambiguo debido a retardos de transmisión de datos a través del sistema. más robusto y más fácil de solucionar. La Figura 7 ilustra una aplicación de visualización en tiempo real. Debido a que los antepone SD3C identificación de etiquetas a cada impulso recibido. Es importante que el esquema de distribución de datos permite que las conexiones entre dos procesos que vengan arbitrariamente y van. . para la configuración de la generación de pulsos de transmisión. Las etiquetas también permiten sellos de tiempo precisos que han de aplicarse a los impulsos. • Emitir una orden de arranque a la p7142sdc3. • Crear p7142sd3cDn abajo-convertidor de objetos. Estos sistemas cubren una amplia gama de capacidades. El NCAR 449 MHz de perfil del viento ha empleado con éxito este arquitectura. 7 Aplicaciones Ejemplo SD3C El SD3C se emplea actualmente en tres radares operacionales. utilizando el servicio de distribución de datos abierta (OpenDDS) como mecanismo de transporte de datos.

basado en hardware comercial. Basándonos en nuestra experiencia.8 Conclusiones Desarrollo FPGA ha sido por lo general el dominio de los equipos especializados de ingeniería de hardware digitales. La curva de aprendizaje es desafiante y requiere ganando experiencia en conceptos VHDL y diseño de sistemas FPGA. En este trabajo se beneficia en gran medida por el empleo de prácticas de ingeniería de software estándar. y por la consolidación de las funciones de muchos componentes de hardware discretos en una sola tarjeta. que tuvieron que aprender la tecnología "sobre la marcha". . El FPGA es capaz de rendimiento de procesamiento de señal muy alta. La tecnología facilita aplicaciones muy flexibles: el mismo hardware se puede personalizar para satisfacer completamente diferentes requisitos simplemente cargando el firmware específico de aplicación. y las herramientas de apoyo son complicadas y muchas veces no intuitiva. control de código fuente de revisión y seguimiento de errores. El proyecto SD3C ha demostrado que una solución FPGA. Por el contrario. trae muchos beneficios a la evolución del sistema. el proyecto SD3C fue ejecutado por un grupo muy pequeño de sistemas y software de RF ingenieros. mitigando así grandes anchos de banda de datos y cargas de CPU host. Diseñar desde la perspectiva de la arquitectura de software. • Hacer un uso completo de sondas VHDL incrustados (por ejemplo ChipScope) para diagnosticar problemas de la derecha en el chip FPGA. la aplicación de componentes muy simples que pueden rápidamente el tránsito del flujo de trabajo. El uso de la tecnología FPGA transforma muchos aspectos del desarrollo del sistema de radar en una actividad de software importante. utilizando herramientas como integrada entornos de desarrollo. y la creación de documentación incrustado mejorarán todos en gran medida la productividad del proyecto. y que se puede probar fácilmente. • Hacer el diseño tan modular como sea posible. se pueden hacer las siguientes recomendaciones a los ingenieros que recién comienzan con esta tecnología: • Ganar confianza partiendo de los conceptos básicos de VHDL. Los costes totales del sistema se reducen mediante el aprovechamiento de la utilización de una sola tarjeta FPGA entre varios sistemas. • Crear y ejecutar los bancos de pruebas de simulación para todos los componentes. El flujo de trabajo de desarrollo es intrincada y hora consumiendo. y reutilizar código VHDL siempre que sea posible. tales como los descritos aquí. Depuración y prueba puede ser muy difícil.