EP4646791A1 - Überwachungsschaltung für eine programmierbare gatter-anordnung, anordnung mit überwachungsschaltung, prozessor und gatteranordnung sowie verfahren zum betrieb einer solchen anordnung - Google Patents

Überwachungsschaltung für eine programmierbare gatter-anordnung, anordnung mit überwachungsschaltung, prozessor und gatteranordnung sowie verfahren zum betrieb einer solchen anordnung

Info

Publication number
EP4646791A1
EP4646791A1 EP23828991.2A EP23828991A EP4646791A1 EP 4646791 A1 EP4646791 A1 EP 4646791A1 EP 23828991 A EP23828991 A EP 23828991A EP 4646791 A1 EP4646791 A1 EP 4646791A1
Authority
EP
European Patent Office
Prior art keywords
value
monitoring circuit
signal
arrangement
gate arrangement
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.)
Pending
Application number
EP23828991.2A
Other languages
English (en)
French (fr)
Inventor
Dominik Lubeley
Heiko Kalte
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.)
Dspace Se & Co Kg
Original Assignee
Dspace GmbH
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 Dspace GmbH filed Critical Dspace GmbH
Publication of EP4646791A1 publication Critical patent/EP4646791A1/de
Pending legal-status Critical Current

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/17736Structural details of routing resources
    • H03K19/17744Structural details of routing resources for input/output signals

