ES2672014T3 - Matriz de puertas programable por campo que comprende una pluralidad de bloques funcionales y dispositivo de control para una central eléctrica - Google Patents

Matriz de puertas programable por campo que comprende una pluralidad de bloques funcionales y dispositivo de control para una central eléctrica Download PDF

Info

Publication number
ES2672014T3
ES2672014T3 ES15305932.4T ES15305932T ES2672014T3 ES 2672014 T3 ES2672014 T3 ES 2672014T3 ES 15305932 T ES15305932 T ES 15305932T ES 2672014 T3 ES2672014 T3 ES 2672014T3
Authority
ES
Spain
Prior art keywords
data
input
output
slots
function
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
Application number
ES15305932.4T
Other languages
English (en)
Inventor
Johannes Weber
Burkhardt MÖLLER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Areva NP SAS
Original Assignee
Framatome SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Framatome SA filed Critical Framatome SA
Application granted granted Critical
Publication of ES2672014T3 publication Critical patent/ES2672014T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17732Macroblocks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/1778Structural details for adapting physical parameters
    • H03K19/17792Structural details for adapting physical parameters for operating speed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/16Plc to applications
    • G05B2219/161Nuclear plant
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Logic Circuits (AREA)
  • Programmable Controllers (AREA)

Abstract

Matriz de puertas programable por campo (1, 100, 200, 300, 400) que comprende: una pluralidad de bloques funcionales (10a-d, 20, 30, 110a-h, 120a-d, 130a-d, 210a-e, 410a, 410b) que comprende al menos uno de los bloques funcionales al menos una función (12a-d, 412a, 412b), usando al menos una de las funciones un parámetro (514, 518), donde los bloques funcionales están adaptados para realizar al menos una función en una fase de cálculo; caracterizada por: un transportador de datos (40, 140, 240, 340, 440) que comprende una pluralidad de ranuras de datos (42), donde cada bloque funcional (10a-d, 20, 30, 110a-h, 120a-d, 130a-d, 210a-e, 410a, 410b) está adaptado, en una fase de transferencia de datos, para recibir datos de entrada de una o más primeras ranuras predefinidas (42) y/o para proporcionar datos de salida en una o más segundas ranuras predefinidas (42); y un circuito de configuración (150, 450) adaptado para configurar el parámetro para al menos la función que usa el parámetro y para definir una o más primeras ranuras y/o una o más segundas ranuras para al menos un bloque funcional, donde la matriz de puertas programable por campo está adaptada para repetir cíclicamente la fase de transferencia de datos y la fase de cálculo.

Description

