WO2016202734A1 - Field programmable gate array comprising plurality of functional blocks, and control device for a power plant - Google Patents
Field programmable gate array comprising plurality of functional blocks, and control device for a power plant Download PDFInfo
- Publication number
- WO2016202734A1 WO2016202734A1 PCT/EP2016/063482 EP2016063482W WO2016202734A1 WO 2016202734 A1 WO2016202734 A1 WO 2016202734A1 EP 2016063482 W EP2016063482 W EP 2016063482W WO 2016202734 A1 WO2016202734 A1 WO 2016202734A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- slots
- field programmable
- programmable gate
- gate array
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
-
- 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
- G05B19/00—Program-control systems
- G05B19/02—Program-control systems electric
- G05B19/04—Program control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17724—Structural details of logic blocks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17724—Structural details of logic blocks
- H03K19/17732—Macroblocks
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/1778—Structural details for adapting physical parameters
- H03K19/17792—Structural details for adapting physical parameters for operating speed
-
- 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/10—Plc systems
- G05B2219/16—Plc to applications
- G05B2219/161—Nuclear plant
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic 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
Definitions
- Field programmable gate array comprising plurality of functional blocks, and control device for a power plant
- the present invention concerns a field programmable gate array comprising plurality of functional blocks at least one of the functional blocks comprising at least one function, at least one of the functions using a parameter, wherein the functional blocks are adapted to perform the at least one function in a calculation phase.
- the present invention relates to a control device for a power plant, in particular a nuclear power plant, wherein the control device includes such a field programmable gate array.
- WO 2008/138420 A1 discloses a device for the dynamic reconfiguration of a radio communications system.
- the device comprises functional blocks which may be reprogrammed to switch from a transmission mode to a receiving mode or vice versa.
- FPGA field programmable gate arrays
- Object of the invention is to provide a field programmable gate array that enables proven diagram centric project specific engineering approach while still providing the benefits of FPGA technology.
- the field programmable gate array comprising: plurality of functional blocks at least one of the functional blocks comprising at least one function, at least one of the functions using a parameter, wherein the functional blocks are adapted to perform the at least one function in a calculation phase;
- a data conveyor comprising a plurality of data slots, wherein each functional block is, in a data transfer phase, adapted to receive input data from one or more predefined first slots and/or to provide output data into one or more predefined second slots;
- a configuration circuit adapted to configure the parameter for the at least function using the parameter and to define the one or more first slots and/or the one or more second slots for at least one functional block, wherein
- the field programmable gate array is adapted to cyclically repeat the data transfer phase and calculation phase.
- the invention may include one or more of the following features in any technical possible combination:
- the configuration circuit is adapted to define the one or more first slots and/or the one or more second slots of a plurality, in particular all functional blocks;
- At least one functional block is adapted to receive input data from at least two first slots or to provide output data into at least two second slots, wherein at least two slots of the first slots or the second slots are not adjacent to each other;
- At least one functional block is adapted to receive as input data output data of at least two functional blocks
- the first and/or second slots are time slots
- the functional blocks are, in at least two subsequent data transfer phases, for example all data transfer phases, adapted to receiving input data respectively from the same one or more predefined first slots and/or providing output data into respectively the same one or more predefined second slots.
- the data conveyor includes a multiplexer and/or includes a central element of a distributed multiplexer structure
- the data conveyor includes at least one OR gate having a plurality of input ports, wherein the output port of a plurality of a functional blocks is connected to the input ports of the OR gate;
- each functional block includes at least one data inbox, in particular as input shift register, for the input data and/or at least one data outbox, in particular as an output shift register, for the output data;
- At least one function of the functional blocks is adapted to read the at least one input data, in particular from the data inbox, to perform a task on the at least one input data, and to provide the result of the task as the at least one output data, in particular in the data outbox;
- the at least one function an binary function for binary logic operations, a compare function, a voting function, a calculation function and/or a binary memory;
- the field programmable gate array is adapted to perform the at least one function of all functional blocks concurrently;
- At least one functional block in particular a plurality of functional blocks, is a or are input block(s), wherein each input block is adapted to receive data from devices external to the field programmable gate array and to extract the data for at least one functional block performing a function, and wherein at least one functional block, in particular a plurality of functional blocks, is a or are output block(s) adapted to transform output data from at least one functional block performing a function for devices external to the field programmable gate array; and/or
- the configuration circuit is adapted to retrieve the configuration data from an external memory being external to the field programmable gate array.
- a control device for a power plant in particular a nuclear power plant, wherein the control device includes a field programmable gate array according to embodiments disclosed herein.
- FPGA based devices which may be programmed using diagram centric programming may be used in a power plant, in particular a nuclear power plant.
- the flexibility of the circuit is reduced, but still great enough to adapt the FPGA to a specific project in the domain of power plants, in particular nuclear power plants, instrumentation and control systems.
- the qualifying effort is substantially reduced as it may be done before configuring the FPGA for a specific project.
- the FPGA implements a plurality of functional blocks, which may be connected in a configurable way to each other according to the project, for example via a time multiplexing circuit using fixed (configurable) slots for the input and output of each functional block.
- this adapting of the FPGA does not need a modification of the basic circuit based on VHDL.
- the FPGA circuits may be qualified, and the detailed configuration may be performed in each project.
- the FPGA may include a superset of all logic blocks needed for different projects.
- a small configuration circuit or memory may adapt individually each functional block as specified for a respective project.
- Fig. 1 shows schematically a flow chart of an embodiment of an FPGA according to the invention
- Fig. 2 shows a schematic block diagram of an embodiment of an FPGA according to the invention
- Fig. 3 shows a schematic block diagram of an embodiment of a data conveyor
- Fig. 4 shows a schematic block diagram of a further embodiment of a data conveyor
- Fig. 5 shows a schematic block diagram of a another embodiment of a data conveyor
- Fig. 6 shows in more detail a schematic block diagram of an embodiment of an FPGA according to the invention using the data conveyor of Figure 5;
- Fig. 7 shows schematically a block diagram of a functional block of an FPGA according to the invention using the data conveyor of Figure 5.
- Figure 1 shows a schematic flow chart of an embodiment of an FPGA (field programmable gate array) 1 according to the invention.
- FPGA field programmable gate array
- the FPGA 1 includes a plurality of functional blocks 10a, 10b, 10c, 10d. Further, the
- FPGA 1 includes specific functional blocks, namely an input block 20 and an output block 30.
- Each functional block 10a-d, the input block 20 and the output block 30 includes at least one function or operator 12a, 12b, 12c, 12d, 22, 32 to be performed on data received.
- the functional blocks 10a-d may implement instrumentation and control related functions, such as voting 2oo4 digital input signals, one or more digital gates (AND, OR, etc), one or more floating point units performing calculations such as a square root or logarithm , one or more threshold comparators or calculations steps as a function 12a-d.
- instrumentation and control related functions such as voting 2oo4 digital input signals, one or more digital gates (AND, OR, etc), one or more floating point units performing calculations such as a square root or logarithm , one or more threshold comparators or calculations steps as a function 12a-d.
- the function or operator 12a-d are provided as a hard coded circuit in the FPGA 1 . Each function 12a-d is adapted to calculate one or more output data from one or more input data.
- the output data of the functional blocks 10a-d is provided to one or more data outboxes 14a, 14b, 14c, 14d.
- the input data of the functional blocks 10a-d is received or read from one or more data inboxes 16a, 16b, 16c, 16d.
- the input block 20 is, according to an embodiment, connected to a first external communication line 26, which is external to the FPGA 1 and which provides data to be treated to the FPGA 1 .
- the data may be provided in an arbitrary protocol or it may be even represent analogue data.
- the input block 20 may comprise as a function or operator 22 a converter to convert the format from the first external communication line 26 to the internal data format that are used by the functional blocks 10a-d.
- the converter may be a converter to extract data received from an optical fiber or from a bus, or from different input formats or protocols, so that the data can be treated by the functional blocks 10a-d.
- the converted data is put into at least one data outbox 24.
- the output block 30 provides the output data read from at least one inbox 36 to a second external communication line 34, which is external to the FPGA.
- the second external communication line may be a specific bus, for example an optical fiber.
- the second external communication line 34 may be an analog connection. In other embodiments it is a binary connection.
- the output block 30 may comprise as a function or operator 32 a converter to convert the data from the internal data format to a data suitable for the first external communication line 34.
- the function 32 may include a packaging function for a specific protocol.
- the FPGA 1 includes a data conveyor 40.
- the data conveyor includes a plurality of slots 42.
- the number of slots is for example at least 256 for example between 512 and 4096.
- Each slot 42 may convey one or more bits.
- the data conveyor includes at least two groups of slots.
- a first group of slots, for example between 512 to 4096 slots, are binary value slots and a second group of slots, for example 64 to 2048 slots, are analog value slots.
- the analog value slots may have a width of at least 32 bits.
- the binary value slots may have a width of one or two bits.
- Each functional block 10a-d and the output block 30 is configured to receive or to read, during at least one first processing period, data from one or more predefined slots 42 into their respective one or more inboxes 16a-d, 36.
- Each functional block 10a-d and the input block 20 is configured to provide, during at least one second processing period, data from their one or more outboxes 14a-d, 24 into one or more predefined slots 42 of the data conveyor 40.
- each functional block 10a-d, the input block 20 and the output block 30 are adapted to receive input data, respectively to provide output data into a plurality of slots 42 of the data conveyor 40 according to their respective parametrization or configuration.
- any functional block 10a-d, 20, 30 can be configured to use any slot of the data conveyor 40 for the input data or output data.
- the operation to provide the data to the one or more predefined slots and to read the data from the one or more predefined slots 42 may in a combined first and second processing period, which may be further divided in sub- periods.
- the performing of the calculations on the data in the functions 12a-d, 22, 32 are performed in parallel.
- the calculations in the functions 12a-d, 22, 32 are performed in a third processing period.
- the first, second (or combined first and second) processing period and the third processing period are repeated in the same manner.
- the functional blocks perform the same operations, only using different values, which are provided or stored in the respective slots.
- the data conveyor providing a number of slots 42 is written and read in a strictly timed manner according to a central configuration.
- it is centrally determined, when the data exchange between the data conveyor 40 and the inboxes 16a- d, 36 and outboxes 14a-d, 24 take place and when the functions 12a-d, 22, 32 are performed in the functional blocks 10a-d, and in particular in the input block 20 and the output block 30. Therefore, there exist a data transfer phase, which includes the at least one first and second processing period, and a calculation phase, which includes the third processing period. According to an embodiment, the transfer phase and the calculation phase are alternatingly performed in the FPGA 1 .
- a configuration circuit (not shown in Figure 1 ) is adapted to set the parameters in the respective functional blocks 10a-d the output block 20 and the input block 30.
- the configuration circuit is adapted to parameterize the functions of the functional blocks 10a-d according to a predefined set of parameters, such as, for example threshold values for a threshold comparator.
- the configuration circuit is adapted to define or set the slots 42 for the output data for each functional block 10a-d, 20, 30.
- the configuration circuit is adapted to store and to set the assignment of outboxes 14a-d, 24 to the respective slots 42 of the data conveyor and the assignment of the slots 42 to the respective inboxes 16a-d, 36.
- the configuration circuit is adapted to read from a memory, for example a non-volatile memory, the configuration parameters, which include the parameter for the functions 12a-d, 22, 32 and the assignments of the input data or data inboxes and output data or data outboxes to the slots 42 of the data conveyor 40.
- a memory for example a non-volatile memory
- the configuration parameters which include the parameter for the functions 12a-d, 22, 32 and the assignments of the input data or data inboxes and output data or data outboxes to the slots 42 of the data conveyor 40.
- a functional block 10a-d is not needed for a specific project it is statically disabled to access the data conveyor 40.
- an AND gate may be used for that purpose.
- Figure 2 shows an embodiment of an FPGA 100, in which a data conveyor 140 is represented in a different manner.
- the same features are provided with the same reference signs as in Figure 1 increased by 100 unless designated otherwise.
- the features of embodiment of Figure 2 may be combined with other embodiments disclosed herein.
- Figure 2 shows a possible spatial distribution of the different blocks in the FPGA 100.
- the FPGA 100 includes a plurality of functional blocks 1 10a-h. However, it should be noted that the number of functional blocks is not limited to eight.
- the FPGA 100 may also include more or less functional blocks 1 10a-h.
- Each functional block 1 10a-h is connected with an input line 1 14a-h to the data conveyor or bus 140 to receive the input data. Further, each functional block 1 10a-h is provided with an output line 1 16a-h to the data conveyor 140 to provide output data to the data conveyor 140.
- the FPGA includes four input blocks 120a, 120b, 120c, 120d and four output blocks 130a, 130b, 130c, 130d.
- the number of input blocks and output blocks is in an embodiment identical. In other embodiments, the number of input blocks and output blocks may differ from each other. In another example, the FPGA 100 may include more or less than four input blocks and/or more or less than four output blocks.
- Each input block 120a-d is provided with an output line 126a-d to provide data received from input pins 128a-d of the FPGA 100 to the data conveyor 140.
- the data provided to the input pins 128a-d may come from another FPGA or from I/O modules.
- the input blocks 120a-d convert the data received from the input pins 128a-d for the usage in the data conveyor 140, for example as described here-above with respect to Figure 1 .
- each output block 130a-d is provided with an input line 134a-d to receive data from the data conveyor 140.
- the data is transformed or converted to other formats or protocols, for example as described for the embodiment in Figure 1 , to provide it to the output pins 138a-d of the FPGA.
- the data may be then used by other external devices (not shown in Figure 2), for example another FPGA.
- the FPGA 100 includes a configuration circuit 150.
- the configuration circuit is adapted to be connected to a configuration memory 152, for example a non-volatile memory 152.
- the configuration memory 152 is external to the FPGA 100.
- the configuration circuit 150 is adapted to configure the parameters of all functional blocks 140a-h, the input blocks 120a-d and the output blocks 130a-d.
- the configuration circuit 150 is adapted to provide the parameter of a function to be executed by one or more, in particular all, functional blocks 140a-h.
- the configuration circuit 150 is adapted to assign the inboxes and outboxes of the functional blocks 140a-h, the input blocks 120a-d and the output blocks 130a-d to the respective slots of the data conveyor 140.
- all the parameters needed for the configuration of the FPGA 100 are usually stored in the configuration memory 152.
- the configuration circuit 150 is adapted to read the configuration memory 152 and subsequently set all the parameters in the functional blocks 140a-h, the input blocks 120a-d and the output blocks 130a-d.
- the parameters stored in the configuration memory 152 may be also changed during runtime to change the parameters of the functional blocks 1 10a-h, 120a-d, 130a-d.
- a threshold may change during runtime.
- the FPGA 100 may further include a clock 160.
- the clock may provide a central time signal and may define the calculation and the data transfer phases, as discussed here-above.
- the latency is the same or at least a multiple of a fixed quantum for all functional blocks 1 10a-h.
- the clock 160 provides to each functional block 140a-h, the input blocks 120a-d and the output blocks 130a-d a time or clock signal.
- the FPGA 100 includes a test logic 170.
- the test logic 170 is connected to a test pattern memory 172, which is external to the FPGA 100.
- the test pattern memory 172 stores test data, for example in the form of test vectors or test patterns.
- each functional block has its own resources, for example one or more memory elements, one or more logic operation units, and/or one or more floating point units, which are separated from the resources of the other functional blocks.
- each functional block or function has its own memory elements or floating point units.
- it is not necessary the each functional block has all available resources. For example not every functional block may have a floating point unit. In other words, the functional blocks, the input block and the output block do not share resources to perform their tasks.
- Fig. 3 shows an FPGA 200 including a first embodiment of a data conveyor 240.
- the same features are provided with the same reference signs as in Figure 1 increased by 200 unless designated and described otherwise.
- the features of embodiment of Figure 3 may be combined with other embodiments disclosed herein.
- the FPGA 240 comprises a plurality of functional blocks 210a, 210b, 210c, 21 Od,
- the data conveyor 240 is connected to each functional block 210a-e with an input line 214a-e and an output line 216a-e.
- the input line 214a-e and the output line 216a-e may have, for example, a data width of 32 bit. Also other data widths may be used.
- every functional block 210a-e provides the output information in a serialized form. From the point of view of a functional block the data 240 conveyor behaves like a memory.
- the data conveyor 240 is configured to route the data to the correct input line 214a-e and receiving functional block 210a-e.
- every functional block 210a-e needs only to implement a simple memory interface. In this embodiment, there is no obligation to obey a strict and constant cycle time over the whole device.
- Fig. 4 shows another FPGA 300 including a second embodiment of a data conveyor 340.
- the same features are provided with the same reference signs as in Figure 1 increased by 300 unless designated and described otherwise.
- the features of embodiment of Figure 4 may be combined with other embodiments disclosed herein.
- the FPGA 300 includes a plurality of functional blocks, wherein each functional block includes a data outbox 314a, 314b, 314c and a data inbox 316a, 316b, 316c. In other embodiments, the FPGA 300 may include more or less functional blocks. For the sake of simplicity, the data outbox and the inbox for each functional block are shown on the left side and the right side respectively.
- the data outboxes 314a-314c are connected with output lines 315a-c to the bus master 342, which in turn is connected with input lines 317a-c to the respective data inboxes 316a-c.
- the input lines 317a-c and/or the output lines 315a-c may have a band width 8 bit.
- the input lines 317a-c and/or the output lines 315a-c may have another band width.
- the data conveyor 340 comprises a bus master 342, which is adapted to ask every data outbox 314a, 314b, 314c for data.
- the data outboxes 314a-c act merely as slave.
- the bus master 342 is connected to a clock or counter 344.
- the bus master 342 includes a multiplexer.
- the bus master 342 is adapted to serve one functional block after another. When the bus master 342 reads data from a functional block it samples the data word present in the outbox or the output line and acknowledges successful sampling by issuing a pulse to the respective functional block. This enables the functional block to provide the next data onto the output line or in the output box.
- the bus master 342 is adapted to provide the data to the respective functional blocks functions in a similar way one after the other.
- the bus master 342 includes a memory element, which is adapted to perform the routing with the help of a configurable address generator that defines a target address or target data inbox 316a-c.
- FIGs. 5 and 6 show a schematic block diagram of another FPGA 400 including a second embodiment of a data conveyor 440.
- the same features are provided with the same reference signs as in Figure 1 increased by 400 unless designated and described otherwise.
- the features of embodiment of Figures 5 and 6 may be combined with other embodiments disclosed herein.
- Figure 6 shows a more detailed view of the FPGA 400. It should be noted that even the input block and the output block are not shown in these figures, they are also connected in a respective way to the data conveyer, the clock and the configuration circuit as the functional blocks. Thus, most of the features described with respect to the functional blocks also apply to the input block and output block.
- the input blocks and output blocks are considered as a specific embodiment of a functional block.
- the FPGA 400 includes a plurality of functional blocks, wherein each functional block includes a data outbox 414a, 414b, 414c and a data inbox 416a, 416b, 416c.
- the FPGA 300 may include more or less functional blocks.
- the data outboxes 414a, 414b, 414c and the inboxes 416a, 416b, 416c for each functional block are shown separately on the left side and the right side of the figure respectively.
- the FPGA 400 includes a clock or counter 460.
- the clock 460 is connected to every functional block and in particular to the input blocks and the output blocks.
- the data transmission is realized as a distributed multiplexer structure.
- the function of the multiplexer is distributed between different elements of the FPGA, namely a central element and at least one element specific for each functional block, which controls the data to be provided to the central element.
- the functional block specific elements are connected to the central element.
- the functions of the multiplexer may be distributed between the data conveyor 440 and the functional blocks.
- the data conveyor 440 includes as a central element at least one OR gate 442.
- the input ports 444a, 444b, 444c of the OR gate 442 are respectively connected to the output ports 415a, 415b, 415c of the respective outboxes 414a-c.
- An output port 445 of the OR gate 442 is connected to the respective input ports 417a-c of the respective inboxes 416a- c.
- the connections between outboxes 414a-c and the OR gate 442 has a data width of 1 bit. In other embodiments, also other data widths may be used, for example 2 or 3 bits. Accordingly, the connection between the OR gate 442 and the data inboxes 416a-c has the same data width as the connection between the data outboxes 414a-c and the OR gate, for example in this case a data width of 1 bit.
- the data conveyor 440 or the central element of the distributed data structure may include several stages of OR gates.
- a flip-flop is placed, for example a D-flip flop, after which another OR gate is placed.
- a complete 100 input OR may thus include five 20 input OR gates, five flip-flops or other memory elements, respectively one connected to the output of each OR gate, and one 5 input OR gate.
- each stage of the OR gates is included in the central element of the distributed multiplexer structure.
- the output is also high.
- the outputs of the functional blocks have to be controlled, for example by a functional block specific element of a distributed multiplexer structure.
- Each functional block 410a-b is provided with at least one configuration device 500, 502 (see Figure 6) for each outbox 414a-c and each inbox 416a-c to control the data provided to the data conveyor or received by the data conveyor.
- the configuration devices 500, 502 may be seen as function block specific elements of the distributed multiplexer structure.
- the data conveyor 440 is adapted to provide a plurality of time slots.
- the communication is split into slots whereas every functional block 410a, 410b knows when it may drive its output during a pre-assigned time slot. If during a time slot the respective source functional block 410a, 410b, wants to signal a low level, it does not drive its output and at the same time no other functional block 410a, 410b considers driving the line. Therefore, the resulting signal after the OR gate 442 remains low. In case the functional block 410a, 410b wants to signal a high level, the output after the OR gate 442 gets high.
- the configuration devices 500, 502 and the functions 412a, 412b are configured by the configuration circuit 450.
- Each configuration device 500, 502 is triggered by the (central) clock or counter 460.
- the configuration circuit 450 reads cyclically or in regular time intervals an external memory, as shown in Figure 2, to retrieve the parameters or configuration data.
- Figure 6 only two configuration devices 500, 502 are shown, in particular for the functional block 410a. However, also the other functional blocks, in particular the output block and the input block, include one or more configuration devices.
- the configuration device 500 is adapted to assign for the data stored in each data outbox 414a-c a specific time slot on the data conveyor.
- the configuration device 502 is adapted to assign for each data inbox 416a a specific time slot to receive input data from the data conveyor 440.
- the first configuration device 500 is adapted to control two outboxes 414a of the functional block 410a and the second configuration device 502 is adapted to control the two data inboxes 416a.
- both configuration devices 500, 502 may be considered as functional block specific element of the distributed multiplexer structure, as they control the time when the functional block receives form or provides to the data conveyor.
- the data inboxes 416a-c and the data outboxes 414a-c are shift registers.
- the shift registers may be written in a parallel way and read in a serial way or vice versa.
- the data inboxes 416a-c may provide one bit after the other of the outbox 414a-c to the data conveyor.
- each data inbox 416a-c and each data outbox 414a-c is triggered by the clock or counter 460.
- each data inbox and data outbox 414a-c, 416a-c includes a select input port 503, 508 which defines whether the respective data inbox or outbox is allowed to write data to or receive data from the data conveyor 440.
- the configuration device 500, 502 sets the select input port according to its configuration.
- the output of the data outboxes 414a, in particular the shift registers, within a functional block 410a-b are connected to the input ports of an OR gate 504, so that the functional block 410a provides a single output.
- the output of the OR gate 504 is connected to a first input of an AND gate 506.
- the second input of the AND gate 506 is driven by the configuration device 500.
- the first configuration device 500 is adapted to determine, depending on the clock input, in which time slot of the data conveyor 440 the data stored in each of the data outboxes 414a may be written by enabling one of the two data outboxes 414a via the select input port 503 and by enabling or disabling the output using the AND gate 506.
- the output of the AND gate 506 is connected as input to the data conveyor 440, in particular the OR gate 442 of the data conveyor 440.
- the second configuration device 502 is adapted to determine, depending on the clock input, in which time slot of the data conveyor 440 the data of the data conveyor 440 should be provided to one of the data inboxes 416a by enabling one of the two data outboxes 414a via the select input port 508.
- the functional block 410a includes a function 412a which writes a result into the two outboxes 414a. Further, the function 412a reads the data from the two data inboxes 41 16a on which the subsequent calculations are performed.
- the data conveyor may further include a memory element 446, which is connected to the output of the OR gate 442.
- the memory element 446 may be a D-f lip-flop.
- the configuration devices, the data outboxes and the data inboxes, the memory element(s) of the data conveyor are synchronized by a central clock or counter.
- the functional block 410a is shown in another way compared to Figures 5 and 6.
- the functional block 410 includes only one data inbox 416a and one data outbox 414a.
- the data inbox 416a is adapted to receive data from the data conveyor 440 and the data outbox 414a is adapted to provide data to the data conveyor 440.
- the function 412a includes two subfunctions 510, for example a compare function, and 512, for example a sort function. Parameters 514, 516 of the subfunctions 510, 512, for examples a threshold, may be set by the configuration circuit 450.
- the parameters 518, 520 for multiplexing, for example assigning a time slot on the data conveyor 440, and demultiplexing, for example reading a specific time slot from the data conveyor 440 are also set by the configuration circuit 450 via the configuration devices 500, 502.
- the function 412a reads the data from the data inboxes 416a and performs a calculation on the read data. The function 412a then provides the results into the data outboxes 414a.
- the configuration device 500 enables at a first predefined time slot or clock value of clock 460 the first data outbox to provide data to the data conveyor 440 or OR gate using the select input port 503 of the first data outbox and the second input port of the AND gate 506. Now, at each clock signal a bit of the first data outbox is provided on the data conveyor 440, in this case the OR gate 442.
- the configuration devices of the other functional blocks do not allow their respective circuits, for example their shift registers or data outboxes, to write data on the data conveyor 440 during this time slot.
- the configuration device 500 enables the second data outbox 414a using the select input port 503 of the second data outbox and the second input port of the AND gate 506. Now, at each clock signal a bit of the second data outbox 414a is provided on the data conveyor 440, in this case the OR gate 442.
- the configuration device 502 enables at a third predefined time slot or clock value of clock 460 the first data inbox 416a using the select input port 508 of the first data inbox.
- a bit of from the data conveyor 440 is written into the first data inbox.
- the second data inbox 416a is enabled by the configuration device 502 using the select input port 508 of the second data inbox.
- a bit of from the data conveyor is written into the second data inbox.
- the configuration data for each functional block includes at which time slot the block is allowed to provide data to data conveyor.
- the configuration devices 500, 502 are adapted to compare the current clock or counter value to the configured input or output slots the functional block is allowed to use. This compare signal is adapted to be provided to the second input port of the AND gate 506.
- the configuration circuits 502 may select in a similar way, at which time slot the data should be read from the data conveyor 440.
- the functional blocks may be interconnected in an arbitrary way by being able to statically configure for every functional block where to send its output signals to. In other words, if the configuration does not change, the allotted time slots for the respective functional blocks do not change. Thus, during the data transfer phase, the writing into the time slots and respective reading from the time slots is cyclically repeated.
- This circuit arrangement allows it to use a very limited amount of configuration data to customize instrumentation and control applications almost as flexible as it can be done by using software based systems while preserving the advantages of FPGA technology.
- the FPGA according to embodiments disclosed herein may be used for programming using a diagram approach for configuring the FPGA.
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
Description
Claims
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020177036297A KR102546585B1 (en) | 2015-06-16 | 2016-06-13 | A field programmable gate array comprising a plurality of functional blocks, and a control device for a power plant |
| CA2986653A CA2986653C (en) | 2015-06-16 | 2016-06-13 | Field programmable gate array comprising plurality of functional blocks, and control device for a power plant |
| CN201680035225.8A CN107750431B (en) | 2015-06-16 | 2016-06-13 | Field programmable gate array comprising a plurality of functional blocks and control device for a power plant |
| US15/736,689 US10498340B2 (en) | 2015-06-16 | 2016-06-13 | Field programmable gate array comprising plurality of functional blocks, and control device for a power plant |
| UAA201712434A UA122412C2 (en) | 2015-06-16 | 2016-06-13 | Field programmable gate array comprising plurality of functional blocks, and control device for a power plant |
Applications Claiming Priority (2)
| 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 |
| EP15305932.4 | 2015-06-16 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2016202734A1 true WO2016202734A1 (en) | 2016-12-22 |
Family
ID=54150348
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2016/063482 Ceased WO2016202734A1 (en) | 2015-06-16 | 2016-06-13 | Field programmable gate array comprising plurality of functional blocks, and control device for a power plant |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US10498340B2 (en) |
| EP (1) | EP3107212B1 (en) |
| KR (1) | KR102546585B1 (en) |
| CN (1) | CN107750431B (en) |
| CA (1) | CA2986653C (en) |
| ES (1) | ES2672014T3 (en) |
| PL (1) | PL3107212T3 (en) |
| UA (1) | UA122412C2 (en) |
| WO (1) | WO2016202734A1 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR102416176B1 (en) * | 2016-05-10 | 2022-07-01 | 엘에스일렉트릭(주) | Slave device control method |
| FR3063855B1 (en) * | 2017-03-08 | 2019-04-12 | Areva Np | PROGRAMMABLE LOGIC CIRCUIT FOR CONTROLLING AN ELECTRICAL INSTALLATION, IN PARTICULAR A NUCLEAR INSTALLATION, DEVICE AND CONTROL METHOD THEREOF |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060064292A1 (en) * | 2004-09-20 | 2006-03-23 | The Mathworks, Inc. | Method and system for transferring data between a discrete event environment and an external environment |
| US20060112382A1 (en) * | 2004-11-17 | 2006-05-25 | The Mathworks, Inc. | Method for analysis of control systems |
| US20130049803A1 (en) * | 2011-08-25 | 2013-02-28 | Kabushiki Kaisha Toshiba | Control system, logic module substrate, and logic fpga |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7030651B2 (en) * | 2003-12-04 | 2006-04-18 | Viciciv Technology | Programmable structured arrays |
| WO2005078933A1 (en) * | 2004-02-12 | 2005-08-25 | Matsushita Electric Industrial Co., Ltd. | Programmable logic circuit |
| US7570079B2 (en) * | 2007-04-17 | 2009-08-04 | Mihai Sima | Level-restoring buffers for programmable interconnect circuits and method for building the same |
| DE102007022970A1 (en) | 2007-05-16 | 2008-11-20 | Rohde & Schwarz Gmbh & Co. Kg | Method and device for the dynamic reconfiguration of a radio communication system |
| 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 |
| CN202268899U (en) * | 2011-09-20 | 2012-06-06 | 浙江铭道通信技术有限公司 | 32e1 electric port collecting card |
| 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 (en) * | 2014-09-05 | 2017-08-01 | 烽火通信科技股份有限公司 | Centralized cache device and design method based on field programmable gate array |
| CN104536867B (en) * | 2015-01-22 | 2017-01-25 | 浪潮(北京)电子信息产业有限公司 | System and method for debugging multiple field-programmable gate arrays |
-
2015
- 2015-06-16 ES ES15305932.4T patent/ES2672014T3/en active Active
- 2015-06-16 PL PL15305932T patent/PL3107212T3/en unknown
- 2015-06-16 EP EP15305932.4A patent/EP3107212B1/en active Active
-
2016
- 2016-06-13 CN CN201680035225.8A patent/CN107750431B/en active Active
- 2016-06-13 WO PCT/EP2016/063482 patent/WO2016202734A1/en not_active Ceased
- 2016-06-13 UA UAA201712434A patent/UA122412C2/en unknown
- 2016-06-13 US US15/736,689 patent/US10498340B2/en active Active
- 2016-06-13 KR KR1020177036297A patent/KR102546585B1/en active Active
- 2016-06-13 CA CA2986653A patent/CA2986653C/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060064292A1 (en) * | 2004-09-20 | 2006-03-23 | The Mathworks, Inc. | Method and system for transferring data between a discrete event environment and an external environment |
| US20060112382A1 (en) * | 2004-11-17 | 2006-05-25 | The Mathworks, Inc. | Method for analysis of control systems |
| US20130049803A1 (en) * | 2011-08-25 | 2013-02-28 | Kabushiki Kaisha Toshiba | Control system, logic module substrate, and logic fpga |
Also Published As
| Publication number | Publication date |
|---|---|
| EP3107212B1 (en) | 2018-04-25 |
| KR20180019109A (en) | 2018-02-23 |
| CN107750431A (en) | 2018-03-02 |
| CN107750431B (en) | 2021-12-10 |
| PL3107212T3 (en) | 2018-10-31 |
| US10498340B2 (en) | 2019-12-03 |
| CA2986653A1 (en) | 2016-12-22 |
| US20180191352A1 (en) | 2018-07-05 |
| CA2986653C (en) | 2023-10-17 |
| UA122412C2 (en) | 2020-11-10 |
| KR102546585B1 (en) | 2023-06-23 |
| ES2672014T3 (en) | 2018-06-12 |
| EP3107212A1 (en) | 2016-12-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12021532B2 (en) | Synchronization in a quantum controller with modular and dynamic pulse generation and routing | |
| US11750179B2 (en) | Quantum controller with modular and dynamic pulse generation and routing | |
| EP4078469A1 (en) | Highly scalably quantum control | |
| US9673824B2 (en) | Techniques and circuitry for configuring and calibrating an integrated circuit | |
| JP7282038B2 (en) | Programmable logic circuits, associated control devices and methods for controlling electrical installations, especially nuclear installations | |
| US20160020770A1 (en) | Programmable mixed-signal input/output (io) | |
| CA2986653C (en) | Field programmable gate array comprising plurality of functional blocks, and control device for a power plant | |
| CN107145465B (en) | Transmission control method, device and system for Serial Peripheral Interface (SPI) | |
| US6954085B2 (en) | System and method for dynamically executing a function in a programmable logic array | |
| US8972806B2 (en) | Self-test design for serializer / deserializer testing | |
| EP4052373B1 (en) | Programmable device configuration memory system | |
| Butkowski et al. | FPGA firmware framework for MTCA. 4 AMC modules | |
| US7132971B2 (en) | Analog-to-digital interfacing device and method of analog-to-digital interfacing | |
| CN106055306B (en) | Memory device and operating method | |
| KR100840030B1 (en) | Programmable logic circuit | |
| US11271581B1 (en) | Time-multiplexed distribution of analog signals | |
| KR100930612B1 (en) | Logical Mapping Method and System Using Time Division Multiplexing | |
| Temnikov | An USB-driven controller of an experimental facility | |
| HK40079336A (en) | System and method for testing and configuration of an fpga | |
| Radoslaw Rybaniec | FPGA FIRMWARE FRAMEWORK FOR MTCA. 4 AMC MODULES | |
| UA140865U (en) | FAILURE-RESISTANT ADDITION OF SURPLUSES OF NUMBERS PRESENTED IN THE SYSTEM OF RESIDUAL CLASSES |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16732533 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2986653 Country of ref document: CA |
|
| ENP | Entry into the national phase |
Ref document number: 20177036297 Country of ref document: KR Kind code of ref document: A |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: A201712434 Country of ref document: UA |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 16732533 Country of ref document: EP Kind code of ref document: A1 |