Definitions

  • the application relates to a monitoring circuit for a programmable gate arrangement, an arrangement with a monitoring circuit, processor and programmable gate arrangement and a method for operating such an arrangement.
  • a programmable gate array is a digital integrated circuit that is located on a board and into which a logic circuit can be loaded. The logic circuit can be used to execute functions and process signals.
  • An example of a programmable gate array is an FPGA (Field Programmable Gate Array).
  • Another example of a programmable gate array is a SoC (System on Chip) component.
  • Programmable gate arrays are used, for example, in Rapid Control Prototyping (RCP) or Hardware in the Loop (HiL) real-time systems.
  • Simulation models of such real-time systems are examples of functions that can be executed on the programmable gate arrays.
  • Values of signals from the simulation models can be queried by a user during simulation runtime, for example via dSPACE ControlDesk, and output to the user.
  • EP3244326 describes a shadow register of an FPGA that is intended to store the value of a signal of the FPGA. The value of the signal can be read out during the runtime of a function of the FPGA, whereby the reading of the shadow register is functionally independent of the execution of the function.
  • EP2765528 describes a method that enables access to the value of a signal of an FPGA at runtime. For this purpose, FPGA state data is read out during operation and the signal value is determined from this.
  • a programmable gate arrangement is configured to execute a function and to use at least one signal to execute the function.
  • a processor is configured to execute a higher-level function and to transfer a value of the at least one signal to the gate arrangement and/or to receive a value of the at least one signal from the gate arrangement to execute the higher-level function.
  • a monitoring circuit is configured to exchange a value of the at least one signal with the gate arrangement, the exchange of the value of the signal taking place independently of the function executed on the gate arrangement. The monitoring circuit is further configured to exchange the value of the at least one signal with the processor.
  • the exchange of the value of the signal between the gate arrangement and the monitoring circuit is preferably carried out via a memory of the gate arrangement.
  • the programmable gate arrangement in particular an FPGA or a SoC component, is often used for time-critical simulation calculations, such as HiL simulations (hardware-in-the-loop).
  • a function of the gate arrangement can include the execution of these time-critical simulations, which are carried out cyclically at runtime - e.g. at a clock frequency of the gate arrangement.
  • the processor executes the higher-level function, which interacts with the function executed on the gate arrangement, for example for time-critical and/or computationally intensive components.
  • the processor transfers at least one value of the at least one signal to the gate arrangement and/or receives at least one value of the at least one signal from the gate arrangement.
  • the exchange of values between the processor and the gate arrangement to execute the function or the higher-level function is carried out via communication interfaces provided for this purpose. These can be registers, buffers or bus interfaces, for example.
  • the exchange of the signal value between the gate arrangement and the monitoring circuit takes place independently of the execution of the function on the gate arrangement. This is an advantage because the sequence of the function, e.g. the simulation, is not disrupted. In comparison to the state of the art, another advantage is the increased flexibility of the information exchange between the gate arrangement and its periphery.
  • a shadow register associated with the signal can be provided, which is set up and intended to store the value of the associated signal.
  • the shadow register is a memory of the programmable gate arrangement in which a value of the associated signal is stored while the function of the gate arrangement is being carried out.
  • the shadow register has a transmission channel to the monitoring circuit, via which the value stored in the shadow register can be transmitted to the monitoring circuit.
  • the latter transmission channel is implemented by means of a so-called ICAP interface in the gate arrangement.
  • ICAP Internal Configuration Access Port
  • ICAP Internal Configuration Access Port
  • a dedicated memory of the gate arrangement can be provided, which the function executed on the gate arrangement has read access to.
  • the monitoring circuit can have write access to this area and write the value to be exchanged by writing into the memory.
  • the memory is designed as a shift register chain.
  • the dedicated memory has a transmission channel to the monitoring circuit, via which the value to be written can be transmitted from the monitoring circuit.
  • the exchange of the value of the at least one signal comprises in particular a reading and/or writing of the at least one signal by the monitoring circuit.
  • the exchange of the value can comprise, for example, a reading of the value of the signal from a memory of the gate arrangement by the monitoring circuit.
  • the reading of the value of the signal from the memory of the gate arrangement takes place independently of the function executed on the gate arrangement.
  • the exchange of the value can comprise, for example, a writing of the value into a memory of the gate arrangement.
  • the writing of the value of the signal into the memory of the gate arrangement takes place independently of the function executed on the gate arrangement.
  • the gate arrangement is configured to receive a value of the at least one signal for processing from the processor, to process the value of the signal during execution of the function, and to output the processed value of the signal to the processor. This makes it possible to have parts of the higher-level function executed as a function of the gate arrangement. Signal values calculated by the function of the gate arrangement can then be further used by the higher-level function of the processor.
  • a value of the at least one signal is present in the gate arrangement.
  • the gate arrangement is set up to derive a value of the at least one signal from a read-out sensor value.
  • the signal can be a value that is used by the function, such as a measured value or a value of a variable of the function.
  • a signal can also be a purely calculated value, e.g. a value converted from a measured value or an intermediate value.
  • the at least one signal can be implemented as a constant and the gate arrangement is configured to use the constant during the execution of the function.
  • a constant comprises values that are not intended to be changed during the execution of the function, but can be changed by the monitoring circuit.
  • the monitoring circuit is configured to write a value of the at least one constant into a memory of the gate arrangement, wherein the value of the constant is written independently of the the function executed by the gate arrangement.
  • the monitoring circuit is further configured to receive the value to be written for the constant from the processor.
  • Values of constants can be, for example, parameter values used to parameterize a simulation. This offers the advantage that the processor can change the constant, e.g. from the execution of the higher-level function, without interfering with the execution of the function of the gate arrangement.
  • the monitoring circuit is set up to read the value of the constant from a memory of the gate arrangement and to output the read value to the processor. This makes it possible for the processor to access the current value of the constant present in the gate arrangement. This can be done from the currently executed higher-level function without interfering with the execution of the function of the gate arrangement.
  • the value of the constant can, for example, be predefined or derived from a calculation on the gate arrangement or read from a sensor connected to the gate arrangement.
  • the monitoring circuit is configured to receive a value of the constant to be written from an operating unit, wherein the operating unit is configured to receive the value to be written from a user. This enables the additional possibility of having the value of the at least one constant to be written determined by a user.
  • the monitoring circuit is, for example, configured to output a read value of the signal to the operating unit, wherein the operating unit is configured to output the read value to a user.
  • the monitoring circuit is configured to receive information from the processor about the signal whose value is to be read from the memory of the gate arrangement.
  • the information allows the monitoring circuit in particular to identify the signal that is to be read out. This is particularly relevant in the case of several readable signals, since in such cases the monitoring circuit is to be informed must decide which of the readable signals it should read.
  • the information about the signal can also be information about the memory where the value of the signal is stored and, for example, made available for reading by the monitoring circuit.
  • the monitoring circuit can be set up to receive information about the signal to be read from the control unit.
  • the monitoring circuit can then be set up to read the value of the signal for which it has received the information from a memory of the gate arrangement and then transmit the read value to the control unit, e.g. for output to the user.
  • the information allows the monitoring circuit to identify the signal to be read, for example.
  • An arrangement comprises the described monitoring circuit as well as the processor and the programmable gate arrangement.
  • the value of the signal received by the monitoring circuit can be used by the processor when executing the higher-level function. This enables access to, for example, a variable of the function of the gate arrangement, for example for monitoring purposes, without disturbing or delaying the execution of the function on the gate arrangement.
  • the value of the constant passed by the processor to the monitoring circuit can be generated by the processor when executing the higher-level function. This makes it possible to change one or more constants stored on the gate arrangement and used to execute the function without affecting the execution of the actual function.
  • the gate arrangement has at least one memory arrangement which can be addressed via configuration bits and data bits.
  • the monitoring circuit is set up here to read and/or write the at least one memory arrangement.
  • Such a memory arrangement has at least one memory area, which is preferably designed as a so-called block RAM of the programmable gate arrangement.
  • the gate arrangement preferably has a converter between the monitoring circuit and the at least one memory arrangement which is set up to serialize the configuration bits and the data bits and to transmit them in serial form. The converter can also be set up to deserialize the configuration bits and data bits received in serial form.
  • the gate arrangement has a transmission channel between the converter and the at least one memory arrangement, which is set up to transmit serialized configuration bits and data bits. This makes it possible to transmit the serial data converted by the converter to the memory arrangement. It is further proposed that the gate arrangement has a further transmission channel between the at least one memory arrangement and the converter, which is set up to transmit serialized configuration bits and data bits.
  • the memory arrangement can further comprise a deserializer for each memory area, via which the configuration bits and data bits received serially via the transmission channel can be deserialized in order to then be able to address the memory area in a suitable parallel form.
  • the memory arrangement can further comprise a serializer for each memory area, via which the configuration bits and data bits received in parallel from the memory area can be serialized in order to then be transmitted to the converter in a suitable serial form via the further transmission channel.
  • the converter and the transmission channels provided enable access to the memory area or memory areas of the memory arrangement, which requires only a few transmission channels between the converter and the memory arrangement. For example, it is possible to use one transmission channel for the transmission from the converter to a memory area and another transmission channel for the transmission from the memory area to the converter, i.e. two transmission channels per memory area. In a further embodiment, more than two transmission channels are allocated per memory area. The latter embodiment is characterized by the fact that although more routing resources are used in the gate arrangement, a higher total data transmission rate is regularly enabled, for example by allocating more than two transmission channels.
  • the arrangement comprises an operating unit which is configured to receive the value of the signal to be written from a user and to transmit it to the monitoring circuit and/or to receive the read value of the signal from the monitoring circuit and to output it to the user.
  • a method for operating the described arrangement comprises:
  • FIG. 1 shows schematically an arrangement which comprises a programmable gate arrangement, a processor and an operating unit
  • Figures 2-4 show a schematic representation of examples of exchangeable values in a modelling language
  • Figure 5 is a schematic view of a programmable gate array with memory array.
  • Figure 1 schematically shows an arrangement which comprises a programmable gate arrangement 10, a processor 30 and an operating unit 50.
  • the processor 30 is arranged on a processor board and has a real-time library RLI, which provides interfaces to a higher-level function 32 and to a driver 20.D.
  • the processor 30 is set up to execute the higher-level function 32.
  • Variables 34 are used to execute the higher-level function 32.
  • Exchange values 36 are also used to execute the higher-level function 32.
  • mirrored values 36.M of the exchange values 36 of the higher-level function 32 are present.
  • the mirrored values 36.M and 36 are kept at the same level by the driver 20.D.
  • the exchange values 36 are used by the higher-level function 32 and/or the driver 20. D checks using suitable methods whether the mirrored values 36.
  • M have the same value as the exchange values 36.
  • their identity check is preferably omitted until a predefined condition, e.g. the expiration of a predefined time interval or a predefined number of simulation steps, is met.
  • a predefined condition e.g. the expiration of a predefined time interval or a predefined number of simulation steps.
  • the first type of exchange values 36 with corresponding mirrored values 36.M is used in the direction from the higher-level function 32 towards the programmable gate arrangement 10.
  • the second type of exchange values 36 with corresponding mirrored values 36.M is used in the direction from the programmable gate arrangement 10 to the higher-level function 32. This is indicated in Figure 1 by arrows in two directions between the exchange values 36 and the driver 20.D of the monitoring circuit 20.
  • the driver 20.D therefore stores mirrored values 36.M which are intended for exchange with the monitoring circuit 20 of the programmable gate arrangement 10.
  • the mirroring of the values between the exchange value range 36 and the mirrored values 36.M can be implemented in various ways.
  • One possibility involves the variable with the exchange value 36 of the higher-level function 32 being used directly by the driver 20.D as the mirrored value 36.M.
  • Another possibility involves both the exchange value 36 and the mirrored value 36.M being present and both values 36 and 36.M being written during write operations.
  • a preferred further possibility involves both values 36 and 36.M being present but pointing to the same memory locations on the processor board.
  • the driver 20.D has a further interface DAQS.
  • a data exchange DAQ with the operating unit 50 can take place via this interface DAQS to the operating unit 50.
  • the interface DAQS can receive and store information ML about values to be recorded from the operating unit 50 via the interface DAQ.
  • the values received from the driver 20.D can be temporarily stored in the buffer MB of the interface DAQS and the values from the buffer MB can be transferred to the operating unit 50 via data exchange DAQ.
  • the programmable gate arrangement 10 is set up to execute a function 22.
  • the function 22 has a data exchange with the higher-level function 32. This data exchange within the scope of the execution of the function 22 and the higher-level function 32 is not shown in Figure 1.
  • signals Sl are exchanged which are generated during the execution of the Function 22 can be used by function 22.
  • Function 22 can also be set up to change the value of signals S1, to receive the value of signals S1 from higher-level function 32 and/or to process the values of signals S1 and to output values derived from signals S1 back to higher-level function 32.
  • Signals of function 22 can also be designed as constants Kl. Function 22 is able to use and process constants Kl.
  • the programmable gate arrangement 10 has input/output interfaces IO. Via these input/output interfaces IO, for example, sensor values can be read in or values can be output by the programmable gate arrangement 10.
  • the input/output interface IO can be an analog interface, for example.
  • the gate arrangement can, for example, calculate values of signals S1 from sensor values.
  • the signals S1 of the function 22, which can also include constants Kl, can be accessed by the monitoring circuit 20 independently of the execution of the function 22.
  • the monitoring circuit 20 can read signals S1 and/or write constants Kl.
  • the monitoring circuit 20 is controlled by the driver 20.D of the processor 30.
  • the monitoring circuit 20 can be informed by means of commands CMD which signals S1 should be read out and/or which constants Kl should be modified.
  • the values of the signals S1 and/or the constants Kl can then be transferred from the monitoring circuit 20 to the driver 20.D via the read values RV.
  • Contents of the commands CMD can, for example, have mirrored values 36.M.
  • the read values RV can be stored in the mirrored values 36.M.
  • the higher-level function 32 can write values via the exchange values 36 using the driver 20. D into the mirrored values 36. M values, which are then transmitted to the monitoring circuit 20.
  • the transmitted commands CMD can include information about which signals S1 should be read out by the monitoring circuit 20 and/or which constants Kl should be rewritten with which values.
  • Figure 1 indicates that a processor 30 can interact with several programmable gate arrangements 10.
  • the higher-level function 32 can incorporate a function 22 of a programmable gate arrangement 10 into its execution. It is also possible for further functions of further gate arrangements to be incorporated into the execution of the higher-level function 32. This is indicated in Figure 1 by further gate arrangements.
  • the programmable gate arrangement 10 there is an interface environment IS, which in particular has the monitoring circuit 20 and memories of the function 22, which include those memories where, for example, the signals S1 are provided for reading by the monitoring circuit 20. Such memories are also referred to as shadow registers.
  • the interface environment IS can also have the memories that store the constants Kl.
  • the operating unit 50 has, for example, a screen area 52.
  • An input unit 54 can be provided in the screen area, which is designed to accept inputs from a user.
  • the input unit 54 can be designed, for example, as a touch-sensitive screen. Other input methods are conceivable, for example via a keyboard, mouse or others.
  • the screen area 52 also has an output unit 56, via which values 58 can be output.
  • a data exchange DAQ via the interface DAQS of the processor 30 is provided for the operating unit 50.
  • signals S1 of the gate arrangement can be accessed via the monitoring circuit 20 both by the higher-level function 32 of the processor and by a user via the operating unit 50.
  • the monitoring circuit 20 is designed such that the exchange of the signals Sl, including the constants Kl, takes place without interfering with the sequence of the function 22.
  • the implementation of the monitoring circuit 20 is designed such that it is independent of the function 22 on the programmable gate arrangement 10. This is achieved in particular by storing values of signals Sl in so-called shadow registers. The values of the signals Sl are stored in these shadow registers, from where they can then be fetched by the monitoring circuit 20. The fetching does not influence the sequence of the function 22, but takes place independently of it.
  • Figure 2 shows an example of how signals Sl of function 22 within higher-level function 32 can be accessed via monitoring circuit 20.
  • Figure 2 shows example data for this purpose, as it may be present in a simulation model of higher-level function 32.
  • the example data in Figure 2 is initially a single value in the top line.
  • the second line of Figure 2 shows an example of a vector.
  • the third line of Figure 2 shows an example of a matrix.
  • the fourth line of Figure 2 shows an example of a bus.
  • This data can be present in the simulation model of higher-level function 32 in the form shown. In order to identify this data as exchange values 36, it can be specially identified in the naming, for example. This could be done, for example, by a prefix that is placed in front of the variable name.
  • the values shown from the exchange value range 36 are mirrored into the mirrored range of the mirrored values 36.M of the driver 20.D. In the area of the mirrored values 36.M, these are regularly updated via the monitoring circuit 20. The updated values 36M are mirrored in the area of the exchange values 36 via the driver 20.D. This allows the exchange values 36 present in the simulation model of the higher-level function 32 to be updated via the driver 20.D and the monitoring circuit 20, so that the exchange values 36 are present in the higher-level function, as they are currently present in the gate arrangement 10 as signals Sl, optionally comprising the constants Kl.
  • Figure 3 shows an example of the other direction of data exchange.
  • the first line of Figure 3 shows a simple variable
  • the second line of Figure 3 shows a vector
  • the third line of Figure 3 shows a matrix
  • the fourth line of Figure 3 shows a data bus.
  • these values are shown in the simulation model of the higher-level function 32, for example as a data sink. It is also possible to choose a different format to symbolize that a value is to be written.
  • Write operations are carried out in the area of the mirrored values 36.M via the area of the exchange values 36.
  • the values 36.M in the form of mirrored values are then written into the memory of the gate arrangement 10 via the monitoring circuit 20.
  • Figure 4 also shows examples of data sinks that can occur in the simulation model of the higher-level function 32. Again, they are shown in this order: simple variable, vector, matrix, data bus.
  • the values shown in Figure 4 also have a validity signal "Enbl", technically referred to as an "enable signal” Enbl, which can be applied to a validity signal input En-in, technically referred to as an "enable port” En-in.
  • the respective enable port En-in shown is an assigned control input for the respective assigned data sink, which signals to a corresponding signal input Dt-in of the data sink that the value present at the signal input Dt-in is either valid or not.
  • a positive logic or a negative logic can be specified for the enable port En-in.
  • a signal present at the signal input of the data sink is only to be considered valid if there is a positive voltage level with a predefined voltage amount present at the enable port En-in of the data sink, i.e. a validation signal Enbl is present.
  • a typical application for a large constant Kl is, for example, that an engine characteristics map of an engine to be simulated by the higher-level function 32 and the function 22 is to be stored as a constant Kl.
  • This large amount of memory can, for example, be stored in several memory areas 60 ( Figure 5), e.g. B. BlockRAM blocks, abbreviated to "BlockRAM".
  • Figure 5 e.g. B. BlockRAM blocks, abbreviated to "BlockRAM”.
  • BlockRAM BlockRAM blocks
  • Figure 5 shows an example of the gate arrangement 10 with several memory areas 60. These memory areas 60 are, for example, the aforementioned BlockRAM of the programmable gate arrangement 10, for example of an FPGA.
  • Such a memory area 60 is characterized in that it can be addressed by configuration bits and data bits.
  • the configuration bits define where in the memory area 60 the data bits are to be stored.
  • At least one parallel interface is provided for access to the memory areas 60. In the example shown, two parallel interfaces are provided, one for writing and one for reading. The configuration bits and the data bits are exchanged in parallel with the memory area 60 via the parallel interfaces.
  • the illustrated parallel interface between a deserializer “Des” or a serializer “Ser” and a connected memory area 60 is generally not disadvantageous if the deserializer or serializer is arranged close to the memory area 60.
  • the configuration bits and the data bits must be transmitted from the monitoring circuit 20 to the memory area 60 and read data must be transmitted from the memory area 60 to the monitoring circuit 20. This is necessary, for example, if signals Sl stored in the memory area 60, for example constants Kl, are to be read and/or written by the monitoring circuit 20.
  • the memory arrangement 23 has deserializers Des and serializers Ser in addition to the memory areas 60.
  • One deserializer Des is provided for each memory area 60.
  • One serializer Ser is provided for each memory area 60.
  • the deserializer Des of the memory area 60 has the task of receiving the configuration bits and the data bits in serial form, parallelizing them and transmitting them to the memory area 60 via the parallel interface.
  • the serializer Ser has the task of receiving and serializing parallel data, i.e. the configuration bits and the data bits from the memory area 60 in parallel form.
  • a converter 24 is provided for communication between monitoring circuit 20 and memory arrangement 23.
  • Converter 24 has a serializer Ser and a demultiplexer Demux.
  • Converter 24 also has a deserializer Des and a multiplexer Mux.
  • the serializer Ser of the converter 24 has the task of serializing parallel data output by the monitoring circuit 20, for example parallel configuration bits and data bits for one of the memory areas 60.
  • the serialized data bits and configuration bits are assigned to the specific memory area 60 via the demultiplexer Demux and transmitted via a serial data line to the respective deserializer Des of the memory arrangement 23 assigned to the specific memory area 60.
  • the monitoring circuit 20 receives parallel data from the deserializer Des of the converter 24.
  • This parallel data was composed of serial data by the deserializer Des of the converter 24.
  • This multiplexer Mux is able to receive the serial data bits and configuration bits of the respective memory areas 60 and to switch between these memory areas. In the embodiment of Figure 5, it is preferred that the multiplexer Mux receives the serial configuration bits and data bits from the respective serializer Ser assigned to the corresponding memory area 60.
  • Enbl Validity signal technically known as Enable-
  • En-in validation signal port known in technical terms as

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)

