ES2562153B2 - Sistema y método de configuración de hardware de instrumentos programables de control, test y medida - Google Patents
Sistema y método de configuración de hardware de instrumentos programables de control, test y medida Download PDFInfo
- Publication number
- ES2562153B2 ES2562153B2 ES201531184A ES201531184A ES2562153B2 ES 2562153 B2 ES2562153 B2 ES 2562153B2 ES 201531184 A ES201531184 A ES 201531184A ES 201531184 A ES201531184 A ES 201531184A ES 2562153 B2 ES2562153 B2 ES 2562153B2
- Authority
- ES
- Spain
- Prior art keywords
- static
- user
- fpga
- dynamic
- instrument
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/21—Pc I-O input output
- G05B2219/21109—Field programmable gate array, fpga as I-O module
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Stored Programmes (AREA)
- Automation & Control Theory (AREA)
Abstract
Sistema y método de configuración de hardware de instrumentos programables de control, test y medida.#Sistema y método de configuración de hardware de un instrumento programable (10) de control, test y medida que comprende una FPGA (30) integrada con dos secciones, una primera sección estática (31) y una sección dinámica (33), conectadas por una interfaz lógica (32). La sección estática (31) comprende código implementado y prefijado de fábrica (34), previamente optimizado, mientras que la sección dinámica (33) comprende código programable (35) por el propio usuario. Se simplifica así notablemente la configuración del instrumento programable (10) por parte del usuario, además de reducirse los tiempos de compilación y optimizarse la operación y el rendimiento de la FPGA (30).
Description
5
10
15
20
25
30
35
descripcion
Sistema y metodo de configuration de hardware de instrumentos programables de control, test y medida.
objeto de la invencion
La presente invencion pertenece al campo tecnico de la electronica y, en concreto, se aplica al area industrial de los instrumentos programables para ejecutar funciones de control, test y/o medida.
antecedentes de la invencion
Durante los ultimos anos, las exigencias impuestas sobre los instrumentos programables de control, test y/o medida se han visto incrementadas notablemente. Han crecido significativamente los requerimientos en termino de numero de entradas y salidas, velocidad de adquisicion y capacidad de procesado. Adicionalmente, al requerimiento de procesar una gran cantidad de datos en tiempo real, se une la necesidad de adaptar dicho procesado a diversas aplicaciones particulares con una misma plataforma hardware y muchas veces en un tiempo muy reducido.
La tecnolog^a FPGA ('arreglos de compuertas programables en campo', del ingles 'field programmable gate array') proporciona una alternativa muy prometedora para afrontar estos retos, dado su caracter reconfigurable y su gran capacidad de procesado. No obstante, para implementar las configuraciones necesarias para la correcta operation de los instrumentos de control, test y medida, es necesario un conocimiento avanzado de hardware logico, as^ como de las herramientas de diseno altamente especializadas para FPGA, llegando a tener que definir interconexiones fisicas y tiempos de propagation de senales internas. Esto hace que para implementar sistemas basados en FPGA se requiera expertos en la materia y ademas los tiempos de implementation y puesta en marcha de estos sistemas sean muy largos incluso para usuarios expertos. Los sistemas de control, test y medida requieren las prestaciones que ofrecen las FPGA pero necesitan que su uso y puesta en marcha sea rapido y lo mas simple posible sin que el usuario tenga que ser un experto en programacion de hardware.
5
10
15
20
25
30
35
Algunas soluciones comerciales proporcionan un hardware que permite realizar aplicaciones de control, test y medida que incluyen una FPGA y le proporcionan al usuario un paquete con un proyecto marco -framework, en ingles- para la herramienta de software provista por el fabricante de la FPGA incluida en el instrumento. Este proyecto marco incluye los componentes necesarios para interactuar con el hardware fijo del equipo y el usuario puede modificarlo para agregar las funcionalidades que desee. El problema de estos sistemas es que requiere de usuarios expertos en FPGA que por lo general no es el caso de los ingenieros de control, test y medida, y ademas los tiempos de desarrollo y puesta en marcha son muy largos lo que tambien limita mucho su aplicacion a control, test y medida.
Con el fin de simplificar el proceso, existen algunas herramientas graficas que permiten implementar codigo de FPGA de manera mas sencilla, pero al no estar disenadas para ningun instrumento espedfico, siguen requiriendo interacciones complejas para su implementacion sobre el hardware de cada instrumento particular, siendo tipicamente necesario recurrir a las herramientas de software provistas por el fabricante de la FPGA incluida en el instrumento y utilizar algun proyecto marco como en el caso anterior. Es decir, estas herramientas graficas no contemplan de forma nativa la implementacion sobre instrumentos comerciales, lo cual es una tarea muy compleja y sufre de inconvenientes similares a los descriptos para la solucion anterior.
Otras soluciones proporcionan instrumentos modulares que incluyen una FPGA y un software espedfico para programar estos instrumentos, que consiste en un entorno de programacion grafico que adapta un lenguaje de programacion de software basado en bucles, condicionales, etc, a programacion hardware FPGA. La herramienta grafica de alto nivel permite simplificar el proceso de programacion del hardware FPGA para el usuario, pero a costa de una reduccion de rendimiento debido a una menor posibilidad de optimizacion comparada con una programacion realizada con herramientas avanzadas. Ademas el mecanismo de programacion de software adaptado a hardware presenta serios inconvenientes que segun el uso que haga el usuario suele resultar en un uso muy deficiente de la FPGA.
En todos los casos anteriormente mencionados, durante el proceso de personalizacion del hardware FPGA del instrumento por parte del usuario se implementa por completo toda la logica de la FPGA, y esto ocurre cada vez que el usuario cambia alguna funcionalidad por m^nima que sea. Esto sumado a la limitada capacidad de optimizacion de un usuario no
5
10
15
20
25
30
experto, compromete seriamente el rendimiento y el funcionamiento tanto de las funciones induidas en las librerias del fabricante como de las funciones adicionales desarrolladas por el usuario. Tambien por este motivo, los tiempos de compilation y puesta en marcha del instrumento pueden resultar prohibitivamente largos.
En definitiva, sigue existiendo la necesidad en el estado de la tecnica de un metodo y sistema de configuration de hardware de instrumentos programables de control, test y medida, que permita configurar dinamicamente dichos instrumentos de manera sencilla y optimizada, sin necesidad de tener conocimientos espetificos de FPGA y reduciendo los tiempos de espera asociados a cambios en dicha configuracion.
descripcion de la invencion
La presente invencion sirve para solucionar el problema mencionado anteriormente, resolviendo los inconvenientes que presentan las soluciones comentadas en el estado de la tecnica, mediante una reconfiguration parcial de la FPGA que separa: una logica FPGA dinamica programable por el usuario y una logica FPGA estatica prefijada implementada de fabrica. Ambas logicas son reconfigurables, pero la logica estatica se desarrolla en fabrica por expertos, mientras que la dinamica se implementa con herramientas simplificadas para el usuario final, quien no necesita conocimientos de programacion de FPGA.
En el contexto de la invencion, se definen y usan los siguientes conceptos:
- Codigo de usuario: Es el codigo fuente "de alto nivel" que implementa las funcionalidades FPGA de usuario para personalizar la operation del instrumento. programable de control, test y/o medida
- Logica FPGA: Es el resultado del proceso de implementation del codigo FPGA en la FPGA y comprende las compuertas logicas y todos los componentes internos que componen la FPGA, su posicionamiento e interconexionado dentro de la FPGA.
■ Logica FPGA Dinamica: Es el resultado de la implementacion del codigo de usuario.
■ Logica FPGA Estatica: Es logica FPGA prefijada, desarrollada e implementada de fabrica la cual no puede ser modificada por el usuario.
5
10
15
20
25
30
35
- Seccion estatica / dinamica: es una zona de la FPGA destinada a contener la logica FPGA estatica / dinamica.
En un primer aspecto de la invencion se presenta un sistema de configuration de hardware de un instrumento programable de control, test y medida, que comprende una FPGA integrada en dicho instrumento, dotandole de capacidades de programacion o reconfiguration dinamica. La FPGA comprende dos secciones:
- Una seccion estatica que incluye al menos una logica FPGA estatica prefijada implementada de fabrica. Dicha logica FPGA estatica puede comprender funcionalidades esenciales del instrumento cuya complejidad excede los conocimientos de un usuario medio, as^ como funcionalidades adicionales cuya optimization a bajo nivel con herramientas avanzadas resulta chtica para su correcto funcionamiento en la FPGA.
- Una seccion dinamica que incluye al menos una logica FPGA dinamica programable por parte del usuario. Puesto que el usuario utiliza las funcionalidades provistas por la logica FPGA de la seccion estatica y no modifica la seccion estatica, se simplifica enormemente la implementation de la logica FPGA dinamica con las nuevas funcionalidades de usuario. Ademas al no modificase en lo absoluto la logica FPGA estatica en el proceso de implementacion de la logica FPGA dinamica se mantiene la operation optimizada de las funcionalidades de fabrica independientemente de las personalizaciones introducidas por el usuario. Asimismo, la reprogramacion de la seccion dinamica no afecta a la seccion estatica de la FPGA, por lo que la logica FPGA estatica puede continuar su operacion durante la reprogramacion o reconfiguracion de la logica FPGA dinamica.
La logica FPGA estatica prefijada determina a su vez una interfaz logica fija que permite interconectar cualquier logica FPGA dinamica con la logica FPGA estatica, lo que permite al usuario hacer uso de las funcionalidades de fabrica e interconectarlas con la logica FPGA dinamica desarrollada por el mismo para personalizar el instrumento.
Preferentemente, la seccion estatica puede configurarse con multiples logicas FPGA estaticas prefijadas implementadas de fabrica, seleccionables por el usuario. Tambien preferentemente, la seccion dinamica puede configurarse con multiples logicas FPGA dinamicas intercambiables durante la operacion de la logica FPGA estatica y del resto del
5
10
15
20
25
30
35
instrumento. Asimismo tanto la seccion estatica como la dinamica pueden subdividirse en subsecciones estaticas y dinamicas respectivamente, de forma que cualquiera de las subsecciones puede reconfigurarse mientras las otras siguen funcionando. Las logicas FPGA pueden almacenarse en el ordenador del usuario o en una memoria volatil o no volatil del mismo instrumento. El intercambio entre distintas logicas FPGA puede realizarse por indication del usuario, o incluso de manera automatizada al cumplirse condiciones descritas por el propio codigo programable. Ademas las logicas FPGA pueden programarse en memoria no volatil del modulo para la configuration del modulo automaticamente en el arranque.
Preferentemente, el sistema comprende una interfaz de usuario para la programacion de la seccion dinamica, es decir, para el desarrollo del codigo de usuario que contiene las instrucciones o funciones para personalizar el instrumento de control, test y medida. A traves de la interfaz de usuario, el usuario introduce instrucciones o funciones de alto nivel que son preferentemente convertidas a logica FPGA para la seccion dinamica en un servidor de implementation. De acuerdo con opciones preferentes, el servidor puede estar integrado en un mismo software junto con la interfaz de usuario, o bien estar integrado en un software separado que puede correr localmente o de forma remota, proporcionando as^ servicios de implementacion en la nube.
Preferentemente, el sistema comprende uno o mas perfiles de hardware estaticos para cada instrumento. Los perfiles de hardware estaticos consisten en un perfil estatico para la interfaz de usuario y la correspondiente logica FPGA estatica e interfaz logica. Preferentemente el perfil estatico de la interfaz de usuario consiste en una description simplificada de la logica FPGA estatica asociada, formado por bloques que describen las funcionalidades de la logica FPGA estatica e incluyen los puertos de la interfaz logica entre la logica FPGA estatica y dinamica. La interfaz de usuario permite seleccionar entre los perfiles estaticos disponibles para cada instrumento sobre los cuales el usuario realiza la programacion de las nuevas funcionalidades. Los diferentes perfiles de hardware incluyen funcionalidades en la seccion estatica implementadas en fabrica orientadas a aplicaciones espetificas de control, test y medida del instrumento y que por su complejidad requieren una implementacion y optimization realizada por expertos con herramientas avanzadas.
Preferentemente, la interfaz de usuario comprende ademas de buses estandar, buses adaptados espedficamente a las caractehsticas del hardware y de los datos generados por
5
10
15
20
25
30
35
cada instrumento. Los buses son grupos de senales y datos que permiten comunicar acciones o datos complejos entre funciones sin necesidad de conocer ni manipular expresamente e individualmente los datos y senales que componen el bus. Asimismo, el sistema comprende preferentemente al menos una libreha con modelos predefinidos que el usuario puede utilizar para la programacion de la seccion dinamica. Estas librenas al igual que los perfiles estaticos incluyen de forma nativa interfaces maestro y esclavo para los buses espedficos, procesando y manipulando las senales y datos complejos del instrumento de forma transparente para el usuario, de forma de que este puede programar nuevas funcionalidades de forma simple, sin tener que implementar tecnicas complejas de procesado y gestion de senales diferentes segun cada instrumento.
Preferentemente, la interfaz de usuario proporciona funcionalidades adicionales al usuario, tales como validation de codigo y/o calculo de latencias, information que preferentemente es suministrada al usuario durante el desarrollo del codigo. De acuerdo con opciones preferentes de implementation, el interfaz de usuario puede ser un interfaz grafico, un interfaz de texto, o un interfaz que combina ambas modalidades.
En un segundo aspecto de la invention se presenta un metodo de configuration de hardware de un instrumento programable de control, test y medida, comprendiendo dicho instrumento una FPGA integrada con una seccion dinamica y una seccion estatica conectadas a traves de una interfaz logica. El metodo comprende los siguientes pasos:
- Ejecutar en la seccion dinamica una logica FPGA dinamica desarrollada por un usuario. La configuracion de la seccion dinamica de acuerdo con dicha logica es independiente de la configuracion de la seccion estatica de la FPGA, por lo que puede realizarse mientras la logica FPGA estatica sigue operativa. Ademas la seccion dinamica puede a su vez dividirse en subsecciones de forma que una subsection puede reconfigurarse mientras las otras siguen operativas. Preferentemente, la logica FPGA dinamica se genera en un servidor de implementacion a partir del codigo de usuario de alto nivel desarrollado por el usuario a traves de una interfaz de usuario. El servidor puede ejecutarse local o remotamente de acuerdo con opciones preferentes del metodo. Asimismo, la interfaz puede ser grafica, textual, o combinar ambas opciones, asi como incorporar librehas de componentes predefinidos para la seccion dinamica.
5
10
15
20
25
30
35
- Preferentemente, el metodo puede comprender seleccionar entre una pluralidad de logicas FPGA estaticas prefijadas implementadas de fabrica para reconfigurar la seccion estatica. Notese que cambiar entre logicas FPGA estaticas, denominados perfiles de hardware del instrumento, implica la reconfiguracion de la seccion estatica, pero al estar previamente implementadas en logica FPGA de fabrica, se minimiza el tiempo en el que el instrumento permanece inoperativo, al mismo tiempo que se aumenta la versatilidad del mismo sin comprometer su funcionamiento o rendimiento. La seccion estatica puede dividirse en subsecciones de forma que una subseccion estatica puede reconfigurarse mientras las otras permanecen operativas.
- Tambien preferentemente, el metodo puede comprender la configuration en la seccion dinamica de multiples logicas FPGA dinamicas desarrolladas por el usuario, siendo dichas logicas intercambiables por instruction expKcita del usuario o por el propio comportamiento automatizado del instrumento. Estas logicas pueden almacenarse en el ordenador del usuario, en una memoria volatil del instrumento o en una memoria no volatil del mismo instrumento para su configuracion automatica en el arranque.
- Preferentemente, el metodo comprende la utilization de buses estandar y buses espedficos a cada instrumento para la interconexion de las funciones que utiliza el usuario, de forma que interconexiones complejas se realicen sin necesidad de conocer los detalles internos de las senales y datos en el bus, es decir como una unica senal. Las funciones de las librehas y las interfaces con la logica FPGA estatica incluyen interfaces maestro y esclavo para estos buses de forma que procesan y manipulan estos buses de datos complejos de forma transparente para el usuario.
- Preferentemente, el metodo comprende comprobar en tiempo real durante la programacion del codigo de usuario la validez de las conexiones, permitiendo solo aquellas conexiones validas y sugiriendo al programador acciones para realizar las conexiones correctamente.
- Preferentemente, el metodo comprende tambien calcular de manera automatizada latencias asociadas al codigo de usuario y preferentemente mostrar esta information durante el desarrollo del mismo para acelerar el proceso y simplificar un factor muy
5
10
15
20
25
30
importante en la programacion de hardware FPGA, sin necesidad de realizar simulaciones o implementar la logica FPGA y correrla en hardware, procesos que suelen requerir bastante tiempo sobretodo el de implementation.
- Preferentemente, el metodo comprende validar localmente el codigo programable desarrollado antes de iniciar la fase de implementacion de la logica FPGA dinamica la cual suele requerir un tiempo importante. Es decir, el propio software de diseno permite validar el codigo desarrollado por el usuario para verificar parametros generales de funcionamiento, interconexiones entre funciones de usuario y con la logica FPGA estatica, recursos utilizados y otros parametros que permiten detectar problemas en una fase temprana antes de iniciar la implementacion en la FPGA.
El metodo y el sistema de la invention logran independizar la etapa de generation del hardware FPGA de usuario o logica FPGA dinamica, de la logica FPGA estatica prefijada implementada de fabrica que proporciona las funcionalidades esenciales -core functions, en ingles- del instrumento y sobre las cuales el usuario desarrolla la aplicacion. As^ se implementan y optimizan por separado la logica FPGA estatica prefijada de fabrica y la logica FPGA dinamica de usuario, ya que la logica de fabrica estatica no es modificada durante la personalization del modulo por parte del usuario. Esto permite reducir significativamente los tiempos y la dificultad de implementacion de la logica FPGA dinamica desarrollada por el usuario, la cual como consecuencia puede desarrollarse con herramientas simplificadas utilizables por usuarios sin experiencia en programacion de FPGA. Mientras a su vez se garantiza que en el proceso de personalizacion del instrumento las funcionalidades de fabrica no se veran afectadas durante la implementacion de la logica FPGA dinamica. La logica FPGA de fabrica proporciona las funcionalidades esenciales del modulo, asi como funcionalidades adicionales complejas importantes para ciertas aplicaciones del instrumento, las cuales son desarrolladas y optimizadas en fabrica con tecnicas complejas y herramientas avanzadas de bajo nivel que permiten hacer un uso muy eficiente de los recursos de la FPGA y lograr el maximo rendimiento, sin lo cual muchas de estas funcionalidades muy demandantes no pueden implementarse. Adicionalmente, la separation estatico-dinamico permite mantener la logica FPGA estatica completamente protegida y oculta del usuario, salvaguardando el know-how de los desarrolladores. Finalmente, el uso de reconfiguration parcial de la FPGA para la section dinamica o estatica permite que el usuario reprograme parte de la FPGA mientras otras partes siguen
5
10
15
20
25
30
35
funcionando en la aplicacion, e incluso que una parte del sistema por hardware dispare la reconfiguracion de ella misma u otra parte.
breve descripcion de las figuras
A continuation se pasa a describir de manera muy breve una serie de dibujos que ayudan a comprender mejor la invention y que se relacionan expresamente con una realization de dicha invencion que se presenta como un ejemplo no limitativo de esta.
FIGURA 1.-. Muestra un diagrama de bloques de la arquitectura de un instrumento programable de control, test y medida segun una posible realizacion de la invencion.
FIGURA 2.-. Presenta un diagrama de bloques de un sistema de configuration de instrumentos programables, as^ como de la information intercambiada entre dichos bloques, segun una posible realizacion de la invencion.
FIGURA 3.-. Ejemplifica una posible realizacion de la interfaz de usuario de la invencion.
realizacion preferente de la invencion
En este texto, el termino "comprende" y sus derivaciones (como "comprendiendo", etc.) no deben entenderse en un sentido excluyente, es decir, estos terminos no deben interpretarse como excluyentes de la posibilidad de que lo que se describe y define pueda incluir mas elementos, etapas, etc.
Dado que el proceso de implementation de una FPGA consiste en la generation de la informacion necesaria para determinar las interconexiones y el posicionamiento de los componentes logicos internos de dicha FPGA, en el presente texto, el termino 'logica FPGA' debe entenderse como un conjunto de informacion que define dichas interconexiones y posicionamientos. En particular, y como se detalla a lo largo de la descripcion, una 'logica FPGA estatica' se refiere a un conjunto de interconexiones y posicionamientos de componentes internos de la FPGA prefijado implementado de fabrica, mientras que una 'logica FPGA dinamica' se refiere a un conjunto de interconexiones y posicionamientos de componentes internos de la FPGA resultantes de implementar el codigo de usuario.
5
10
15
20
25
30
35
La Figura 1 ejemplifica un instrumento programable (10) de control, test y medida sobre el que se aplican implementaciones particulares del metodo y sistema de la invention. En una implementation preferente, el instrumento programable (10) es un instrumento modular de una plataforma PXI express (extensiones PCI para instrumentation, del ingles 'PCI extensions for Instrumentation') o PCI express (Interconexion de Componentes Perifericos Express, del ingles 'Peripheral Component Interconnect Express'), si bien pueden existir implementaciones en cualquier otra plataforma para instrumentos de control, test y medida compatibles con la tecnologia FPGA.
El instrumento programable (10) comprende un hardware fijo (20) gestionado por una FPGA (30). La FPGA (30) comprende uno o mas puertos de entrada y/o salida (50), asi como un bus de comunicacion (40), que puede venir acompanado ademas de puertos para cualquier otra senal requerida por la FPGA (30), como por ejemplo senales de reloj, etc. Notese que el metodo y sistema de configuration de hardware del instrumento programable (10) actuan unicamente sobre la FPGA (30), siendo por lo tanto independientes del resto de componentes del instrumento programable (10).
La FPGA comprende una section estatica (31) y una section dinamica (33), conectadas a traves de una interfaz logica (32). La seccion estatica (31) comprende logica FPGA estatica (34) implementada y optimizada de fabrica, mientras que la seccion dinamica (33) comprende logica FPGA dinamica (35) programable por el usuario. La logica FPGA estatica (34) comprende las funcionalidades esenciales -core functions, en ingles- del instrumento y aquellas cuya implementacion a bajo nivel y optimization avanzada resultan chticas para el funcionamiento del instrumento programable (10).
La logica FPGA estatica (34) implementa todas las funciones necesarias para controlar el hardware fijo (20), como por ejemplo: comunicacion PCIe (Interconexion de Componentes Perifericos Express, del ingles 'Periferal Component Interconnect Express'), DMA (memoria de acceso directo, del ingles 'Direct Memory Access'), memoria RAM (memoria de acceso aleatorio, del ingles 'Random Memory Access) y no volatil, conversores ADC (Conversor de senales analogicas a digitales, del ingles 'Analogue to Digital converter) y DAC (Conversor de senales digitales a analogicas, del ingles Digital to Analogue converter), etc.
La logica FPGA estatica (34) tambien implementa funciones importantes para el funcionamiento espedfico del instrumento. Por ejemplo en un instrumento de generation
5
10
15
20
25
30
35
analogica de senales, la logica FPGA estatica (34) puede comprender funcionalidades de generation de senales periodicas, generation de senales arbitrarias, moduladores, filtros, etc.
La logica FPGA estatica (34) implementa las funcionalidades que suelen tener requerimientos de performance muy estrictos y que requieren para su implementation el uso de herramientas avanzadas complejas, como por ejemplo interfaces de memoria DDR3 con tasas de transferencia de decenas de GigaBytes por segundo o interfaces PCI Express de varios GigaBytes por segundo. Este tipo de funcionalidades requiere de la utilization de frecuencias de trabajo y tamanos de datos muy elevados y de logica muy compleja que requiere de un analisis experto a bajo nivel para lograr su correcto funcionamiento.
La figura 2 presenta con mayor detalle los elementos del sistema involucrados en la programacion de la section dinamica (33). El usuario introduce las instrucciones y funciones de alto nivel que forman el codigo de usuario (61) a traves de una interfaz de usuario (60). La interfaz de usuario (60) comprende un perfil estatico (83) sobre el cual el usuario implementa el codigo de usuario (61). Preferentemente el usuario selecciona de una librena de perfiles estaticos (82a) el que desea utilizar segun las opciones de cada instrumento espedfico. La librena de perfiles estaticos (82a) forma parte de la librena de perfiles de hardware (82) que ademas incluye la librena de logica FPGA estatica (82b), que incluye una logica FPGA estatica (34) y la interfaz logica (32) correspondientes a cada perfil estatico (83). La librena de perfiles de Hardware (82) incluye uno o mas perfiles de hardware para cada instrumento. Cada perfil de hardware esta compuesto por el perfil estatico (83) y su correspondiente logica FPGA estatica (34) que a su vez define una interfaz logica (32). El perfil estatico (83) consiste en una description simplificada de la logica FPGA estatica, que captura sus funcionalidades e incorpora la interfaz logica (32) para que el usuario implemente el codigo de usuario (61) y lo conecte a las funcionalidades provistas por logica FPGA estatica (34). Dicho codigo de usuario (61) es transmitido a un servidor de implementacion (70), que lo combina con unos modelos (81) de una o mas librerias (80) para generar la logica dinamica (35) que se ejecuta en la seccion dinamica (33). El servidor utiliza information de la logica FPGA estatica (34) y de la correspondiente interfaz logica (32) para la implementacion de la logica FPGA dinamica (35) compatible con la logica FPGA estatica (34) segun el perfil de hardware seleccionado. Los modelos (81) de las librerias (80) facilitan al usuario la programacion de la seccion dinamica (33), pero al contrario que la logica FPGA estatica, son personalizables. La logica FPGA estatica (34) seleccionada con el
5
10
15
20
25
30
35
perfil de hardware se configura en la seccion estatica (31) de la FPGA. La logica FPGA estatica y dinamica se configuran en la FPGA de manera independiente, de forma que pueden programarse multiples logicas FPGA dinamicas para una misma logica FPGA estatica mientras la logica FPGA estatica y el resto del instrumento siguen funcionando, posibilitando el cambio muy rapido de logicas FPGA dinamicas desarrolladas por el usuario.
El servidor de implementation (70) puede estar integrado en el mismo software de la interfaz de usuario (60), o ser tanto un servidor local corriendo en el mismo ordenador que la interfaz de usuario, como un servidor remoto, conectado al software de la interfaz de usuario (60) mediante medios de conexion alambricos o inalambricos. En particular, el servidor remoto proporciona servicios de implementacion en la nube.
La figura 3 ejemplifica la interfaz de usuario (60) para el desarrollo del codigo de usuario (61) para la programacion de la seccion dinamica (33). En este caso, se trata de una interfaz grafica basada en bloques interconectados. En la pantalla principal se aprecian tres tipos de bloques:
- Bloques estaticos (62), correspondientes a funcionalidades de la logica FPGA estatica (34). Los bloques estaticos (62) son parte del perfil estatico (83), el usuario por lo tanto no modifica dichos bloques estaticos (62), sino que utiliza sus puertos logicos para conectarlos con el resto de bloques de su diseno. Los puertos logicos de los bloques estaticos (62) conforman la interfaz logica (32) de la FPGA. Notese que los bloque estaticos (62) no son necesariamente una representation fidedigna de la implementacion del codigo de fabrica, es decir, pueden suponer una vista simplificada que no refleja la complejidad de la implementacion real de las funcionalidades estaticas representadas.
- Bloques dinamicos (63), cuyo contenido viene predefinido, por ejemplo a partir de los modelos (81) de la libreha (80), que el usuario utiliza para realizar las funcionalidades de la logica dinamica (35), y por tanto pueden ser seleccionados, modificados y/o eliminados por parte del usuario
- Bloques de usuario (64), programados en su totalidad por el usuario. Los bloques de usuario (64) pueden ser implementados utilizando la interfaz de usuario (60) o ser importados desde cualquier otra herramienta de programacion de hardware FPGA.
5
10
15
20
25
30
35
Para facilitar las labores de programacion del usuario, la interfaz de usuario (60) puede comprender un codigo dinamico por defecto que implementa las funcionalidades de fabrica que caracterizan al instrumento y que hacen que este sea completamente funcional y que sirve al usuario como base para el desarrollo de su codigo. Ademas la interfaz de usuario (60) puede comprender otros elementos, como por ejemplo una lista de bloques dinamicos incluidos por defecto de fabrica eliminados (65), o de puertos de conexion disponibles (66), as^ como cualquier otro elemento que simplifique el uso del software y el desarrollo del codigo de usuario. El interfaz de usuario (60) puede comprender medios de seleccion que permiten al usuario seleccionar de entre multiples perfiles estaticos (83) disponibles para el instrumento especifico, asi como configurar diferentes logicas dinamicas (35) y estaticas (34) en el instrumento. Diferentes perfiles estaticos (83) y su correspondiente logica FPGA estatica (34) para un mismo instrumento incluyen distintos bloques de alto rendimiento importantes para un grupo de aplicaciones, que requieren de una implementacion con conocimientos muy avanzados y que de incluirlos como librerias para la zona dinamica dificultan su implementacion y comprometen el correcto funcionamiento del instrumento programable (10).
La interfaz de usuario comprende buses estandar y tambien buses espedficos para cada instrumento, que agrupan senales y datos complejos en una unica conexion para simplificar y acelerar el desarrollo del codigo por parte del usuario. Entre los buses estandar se incluyen conexiones AXI, acceso a memoria, etc, mientras que los buses espedficos dependen de los datos que genera y procesa cada instrumento. Asi por ejemplo modulos de adquisicion o generacion de senales de varias centenas de megahercios o gigahercios requieren la utilizacion de tecnicas de paralizacion de datos para poder ser manipulados dentro de la FPGA, estas tecnicas complican extremadamente la programacion de los instrumentos. Mediante el uso de buses espedficos el usuario puede manipular los datos sin conocer esta complejidad ya que tanto los bloques de fabrica como los de libreria incluyen interfaces espedficas para estos buses y manipulan estos datos complejos de forma nativa y transparente para el usuario como una unica senal.
La interfaz de usuario (60) puede comprender funcionalidades adicionales como validacion de codigo o calculo de latencias. Con la informacion de latencia de cada bloque, el software permite visualizar rapidamente durante la edicion los retrasos en las diferentes conexiones del diagrama, as^ como ajustar dichos retrasos de forma muy sencilla en diagramas con multiples bloques.
5
10
15
20
25
30
35
La interfaz de usuario (60) puede comprender funciones de simulation del codigo de usuario que incorporen modelos de los bloques estaticos y dinamicos y que permitan realizar simulaciones de comportamiento y visualizar las senales en los diferentes puntos del diagrama. Ademas la interfaz de usuario (60) puede permitir generar un instrumento virtual que el sistema reconoce como un instrumento real, de forma que el software de usuario puede interactuar con el instrumento virtual como si fuese uno real con la logica FPGA de usuario ya implementada y configurada en el instrumento. De esta forma se puede simular el funcionamiento del instrumento dentro de la aplicacion de control, test y medida generando los estimulos reales que recibira el instrumento real pero con mayor control y posibilidad de visualizar toda la information de simulacion de cualquier punto del diagrama sin necesidad de implementar la logica de usuario y la logica adicional de depuration en el instrumento real, lo cual suele requerir del tiempo que requiere la implementation de la logica FPGA y ademas las capacidades de depuracion en hardware suelen tener mas limitaciones que las simulaciones.
La interfaz de usuario (60) puede comprender funcionalidades de depuracion que permite agregar puntos para depuracion o validation (debugging) por hardware, para los cuales el software genera la logica de hardware necesaria automaticamente. Una vez generados dichos puntos de depuracion, el software recibe del instrumento (10) informacion de depuracion a traves de alguno de los buses de comunicaciones disponible en el instrumento (por ejemplo PCI Express), y la muestra a traves de la interfaz de usuario (60). La section estatica (31) puede comprender perfiles estaticos espetificos con funcionalidades espedficas para realizar dicha depuracion.
Una vez el usuario ha finalizado su diseno a traves de la interfaz de usuario (60), el software genera la logica FPGA dinamica (35) correspondiente unicamente a la seccion dinamica (33) y a la interfaz logica (32) que define las interconexiones entre la seccion dinamica (33) y la logica FPGA estatica (34). El software primero procesa y valida el codigo de usuario (61) de forma local y luego lo envia al servidor de implementacion (70) para la generation de la logica dinamica (35) y el correspondiente fichero de reconfiguration parcial de la seccion dinamica (33). Antes de proceder a la implementacion en el servidor de implementacion (70), el software valida localmente la correcta realization del codigo de usuario, su interconexion con la logica FPGA estatica y verifica que los recursos utilizados estan disponibles en la seccion dinamica (33). El servidor de implementacion (70) une el codigo de usuario ya procesado localmente con los posibles ficheros de conexiones correspondientes
5
10
15
20
25
30
35
a Ios bloques de las librerias (80), generando un fichero de configuration parcial para la section dinamica (33) compatible con la logica FPGA estatica (34), que refleja el posicionamiento e interconexionado de la logica FPGA dinamica (35). En el proceso de implementation solo se genera la logica FPGA dinamica (35), por Io que el tiempo y dificultad de implementacion son muy inferiores al de regenerar la logica FPGA (30) completa y ademas no se modifica en Io absoluto la logica FPGA estatica (34) de la seccion estatica (31) por Io que se mantiene el rendimiento y las optimizaciones de todas las funcionalidades de fabrica. Con el fichero de configuracion parcial, el usuario puede reprogramar la seccion dinamica (33) de la FPGA (30) en cualquier momento mientras que la logica estatica y el resto del modulo siguen funcionando.
La gestion de la carga de la nueva configuracion parcial de la FPGA (30), es decir, la configuracion de la logica dinamica (35) del usuario en la seccion dinamica (33) se puede realizar desde la propia interfaz de usuario (60) o, por medio de las librerias suministradas, desde cualquier otra aplicacion software. De esta forma, se puede disponer de diferentes configuraciones dinamicas previamente generadas y cargarlas dinamicamente a medida que el software de la aplicacion de control, test y medida requiere diferentes procesados por hardware. La information de reconfiguration parcial puede programarse en la FPGA (30) directamente, en una memoria volatil del instrumento o en una memoria no volatil incluida en el instrumento para su carga automatica en el arranque. Ademas, se pueden guardar mas de una reconfiguracion en memoria volatil o no volatil, permitiendo modificar dinamicamente la selection o configuracion del hardware (20) del instrumento programable (10).
La carga de las diferentes logicas FPGA estaticas correspondiente a Ios diferentes perfiles estaticos (83) puede realizarse de manera similar a la configuracion de la logica FPGA dinamica, desde la interfaz de usuario (60) o por medio de librerias suministradas. Ademas tanto la seccion dinamica (33) como la seccion estatica (31) pueden dividirse en subsecciones de forma que las subsecciones pueden reprogramarse mientras las otras siguen funcionando.
A la vista de esta description y figuras, el experto en la materia podra entender que la invention ha sido descrita segun algunas realizaciones preferentes de la misma, pero que multiples variaciones pueden ser introducidas en dichas realizaciones preferentes, sin salir del objeto de la invencion tal y como ha sido reivindicada.
Claims (16)
- 51015202530REIVINDICACIONES1. Un sistema de configuration de hardware de un instrumento programable (10) para aplicaciones de control, test y medida que comprende una FPGA (30) integrada, caracterizado por que la FPGA (30) comprende:- una section estatica (31) que comprende al menos una logica FPGA estatica (34) prefijada e implementada en fabrica para el hardware especifico del instrumento programable (10) de acuerdo a unos requerimientos espedficos del hardware del instrumento programable (10) y de las aplicaciones de control, test y medida, y donde las logicas FPGA estaticas (31) son seleccionables por un usuario del sistema y reconfigurables durante la operation del instrumento programable (10);- una seccion dinamica (33) que comprende al menos una logica FPGA dinamica (35) modificable por el usuario del sistema y reconfigurable durante la operacion del instrumento programable (10);-una interfaz logica (32) que conecta la seccion estatica (31) y la seccion dinamica (33); y el sistema comprende:- una pluralidad de perfiles de hardware estaticos intercambiables por selection del usuario que comprenden la logica FPGA estatica (34) prefijada, la interfaz logica (32) prefijada y un perfil estatico (83) asociado a la logica FPGA estatica (34) y la interfaz logica (32), donde el perfil estatico (83) describe las funcionalidades de la logica FPGA estatica (34) asociada, en forma de modelos estaticos (62) que incluyen unos puertos de la interfaz logica (32) que el usuario utiliza para interactuar en un codigo de usuario (61) con la logica FPGA estatica (34);- una interfaz de usuario (60) que visualiza el perfil estatico (83) para el instrumento programable (10), sobre el que el usuario introduce instrucciones y funciones de alto nivel que forman el codigo de usuario (61) para programar la seccion dinamica (33) e interactuar con cada perfil de hardware estatico y su logica FPGA estatica (34) asociada a traves de la interfaz logica (32).51015202530
- 2. El sistema de configuration, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que la section dinamica (33) comprende una logicas dinamica (35) implementada por el usuario a partir del perfil estatico (83), y donde la logica dinamica (35) es reconfigurable durante la operation del instrumento programable (10) y mientras la seccion estatica (31) sigue funcionando.
- 3. El sistema de configuracion, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que la seccion estatica (31) y la seccion dinamica (33) comprenden una pluralidad de subsecciones y al menos una de las subsecciones es reconfigurable individualmente por selection del usuario mientras las restantes subsecciones siguen funcionando.
- 4. El sistema de configuracion, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que comprende almacenar una o mas logicas FPGA estaticas (34) correspondientes a cada perfil estatico (83) y una o mas logicas FPGA dinamicas (35) correspondientes a cada perfil estatico (83) en una memoria del instrumento (10), que se selecciona entre memoria volatil y no volatil.
- 5. El sistema de configuracion, de acuerdo con la revindication 4, caracterizado por que en caso de memoria no volatil, las logicas FPGA estaticas (34) y logicas FPGA dinamicas (35) almacenadas son utilizadas para reconfigurar el instrumento (10) automaticamente en el arranque.
- 6. El sistema de configuracion, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que la interfaz de usuario (60) valida localmente el codigo de usuario (61) antes de ser enviado al servidor de implementation (70) para ser implementado en logica FPGA dinamica (35) para la seccion dinamica (33).
- 7. El sistema de configuracion, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que la interfaz de usuario (60) calcula unas latencias asociadas a los modelos utilizados en el codigo de usuario (61) y visualiza esta information durante el desarrollo y antes de ser implementado en una logica FPGA dinamica (35) para la seccion dinamica (33).5101520253035
- 8. El sistema de configuracion, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que la interfaz de usuario (60) comprende funciones espedficas de depuracion del codigo de usuario (61) y lee informacion de depuracion a traves de unos puertos de comunicacion del instrumento (10) y visualiza la informacion en tiempo real en la misma interfaz de usuario (60).
- 9. El sistema de configuracion, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que la interfaz de usuario (60) comprende funcionalidades de simulacion para implementar un instrumento virtual que el sistema reconoce como real.
- 10. El sistema de configuracion, de acuerdo con cualquiera de las reivindicacionesanteriores, caracterizado por que la interfaz de usuario (60) es una interfaz grafica.
- 11. El sistema de configuracion, de acuerdo con cualquiera de las reivindicacionesanteriores, caracterizado por que la interfaz de usuario (60) es una interfaz de texto.
- 12. El sistema de configuracion, de acuerdo con cualquiera de las reivindicacionesanteriores, caracterizado por que comprende buses de datos espedficos adaptados a las caracteristicas particulares de cada instrumento programable (10) y que agrupan los datos y senales complejas generadas por el instrumento y las representa como una unica senal.
- 13. El sistema de configuracion, de acuerdo con cualquiera de las reivindicacionesanteriores, caracterizado por que comprende al menos una libreria (80) con una pluralidad de modelos (81) utilizables por el usuario para desarrollar el codigo de usuario (61) y que incluyen puertos de interfaz para los buses de datos espedficos a cada instrumento que manipulan y procesan los multiples datos y senales de los buses espedficos como una unica senal.
- 14. El sistema de configuracion, de acuerdo con cualquiera de las reivindicacionesanteriores caracterizado por que comprende un servidor de implementation (70) que convierte las instrucciones y funciones de alto nivel que forman el codigo de usuario (61) en logica FPGA dinamica (35) compatible con la logica FPGA estatica (34) y la interfaz logica (32), y el servidor de implementacion (70) genera informacion de configuracion parcial para programar la section dinamica (33).
- 15. El sistema de configuracion, de acuerdo con la reivindicacion 18, caracterizado por que el servidor de implementacion (70) esta integrado en un software de edicion que comprende el interfaz de usuario (60).5 16. El sistema de configuracion, de acuerdo con la reivindicacion 18, caracterizado por queel servidor de implementacion (70) esta integrado en un software remoto.
- 17. El sistema de configuracion, de acuerdo con la reivindicacion 20, caracterizado por que el software remoto proporciona servicios de implementacion en la nube.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES201531184A ES2562153B2 (es) | 2015-08-10 | 2015-08-10 | Sistema y método de configuración de hardware de instrumentos programables de control, test y medida |
US15/232,775 US10324436B2 (en) | 2015-08-10 | 2016-08-09 | System and method for programmable control instruments, test and measurement hardware configuration |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES201531184A ES2562153B2 (es) | 2015-08-10 | 2015-08-10 | Sistema y método de configuración de hardware de instrumentos programables de control, test y medida |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2562153A1 ES2562153A1 (es) | 2016-03-02 |
ES2562153B2 true ES2562153B2 (es) | 2016-10-07 |
Family
ID=55398124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES201531184A Active ES2562153B2 (es) | 2015-08-10 | 2015-08-10 | Sistema y método de configuración de hardware de instrumentos programables de control, test y medida |
Country Status (2)
Country | Link |
---|---|
US (1) | US10324436B2 (es) |
ES (1) | ES2562153B2 (es) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10764129B2 (en) * | 2017-04-18 | 2020-09-01 | Amazon Technologies, Inc. | Logic repository service supporting adaptable host logic |
US11227258B2 (en) * | 2017-05-17 | 2022-01-18 | International Business Machines Corporation | Managing project resources |
CN109739833A (zh) * | 2018-12-18 | 2019-05-10 | 山东超越数控电子股份有限公司 | 一种基于fpga的国产平台数据库加速***及方法 |
US11397656B2 (en) | 2019-11-04 | 2022-07-26 | Microsoft Technology Licensing, Llc | Telemetry generation for in-field hardware testing |
US11687279B2 (en) * | 2020-01-27 | 2023-06-27 | Samsung Electronics Co., Ltd. | Latency and throughput centric reconfigurable storage device |
US11630696B2 (en) | 2020-03-30 | 2023-04-18 | International Business Machines Corporation | Messaging for a hardware acceleration system |
US11425020B2 (en) | 2020-06-01 | 2022-08-23 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for storage, retrieval, and use of programmable pipeline device profiles |
US11474823B2 (en) | 2020-06-15 | 2022-10-18 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for on-demand, on-device compiling and use of programmable pipeline device profiles |
US11360789B2 (en) * | 2020-07-06 | 2022-06-14 | International Business Machines Corporation | Configuration of hardware devices |
CN111984480B (zh) * | 2020-08-07 | 2022-07-22 | 苏州浪潮智能科技有限公司 | Fpga加速卡的功耗加压测试方法、装置及存储介质 |
CN112597096B (zh) * | 2020-12-15 | 2023-11-21 | 中国科学院计算技术研究所 | 一种低功耗的fpga部分可重构方法和装置 |
CN112347035B (zh) * | 2021-01-11 | 2021-06-25 | 北京中超伟业信息安全技术股份有限公司 | 面向远程fpga设备的动态部分可重构配置装置及方法 |
CN112765018B (zh) * | 2021-01-12 | 2022-09-13 | 武汉光庭信息技术股份有限公司 | 一种仪器仪表调试***及方法 |
CN114385077A (zh) * | 2021-12-15 | 2022-04-22 | 成都航天通信设备有限责任公司 | Fpga信号调制解调动态重构方法、装置、***及存储介质 |
US11863385B2 (en) | 2022-01-21 | 2024-01-02 | International Business Machines Corporation | Optimizing container executions with network-attached hardware components of a composable disaggregated infrastructure |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7152027B2 (en) * | 1998-02-17 | 2006-12-19 | National Instruments Corporation | Reconfigurable test system |
US7640526B1 (en) * | 2005-09-12 | 2009-12-29 | Xilinx, Inc. | Modular partial reconfiguration |
US7902866B1 (en) * | 2007-08-27 | 2011-03-08 | Virginia Tech Intellectual Properties, Inc. | Wires on demand: run-time communication synthesis for reconfigurable computing |
US8018249B2 (en) * | 2007-09-13 | 2011-09-13 | Friedrich-Alexander-Universitaet-Erlangen-Nuernberg | Logic chip, logic system and method for designing a logic chip |
US7971051B2 (en) * | 2007-09-27 | 2011-06-28 | Fujitsu Limited | FPGA configuration protection and control using hardware watchdog timer |
US8997033B1 (en) * | 2014-03-05 | 2015-03-31 | Altera Corporation | Techniques for generating a single configuration file for multiple partial reconfiguration regions |
-
2015
- 2015-08-10 ES ES201531184A patent/ES2562153B2/es active Active
-
2016
- 2016-08-09 US US15/232,775 patent/US10324436B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
ES2562153A1 (es) | 2016-03-02 |
US20170123394A1 (en) | 2017-05-04 |
US10324436B2 (en) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2562153B2 (es) | Sistema y método de configuración de hardware de instrumentos programables de control, test y medida | |
Vipin et al. | FPGA dynamic and partial reconfiguration: A survey of architectures, methods, and applications | |
Beckhoff et al. | Go ahead: A partial reconfiguration framework | |
AU2017202110B2 (en) | Runtime creation, assignment, deployment and updating of arbitrary radio waveform techniques for a radio waveform generation device | |
CN106776465A (zh) | 可编程逻辑器件虚拟化 | |
US10831960B1 (en) | Selectable reconfiguration for dynamically reconfigurable IP cores | |
Soni et al. | Open-source bitstream generation | |
US10387584B1 (en) | Streaming on hardware-software platforms in model based designs | |
ES2552739A1 (es) | Sistema de ejecución determinista en tiempo, distribuida y sincronizada para aplicaciones de control, test y medida. | |
US10318687B2 (en) | Implementing a constant in FPGA code | |
CN106843973B (zh) | 一种移植嵌入式***并在sd卡启动的方法 | |
Van Langendonck et al. | Mpsocdk: A framework for prototyping and validating mpsoc projects on fpgas | |
Skalicky et al. | A unified hardware/software MPSoC system construction and run-time framework | |
Horta et al. | Accelerating linux bash commands on fpgas using partial reconfiguration | |
Sohanghpurwala | OpenPR: An Open-Source Partial Reconfiguration Tool-Kit for Xilinx FPGAs | |
Zemmouri et al. | Integration and Implimentation System-On-A-Programmable-Chip (Sopc) In FPGA | |
Daigneault et al. | Raising the abstraction level of HDL for control-dominant applications | |
US20180196908A1 (en) | Hardware-configurable logic unit and microcontroller having such a hardware-configurable logic unit | |
Polet | Implementing the beta machine on a Terasic DE10 SoC+ FPGA development board | |
US20100115255A1 (en) | System and Method of Dynamically Building a Behavior Model on a Hardware System | |
Moraes et al. | Development of a tool-set for remote and partial reconfiguration of FPGAs | |
Silva et al. | Methodology to implement logic controllers with both reconfigurable and programmable hardware | |
Philipp et al. | (GECO) 2: A graphical tool for the generation of configuration bitstreams for a smart sensor interface based on a Coarse-Grained Dynamically Reconfigurable Architecture | |
Kizheppatt | Design automation for partially reconfigurable adaptive systems | |
Hoyos et al. | Model-based framework for embedded system product line |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC2A | Transfer of patent |
Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LT Effective date: 20160613 |
|
FG2A | Definitive protection |
Ref document number: 2562153 Country of ref document: ES Kind code of ref document: B2 Effective date: 20161007 |
|
PC2A | Transfer of patent |
Owner name: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD Effective date: 20181112 |