DESCRIPCIÓN
Matriz de puertas programable por campo que comprende una pluralidad de bloques funcionales y dispositivo de control para una central eléctrica 5
ANTECEDENTES DE LA INVENCIÓN
[0001] La presente invención se refiere a una matriz de puertas programable por campo que comprende una
pluralidad de bloques funcionales comprendiendo al menos uno de los bloques funcionales al menos una función, 10 usando al menos una de las funciones un parámetro, donde los bloques funcionales están adaptados para realizar al menos una función en una fase de cálculo como se muestra, p. ej., en el documento US 2013/0049803 A1. Además, la presente invención se refiere a un dispositivo de control para una central eléctrica, en particular una central de energía nuclear, donde el dispositivo de control incluye dicha matriz de puertas programable por campo.
15 [0002] El documento WO 2008/138420 A1 describe un dispositivo para la reconfiguración dinámica de un
sistema de radiocomunicaciones. El dispositivo comprende bloques funcionales que pueden reprogramarse para pasar de un modo de transmisión a un modo de recepción o viceversa.
[0003] En la industria nuclear, las tareas de ingeniería específicas del proyecto se realizan actualmente 20 utilizando plataformas de instrumentación y de control basadas en CPU con la ayuda de diagramas de fácil lectura
orientados al flujo de señal, por ejemplo, basados en diagramas de bloques de funciones (FBD por su sigla en inglés) IEC 61131. Una cadena de herramientas traduce automáticamente estos diagramas en código C que se puede compilar y ejecutar en un sistema de control e instrumentación de seguridad basado en la CPU. El resultado binario de toda la cadena de herramientas es altamente predecible, por lo que la metodología puede calificarse para 25 aplicaciones de seguridad.
[0004] Sin embargo, para las matrices de puertas programables por campo (FPGA por su sigla en inglés), debido a la naturaleza de las FPGA y sus cadenas de herramientas, incluso pequeños cambios en el nivel de entrada del diseño pueden conducir a características de sincronización completamente impredecibles del chip final.
30 Por lo tanto, las FPGA rara vez se utilizan en la industria de control e instrumentación de seguridad utilizando una estrategia basada en diagramas. En cambio, se necesitan expertos en electrónica para hacer el diseño de la FPGA utilizando técnicas bien conocidas basadas en lenguajes de descripción de hardware como VHDL (lenguaje de descripción de hardware de circuito integrado de muy alta velocidad). Esto conduce a diseños fijos, que pueden reutilizarse bajo diferentes circunstancias solo mediante la realización de tareas de ingeniería de proyectos muy 35 complejas que involucran a especialistas no solo del dominio de la aplicación sino también del dominio del diseño de FPGA.
[0005] Además, cada diseño de FPGA necesita calificarse muy cuidadosamente empleando procesos complejos de desarrollo y verificación. Por lo general, una calificación de FPGA necesita mucho esfuerzo.
40
[0006] El objeto de la invención es proporcionar una matriz de puertas programable por campo que permita una estrategia de ingeniería específica del proyecto centrado en el diagrama comprobado a la vez que proporcione los beneficios de la tecnología de FPGA.
45 [0007] A la luz de lo anterior, la matriz de puertas programable por campo comprende:
una pluralidad de bloques funcionales comprendiendo al menos uno de los bloques funcionales al menos una función, usando al menos una de las funciones un parámetro, donde los bloques funcionales están adaptados para realizar al menos una función en una fase de cálculo;
50 un transportador de datos que comprende una pluralidad de ranuras de datos, donde cada bloque funcional está adaptado, en una fase de transferencia de datos, para recibir datos de entrada de una o más primeras ranuras predefinidas y/o para proporcionar datos de salida en una o más segundas ranuras predefinidas; y un circuito de configuración adaptado para configurar el parámetro para al menos la función que usa el parámetro y para definir una o más primeras ranuras y/o una o más segundas ranuras para al menos un bloque funcional, donde 55 la matriz de puertas programable por campo está adaptada para repetir cíclicamente la fase de transferencia de datos y la fase de cálculo.
[0008] De acuerdo con realizaciones adicionales, la invención puede incluir una o más de las siguientes
características en cualquier combinación técnica posible:
el circuito de configuración está adaptado para definir una o más primeras ranuras y/o una o más segundas ranuras de una pluralidad, en particular todos los bloques funcionales;
5 al menos un bloque funcional está adaptado para recibir datos de entrada desde al menos dos primeras ranuras o para proporcionar datos de salida en al menos dos segundas ranuras, donde al menos dos ranuras de las primeras ranuras o de las segundas ranuras no son adyacentes entre sí;
al menos un bloque funcional está adaptado para recibir datos de salida de datos de entrada de al menos dos 10 bloques funcionales;
la primera y/o segunda ranura son ranuras de tiempo, y/o los bloques funcionales son, en al menos dos fases de transferencia de datos posteriores, por ejemplo, todas las fases de transferencia de datos, adaptadas para recibir datos de entrada, respectivamente, de la misma o más primeras ranuras predefinidas y/o proporcionar datos de 15 salida en respectivamente la misma o más segundas ranuras predefinidas.
el transportador de datos incluye un multiplexor y/o incluye un elemento central de una estructura del multiplexor distribuido;
20 el transportador de datos incluye al menos una puerta OR que tiene una pluralidad de puertos de entrada, donde el puerto de salida de una pluralidad de bloques funcionales está conectado a los puertos de entrada de la puerta OR;
cada bloque funcional incluye al menos una bandeja de entrada de datos, en particular como registro de desplazamiento de entrada, para los datos de entrada y/o al menos una bandeja de salida de datos, en particular 25 como un registro de desplazamiento de salida, para los datos de salida;
al menos una función de los bloques funcionales está adaptada para leer al menos un dato de entrada, en particular de la bandeja de entrada de datos, para realizar una tarea en al menos un dato de entrada, y para proporcionar el resultado de la tarea como mínimo una salida de datos, en particular en la salida de datos;
30
al menos una función es una función binaria para operaciones lógicas binarias, una función de comparación, una función de votación, una función de cálculo y/o una memoria binaria;
- la matriz de puertas programables de campo está adaptada para realizar la al menos una función de todos los 35 bloques funcionales al mismo tiempo;
- al menos un bloque funcional, en particular una pluralidad de bloques funcionales, es uno o más bloques de entrada, donde cada bloque de entrada está adaptado para recibir datos de dispositivos externos a la matriz de puertas programable por campo y para extraer los datos de al menos un bloque funcional que realiza una función, y donde al menos un bloque funcional, en particular una pluralidad de bloques funcionales, es uno o más bloques de
40 salida adaptados para transformar datos de salida de al menos un bloque funcional que realiza una función para dispositivos externos a la matriz de puertas programable por campo; y/o
- el circuito de configuración está adaptado para recuperar los datos de configuración de una memoria externa que es externa a la matriz de puertas programable por campo.
45 [0009] De acuerdo con otro aspecto, un dispositivo de control para una central eléctrica, en particular una
central de energía nuclear, donde el dispositivo de control incluye una matriz de puertas programable por campo de acuerdo con las realizaciones descritas en esta invención.
[0010] El uso del diseño de la FPGA de acuerdo con la invención da como resultado costes de ingeniería 50 significativamente menores en comparación con el uso de FPGA programadas individualmente. En particular, los
dispositivos basados en la FPGA que pueden programarse usando programación centrada en un diagrama se pueden usar en una central eléctrica, en particular una central de energía nuclear.
[0011] En particular, en contraste con los casos de uso de la FPGA típicos, la flexibilidad del circuito se 55 reduce, pero sigue siendo lo suficientemente grande como para adaptar la FPGA a un proyecto específico en el
ámbito de las centrales eléctricas, en particular centrales de energía nuclear, instrumentación y sistemas de control. Para una matriz de puertas programable por campo de acuerdo con la invención, el esfuerzo de calificación se reduce sustancialmente ya que puede realizarse antes de configurar la FPGA para un proyecto específico.
[0012] De acuerdo con la invención, la FPGA implementa una pluralidad de bloques funcionales, que pueden conectarse de manera configurable entre sí de acuerdo con el proyecto, por ejemplo, a través de un circuito de multiplexación de tiempo que usa ranuras fijas (configurables) para la entrada y la salida de cada bloque funcional. Sin embargo, esta adaptación de la FPGA no necesita una modificación del circuito básico basado en VHDL. En
5 otras palabras, los circuitos de la FPGA pueden calificarse, y la configuración detallada se puede realizar en cada proyecto. La FPGA puede incluir un superconjunto de todos los bloques lógicos necesarios para diferentes proyectos.
[0013] De acuerdo con una realización, un pequeño circuito de configuración o memoria puede adaptar 10 individualmente cada bloque funcional como se especifica para un proyecto respectivo.
[0014] Otras ventajas, características, aspectos y detalles son evidentes a partir de las reivindicaciones dependientes, la descripción y los dibujos.
15 [0015] Para que la manera en que las características citadas de la presente invención se puedan entender en
detalle, una descripción más particular de la invención, brevemente resumida anteriormente, puede leerse por referencia a las realizaciones. Los dibujos adjuntos se relacionan con realizaciones de la invención y se describen a continuación:
20 La Fig. 1 muestra esquemáticamente un diagrama de flujo de una realización de una FPGA de acuerdo con la invención;
La Fig. 2 muestra un diagrama de bloques esquemático de una realización de una FPGA de acuerdo con la invención;
La Fig. 3 muestra un diagrama de bloques esquemático de una realización de un transportador de datos;
25 La Fig. 4 muestra un diagrama de bloques esquemático de una realización adicional de un transportador de datos;
La Fig. 5 muestra un diagrama de bloques esquemático de otra realización de un transportador de datos;
La Fig. 6 muestra con más detalle un diagrama de bloques esquemático de una realización de una FPGA de
acuerdo con la invención que usa el transportador de datos de la figura 5; y
La Fig. 7 muestra esquemáticamente un diagrama de bloques de un bloque funcional de una FPGA de acuerdo con 30 la invención que usa el transportador de datos de la Fig. 5.
[0016] Se contempla que los elementos de una realización se pueden utilizar ventajosamente en otras
realizaciones sin más recitación.
35 [0017] La Figura 1 muestra un diagrama de flujo esquemático de una realización de una FPGA (matriz de
puertas programable por campo) 1 de acuerdo con la invención.
[0018] La FPGA 1 incluye una pluralidad de bloques funcionales 10a, 10b, 10c, 10d. Además, la FPGA 1 incluye bloques funcionales específicos, concretamente un bloque de entrada 20 y un bloque de salida 30. Cada
40 bloque funcional 10a-d, el bloque de entrada 20 y el bloque de salida 30 incluyen al menos una función u operador 12a, 12b, 12c, 12d, 22, 32 para realizarse en los datos recibidos.
[0019] Los bloques funcionales 10a-d pueden implementar funciones relacionadas con instrumentación y control, como por ejemplo votar 2oo4 señales de entrada digitales, una o más puertas digitales (AND, OR, etc.), una
45 o más unidades de coma flotante que realizan cálculos como por ejemplo una raíz cuadrada o logaritmo, uno o más comparadores de umbral o pasos de cálculo como una función 12a-d.
[0020] La función u operador 12a-d se proporciona como un circuito codificado en la FPGA 1. Cada función 12a-d está adaptada para calcular uno o más datos de salida a partir de uno o más datos de entrada. Los datos de
50 salida de los bloques funcionales 10a-d se proporcionan a una o más bandejas de salida de datos 14a, 14b, 14c, 14d. Los datos de entrada de los bloques funcionales 10a-d se reciben o leen desde una o más bandejas de entrada de datos 16a, 16b, 16c, 16d.
[0021] El bloque de entrada 20 está, de acuerdo con una realización, conectado a una primera línea de 55 comunicación externa 26, que es externa a la FPGA 1 y que proporciona datos a tratar a la FPGA 1. Los datos se
pueden proporcionar en un protocolo arbitrario o incluso pueden representar datos analógicos.
[0022] De acuerdo con una realización, el bloque de entrada 20 puede comprender como una función u operador 22 un convertidor para convertir el formato de la primera línea de comunicación externa 26 al formato de
datos interno que usan los bloques funcionales 10a-d. Por ejemplo, el convertidor puede ser un convertidor para extraer datos recibidos de una fibra óptica o de un bus, o de diferentes formatos de entrada o protocolos, de modo que los datos puedan tratarse mediante los bloques funcionales 10a-d. Los datos convertidos se ponen en al menos una bandeja de salida de datos 24.
5
[0023] El bloque de salida 30 proporciona los datos de salida leídos desde al menos una bandeja de entrada 36 a una segunda línea de comunicación externa 34, que es externa al FPGA. Por ejemplo, la segunda línea de comunicación externa puede ser un bus específico, por ejemplo, una fibra óptica. En otra realización, la segunda línea de comunicación externa 34 puede ser una conexión analógica. En otras realizaciones, es una conexión
10 binaria. Por lo tanto, el bloque de salida 30 puede comprender como una función u operador 32 un convertidor para convertir los datos del formato de datos interno en datos adecuados para la primera línea de comunicación externa 34. Por ejemplo, la función 32 puede incluir una función de empaquetado para un protocolo específico.
[0024] Además, la FPGA 1 incluye un transportador de datos 40. De acuerdo con una realización, que se 15 puede combinar con otras realizaciones descritas en esta invención, el transportador de datos incluye una pluralidad
de ranuras 42. El número de ranuras es, por ejemplo, al menos 256, por ejemplo, entre 512 y 4096. Cada ranura 42 puede transportar uno o más bits. De acuerdo con una realización, el transportador de datos incluye al menos dos grupos de ranuras. Un primer grupo de ranuras, por ejemplo, entre 512 y 4096 ranuras, son ranuras de valores binarios y un segundo grupo de ranuras, por ejemplo, ranuras de 64 a 2048, son ranuras de valores analógicos. Las 20 ranuras de valores analógicos pueden tener un ancho de al menos 32 bits. Las ranuras de valores binarios pueden tener un ancho de uno o dos bits.
[0025] Cada bloque funcional 10a-d y el bloque de salida 30 están configurados para recibir o leer, durante al menos un primer período de procesamiento, datos de una o más ranuras predefinidas 42 en sus respectivas una o
25 más bandejas de entrada 16a-d, 36.
[0026] Cada bloque funcional 10a-d y el bloque de entrada 20 están configurados para proporcionar, durante al menos un segundo período de procesamiento, datos desde su una o más bandejas de salida 14a-d, 24 en una o más ranuras 42 predefinidas del transportador de datos 40.
30
[0027] Por lo tanto, cada bloque funcional 10a-d, el bloque de entrada 20 y el bloque de salida 30 están adaptados para recibir datos de entrada, respectivamente, para proporcionar datos de salida en una pluralidad de ranuras 42 del transportador de datos 40 de acuerdo con su parametrización o configuración respectiva. En otras palabras, cualquier bloque funcional 10a-d, 20, 30 puede configurarse para usar cualquier ranura del transportador
35 de datos 40 para los datos de entrada o datos de salida.
[0028] En otras realizaciones, la operación para proporcionar los datos a la una o más ranuras predefinidas y para leer los datos de una o más ranuras predefinidas 42 puede en un primer y segundo período de procesamiento combinados, que pueden dividirse adicionalmente en subperíodos.
40
[0029] De acuerdo con una realización, la realización de los cálculos en los datos en las funciones 12a-d, 22, 32 se realiza en paralelo. Por ejemplo, los cálculos en las funciones 12a-d, 22, 32 se realizan en un tercer período de procesamiento.
45 [0030] El primer, segundo (o primer y segundo combinado) período de procesamiento y el tercer período de
procesamiento se repiten de la misma manera. En cada primer, segundo período de procesamiento combinado primero, segundo y tercero, los bloques funcionales realizan las mismas operaciones, utilizando únicamente valores diferentes, que se proporcionan o almacenan en las ranuras respectivas.
50 [0031] Por ejemplo, el transportador de datos que proporciona un número de ranuras 42 se escribe y lee de
una manera estrictamente sincronizada de acuerdo con una configuración central. En otras palabras, está determinado centralmente, cuando tiene lugar el intercambio de datos entre el transportador de datos 40 y las bandejas de entrada 16a-d, 36 y las bandejas de salida 14a-d, 24 y cuando las funciones 12a-d, 22, 32 se realizan en los bloques funcionales 10a-d, y en particular en el bloque de entrada 20 y el bloque de salida 30. Por lo tanto, 55 existe una fase de transferencia de datos, que incluye al menos un primer y un segundo período de procesamiento, y una fase de cálculo, que incluye el tercer período de procesamiento. De acuerdo con una realización, la fase de transferencia y la fase de cálculo se realizan alternativamente en la FPGA 1.
[0032] De acuerdo con una realización, un circuito de configuración (no mostrado en la Figura 1) está
adaptado para establecer los parámetros en los respectivos bloques funcionales 10a-d, el bloque de salida 20 y el bloque de entrada 30. Por ejemplo, el circuito de configuración está adaptado para parametrizar las funciones de los bloques funcionales 10a-d de acuerdo con un conjunto predefinido de parámetros, como, por ejemplo, los valores umbral para un comparador de umbral. Además, el circuito de configuración está adaptado para definir o establecer 5 las ranuras 42 para los datos de salida para cada bloque funcional 10a-d, 20, 30. En otras palabras, el circuito de configuración está adaptado para almacenar y establecer la asignación de las bandejas de salida 14a-d, 24 a las respectivas ranuras 42 del transportador de datos y la asignación de las ranuras 42 a las respectivas bandejas de entrada 16a-d, 36.
10 [0033] Por ejemplo, el circuito de configuración está adaptado para leer desde una memoria, por ejemplo,
una memoria no volátil, los parámetros de configuración, que incluyen el parámetro para las funciones 12a-d, 22, 32 y las asignaciones de los datos de entrada o las bandejas de entrada de datos y los datos de salida o las bandejas de salida de datos a las ranuras 42 del transportador de datos 40.
15 [0034] Por lo tanto, durante un proyecto, solo se deben modificar los parámetros de configuración, mientras
que la FPGA permanece sin cambios, así como el circuito en VHDL.
[0035] De acuerdo con una realización, si un bloque funcional 10a-d no es necesario para un proyecto específico, se desactiva estáticamente para acceder al transportador de datos 40. Por ejemplo, una puerta AND se
20 puede usar para ese propósito.
[0036] La Figura 2 muestra una realización de una FPGA 100, en el que un transportador de datos 140 se representa de una manera diferente. Las mismas características se proporcionan con los mismos signos de referencia que en la Figura 1 aumentados en 100 a menos que se indique lo contrario. Las características de la
25 realización de la Figura 2 se pueden combinar con otras realizaciones descritas en este documento. La Figura 2 muestra una posible distribución espacial de los diferentes bloques en la FPGA 100.
[0037] La FPGA 100 incluye una pluralidad de bloques funcionales 110a-h. Sin embargo, debe tenerse en cuenta que el número de bloques funcionales no está limitado a ocho. La FPGA 100 también puede incluir bloques
30 más o menos funcionales 110a-h. Cada bloque funcional 110a-h está conectado con una línea de entrada 114a-h al transportador de datos o bus 140 para recibir los datos de entrada. Además, cada bloque funcional 110a-h se proporciona con una línea de salida 116a-h al transportador de datos 140 para proporcionar datos de salida al transportador de datos 140.
35 [0038] De acuerdo con la realización mostrada en la Figura 2, la FPGA incluye cuatro bloques de entrada
120a, 120b, 120c, 120d y cuatro bloques de salida 130a, 130b, 130c, 130d. El número de bloques de entrada y bloques de salida es idéntico en una realización. En otras realizaciones, el número de bloques de entrada y bloques de salida puede diferir entre sí. En otro ejemplo, la FPGA 100 puede incluir más o menos que cuatro bloques de entrada y/o más o menos que cuatro bloques de salida.
40
[0039] Cada bloque de entrada 120a-d se proporciona con una línea de salida 126a-d para proporcionar datos recibidos desde los pines de entrada 128a-d de la FPGA 100 al transportador de datos 140. Por ejemplo, los datos que se proporcionan a los pines de entrada 128a-d pueden venir de otra FPGA o de módulos de e/s. Los bloques de entrada 120a-d convierten los datos recibidos de los pines de entrada 128a-d para el uso en el
45 transportador de datos 140, por ejemplo, como se describe anteriormente aquí con respecto a la Figura 1.
[0040] De manera opuesta, cada bloque de salida 130a-d se proporciona con una línea de entrada 134a-d para recibir datos del transportador de datos 140. Los datos se transforman o convierten a otros formatos o protocolos, por ejemplo, como se describe para la realización en la Figura 1, para proporcionarlo a los pines 138a-d
50 de salida de la FPGA. Después, otros dispositivos externos (no mostrados en la Figura 2), por ejemplo, otra FPGA, pueden usar los datos.
[0041] En una realización, la FPGA 100 incluye un circuito de configuración 150. El circuito de configuración está adaptado para conectarse a una memoria de configuración 152, por ejemplo, una memoria no volátil 152. En un
55 ejemplo, que puede combinarse con otras realizaciones descritas en esta invención, la memoria de configuración 152 es externa a la FPGA 100.
[0042] El circuito de configuración 150 está adaptado para configurar los parámetros de todos los bloques funcionales 140a-h, los bloques de entrada 120a-d y los bloques de salida 130a-d. Por ejemplo, el circuito de
configuración 150 está adaptado para proporcionar el parámetro de una función para ser ejecutada por uno o más, en particular todos, los bloques funcionales 140a-h. En algunas realizaciones, el circuito de configuración 150 está adaptado para asignar las bandejas de entrada y las bandejas de salida de los bloques funcionales 140a-h, los bloques de entrada 120a-d y los bloques de salida 130a-d a las respectivas ranuras del transportador de datos 140.
5
[0043] En una realización, todos los parámetros necesarios para la configuración de la FPGA 100 se almacenan habitualmente en la memoria de configuración 152. El circuito de configuración 150 está adaptado para leer la memoria de configuración 152 y a continuación establecer todos los parámetros en los bloques funcionales 140a-h, los bloques de entrada 120a-d y los bloques de salida 130a-d. Por ejemplo, los parámetros almacenados en
10 la memoria de configuración 152 también se pueden cambiar durante el tiempo de ejecución para cambiar los parámetros de los bloques funcionales 110a-h, 120a-d, 130a-d. Por ejemplo, un umbral puede cambiar durante el tiempo de ejecución.
[0044] La FPGA 100 puede incluir además un reloj 160. De acuerdo con una realización, el reloj puede
15 proporcionar una señal de tiempo central y puede definir las fases de cálculo y transferencia de datos, como se
analiza anteriormente. Típicamente, la latencia es el mismo o al menos un múltiplo de una cuantía fija para todos los bloques funcionales 110a-h. De acuerdo con una realización, el reloj 160 proporciona a cada bloque funcional 140a- h, los bloques de entrada 120a-d y los bloques de salida 130a-d una señal de reloj o de tiempo.
20 [0045] De acuerdo con una realización, la FPGA 100 incluye una lógica de prueba 170. La lógica de prueba
170 está conectada a una memoria patrón de prueba 172, que es externa a la FPGA 100. La memoria patrón de prueba 172 almacena datos de prueba, por ejemplo, en forma de vectores de prueba o patrones de prueba.
[0046] Típicamente, en una realización, que puede combinarse con otras realizaciones descritas en este 25 documento, cada bloque funcional tiene sus propios recursos, por ejemplo, uno o más elementos de memoria, una o
más unidades de operación lógica y/o una o más unidades de coma flotante, que están separados de los recursos de los otros bloques funcionales. Por ejemplo, cada bloque funcional o función tiene sus propios elementos de memoria o unidades de coma flotante. Sin embargo, no es necesario que cada bloque funcional tenga todos los recursos disponibles. Por ejemplo, no todos los bloques funcionales pueden tener una unidad de coma flotante. En 30 otras palabras, los bloques funcionales, el bloque de entrada y el bloque de salida no comparten recursos para realizar sus tareas.
[0047] A continuación, se describen varias realizaciones del transportador de datos.
35 [0048] La Fig. 3 muestra una FPGA 200 que incluye una primera realización de un transportador de datos
240. Las mismas características se proporcionan con los mismos signos de referencia que en la Figura 1 aumentados en 200 a menos que se indique y se describa lo contrario. Las características de la realización de la Figura 3 se pueden combinar con otras realizaciones descritas en este documento.
40 [0049] La FPGA 240 comprende una pluralidad de bloques funcionales 210a, 210b, 210c, 210d, 210e y un
transportador de datos 240. El transportador de datos 240 está conectado a cada bloque funcional 210a-e con una
línea de entrada 214a-e y una línea de salida 216a-e. La línea de entrada 214a-e y la línea de salida 216a-e pueden tener, por ejemplo, un ancho de datos de 32 bits. También se pueden usar otros anchos de datos. En algunas realizaciones, cada bloque funcional 210a-e proporciona la información de salida en una forma serializada. Desde el 45 punto de vista de un bloque funcional, el transportador de datos 240 se comporta como una memoria. El
transportador de datos 240 está configurado para enviar los datos a la línea de entrada correcta 214a-e y recibir el
bloque funcional 210a-e. Por lo tanto, cada bloque funcional 210a-e solo necesita implementar una simple interfaz de memoria. En esta realización, no hay obligación de obedecer un ciclo de tiempo estricto y constante en todo el dispositivo.
50
[0050] La Fig. 4 muestra otra FPGA 300 que incluye una segunda realización de un transportador de datos 340. Las mismas características se proporcionan con los mismos signos de referencia que en la Figura 1 aumentados en 300 a menos que se indique y se describa lo contrario. Las características de la realización de la Figura 4 se pueden combinar con otras realizaciones descritas en esta invención.
55
[0051] La FPGA 300 incluye una pluralidad de bloques funcionales, donde cada bloque funcional incluye una bandeja salida de datos 314a, 314b, 314c y una entrada de datos 316a, 316b, 316c. En otras realizaciones, la FPGA 300 puede incluir bloques más o menos funcionales. Por simplicidad, la bandeja de salida de datos y la bandeja de entrada para cada bloque funcional se muestran en el lado izquierdo y el derecho, respectivamente.
[0052] Las bandejas de salida de datos 314a-314c están conectadas con las líneas de salida 315a-c al bus maestro 342, que a su vez está conectado con las líneas de entrada 317a-c a las respectivas bandejas de entrada de datos 316a-c. Por ejemplo, las líneas de entrada 317a-c y/o las líneas de salida 315a-c pueden tener un ancho de
5 banda de 8 bits. En otras realizaciones, las líneas de entrada 317a-c y/o las líneas de salida 315a-c pueden tener otro ancho de banda.
[0053] El transportador de datos 340 comprende un bus maestro 342, que está adaptado para solicitar datos a todas las bandejas de salida de datos 314a, 314b, 314c. Por lo tanto, las bandejas de salida de datos 314a-c
10 actúan simplemente como esclavos.
[0054] El bus maestro 342 está conectado a un reloj o contador 344. En una realización, el bus maestro 342 incluye un multiplexor. El bus maestro 342 está adaptado para servir a un bloque funcional después de otro. Cuando el bus maestro 342 lee datos de un bloque funcional, muestrea la palabra de datos presente en la bandeja de salida
15 o la línea de salida y confirma el éxito del muestreo emitiendo un impulso al bloque funcional respectivo. Esto permite que el bloque funcional proporcione los siguientes datos en la línea de salida o en el cuadro de salida.
[0055] El bus maestro 342 está adaptado para proporcionar datos a las funciones de bloques funcionales respectivas de una manera similar, uno después del otro. El bus maestro 342 incluye un elemento de memoria, que
20 está adaptado para realizar el enrutamiento con la ayuda de un generador de direcciones configurable que define una dirección de destino o una bandeja de entrada de datos de destino 316a-c.
[0056] Las Figs. 5 y 6 muestran un diagrama de bloques esquemático de otra FPGA 400 que incluye una segunda realización de un transportador de datos 440. Las mismas características se proporcionan con los mismos
25 signos de referencia que en la Figura 1 aumentados en 400 a menos que se indique y se describa lo contrario. Las características de la realización de las Figuras 5 y 6 se pueden combinar con otras realizaciones descritas en esta invención. La Figura 6 muestra una vista más detallada de la FPGA 400. Debe tenerse en cuenta que incluso el bloque de entrada y el bloque de salida que no se muestran en estas figuras, también están conectados de manera respectiva al transportador de datos, el reloj y el circuito de configuración como los bloques funcionales. Por lo tanto, 30 la mayoría de las características descritas con respecto a los bloques funcionales también se aplican al bloque de entrada y al bloque de salida.
[0057] De acuerdo con las realizaciones descritas en esta invención, los bloques de entrada y los bloques de salida se consideran como una realización específica de un bloque funcional.
35
[0058] La FPGA 400 incluye una pluralidad de bloques funcionales, en el que cada bloque funcional incluye una bandeja de salida de datos 414a, 414b, 414c y una entrada de datos 416a, 416b, 416c. En otras realizaciones, la FPGA 300 puede incluir bloques más o menos funcionales. Para mayor claridad, las bandejas de salida de datos 414a, 414b, 414c y las bandejas de entrada 416a, 416b, 416c para cada bloque funcional se muestran por separado
40 en el lado izquierdo y el lado derecho de la figura, respectivamente.
[0059] Además, la FPGA 400 incluye un reloj o contador 460. El reloj 460 está conectado a cada bloque funcional y, en particular, a los bloques de entrada y los bloques de salida.
45 [0060] De acuerdo con las realizaciones descritas en esta invención, la transmisión de datos se realiza como
una estructura del multiplexor distribuido. En otras palabras, la función del multiplexor se distribuye entre diferentes elementos de la FPGA, a saber, un elemento central y al menos un elemento específico para cada bloque funcional, que controla los datos que se proporcionarán al elemento central. Los elementos específicos del bloque funcional están conectados al elemento central. Por ejemplo, las funciones del multiplexor se pueden distribuir entre el 50 transportador de datos 440 y los bloques funcionales.
[0061] El transportador de datos 440 incluye como elemento central al menos una puerta OR 442. Los puertos de entrada 444a, 444b, 444c de la puerta OR 442 están conectados respectivamente a los puertos de salida 415a, 415b, 415c de las respectivas bandejas de salida 414a-c. Un puerto de salida 445 de la puerta OR 442 está
55 conectado a los respectivos puertos de entrada 417a-c de las respectivas bandejas de entrada 416a-c.
[0062] En una realización, las conexiones entre las bandejas de salida 414a-c y la puerta OR 442 tienen un ancho de datos de 1 bit. En otras realizaciones, también pueden usarse otros anchos de datos, por ejemplo 2 o 3 bits. Por consiguiente, la conexión entre la puerta OR 442 y las bandejas de entrada de datos 416a-c tiene el mismo
ancho de datos que la conexión entre las bandejas de salida de datos 414a-c y la puerta OR, por ejemplo, en este caso un ancho de datos de 1 bit.
[0063] Se debe tener en cuenta que el transportador de datos 440 o el elemento central de la estructura de 5 datos distribuidos puede incluir varias etapas de puertas OR. Por ejemplo, después de una puerta OR de 20
entradas se coloca un biestable, por ejemplo, un biestable D, después de lo cual se coloca otra puerta OR. De acuerdo con un ejemplo, una entrada OR completa 100 puede incluir cinco 20 puertas OR de entrada, cinco biestables u otros elementos de memoria, respectivamente uno conectado a la salida de cada puerta OR, y una 5 puerta OR de entrada. En este caso, cada etapa de las puertas OR se incluye en el elemento central de la estructura 10 del multiplexor distribuido.
[0064] Si solo una entrada de la puerta OR 442 es alta, la salida también es alta. Por lo tanto, las salidas de los bloques funcionales tienen que controlarse, por ejemplo, por un elemento específico del bloque funcional una estructura del multiplexor distribuido.
15
[0065] Cada bloque funcional 410a-b se proporciona con al menos un dispositivo de configuración 500, 502 (véase la Figura 6) para cada bandeja de salida 414a-c y cada bandeja de entrada 416a-c para controlar los datos proporcionados al transportador de datos o recibida por el transportador de datos. Los dispositivos de configuración 500, 502 se pueden ver como elementos específicos del bloque de funciones de la estructura del multiplexor
20 distribuido.
[0066] De acuerdo con la realización mostrada en las Figuras 5 a 7, el transportador de datos 440 está adaptado para proporcionar una pluralidad de ranuras de tiempo. En otras palabras, la comunicación se divide en ranuras, en las que cada bloque funcional 410a, 410b sabe cuándo puede conducir su salida durante un intervalo de
25 tiempo preasignado. Si durante una ranura de tiempo el bloque funcional de fuente respectivo 410a, 410b, quiere señalizar un nivel bajo, no conduce su salida y al mismo tiempo ningún otro bloque funcional 410a, 410b considera conducir la línea. Por lo tanto, la señal resultante después de la puerta OR 442 permanece baja. En el caso de que el bloque funcional 410a, 410b desee indicar un nivel alto, la salida después de la puerta OR 442 se eleva.
30 [0067] Los dispositivos de configuración 500, 502 y las funciones 412a, 412b están configurados por el
circuito de configuración 450. Cada dispositivo de configuración 500, 502 es activado por el reloj (central) o el contador 460. El circuito de configuración 450 lee cíclicamente o en intervalos de tiempo regulares una memoria externa, como se muestra en la Figura 2, para recuperar los parámetros o datos de configuración. En la Figura 6 solo se muestran dos dispositivos de configuración 500, 502, en particular para el bloque funcional 410a. Sin 35 embargo, también los otros bloques funcionales, en particular el bloque de salida y el bloque de entrada, incluyen uno o más dispositivos de configuración.
[0068] En particular, el dispositivo de configuración 500 está adaptado para asignar los datos almacenados en cada ranura de tiempo específica de la bandeja de salida de datos 414a-ca en el transportador de datos. En
40 consecuencia, el dispositivo de configuración 502 está adaptado para asignar a cada bandeja de entrada de datos 416a una ranura de tiempo específico para recibir datos de entrada del transportador de datos 440. En otras palabras, el primer dispositivo de configuración 500 está adaptado para controlar dos bandejas de salida 414a del bloque funcional 410a y el segundo dispositivo de configuración 502 está adaptado para controlar las dos bandejas de entrada de datos 416a. Por lo tanto, ambos dispositivos de configuración 500, 502 se pueden considerar como 45 elemento específico de bloque funcional de la estructura del multiplexor distribuido, ya que controlan el tiempo cuando el bloque funcional recibe de o proporciona al transportador de datos.
[0069] De acuerdo con una realización, las bandejas de entrada de datos 416a-c y las bandejas de salida de
datos 414a-c son registros de desplazamiento. Los registros de desplazamiento pueden escribirse de forma paralela
50 y leerse en serie o viceversa. De este modo, las bandejas de entrada de datos 416a-c pueden proporcionar un bit después del otro de la bandeja de salida 414a-c al transportador de datos. Además, el reloj o el contador 460 activan cada bandeja de entrada de datos 416a-c y cada bandeja de salida de datos 414a-c.
[0070] Además, en caso de que un bloque funcional 410a-b incluya más de una bandeja de entrada de datos 55 416a-c y bandeja de salida de datos 414a-c, cada bandeja de entrada de datos y salida de datos 414a-c, 416a-c
incluye un puerto de entrada de selección 503, 508 que define si la bandeja de entrada o salida de datos respectiva puede escribir datos en el transportador de datos 440 o recibir datos del mismo. De acuerdo con una realización, el dispositivo de configuración 500, 502 establece el puerto de entrada de selección según su configuración.
[0071] La salida de las bandejas de salida de datos 414a, en particular los registros de desplazamiento, dentro de un bloque funcional 410a-b están conectadas a los puertos de entrada de una puerta OR 504, de modo que el bloque funcional 410a proporciona una única salida. La salida de la puerta OR 504 está conectada a una primera entrada de una puerta AND 506. El dispositivo de configuración 500 acciona la segunda entrada de la puerta
5 AND 506. Por lo tanto, el primer dispositivo de configuración 500 está adaptado para determinar, dependiendo de la entrada del reloj, en qué ranura de tiempo del transportador de datos 440 los datos almacenados en cada una de las bandejas de salida 414a pueden escribirse habilitando una de las dos bandejas de salida de datos 414a a través del puerto de entrada de selección 503 y habilitando o deshabilitando la salida usando la puerta AND 506. La salida de la puerta AND 506 está conectada como entrada al transportador de datos 440, en particular la puerta OR 442 del 10 transportador de datos 440.
[0072] Por consiguiente, el segundo dispositivo de configuración 502 está adaptado para determinar, dependiendo de la entrada de reloj, en qué ranura de tiempo del transportador de datos 440 los datos del transportador de datos 440 deberían proporcionarse a una de las bandejas de entrada de datos 416a habilitando
15 uno de las dos bandejas de salida de datos 414a a través del puerto de entrada de selección 508.
[0073] El bloque funcional 410a incluye una función 412a que escribe un resultado en las dos bandejas de salida 414a. Además, la función 412a lee los datos de las dos bandejas de entrada de datos 4116a en las que se realizan los cálculos posteriores.
20
[0074] En una realización, el transportador de datos puede incluir además un elemento de memoria 446, que está conectado a la salida de la puerta OR 442. Por ejemplo, el elemento de memoria 446 puede ser un biestable D.
[0075] De acuerdo con una realización, los dispositivos de configuración, las bandejas de salida de datos y 25 las bandejas de entrada de datos, el(los) elemento(s) de memoria del transportador de datos están sincronizados por
un reloj o contador central.
[0076] En la Figura 7, el bloque funcional 410a se muestra de otra manera en comparación con las Figuras 5 y 6. El bloque funcional 410 incluye solo una bandeja de entrada de datos 416a y una bandeja de salida de datos
30 414a. La bandeja de entrada de datos 416a está adaptada para recibir datos del transportador de datos 440 y la bandeja de salida de datos 414a está adaptada para proporcionar datos al transportador de datos 440. La función 412a incluye dos subfunciones 510, por ejemplo, una función de comparación, y 512, por ejemplo, una función de clasificación. Los parámetros 514, 516 de las subfunciones 510, 512, por ejemplo, un umbral, pueden establecerse mediante el circuito de configuración 450. Además, los parámetros 518, 520 para multiplexación, por ejemplo, 35 asignando una ranura de tiempo en el transportador de datos 440, y demultiplexación, por ejemplo, leyendo una ranura de tiempo específica del transportador de datos 440, también se establecen mediante el circuito de configuración 450 a través de los dispositivos de configuración 500, 502.
[0077] A continuación, se explica el funcionamiento de la FPGA usando el bloque funcional 410a. Durante 40 una fase de cálculo, la función 412a lee los datos de las bandejas de entrada de datos 416a y realiza un cálculo
sobre los datos leídos. Después, la función 412a proporciona los resultados en las bandejas de salida de datos 414a.
[0078] Durante la fase de transferencia de datos, el dispositivo de configuración 500 habilita en una primera 45 ranura de tiempo predefinido o valor de reloj del reloj 460 la primera bandeja de salida de datos para proporcionar
datos al transportador de datos 440 o puerta OR utilizando el puerto de entrada de selección 503 de la primera bandeja de salida de datos y el segundo puerto de entrada de la puerta AND 506. Ahora, a cada señal del reloj, se proporciona un bit de la primera bandeja de salida de datos en el transportador de datos 440, en este caso la puerta OR 442. Los dispositivos de configuración de los otros bloques funcionales no permiten que sus circuitos 50 respectivos, por ejemplo, sus registros de desplazamiento o bandejas de salida de datos escriban datos en el transportador de datos 440 durante esta ranura de tiempo. Entonces, durante una segunda ranura de tiempo predefinida o valor de reloj del reloj 460, siendo diferente a la primera ranura de tiempo predefinida, el dispositivo de configuración 500 habilita la segunda bandeja de salida de datos 414a usando el puerto de entrada de selección 503 de la segunda bandeja de salida de datos y el segundo puerto de entrada de la puerta AND 506. Ahora, a cada 55 señal del reloj, se proporciona un bit de la segunda bandeja de salida de datos 414a en el transportador de datos 440, en este caso la puerta OR 442.
[0079] Por consiguiente, durante la fase de transferencia de datos, el dispositivo de configuración 502 habilita en una tercera ranura de tiempo predefinido o valor de reloj del reloj 460 la primera bandeja de entrada de datos
416a usando el puerto de entrada de selección 508 de la primera bandeja de entrada de datos. Ahora, en cada señal de reloj, se escribe un bit del transportador de datos 440 en la primera bandeja de entrada de datos. En una cuarta ranura de tiempo predefinida o valor de reloj del reloj 460, siendo diferente a la tercera ranura de tiempo predefinido, el dispositivo de configuración 502 habilita la segunda bandeja de entrada 416a usando el puerto de entrada de 5 selección 508 de la segunda bandeja de entrada de datos. En cada señal de reloj, un bit del transportador de datos se escribe en la segunda bandeja de entrada de datos. Por lo tanto, ambas bandejas de entrada de datos se llenan con los datos del transportador de datos 440.
[0080] Por lo tanto, de acuerdo con las realizaciones descritas en esta patente, todos los bloques funcionales, 10 así como los bloques de entrada y los bloques de salida están conectados a una puerta OR 442 del transportador de
datos. El tiempo disponible para la comunicación se divide en ranuras de tiempo que pueden durar un bit, un byte o incluso una palabra. Cada ranura se asigna a un valor de reloj del reloj 460. El valor de reloj puede leerse en todos los bloques funcionales, y también en los bloques de entrada y salida. Por lo tanto, los datos de configuración para cada bloque funcional incluyen en qué ranura de tiempo se permite que el bloque proporcione datos al transportador 15 de datos. Por ejemplo, los dispositivos de configuración 500, 502 están adaptados para comparar el reloj actual o el valor del contador con las ranuras de entrada o salida configuradas que el bloque funcional puede usar. Esta señal de comparación está adaptada para proporcionarse al segundo puerto de entrada de la puerta AND 506. Los circuitos de configuración 502 pueden seleccionarse de una manera similar, en qué ranura de tiempo los datos deberían leerse desde el transportador de datos 440.
20
[0081] De acuerdo con las realizaciones descritas en este documento, los bloques funcionales pueden estar interconectados de forma arbitraria al poder configurar estáticamente para cada bloque funcional a donde enviar sus señales de salida. En otras palabras, si la configuración no cambia, los intervalos de tiempo asignados para los respectivos bloques funcionales no cambian. Por lo tanto, durante la fase de transferencia de datos, la escritura en
25 las ranuras de tiempo y la lectura respectiva de las ranuras de tiempo se repiten cíclicamente.
[0082] Esta disposición de circuito le permite utilizar una cantidad muy limitada de datos de configuración para personalizar las aplicaciones de instrumentación y control, casi tan flexible como se puede hacer mediante el uso de sistemas basados en software, al tiempo que conserva las ventajas de la tecnología de FPGA.
30
[0083] Por lo tanto, la FPGA de acuerdo con las realizaciones descritas en esta invención se puede usar para programar usando una estrategia de diagrama para configurar la FPGA.