Abstract

Die Anmeldung betrifft eine Überwachungsschaltung (20) für eine programmierbare Gatteranordnung (10). Die Gatteranordnung (10) ist eingerichtet, eine Funktion (22) auszuführen und zur Ausführung der Funktion (22) zumindest ein Signal (S1, K1) zu verwenden. Es ist ein Prozessor (30) vorgesehen, der eingerichtet ist, eine übergeordnete Funktion (32) auszuführen und zur Ausführung der übergeordneten Funktion (32) einen Wert des zumindest einen Signals (S1, K1) an die Gatteranordnung (10) zu übergeben und/oder einen Wert des zumindest einen Signals (S1, K1) von der Gatteranordnung (10) zu erhalten. Die Überwachungsschaltung (20) ist eingerichtet ist, mit der Gatteranordnung (10) einen Wert des zumindest einen Signals (S1, K1) auszutauschen, wobei der Austausch des Werts des Signals (S1) unabhängig von der auf der Gatteranordnung (10) ausgeführten Funktion (22) erfolgt. Die Überwachungsschaltung (20) ist weiter eingerichtet, den Wert des zumindest einen Signals (S1, K1) mit dem Prozessor (30) auszutauschen. Die Anmeldung betrifft weiter eine Anordnung, welche die Überwachungsschaltung, den Prozessor und die Gatteranordnung umfasst, sowie ein Verfahren zum Betrieb einer solchen Anordnung.

Description

ÜBERWACHUNGSSCHALTUNG FÜR EINE PROGRAMMIERBARE GATTERANORDNUNG, ANORDNUNG MIT ÜBERWACHUNGSSCHALTUNG, PROZESSOR UND GATTERANORDNUNG SOWIE VERFAHREN ZUM BETRIEB
EINER SOLCHEN ANORDNUNG
Technisches Gebiet
Die Anmeldung betrifft eine Überwachungsschaltung für eine programmierbare Gatteranordnung, eine Anordnung mit Überwachungsschaltung, Prozessor und programmierbarer Gatteranordnung sowie ein Verfahren zum Betrieb einer solchen Anordnung.
Hintergrund
Eine programmierbare Gatteranordnung ist ein integrierter Schaltkreis der Digitaltechnik, der sich auf einem Board befindet und in den eine logische Schaltung geladen werden kann. Mittels der logischen Schaltung können Funktionen ausgeführt und Signale verarbeitet werden. Ein Beispiel für eine programmierbare Gatteranordnung ist ein FPGA (Field Programmable Gate Array). Ein weiteres Beispiel für eine programmierbare Gatteranordnung ist ein SoC-Bauelement (System on Chip).
Programmierbare Gatteranordnungen werden z. B. in Rapid Control Prototyping (RCP) oder Hardware in the Loop (HiL) Echtzeitsystemen angewendet. Simulationsmodelle von solchen Echtzeitsysteme sind Beispiele von Funktionen, die auf den programmierbaren Gatteranordnungen ausgeführt werden können. Werte von Signalen der Simulationsmodelle können zur Laufzeit der Simulation z. B. über dSPACE ControlDesk durch einen Nutzer abgefragt und an den Nutzer ausgegeben werden.
In EP3244326 wird ein Schattenregister eines FPGAs beschrieben, das vorgesehen ist, den Wert eines Signales des FPGAs zu speichern. Der Wert des Signals kann während der Laufzeit einer Funktion des FPGAs ausgelesen werden, wobei das Auslesen des Schattenregisters funktional unabhängig von der Ausführung der Funktion ist. In EP2765528 wird ein Verfahren beschrieben, das einen Zugriff auf den Wert eines Signals eines FPGAs zur Laufzeit ermöglicht. Hierfür werden FPGA Zustandsdaten während des Betriebs ausgelesen und der Signalwert wird daraus bestimmt.
Übersicht
Eine programmierbare Gatteranordnung ist eingerichtet, eine Funktion auszuführen und zur Ausführung der Funktion zumindest ein Signal zu verwenden. Ein Prozessor ist eingerichtet, eine übergeordnete Funktion auszuführen und zur Ausführung der übergeordneten Funktion einen Wert des zumindest einen Signals an die Gatteranordnung zu übergeben und/oder einen Wert des zumindest einen Signals von der Gatteranordnung zu erhalten. Eine Überwachungsschal- tung ist eingerichtet, mit der Gatteranordnung einen Wert des zumindest einen Signals auszutauschen, wobei der Austausch des Werts des Signals unabhängig von der auf der Gatteranordnung ausgeführten Funktion erfolgt. Die Überwa- chungsschaltung ist weiter eingerichtet, den Wert des zumindest einen Signals mit dem Prozessor auszutauschen.
Der Austausch des Wertes des Signals zwischen der Gatteranordnung und der Überwachungsschaltung erfolgt bevorzugt über einen Speicher der Gatteranordnung.
Die programmierbare Gatteranordnung, insbesondere ein FPGA oder ein SoC- Bauelement, wird häufig für zeitkritische Simulations-Berechnungen, wie z. B. HiL-Simulationen (Hardware-in-the-Loop), verwendet. Eine Funktion der Gatteranordnung kann die Ausführung dieser zeitkritischen Simulationen umfassen, welche zur Laufzeit zyklisch - z. B. in einer Taktfrequenz der Gatteranordnung - ausgeführt wird.
Der Prozessor führt dabei die übergeordnete Funktion aus, die z. B. für zeitkritische und/oder rechenintensive Bestandteile mit der auf der Gatteranordnung ausgeführten Funktion interagiert. Dabei übergibt der Prozessor während der Ausführung der übergeordneten Funktion zumindest einen Wert des zumindest einen Signals an die Gatteranordnung und/oder erhält zumindest einen Wert des zumindest einen Signals von der Gatteranordnung. Der Austausch der Werte zwischen dem Prozessor und der Gatteranordnung zur Ausführung der Funktion bzw. der übergeordneten Funktion erfolgt dabei über dafür vorgesehene Kommunikationsschnittstellen. Dies können z. B. Register, Buffer oder Bus-Interfaces sein.
Der Austausch des Wertes des Signals zwischen der Gatteranordnung und der Überwachungsschaltung erfolgt demgegenüber unabhängig von der Ausführung der Funktion auf der Gatteranordnung. Dies ist von Vorteil, da der Ablauf der Funktion, also z. B. der Simulation, nicht gestört wird. Im Vergleich zum Stand der Technik liegt ein weiterer Vorteil in einer Flexibilisierung eines Informationsaustauschs zwischen der Gatteranordnung und deren Peripherie.
Zum Austausch des Wertes in einer Richtung von der Gatteranordnung zur Überwachungsschaltung kann ein dem Signal zugeordnetes Schattenregister vorgesehen sein, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales zu speichern. Das Schattenregister ist dabei ein Speicher der programmierbaren Gatteranordnung, in den ein Wert des zugeordneten Signales gespeichert wird, während die Funktion der Gatteranordnung ausgeführt wird. Das Schattenregister weist einen Übertragungskanal zur Überwachungsschaltung auf, über den der im Schattenregister gespeicherte Wert an die Überwachungsschaltung übertragen werden kann. In einer Ausführungsform der Erfindung wird der letztgenannte Übertragungskanal mittels einer sogenannten ICAP-Schnitt- stelle in der Gatteranordnung realisiert. ICAP (Internal Configuration Access Port) ist ein vom Unternehmen XILINX bereitgestellte Schnittstelle zum Lesen und Ändern von Konfigurationsdaten, die vordefinierte Laufzeitwerte beinhalten können. Von anderen FPGA-Herstellern werden in den kommenden Jahren vergleichbare bzw. vergleichbar dokumentierte Schnittstellen erwartet.
Zum Austausch des Wertes in einer Richtung von der Überwachungsschaltung zur Gatteranordnung kann ein dedizierter Speicher der Gatteranordnung vorgesehen sein, auf den die auf der Gatteranordnung ausgeführte Funktion lesend zugreift. Die Überwachungsschaltung kann auf diesen Bereich schreibend zugreifen und den durch Schreiben auszutauschenden Wert in den Speicher schreiben. In einem Ausführungsbeispiel ist der Speicher als Schieberegisterkette ausgestaltet. Der dedizierte Speicher weist einen Übertragungskanal zur Überwachungsschaltung auf, über den der zu schreibende Wert von der Überwachungsschaltung übertragen werden kann. Der Austausch des Werts des zumindest einen Signals umfasst dabei insbesondere ein Lesen und/oder ein Schreiben des zumindest einen Signals durch die Überwachungsschaltung. Der Austausch des Werts kann dabei z. B. ein Lesen des Werts des Signals aus einem Speicher der Gatteranordnung durch die Überwachungsschaltung umfassen. Das Lesen des Werts des Signals aus dem Speicher der Gatteranordnung erfolgt dabei unabhängig von der auf der Gatteranordnung ausgeführten Funktion. Alternativ oder zusätzlich kann der Austausch des Werts dabei z. B. ein Schreiben des Werts in einen Speicher der Gatteranordnung umfassen. Das Schreiben des Werts des Signals in den Speicher der Gatteranordnung erfolgt dabei unabhängig von der auf der Gatteranordnung ausgeführten Funktion.
In einer Ausführungsform ist die Gatteranordnung eingerichtet, einen Wert des zumindest einen Signals zur Verarbeitung von dem Prozessor zu empfangen, den Wert des Signals während der Ausführung der Funktion zu verarbeiten und den verarbeiteten Wert des Signals an den Prozessor auszugeben. Hierdurch ist es möglich, Teile der übergeordneten Funktion als Funktion der Gatteranordnung ausführen zu lassen. Von der Funktion der Gatteranordnung berechnete Signalwerte können dann durch die übergeordnete Funktion des Prozessors weiterverwendet werden.
In Ausführungsformen liegt ein Wert des zumindest einen Signals in der Gatteranordnung vor. Alternativ oder zusätzlich ist die Gatteranordnung eingerichtet, einen Wert des zumindest einen Signals von einem ausgelesenen Sensorwert abzuleiten. Das Signal kann ein Wert sein, der von der Funktion verwendet wird, wie z. B. ein Messwert oder ein Wert einer Variablen der Funktion. Ein Signal kann auch ein rein berechneter Wert sein, z. B. ein aus einem Messwert gewandelter Wert oder auch ein Zwischenwert.
In Ausführungsformen der Überwachungsschaltung kann das zumindest eine Signal als Konstante ausgeführt sein und die Gatteranordnung ist eingerichtet, die Konstante während der Ausführung der Funktion zu verwenden. Eine Konstante umfasst Werte, die während der Ausführung der Funktion nicht zur Änderung vorgesehen sind, jedoch durch die Überwachungsschaltung verändert werden können. Die Überwachungsschaltung ist dabei eingerichtet, einen Wert der zumindest einen Konstanten in einen Speicher der Gatteranordnung zu schreiben, wobei das Schreiben des Wertes der Konstanten unabhängig von der auf der Gatteranordnung ausgeführten Funktion erfolgt. Die Überwachungsschaltung ist weiter eingerichtet, den für die Konstante zu schreibenden Wert von dem Prozessor zu empfangen. Werte von Konstanten können z. B. Parameterwerte sein, mit denen eine Simulation parametriert wird. Dies bietet den Vorteil, dass der Prozessor die Konstante, z. B. aus der Ausführung der übergeordneten Funktion heraus, verändern kann, ohne in die Ausführung der Funktion der Gatteranordnung einzugreifen.
Es wird weiter vorgeschlagen, dass die Überwachungsschaltung eingerichtet ist, den Wert der Konstanten aus einem Speicher der Gatteranordnung zu lesen und den ausgelesenen Wert an den Prozessor auszugeben. Hierdurch wird es möglich, dass der Prozessor auf den aktuellen in der Gatteranordnung vorliegenden Wert der Konstanten zugreifen kann. Dies kann aus der aktuell ausgeführten übergeordneten Funktion heraus geschehen, ohne dass in die Ausführung der Funktion der Gatteranordnung eingegriffen wird. Der Wert der Konstanten kann beispielsweise vordefiniert sein oder aus einer Berechnung auf der Gatteranordnung abgeleitet sein oder von einem mit der Gatteranordnung verbundenen Sensor ausgelesen sein.
In Ausführungsformen ist die Überwachungsschaltung eingerichtet, einen zu schreibenden Wert der Konstante von einer Bedieneinheit zu empfangen, wobei die Bedieneinheit eingerichtet ist, den zu schreibenden Wert von einem Nutzer zu empfangen. Dies ermöglicht die zusätzliche Möglichkeit, den Wert der zumindest einen zu schreibenden Konstanten durch einen Nutzer festlegen zu lassen.
Die Überwachungsschaltung ist beispielsweise eingerichtet, einen ausgelesenen Wert des Signals an die Bedieneinheit auszugeben, wobei die Bedieneinheit eingerichtet ist, den ausgelesenen Wert an einen Nutzer auszugeben. Diese Ausführungsformen bieten die zusätzliche Möglichkeit, dass zumindest eine aus der Gatteranordnung ausgelesene Signal auch dem Nutzer zugänglich gemacht werden kann.
In Ausführungsformen ist die Überwachungsschaltung eingerichtet, Informationen über das Signal, dessen Wert aus dem Speicher der Gatteranordnung zu lesen ist, von dem Prozessor zu empfangen. Die Informationen erlauben es der Überwachungsschaltung insbesondere, das Signal zu identifizieren, das ausgelesen werden soll. Dies ist insbesondere bei mehreren auslesbaren Signalen von Relevanz, da in solchen Fällen der Überwachungsschaltung mitgeteilt werden muss, welches der auslesbaren Signale sie auslesen soll. Bei den Informationen über das Signal kann es sich dabei auch um Informationen über den Speicher handeln, wo der Wert des Signals abgespeichert ist und z. B. zum Auslesen durch die Überwachungsschaltung bereitgestellt wurde.
Zusätzlich kann die Überwachungsschaltung eingerichtet sein, Informationen zu dem auszulesenden Signal von der Bedieneinheit zu empfangen. Die Überwachungsschaltung kann dann weiter eingerichtet sein, den Wert des Signals, zu dem sie die Information empfangen hat, aus einem Speicher der Gatteranordnung zu lesen und danach den ausgelesenen Wert an die Bedieneinheit z. B. zur Ausgabe an den Nutzer zu übermitteln. Wie oben beschrieben erlauben es die Informationen der Überwachungsschaltung zum Beispiel, das Signal zu identifizieren, das ausgelesen werden soll.
Eine Anordnung weist die beschriebene Überwachungsschaltung sowie den Prozessor und die programmierbaren Gatteranordnung auf.
Es wird vorgeschlagen, dass der von der Überwachungsschaltung empfangene Wert des Signals durch den Prozessor bei der Ausführung der übergeordneten Funktion verwendbar ist. Dies ermöglicht einen Zugriff auf z. B. eine Variable der Funktion der Gatteranordnung z. B. zu Überwachungszwecken, ohne die Ausführung der Funktion auf der Gatteranordnung zu stören oder zu verzögern.
In Ausführungsformen ist der durch den Prozessor an die Überwachungsschaltung übergebene Wert der Konstanten durch den Prozessor bei der Ausführung der übergeordneten Funktion erzeugbar. Dies ermöglicht, eine oder mehrere Konstante, die auf der Gatteranordnung gespeichert sind und zur Ausführung der Funktion verwendet werden, zu verändern, ohne die Ausführung der eigentlichen Funktion zu beeinträchtigen.
In einer weiteren Ausführungsform weist die Gatteranordnung zumindest eine Speicheranordnung auf, welche über Konfigurationsbits und Datenbits ansprechbar ist. Die Überwachungsschaltung ist dabei vorliegend eingerichtet, die zumindest eine Speicheranordnung auszulesen und/oder zu schreiben. Eine solche Speicheranordnung weist zumindest einen Speicherbereich auf, welcher bevorzugt als ein sogenannter Block-RAM der programmierbaren Gatteranordnung ausgebildet ist. Die Gatteranordnung weist bevorzugt zwischen der Überwachungsschaltung und der zumindest einen Speicheranordnung einen Umsetzer auf, welcher eingerichtet ist, die Konfigurationsbits und die Datenbits zu seriali- sieren und in serieller Form zu übertragen. Weiter kann der Umsetzer eingerichtet sein, die in serieller Form empfangenen Konfigurationsbits und Datenbits zu deserialisieren.
Weiter wird vorgeschlagen, dass die Gatteranordnung einen Übertragungskanal zwischen dem Umsetzer und der zumindest einen Speicheranordnung aufweist, welcher zur Übertragung von serialisierten Konfigurationsbits und Datenbits eingerichtet ist. Hierdurch wird eine Übertragung der durch den Umsetzer umgesetzten seriellen Daten zu der Speicheranordnung möglich. Weiter wird vorgeschlagen, dass die Gatteranordnung einen weiteren Übertragungskanal zwischen der zumindest einen Speicheranordnung und dem Umsetzer aufweist, welcher zur Übertragung von serialisierten Konfigurationsbits und Datenbits eingerichtet ist.
Die Speicheranordnung kann weiter pro Speicherbereich einen Deserialisierer aufweisen, über den die seriell über den Übertragungskanal empfangenen Konfigurationsbits und Datenbits deserialisiert werden können, um dann den Speicherbereich in geeigneter paralleler Form ansprechen zu können. Die Speicheranordnung kann weiter pro Speicherbereich einen Serialisierer aufweisen, über den die parallel von dem Speicherbereich empfangenen Konfigurationsbits und Datenbits serialisiert werden können, um dann in geeigneter serieller Form über den weiteren Übertragungskanal an den Umsetzer übermittelt zu werden.
Durch den Umsetzer und die vorgesehenen Übertragungskanäle wird ein Zugriff auf den Speicherbereich oder die Speicherbereiche der Speicheranordnung ermöglicht, welcher nur wenige Übertragungskanäle zwischen dem Umsetzer und der Speicheranordnung benötigt. Zum Beispiel ist es möglich, mit dem Übertragungskanal für die Übertragung vom Umsetzer zu einem Speicherbereich und mit dem weiteren Übertragungskanal für die Übertragung von dem Speicherbereich zum Umsetzer, also zwei Übertragungskanälen pro Speicherbereich, auszukommen. In einer weiteren Ausführungsform werden mehr als zwei Übertragungskanäle pro Speicherbereich vergeben. Die letztgenannte Ausführungsform zeichnet sich dadurch aus, dass zwar mehr Routing-Ressourcen in der Gatteranordnung verbraucht werden, aber beispielsweise durch die genannte Vergabe von mehr als zwei Übertragungskanälen regelmäßig eine höhere summarische Datenübertragungsrate ermöglicht wird. In Ausführungsformen weist die Anordnung eine Bedieneinheit auf, welche eingerichtet ist, den zu schreibenden Wert des Signals von einem Nutzer zu empfangen und an die Überwachungsschaltung zu übermitteln und/oder den ausgelesenen Wert des Signals von der Überwachungsschaltung zu empfangen und an den Nutzer auszugeben.
Hierdurch wird es möglich, auch einem Nutzer über die Bedieneinheit den aus einem Speicher der Gatteranordnung gelesenen Wert des Signals auszugeben. Alternativ oder zusätzlich ist es möglich von dem Nutzer über die Bedieneinheit den Wert des Signals zu empfangen, der in den Speicher der Gatteranordnung geschrieben werden soll.
Ein Verfahren zum Betrieb der beschriebenen Anordnung weist auf:
Lesen des Werts des Signals der Gatteranordnung aus einem Speicher der Gatteranordnung durch die Überwachungsschaltung, wobei das Lesen des Wertes des Signals unabhängig von der durch die Gatteranordnung ausgeführten Funktion erfolgt, Übergeben des Werts von der Überwachungsschaltung an den Prozessor und Verwenden des Werts des Signals, während der Ausführung der übergeordneten Funktion, und/oder
Erzeugen des Werts des Signals durch den Prozessor während der Ausführung der übergeordneten Funktion, Übergeben des Wertes des Signals von dem Prozessor an die Überwachungsschaltung und Schreiben des Wertes des Signals in einen Speicher der Gatteranordnung durch die Überwachungsschaltung, wobei das Schreiben des Wertes des Signals unabhängig von der durch die Gatteranordnung ausgeführten Funktion erfolgt.
Figurenliste
Ausführungsbeispiele sind in den Figuren dargestellt und werden in der nachfolgenden Beschreibung näher erläutert.
Es zeigen Figur 1 schematisch eine Anordnung, welche eine programmierbare Gatteranordnung, einen Prozessor sowie eine Bedieneinheit aufweist,
Figuren 2-4 eine schematische Darstellung von Beispielen von austauschbaren Werten in einer Modelliersprache und
Figur 5 eine schematische Ansicht einer programmierbaren Gatteranordnung mit Speicheranordnung.
Es werden in den Figuren die gleichen Bezugszeichen für gleiche oder ähnliche Elemente verwendet. Die Darstellungen in den Figuren können nicht maßstäblich sein.
Figurenbeschreibung
In Figur 1 ist schematisch eine Anordnung dargestellt, welche eine programmierbare Gatteranordnung 10, einen Prozessor 30 und eine Bedieneinheit 50 aufweist.
Der Prozessor 30 ist auf einem Prozessorboard angeordnet und weist eine Echtzeitbibliothek RLI auf, welche Schnittstellen zu einer übergeordneten Funktion 32 und zu einem Treiber 20. D zur Verfügung stellt. Der Prozessor 30 ist zur Ausführung der übergeordneten Funktion 32 eingerichtet. Zur Ausführung der übergeordneten Funktion 32 werden Variablen 34 verwendet. Zur Ausführung der übergeordneten Funktion 32 werden ebenfalls Austauschwerte 36 verwendet. In dem Treiber 20. D einer Überwachungsschaltung 20 der programmierbaren Gatteranordnung 10 liegen gespiegelte Werte 36. M der Austauschwerte 36 der übergeordneten Funktion 32 vor. Die gespiegelten Werte 36. M und 36 werden durch den Treiber 20. D auf dem gleichen Stand gehalten. Durch die übergeordnete Funktion 32 werden die Austauschwerte 36 verwendet und/oder durch den Treiber 20. D wird mittels geeigneter Verfahren überprüft, ob die gespiegelten Werte 36. M den gleichen Wert haben, wie die Austauschwerte 36. Ab einer Spiegelung der Austauschwerte 36 mit den gespiegelten Werten 36. M, wird bevorzugt so lange auf deren Identitätsprüfung verzichtet, bis eine vordefinierte Bedingung, bspw. der Ablauf eines vordefinierten Zeitintervalls oder einer vordefinierten Anzahl von Simulationsschritten, erfüllt ist. Beispielsweise in der Ausführungsform der Erfindung gemäß der Figur 1 gibt es zwei Arten von gespiegelten Werten 36. M und Austauschwerten 36. Die erste Art von Austauschwerten 36 mit korrespondierenden gespiegelten Werten 36. M wird in Richtung von übergeordneter Funktion 32 in Richtung programmierbarer Gatteranordnung 10 verwendet. Die zweite Art von Austauschwerten 36 mit korrespondierenden gespiegelten Werten 36. M wird in Richtung von programmierbarer Gatteranordnung 10 zu übergeordneter Funktion 32 verwendet. Dies ist in Figur 1 durch Pfeile in zwei Richtungen zwischen den Austauschwerten 36 und dem Treiber 20. D der Überwachungsschaltung 20 angedeutet. In dem Treiber 20. D werden also gespiegelte Werte 36. M gespeichert, die zum Austausch mit der Überwachungsschaltung 20 der programmierbaren Gatteranordnung 10 vorgesehen sind.
Das Spiegeln der Werte zwischen dem Austauschwertebereich 36 und den gespiegelten Werten 36. M kann auf verschiedene Weise realisiert werden. Eine Möglichkeit umfasst, dass direkt die Variable mit dem Austauschwert 36 der übergeordneten Funktion 32 durch den Treiber 20. D als gespiegelter Wert 36. M verwendet wird. Eine weitere Möglichkeit umfasst, dass sowohl der Austauschwert 36 als auch der gespiegelte Wert 36. M vorhanden ist und bei Schreibvorgängen beide Werte 36 und 36. M geschrieben werden. Eine bevorzugte weitere Möglichkeit umfasst, dass beide Werte 36 und 36. M vorhanden sein, aber auf die gleichen Speicherstellen des Prozessorboards verweisen.
Der Treiber 20. D weist eine weitere Schnittstelle DAQS auf. Über diese Schnittstelle DAQS zu der Bedieneinheit 50 kann ein Datenaustausch DAQ mit der Bedieneinheit 50 stattfinden. Die Schnittstelle DAQS kann hierfür Informationen ML über zu erfassende Werten von der Bedieneinheit 50 über die Schnittstelle DAQ erhalten und speichern. In dem Zwischenspeicher MB der Schnittstelle DAQS können die von dem Treiber 20. D erhaltenen Werte zwischengespeichert werden und über Datenaustausch DAQ können die Werte aus dem Zwischenspeicher MB an die Bedieneinheit 50 übergeben werden.
Die programmierbare Gatteranordnung 10 ist zur Ausführung einer Funktion 22 eingerichtet. Die Funktion 22 weist einen Datenaustausch mit der übergeordneten Funktion 32 auf. Dieser Datenaustausch im Rahmen der Ausführung der Funktion 22 und der übergeordneten Funktion 32 ist in Figur 1 nicht dargestellt. Ausgetauscht werden beispielsweise Signale Sl, die im Zuge der Ausführung der Funktion 22 von der Funktion 22 verwendet werden. Die Funktion 22 kann auch eingerichtet sein, den Wert der Signale S1 zu verändern, den Wert der Signale S1 von der übergeordneten Funktion 32 zu erhalten und/oder die Werte der Signale S1 zu verarbeiten und Werte, die von Signalen S1 abgeleitet sind, wieder an die übergeordnete Funktion 32 auszugeben. Signale der Funktion 22 können auch als Konstanten Kl ausgebildet sein. Die Funktion 22 ist in der Lage, Konstanten Kl zu verwenden und zu verarbeiten. Eine Veränderung der Werte von Konstanten, Kl ist für den Datenaustausch mit der übergeordneten Funktion 32 im Rahmen der Ausführung der Funktion 22 nicht vorgesehen. Ein solcher beschriebener Datenaustausche zur Ausführung der Funktion und der übergeordneten Funktion kann z. B. über bekannte Register, Buffer oder Bus-Interfaces erfolgen. Diese Schnittstellen sind bei der Erstellung der Gatteranordnung 10 anzugeben und werden auf dieser hardwaremäßig vorgesehen. Dies ermöglicht einen sehr schnellen Datenaustausch, der jedoch nachträglich nur aufwändig wieder geändert werden kann. Diese Änderung dauert lange und ist infolgedessen kostspielig.
Die programmierbare Gatteranordnung 10 weist Input/Output-Schnittstellen IO auf. Über diese Input/Output-Schnittstellen IO können zum Beispiel Sensorwerte durch die programmierbare Gatteranordnung 10 eingelesen werden oder Werte ausgegeben werden. Die Input/Output-Schnittstelle IO kann beispielsweise eine analoge Schnittstelle sein. Die Gatteranordnung kann z. B. aus Sensorwerten Werte von Signalen S1 errechnen.
Auf die Signale S1 der Funktion 22, welche auch Konstanten Kl umfassen können, kann unabhängig von der Ausführung der Funktion 22 durch die Überwa- chungsschaltung 20 zugegriffen werden. Insbesondere kann die Überwachungsschaltung 20 Signale S1 lesen und/oder Konstanten Kl schreiben. Die Überwa- chungsschaltung 20 wird durch den Treiber 20. D des Prozessors 30 angesteuert. Durch Kommandos CMD kann der Überwachungsschaltung 20 mitgeteilt werden, welche Signale S1 ausgelesen werden sollen und/oder welche Konstanten Kl modifiziert werden sollen. Über die ausgelesenen Werte RV können dann Werte der Signale S1 und/oder der Konstanten Kl von der Überwachungsschaltung 20 an den Treiber 20. D übertragen werden. Inhalte der Kommandos CMD können zum Beispiel gespiegelte Werte 36. M aufweisen. In vergleichbarer Weise können die ausgelesenen Werte RV in den gespiegelten Werten 36. M gespeichert werden. Nach der Speicherung der gespiegelten Werte 36. M mittels Treiber 20. D stehen die Werte dann einer Verwendung durch die übergeordnete Funktion 32 zur Verfügung. In vergleichbarer Weise kann die übergeordnete Funktion 32 Werte über die Austauschwerte 36 mittels Treiber 20. D in die gespiegelten Werte 36. M Werte schreiben, welche dann an die Überwachungsschaltung 20 übermittelt werden. Die übermittelten Kommandos CMD können hierbei eine Information darüber umfassen, welche Signale S1 durch die Überwachungsschaltung 20 ausgelesen werden sollen und/oder welche Konstanten Kl mit welchen Werten neu geschrieben werden sollen.
In Figur 1 ist angedeutet, dass ein Prozessor 30 mit mehreren programmierbaren Gatteranordnungen 10 interagieren kann. Beispielsweise kann die übergeordnete Funktion 32 eine Funktion 22 einer programmierbaren Gatteranordnung 10 in ihre Ausführung einbinden. Es ist ebenso möglich, dass weitere Funktionen von weiteren Gatteranordnungen in die Ausführung der übergeordneten Funktion 32 eingebunden werden. Dies ist in der Figur 1 durch weitere Gatteranordnungen angedeutet.
In der programmierbaren Gatteranordnung 10 findet sich eine Schnittstellenumgebung IS, welche insbesondere die Überwachungsschaltung 20 und Speicher der Funktion 22 aufweist, welche diejenigen Speicher umfassen, wo beispielsweise die Signale S1 zum Auslesen für die Überwachungsschaltung 20 bereitgestellt sind. Solche Speicher werden auch als Schattenregister bezeichnet. Die Schnittstellenumgebung IS kann auch die Speicher aufweisen, die die Konstanten Kl speichern.
Die Bedieneinheit 50 weist zum Beispiel einen Bildschirmbereich 52 auf. In dem Bildschirmbereich kann eine Eingabeeinheit 54 vorgesehen sein, welche ausgebildet ist, Eingaben durch einen Nutzer entgegenzunehmen. Die Eingabeeinheit 54 kann dabei zum Beispiel als berührempfindlicher Bildschirm ausgebildet sein. Es sind weitere Eingabemethoden beispielsweise über Tastatur, Maus oder andere vorstellbar. Der Bildschirmbereich 52 weist weiter eine Ausgabeeinheit 56 auf, über welche Werte 58 ausgegeben werden können. Für die Bedieneinheit 50 ist eine Datenaustausch DAQ über die Schnittstelle DAQS des Prozessors 30 vorgesehen.
Wie dargestellt kann über die Überwachungsschaltung 20 sowohl durch die übergeordnete Funktion 32 des Prozessors auf Signale S1 der Gatteranordnung zugegriffen werden, als auch durch einen Nutzer über die Bedieneinheit 50. Dies hat den Vorteil, dass für die beiden Arten des Zugriffs die gleiche Überwa- chungsschaltung 20 verwendet werden kann und keine separaten Interfaces für jeweils Prozessor 30 und Bedieneinheit 50 vorgesehen werden müssen.
Die Überwachungsschaltung 20 ist so ausgebildet, dass der Austausch der Signale Sl, umfassend die Konstanten Kl, erfolgt, ohne in den Ablauf der Funktion 22 einzugreifen. Die Implementierung der Überwachungsschaltung 20 ist so gestaltet, dass sie unabhängig von der Funktion 22 auf der programmierbaren Gatteranordnung 10 ist. Dies wird ins insbesondere dadurch realisiert, dass Werte von Signalen Sl in sogenannten Schattenregistern abgelegt werden. In diesen Schattenregistern werden die Werte der Signale Sl abgelegt, von wo sie dann durch die Überwachungsschaltung 20 abgeholt werden können. Die Abholung beeinflusst den Ablauf der Funktion 22 nicht, sondern erfolgt unabhängig davon.
In Figur 2 ist beispielhaft dargestellt, wie auf Signale Sl der Funktion 22 innerhalb der übergeordneten Funktion 32 über die Überwachungsschaltung 20 zugegriffen werden kann. In Figur 2 sind hierfür beispielhaft Daten dargestellt, wie sie in einem Simulationsmodell der übergeordneten Funktion 32 vorliegen können. Die beispielhaften Daten von Figur 2 sind zunächst ein einzelner Wert in der obersten Zeile. In der zweiten Zeile von Figur 2 ist beispielhaft ein Vektor dargestellt. In der dritten Zeile von Figur 2 ist beispielhaft eine Matrix dargestellt. In der vierten Zeile von Figur 2 ist beispielhaft ein Bus dargestellt. Diese Daten können in der dargestellten Form in dem Simulationsmodell der übergeordneten Funktion 32 vorliegen. Um diese Daten als Austauschwerte 36 zu kennzeichnen können diese zum Beispiel in der Namensgebung besonders gekennzeichnet werden. Dies könnte zum Beispiel durch ein Präfix geschehen, das dem Variab- lennamen vorangestellt wird. Bei Vorliegen dieses Präfixes werden die dargestellten Werte aus dem Austauschwertebereich 36 in den gespiegelten Bereich der gespiegelten Werte 36. M des Treibers 20. D gespiegelt. In dem Bereich der gespiegelten Werte 36. M werden diese über die Überwachungsschaltung 20 regelmäßig aktualisiert. Über den Treiber 20. D werden die jeweils aktualisierten Werte 36M in den Bereich der Austauschwerte 36 gespiegelt. Hierdurch können die in dem Simulationsmodell der übergeordneten Funktion 32 vorliegenden Austauschwerte 36 über den Treiber 20. D und die Überwachungsschaltung 20 aktualisiert werden, sodass in der übergeordneten Funktion die Austauschwerte 36 vorliegen, wie sie aktuell auch in der Gatteranordnung 10 als Signale Sl, optional umfassend die Konstanten Kl, vorliegen. In Figur 3 ist beispielhaft die andere Richtung des Datenaustausches dargestellt. Wieder sind in der ersten Zeile von Figur 3 eine einfache Variable dargestellt, in der zweiten Zeile von Figur 3 ein Vektor, in der dritten Zeile von Figur 3 eine Matrix und in der vierten Zeile von Figur 3 ein Datenbus. In dem ausgewählten und dargestellten Beispiel sind diese Werte im Simulationsmodell der übergeordneten Funktion 32 z. B. als Datensenke dargestellt. Es ist auch die Wahl eines anderen Formates möglich, um zu symbolisieren, dass ein Wert geschrieben werden soll. Über den Bereich der Austauschwerte 36 werden Schreibvorgänge in den Bereich der gespiegelten Werte 36. M vorgenommen. Über die Überwa- chungsschaltung 20 werden die in Form von gespiegelten Werten 36. M dann in Speicher der Gatteranordnung 10 geschrieben. Dies trifft insbesondere auf Konstanten Kl der Funktion 22 zu für die über die Überwachungsschaltung 20 und den Treiber, 20. D neue Werte geschrieben werden können. Dies kann über sogenannte Datensenken geschehen, wie es beispielhaft in Figur 3 dargestellt ist.
In Figur 4 sind ebenfalls beispielhaft Datensenken dargestellt, wie sie in dem Simulationsmodell der übergeordneten Funktion 32 auftreten können. Wieder sind in dieser Reihenfolge dargestellt: einfache Variable, Vektor, Matrix, Datenbus.
Im Unterschied zu Figur 3 haben die in Figur 4 dargestellten Werte zusätzlich ein Gültigkeitssignal „Enbl", fachsprachlich als „Enable-Signal" Enbl bezeichnet, welches an einem Gültigkeitssignal-Eingang En-in, fachsprachlich als „Enable- Port" En-in bezeichnet, anlegbar ist. Der jeweilige dargestellte Enable-Port En-in ist für die jeweilige zugeordnete Datensenke ein zugeordneter Steuer-Eingang, womit einem korrespondierenden Signaleingang Dt-in der Datensenke signalisiert wird, dass der am Signal-Eingang Dt-in anliegende Wert entweder gültig ist oder nicht. Für den Enable-Port En-in kann eine positive Logik oder eine negative Logik festgelegt sein. Beispielsweise ist bei positiver Logik vorsehbar, dass nur bei einem am Enable-Port En-in der Datensenke anliegenden positiven Spannungspegel mit vordefiniertem Spannungsbetrag, also einem anliegenden Gültigkeitssignal Enbl, ein am Signal-Eingang der Datensenke anliegendes Signal als gültig anzusehen ist.
Die in Figur 3 und 4 dargestellten Variablen können ebenfalls wie bereits zu Figur 2 beschrieben, über die Wahl eines Präfixes ihres Namens so gekennzeichnet werden, dass sie über den Bereich mit den Austauschwerten 36 zum Austausch mit der Gatteranordnung 10 via Überwachungsschaltung 20 vorgesehen werden. In der programmierbaren Gatteranordnung 10 können Speicher zum Speichern einer Konstante Kl zum Beispiel als Flipflop ausgebildet sein. Werden größere Speicherbereiche zum Speichern einer großen Konstante Kl benötigt, so kann auch auf Speicherbereiche 60 (Figur 5) wie z. B. sogenannte BlockRAM Blöcke zurückgegriffen werden. BlockRAM Blöcke sind insbesondere in FPGA verbreitet. Sie sind einzeln nutzbar oder werden während der Synthese der Gatteranordnung 10 automatisch verschaltet, wenn größere Speichermengen benötigt werden. Ein typischer Anwendungsfall für eine große Konstante Kl ist zum Beispiel, dass ein Motorkennfeld eines durch die übergeordnete Funktion 32 und die Funktion 22 zu simulierenden Motors als Konstante Kl gespeichert werden soll. Diese große Speichermenge kann zum Beispiel in mehreren Speicherbereichen 60 (Figur 5), z. B. BlockRAM Blöcken, abgekürzt als „BlockRAM" bezeichnet, gespeichert werden. Bei der Implementierung der Gatteranordnung 10 als FPGA bietet sich die Speicherung als Look-up-Tabelle an. Es kann sein, dass diese Konstanten Kl noch zur Laufzeit verändert werden sollen. Zur Laufzeit bedeutet, während der Ausführung der übergeordneten Funktion 32 und der Funktion 22. In diesem Fall muss für das Austauschen von Konstanten Kl, zum Beispiel für das Schreiben der Konstanten Kl auf Speicherbereiche 60, wie z. B. BlockRAM zugegriffen werden.
In Figur 5 ist beispielhaft die Gatteranordnung 10 mit mehreren Speicherbereiche 60 dargestellt. Bei diesen Speicherbereichen 60 handelt es sich zum Beispiel um den bereits erwähnten BlockRAM der programmierbaren Gatteranordnung 10, zum Beispiel eines FPGA. Ein solcher Speicherbereich 60 ist dadurch gekennzeichnet, dass er durch Konfigurationsbits und Datenbits angesprochen werden kann. Durch die Konfigurationsbits wird definiert, an welcher Stelle des Speicherbereichs 60 die Datenbits gespeichert sollen. Für einen Zugang zu den Speicherbereichen 60 ist zumindest eine parallele Schnittstelle vorgesehen. Im dargestellten Beispiel sind zwei parallele Schnittstellen vorgesehen, eine zum Schreiben und eine zum Auslesen. Über die parallelen Schnittstellen werden die Konfigurationsbits und die Datenbits parallel mit dem Speicherbereich 60 ausgetauscht. Innerhalb der Speicheranordnung 23 ist die dargestellte parallele Schnittstelle zwischen einem Deserialisierer „Des" bzw. einem Serialisierer „Ser" und einem verbundenen Speicherbereich 60 in der Regel nicht nachteil- haft, wenn der Deserialisierer bzw. Serialisierer nahe an den Speicherbereich 60 angeordnet sind. Entsprechendes gilt für eine parallele Schnittstelle zwischen der Überwachungsschaltung 20 und einem Serialisierer „Ser" im Umsetzer 24 bzw. Deserialisierer „Des" im Umsetzer 24 zur jeweiligen Anbindung der Überwachungsschaltung 20 an den Umsetzer 24.
Soll ein solcher Speicherbereich 60 über die Überwachungsschaltung 20 angesprochen werden, zum Beispiel zum Datenaustausch, so müssen entsprechend die Konfigurationsbits und die Datenbits von der Überwachungsschaltung 20 an den Speicherbereich 60 übermittelt werden und ausgelesene Daten müssen von dem Speicherbereich 60 an die Überwachungsschaltung 20 übermittelt werden. Dies ist zum Beispiel nötig, wenn im Speicherbereich 60 gespeicherte Signale Sl, zum Beispiel Konstanten Kl, durch die Überwachungsschaltung 20 ausgelesen und/oder geschrieben werden sollen.
Es wird nun vorgeschlagen, dass die Speicherbereiche 60 in einer Speicheranordnung 23 enthalten sind. Die Speicheranordnung 23 weist neben den Speicherbereichen 60 Deserialisierer Des und Serialisierer Ser auf. Pro Speicherbereich 60 ist dabei ein Deserialisierer Des vorgesehen. Pro Speicherbereich 60 ist dabei ein Serialisierer Ser vorgesehen. Der Deserialisierer Des des Speicherbereichs 60 hat die Aufgabe, die Konfigurationsbits und die Datenbits in serieller Form zu empfangen, zu parallelisieren und über das parallele Interface des Speicherbereiches 60 an diesen zu übermitteln. In umgekehrter Richtung hat der Serialisierer Ser die Aufgabe, parallele Daten, also die Konfigurationsbits und die Datenbits aus dem Speicherbereich 60 in paralleler Form zu empfangen und zu serialisieren.
Zur Kommunikation zwischen Überwachungsschaltung 20 und Speicheranordnung 23 ist ein Umsetzer 24 vorgesehen. Der Umsetzer 24 weist einen Serialisierer Ser und einen Demultiplexer Demux auf. Der Umsetzer 24 weist weiter einen Deserialisierer Des und einen Multiplexer Mux auf.
Der Serialisierer Ser des Umsetzers 24 hat die Aufgabe von der Überwachungsschaltung 20 ausgegebene parallele Daten, zum Beispiel parallele Konfigurationsbits und Datenbits für einen der Speicherbereiche 60 zu serialisieren. Die se- rialisierten Datenbits und Konfigurationsbits werden über den Demultiplexer Demux dem bestimmten Speicherbereich 60 zugewiesen und über eine serielle Datenleitung an den jeweiligen dem bestimmten Speicherbereich 60 zugeordneten Deserialisierer Des der Speicheranordnung 23 übermittelt. In gleicher Weise empfängt die Überwachungsschaltung 20 gemäß dem Ausführungsbeispiel der Figur 5 von dem Deserialisierer Des des Umsetzers 24 parallele Daten. Diese parallelen Daten wurden durch den Deserialisierer Des des Umsetzers 24 aus seriellen Daten zusammengesetzt. Diese umfassen Konfigurationsbits und Datenbits des jeweiligen Speicherbereiches 60. Diese Konfigurationsbits und Datenbits des jeweiligen Speicherbereiches 60 wurden von dem Multiplexer Mux in serieller Form empfangen. Dieser Multiplexer Mux ist in der Lage, die seriellen Datenbits und Konfigurationsbits der jeweiligen Speicherbereiche 60 zu empfangen und zwischen diesen Speicherbereichen umzuschalten. Bevorzugt ist in dem Ausführungsbeispiel der Figur 5, dass der Multiplexer Mux die seriellen Konfigurationsbits und Datenbits von dem jeweiligen Serialisierer Ser der dem entsprechenden Speicherbereich 60 zugeordnet ist, empfängt.
Vorteil der dargestellten Anordnung gemäß der Figur 5 ist, dass zwischen dem Umsetzer 24 und der Speicheranordnung 23 jeweils nur eine serielle Leitung pro Speicherbereich 60 vorgesehen werden muss. Im Vergleich zur parallelen Übermittlung über eine parallele Leitung können so Übertragungsressourcen gespart werden. Dies ist eine effiziente Art der Implementierung für die Gatteranordnung 10. Es werden insbesondere die sogenannten Routing ressourcen der Gatteranordnung 10 eingespart. Zumal lässt sich diese Anordnung technisch einfach implementieren.
Bezugszeichenliste
10 programmierbare Gatteranordnung
20 Überwachungsschaltung
20. D Treiber der Überwachungsschaltung
22 Funktion
23 Speicheranordnung
24 Umsetzer
30 Prozessor
32 übergeordnete Funktion
34 Variablen
36 Austauschwerte
36. M gespiegelte Werte
50 Bedieneinheit
52 Bildschirm bereich
54 Eingabeeinheit
56 Ausgabeeinheit
58 Ausgabe von Werten
60 Speicherbereich
RLI Echtzeit-Bibliothek
DAQS Schnittstelle zur Bedieneinheit
DAQ Datenaustausch mit der Bedieneinheit
Data Daten
Dt-in Signaleingang der Datensenke
Enbl Gültigkeitssignal, fachsprachlich als Enable-
Signal bezeichnet
En-in Gültigkeitssignal-Port, fachsprachlich als
Enable-Port bezeichnet
ML Auswahl
MB Zwischenspeicher
CMD Kommando
RV ausgelesene Werte
IF Schnittstellenumgebung 10 Input/Output
SI Signal
Kl Konstante
RD Lesen
WR Schreiben
Mux Multiplexer
Demux Demultiplexer
Ser Serialisierer
Des Deserialisierer