Claims (10)

  1. REIVINDICACIONES
    1. Matriz de puertas programable por campo (1, 100, 200, 300, 400) que comprende:
    5 una pluralidad de bloques funcionales (10a-d, 20, 30, 110a-h, 120a-d, 130a-d, 210a-e, 410a, 410b) que comprende al menos uno de los bloques funcionales al menos una función (12a-d, 412a, 412b), usando al menos una de las funciones un parámetro (514, 518), donde los bloques funcionales están adaptados para realizar al menos una función en una fase de cálculo; caracterizada por:
    10 un transportador de datos (40, 140, 240, 340, 440) que comprende una pluralidad de ranuras de datos (42), donde cada bloque funcional (10a-d, 20, 30, 110a-h, 120a-d, 130a-d, 210a-e, 410a, 410b) está adaptado, en una fase de transferencia de datos, para recibir datos de entrada de una o más primeras ranuras predefinidas (42) y/o para proporcionar datos de salida en una o más segundas ranuras predefinidas (42); y
    un circuito de configuración (150, 450) adaptado para configurar el parámetro para al menos la función que usa el 15 parámetro y para definir una o más primeras ranuras y/o una o más segundas ranuras para al menos un bloque funcional, donde
    la matriz de puertas programable por campo está adaptada para repetir cíclicamente la fase de transferencia de datos y la fase de cálculo.
    20 2. Matriz de puertas programable por campo de acuerdo con la reivindicación 1, donde el circuito de
    configuración está adaptado para definir una o más primeras ranuras y/o una o más segundas ranuras de una pluralidad, en particular todos los bloques funcionales (10a-d, 20, 30, 110a-h, 120a-d, 130a-d, 210a- e, 410a, 410b).
  2. 3. Matriz de puertas programable por campo de acuerdo con la reivindicación 1 o 2, donde al menos un
    25 bloque funcional (10a-d, 20, 30, 110a-h, 120a-d, 130a-d, 210a-e, 410a, 410b) está adaptado para recibir datos de entrada desde al menos dos primeras ranuras o para proporcionar datos de salida en al menos dos segundas ranuras (42), donde al menos dos ranuras de las primeras ranuras o de las segundas ranuras no son adyacentes entre sí.
    30 4. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones
    anteriores, donde al menos un bloque funcional (10a-d, 20, 30, 110a-h, 120a-d, 130a-d, 210a-e, 410a, 410b) está adaptado para recibir datos de salida de datos de entrada de al menos dos bloques funcionales.
  3. 5. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones 35 anteriores, donde la primera y/o segunda ranura (42) son ranuras de tiempo, y/o
    los bloques funcionales (10a-d, 20, 30, 110a-h, 120a- d, 130a-d, 210a-e, 410a, 410b) son, en al menos dos fases de transferencia de datos posteriores, por ejemplo, todas las fases de transferencia de datos, adaptadas para recibir datos de entrada, respectivamente, de la misma o más primeras ranuras predefinidas (42) y/o proporcionar datos de salida en respectivamente la misma o más segundas ranuras predefinidas (42).
    40
  4. 6. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones
    anteriores, donde el transportador de datos (40, 140, 340, 440) incluye un multiplexor y/o incluye un elemento central
    (442) de una estructura del multiplexor distribuido.
    45 7. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones
    anteriores, donde el transportador de datos (40, 140, 440) incluye al menos una puerta OR que tiene una pluralidad
    de puertos de entrada, donde el puerto de salida de una pluralidad de bloques funcionales está conectado a los puertos de entrada de la puerta OR (442).
    50 8. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones
    anteriores, donde cada bloque funcional incluye al menos una bandeja de entrada de datos (16a-d, 36, 316a-c, 416a-c), en particular como registro de desplazamiento de entrada (416a), para los datos de entrada y/o al menos una bandeja de salida de datos (14a-d, 24, 314a-c, 414a-c), en particular como un registro de desplazamiento de salida (414a), para los datos de salida.
    55
  5. 9. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones
    anteriores, donde al menos una función (12a-d, 412a, 412b) de los bloques funcionales está adaptada para leer al menos un dato de entrada, en particular de la bandeja de entrada de datos (16a-d, 36, 316a-c, 416a-c), para realizar una tarea en al menos un dato de entrada, y para proporcionar el resultado de la tarea como mínimo una salida de
    datos, en particular en la salida de datos (14a-d, 24, 314a-c, 414a-c).
  6. 10. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones anteriores, donde al menos una función (12a-d, 412a, 412b) es una función binaria para operaciones lógicas
    5 binarias, una función de comparación, una función de votación, una función de cálculo y/o una memoria binaria.
  7. 11. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones anteriores, donde la matriz de puertas programable por campo está adaptada para realizar la al menos una función (12a-d, 412a, 412b) de todos los bloques funcionales (10a-d, 20, 30, 110a-h, 120a-d, 130a-d, 210a- e, 410a, 410b)
    10 al mismo tiempo.
  8. 12. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones anteriores, donde al menos un bloque funcional (20, 120a-d), en particular una pluralidad de bloques funcionales (120a-d), es uno o más bloques de entrada, donde cada bloque de entrada está adaptado para recibir datos de
    15 dispositivos externos a la matriz de puertas programable por campo y para extraer los datos de al menos un bloque funcional (10a-d, 110a-h, 210a-e, 410a, 410b) que realiza una función (12a-d, 412a, 412b), y donde al menos un bloque funcional (30, 130a-d), en particular una pluralidad de bloques funcionales (130a-d), es uno o más bloques de salida adaptados para transformar datos de salida de al menos un bloque funcional (10a-d, 110a-h, 210a-e, 410a, 410b) que realiza una función (12a-d, 412a, 412b) para dispositivos externos a la matriz de puertas programable por 20 campo.
  9. 13. Matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones anteriores, donde el circuito de configuración (150, 450) está adaptado para recuperar los datos de configuración de una memoria externa (152) que es externa a la matriz de puertas programable por campo.
    25
  10. 14. Dispositivo de control para una central eléctrica, en particular una central de energía nuclear, donde el dispositivo de control incluye una matriz de puertas programable por campo de acuerdo con una cualquiera de las reivindicaciones anteriores.