Claims

ANSPRÜCHE
1. Überwachungsschaltung (20) für eine programmierbare Gatteranordnung (10), wobei die Gatteranordnung (10) eingerichtet ist, eine Funktion (22) auszuführen und zur Ausführung der Funktion (22) zumindest ein Signal (Sl, Kl) zu verwenden, wobei ein Prozessor (30) vorgesehen ist, der eingerichtet ist, eine übergeordnete Funktion (32) auszuführen und zur Ausführung der übergeordneten Funktion (32) einen Wert des zumindest einen Signals (Sl, Kl) an die Gatteranordnung (10) zu übergeben und/oder einen Wert des zumindest einen Signals (Sl, Kl) von der Gatteranordnung (10) zu erhalten, wobei die Überwachungsschaltung (20) eingerichtet ist, mit der Gatteranordnung (10) einen Wert des zumindest einen Signals (Sl, Kl) auszutauschen, wobei der Austausch des Werts des Signals (Sl, Kl) unabhängig von der auf der Gatteranordnung (10) ausgeführten Funktion (22) erfolgt, wobei die Überwachungsschaltung (20) eingerichtet ist, den Wert des zumindest einen Signals (Sl, Kl) mit dem Prozessor (30) auszutauschen.
2. Überwachungsschaltung nach Anspruch 1, wobei der Austausch des Werts des zumindest einen Signals (Sl, Kl) ein Lesen und/oder ein Schreiben des zumindest einen Signals (Sl, Kl) durch die Überwachungsschaltung (20) umfasst.
3. Überwachungsschaltung nach Anspruch 1 oder 2, wobei die Gatteranordnung (10) eingerichtet ist, einen Wert des zumindest einen Signals (Sl, Kl) zur Verarbeitung von dem Prozessor (30) zu empfangen, den Wert des Signals während der Ausführung der Funktion zu verarbeiten und den verarbeiteten Wert des Signals (Sl, Kl) an den Prozessor (30) auszugeben.
4. Überwachungsschaltung nach einem der vorhergehenden Ansprüche, wobei ein Wert des zumindest einen Signals (Sl, Kl) in der Gatteranordnung (10) vorliegt und/oder die Gatteranordnung (10) eingerichtet ist, einen Wert des zumindest einen Signals (Sl, Kl) von einem ausgelesenen Sensorwert abzuleiten.
5. Überwachungsschaltung nach einem der vorhergehenden Ansprüche, wobei das Signal (Kl) als Konstante (Kl) ausgeführt ist, wobei die Gatteranordnung (10) eingerichtet ist, die Konstante (Kl) während der Ausführung der Funktion (22) zu verwenden, wobei die Überwachungsschaltung (20) eingerichtet ist, einen Wert der zumindest einen Konstanten (Kl) der Gatteranordnung (10) zu schreiben, wobei das Schreiben des Wertes der Konstanten (Kl) unabhängig von der auf der Gatteranordnung (10) ausgeführten Funktion (22) erfolgt, wobei die Überwachungsschaltung (20) eingerichtet ist, den für die Konstante (Kl) zu schreibenden Wert von dem Prozessor (30) zu empfangen.
6. Überwachungsschaltung nach Anspruch 5, wobei die Überwachungsschaltung (20) weiter eingerichtet ist, den Wert der Konstanten (Kl) auszulesen und den ausgelesenen Wert an den Prozessor (30) auszugeben.
7. Überwachungsschaltung nach Anspruch 5 oder 6, wobei die Überwachungsschaltung (20) eingerichtet ist, einen zu schreibenden Wert der Konstante (Kl) von einer Bedieneinheit (50) zu empfangen, wobei die Bedieneinheit eingerichtet (50) ist, den zu schreibenden Wert von einem Nutzer zu empfangen.
8. Überwachungsschaltung nach einem der vorhergehenden Ansprüche, wobei die Überwachungsschaltung (20) eingerichtet ist, einen ausgelesenen Wert des Signals (Sl, Kl) an die Bedieneinheit (50) auszugeben, wobei die Bedieneinheit eingerichtet (50) ist, den ausgelesenen Wert an einen Nutzer auszugeben.
9. Überwachungsschaltung nach einem der vorhergehenden Ansprüche, wobei die Überwachungsschaltung (20) eingerichtet ist, Informationen über das Signal (Sl, Kl), dessen Wert auszulesen ist, von dem Prozessor (30) zu empfangen.
10. Anordnung mit der Überwachungsschaltung (20) nach einem der vorhergehenden Ansprüche, sowie mit dem Prozessor (30) und der programmierbaren Gatteranordnung (10).
11. Anordnung nach Anspruch 10, wobei der von der Überwachungsschaltung (20) empfangene Wert des Signals durch den Prozessor (30) bei der Ausführung der übergeordneten Funktion (32) verwendbar ist.
12. Anordnung nach Anspruch 10 oder 11, wobei der an die Überwachungsschaltung (20) übergebene Wert der Konstanten (Kl) durch den Prozessor (30) bei der Ausführung der übergeordneten Funktion (32) erzeugbar ist.
13. Anordnung nach einem der Ansprüche 10 bis 12, wobei die Gatteranordnung (10) zumindest eine Speicheranordnung (23) aufweist, welche über Konfigurationsbits und Datenbits ansprechbar ist, und die Überwachungsschaltung (20) eingerichtet ist, die zumindest eine Speicheranordnung (23) auszulesen und/oder zu schreiben, wobei die Gatteranordnung (10) zwischen der Überwachungsschaltung (20) und der zumindest einen Speicheranordnung (23) einen Umsetzer (24) aufweist, welcher eingerichtet ist, die Konfigurationsbits und die Datenbits zu serialisieren und in serieller Form zu übertragen.
14. Anordnung nach Anspruch 13, wobei die Gatteranordnung (10) einen Übertragungskanal zwischen dem Umsetzer (24) und der zumindest einen Speicheranordnung (23) aufweist, welcher zur Übertragung von serialisierten Konfigurationsbits und Datenbits eingerichtet ist.
15. Anordnung nach einem der Ansprüche 10 bis 14, weiter aufweisend eine Bedieneinheit (50), welche eingerichtet ist, den zu schreibenden Wert des Signals (Sl, Kl) von einem Nutzer zu empfangen und an die Überwachungsschaltung (20) zu übermitteln und/oder den ausgelesenen Wert des Signals (Sl, Kl) von der Überwachungsschaltung (20) zu empfangen und an den Nutzer auszugeben.
16. Verfahren zum Betrieb einer Anordnung nach einem der Ansprüche 10 bis 15, aufweisend:
Lesen des Werts des Signals (Sl, Kl) der Gatteranordnung (10) durch die Überwachungsschaltung (20), wobei das Lesen des Wertes des Signals (Sl, Kl) unabhängig von der durch die Gatteranordnung (10) ausgeführten
Funktion (22) erfolgt, Übergeben des Werts von der Überwachungsschaltung (20) an den Prozessor (30) und Verwenden des Werts des Signals (Sl, Kl) während der Ausführung der übergeordneten Funktion (32), und/oder Erzeugen des Werts des Signals (Sl, Kl) durch den Prozessor (30) während der Ausführung der übergeordneten Funktion (32), Übergeben des Wertes des Signals (Sl, Kl) von dem Prozessor (30) an die Überwachungsschaltung (20) und Schreiben des Wertes des Signals (Sl, Kl) durch die Überwachungsschaltung (20), wobei das Schreiben des Wertes des Signals (Sl, Kl) unabhängig von der durch die Gatteranordnung (10) ausgeführten Funktion (22) erfolgt.
EP23828991.2A 2023-01-04 2023-12-08 Überwachungsschaltung für eine programmierbare gatter-anordnung, anordnung mit überwachungsschaltung, prozessor und gatteranordnung sowie verfahren zum betrieb einer solchen anordnung Pending EP4646791A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102023100161.2A DE102023100161A1 (de) 2023-01-04 2023-01-04 Überwachungsschaltung für eine programmierbare gatteranordnung, anordnung mit überwachungsschaltung, prozessor und gatteranordnung sowie verfahren zum betrieb einer solchen anordnung
PCT/EP2023/084916 WO2024146743A1 (de) 2023-01-04 2023-12-08 Überwachungsschaltung für eine programmierbare gatter-anordnung, anordnung mit überwachungsschaltung, prozessor und gatteranordnung sowie verfahren zum betrieb einer solchen anordnung

Publications (1)

Publication Number Publication Date
EP4646791A1 true EP4646791A1 (de) 2025-11-12

Family

ID=89385982

Family Applications (1)

Application Number Title Priority Date Filing Date
EP23828991.2A Pending EP4646791A1 (de) 2023-01-04 2023-12-08 Überwachungsschaltung für eine programmierbare gatter-anordnung, anordnung mit überwachungsschaltung, prozessor und gatteranordnung sowie verfahren zum betrieb einer solchen anordnung

Country Status (3)

Country Link
EP (1) EP4646791A1 (de)
DE (1) DE102023100161A1 (de)
WO (1) WO2024146743A1 (de)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2466821A (en) * 2009-01-08 2010-07-14 Advanced Risc Mach Ltd An FPGA with an embedded bus and dedicated bus interface circuits
EP2765528B1 (de) 2013-02-11 2018-11-14 dSPACE digital signal processing and control engineering GmbH Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
EP2963541B1 (de) * 2014-06-30 2017-01-25 dSPACE digital signal processing and control engineering GmbH Implementierung einer Konstanten in FPGA-Code
EP3244326B1 (de) 2016-05-10 2021-07-07 dSPACE digital signal processing and control engineering GmbH Verfahren zum erstellen einer fpga-netzliste
EP3647801A1 (de) * 2018-10-30 2020-05-06 dSPACE digital signal processing and control engineering GmbH Verfahren zur überprüfung eines fpga-programms
DE102021133835A1 (de) * 2021-12-20 2023-06-22 Dspace Gmbh Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung

Also Published As

Publication number Publication date
DE102023100161A1 (de) 2024-07-04
WO2024146743A1 (de) 2024-07-11

Similar Documents

Publication Publication Date Title
DE69713784T2 (de) Rekonfigurierbares rechnersystem
EP2765528B1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE1499722B1 (de) Einrichtung zur modifizierung von informationswoertern
DE2953861C2 (de)
DE3685711T2 (de) Anordnung zur simulation von rechnerfunktionen von grossrechenanlagen.
EP2954440B1 (de) Verändern eines signalwerts eines fpga zur laufzeit
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
EP3244326B1 (de) Verfahren zum erstellen einer fpga-netzliste
DE102013101300A1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE69032511T2 (de) Multiprozessor-Steuereinrichtung mit gemeinsamem Steuerungsspeicher
DE2245284A1 (de) Datenverarbeitungsanlage
EP2963541B1 (de) Implementierung einer Konstanten in FPGA-Code
WO2023117215A1 (de) Verfahren und anordnung zur partiellen neuprogrammierung einer programmierbaren gatteranordnung
WO2024146743A1 (de) Überwachungsschaltung für eine programmierbare gatter-anordnung, anordnung mit überwachungsschaltung, prozessor und gatteranordnung sowie verfahren zum betrieb einer solchen anordnung
DE69528824T2 (de) Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher
DE102010028227A1 (de) Coprozessor mit Ablaufsteuerung
DE69910172T2 (de) Schaltkreis mit pseudo-mehrport-speicher
EP1789889B1 (de) Rechnereinrichtung mit rekonfigurierbarer architektur zur aufnahme eines globalen zellularen automaten
DE2644180C3 (de) Datenverarbeitungssystem
DE102013114508A1 (de) Blockbasierte Signalverarbeitung
DE69629542T2 (de) Adressierbares serielles prüfsystem
DE112020007256T5 (de) Schnelle steuervorrichtung zur steuerung eines quantenprozessors
AT501880B1 (de) Speicherprogrammierbare steuerung
EP3001318A1 (de) Bestimmung von Signalen für Readback aus FPGA

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20250804

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: DSPACE SE & CO. KG