ES15305932.4T 2015-06-16 2015-06-16 Matriz de puertas programable por campo que comprende una pluralidad de bloques funcionales y dispositivo de control para una central eléctrica Active ES2672014T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP15305932.4A EP3107212B1 (en) 2015-06-16 2015-06-16 Field programmable gate array comprising plurality of functional blocks and control device for a power plant

Publications (1)

Publication Number Publication Date
ES2672014T3 true ES2672014T3 (es) 2018-06-12

Family

ID=54150348

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15305932.4T Active ES2672014T3 (es) 2015-06-16 2015-06-16 Matriz de puertas programable por campo que comprende una pluralidad de bloques funcionales y dispositivo de control para una central eléctrica

Country Status (9)

Country Link
US (1) US10498340B2 (es)
EP (1) EP3107212B1 (es)
KR (1) KR102546585B1 (es)
CN (1) CN107750431B (es)
CA (1) CA2986653C (es)
ES (1) ES2672014T3 (es)
PL (1) PL3107212T3 (es)
UA (1) UA122412C2 (es)
WO (1) WO2016202734A1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416176B1 (ko) * 2016-05-10 2022-07-01 엘에스일렉트릭(주) 슬레이브 디바이스 제어 방법
FR3063855B1 (fr) * 2017-03-08 2019-04-12 Areva Np Circuit logique programmable de commande d'une installation electrique, en particulier une installation nucleaire, dispositif et procede de commande associes

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7030651B2 (en) * 2003-12-04 2006-04-18 Viciciv Technology Programmable structured arrays
WO2005078933A1 (ja) * 2004-02-12 2005-08-25 Matsushita Electric Industrial Co., Ltd. プログラマブル論理回路
US7925477B2 (en) * 2004-09-20 2011-04-12 The Mathworks, Inc. Method and system for transferring data between a discrete event environment and an external environment
US7890310B2 (en) * 2004-11-17 2011-02-15 The Mathworks, Inc. Method for analysis of control systems
US7570079B2 (en) * 2007-04-17 2009-08-04 Mihai Sima Level-restoring buffers for programmable interconnect circuits and method for building the same
DE102007022970A1 (de) 2007-05-16 2008-11-20 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur dynamischen Rekonfiguration eines Funkkommunikationssystems
EP2200200B1 (en) * 2008-12-19 2011-04-13 Alcatel Lucent Scalable network element with Segmentation and Reassembly (SAR) functionality for switching time division multiplex signals
US8120382B2 (en) * 2010-03-05 2012-02-21 Xilinx, Inc. Programmable integrated circuit with mirrored interconnect structure
US8581626B2 (en) * 2011-08-25 2013-11-12 Kabushiki Kaisha Toshiba Control system, logic module substrate, and logic FPGA
CN202268899U (zh) * 2011-09-20 2012-06-06 浙江铭道通信技术有限公司 32e1电口采集卡
US8701069B1 (en) * 2012-11-21 2014-04-15 Maxeler Technologies, Ltd. Systems and methods for optimizing allocation of hardware resources to control logic in parallel pipelined hardware
AU2014318570A1 (en) * 2013-09-13 2016-05-05 Smg Holdings-Anova Technologies, Llc Self-healing data transmission system to achieve lower latency
CN104252560B (zh) * 2014-09-05 2017-08-01 烽火通信科技股份有限公司 基于现场可编程门阵列的集中缓存式装置及设计方法
CN104536867B (zh) * 2015-01-22 2017-01-25 浪潮(北京)电子信息产业有限公司 实现多片现场可编程门阵列调试的系统及方法

Also Published As

Publication number Publication date
EP3107212B1 (en) 2018-04-25
KR20180019109A (ko) 2018-02-23
CN107750431A (zh) 2018-03-02
CN107750431B (zh) 2021-12-10
PL3107212T3 (pl) 2018-10-31
US10498340B2 (en) 2019-12-03
CA2986653A1 (en) 2016-12-22
WO2016202734A1 (en) 2016-12-22
US20180191352A1 (en) 2018-07-05
CA2986653C (en) 2023-10-17
UA122412C2 (uk) 2020-11-10
KR102546585B1 (ko) 2023-06-23
EP3107212A1 (en) 2016-12-21

Similar Documents

Publication Publication Date Title
US9673824B2 (en) Techniques and circuitry for configuring and calibrating an integrated circuit
US20160267047A1 (en) Low-Pin Microcontroller Device With Multiple Independent Microcontrollers
ES2617318T3 (es) Células de lógica configurable
US11960734B2 (en) Logic fabric based on microsector infrastructure with data register having scan registers
US7106098B1 (en) Split FIFO configuration of block RAM
EP3152670B1 (en) Ice pin functionality for multi-processor core devices
ES2672014T3 (es) Matriz de puertas programable por campo que comprende una pluralidad de bloques funcionales y dispositivo de control para una central eléctrica
EP4020810B1 (en) Debug trace microsectors
JP2008526110A (ja) Fpgaにおける揮発性メモリベースのプログラマブル回路のための不揮発性メモリ構成方式
KR20140026447A (ko) 다수의 인터럽트 소스들을 결합하여 단일 인터럽트 소스가 되게 하고 다수의 신호 소스들을 결합하여 구동 세기를 제어하는 논리 디바이스
US6954085B2 (en) System and method for dynamically executing a function in a programmable logic array
EP3152671B1 (en) Device and method to assign device pin ownership for multi-processor core devices
US11386009B2 (en) Programmable device configuration memory system
US7132971B2 (en) Analog-to-digital interfacing device and method of analog-to-digital interfacing
Butkowski et al. FPGA firmware framework for MTCA. 4 AMC modules
US8059677B1 (en) Scalable channel bundling with adaptable channel synchronization
Temnikov An USB-driven controller of an experimental facility
IT202100029735A1 (it) Metodo per interfacciare una prima unità di lettura/scrittura dati ad una seconda unità di lettura/scrittura dati e relativi moduli di interfaccia
Hrynkiewicz et al. Programmable logic controller based on reconfigurable logic