WO2023117215A1 - Verfahren und anordnung zur partiellen neuprogrammierung einer programmierbaren gatteranordnung - Google Patents

Verfahren und anordnung zur partiellen neuprogrammierung einer programmierbaren gatteranordnung Download PDF

Info

Publication number
WO2023117215A1
WO2023117215A1 PCT/EP2022/081957 EP2022081957W WO2023117215A1 WO 2023117215 A1 WO2023117215 A1 WO 2023117215A1 EP 2022081957 W EP2022081957 W EP 2022081957W WO 2023117215 A1 WO2023117215 A1 WO 2023117215A1
Authority
WO
WIPO (PCT)
Prior art keywords
monitoring circuit
reprogramming
input
gate array
arrangement
Prior art date
Application number
PCT/EP2022/081957
Other languages
English (en)
French (fr)
Inventor
Dominik Lubeley
Heiko Kalte
Marc Schlenger
Jürgen Klahold
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 WO2023117215A1 publication Critical patent/WO2023117215A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]

Definitions

  • the application relates to a method and an arrangement for programming a programmable gate arrangement which is set up to carry out at least one function and to process at least one signal.
  • a programmable gate array is a digital technology integrated circuit that resides on a board and into which logic circuitry can be loaded. Functions can be executed and signals processed by means of a logic circuit.
  • An example of a programmable gate array is a FPGA (Field Programmable Gate Array).
  • a system description can first be created.
  • a system description can e.g. B. using a hardware description language such. B. VHDL or Verilog.
  • a description at the logic level e.g. B. in the form of a net list, which in particular generates a description of the wiring of the circuit and/or a combination of computing elements and/or memory elements and/or logic circuit elements such as AND gates, OR gates etc.
  • the computing elements and the storage elements are circuit elements of the gate arrangement.
  • a computing element or multiple computing elements is/are arranged within a block or a so-called subsystem or assigned to a block or subsystem.
  • a block and a subsystem in the present context is an area within the programmable gate arrangement, the area usually being intended to fulfill a task—predetermined by the system description—for example a data processing task.
  • the block or subsystem can have input(s) and/or output(s).
  • computer software programs such as so-called modeling software programs with a graphical user interface can contribute to the creation and/or influencing of the system description.
  • graphical user interfaces with block libraries to choose from of function blocks that display a graphical symbol for each block or for each subsystem, where, for example, influencing a block or a subsystem by a user via the graphical user interface leads to a change in a corresponding part of the system description.
  • functional assignments to a block or subsystem of the programmable gate array can be made using the graphical modeling software.
  • the so-called design is created by means of the so-called routing, which also creates the arrangement of the circuit elements and the course of the wiring on the board.
  • a programmable gate array can be programmed by loading a so-called bitstream onto the board. Programming can also be referred to as configuration. The bitstream is specific to the board's hardware and is generated from the design. After the bit stream has been fed in, known as programming, the programmable gate arrangement is set up to carry out a function of the logic circuit and to process signals for this purpose.
  • Programmable gate arrays are z.
  • RCP Rapid Control Prototyping
  • Hi L Hardware in the Loop
  • a measurement of variables of the simulation models at runtime of the simulation is z. This is possible, for example, via dSPACE ControlDesk.
  • EP3739479A1 describes a method for debugging the program logic of a programmable gate array.
  • a monitoring circuit via which a value of a signal of the function can be read out, is programmed on the programmable gate arrangement in addition to the elements of the gate arrangement which are provided for executing the function.
  • the programmable gate array is first programmed with the elements of the gate array intended to perform the function and the monitoring circuitry.
  • a signal line that establishes a transmission channel between the monitoring circuit and the storage location of the signal value is programmed in a second step.
  • the value of the signal of the function can be read out from that part of the gate arrangement which implements the function.
  • the monitoring circuit includes a signal input and is set up to read out the value of the signal present at the signal input.
  • the monitoring circuit further includes a memory to store the signal value read out.
  • the application is based on the object of further improving the design of the programmable gate arrangement.
  • a programmable gate arrangement is set up to perform at least one function and to process at least one signal, the gate arrangement having a monitoring circuit and a shadow register associated with the at least one signal, which is set up and provided to store the value of the associated signal.
  • a shadow register is a memory of the programmable gate array in which a value of the associated signal is stored while the function of the gate array is being performed.
  • a method for partially reprogramming such a programmable gate array comprises the steps:
  • the elements of the gate array intended to perform the function are unaffected by the partial reprogramming.
  • the reprogramming is only partial, leaving the previously already programmed circuit untouched.
  • the transmission channel inserted by the partial reprogramming is programmed without changing the logic circuitry intended to perform the function. This saves time, money and further testing effort.
  • the partial reprogramming influences the routing from the at least one shadow register to the monitoring circuit by inserting a transmission channel from the shadow register to the monitoring circuit according to a routing specification in the course of the partial reprogramming.
  • the gate arrangement is set up to transmit the value stored in the shadow register to the monitoring circuit via the transmission channel, and the monitoring circuit is set up to temporarily store the transmitted value.
  • the monitoring circuit is also set up to temporarily store further values.
  • a signal can have a value such as B. be a measured value or a value of a variable of the function.
  • a signal can also be a purely calculated value, e.g. B. converted from a measured value or an intermediate value.
  • a signal can e.g. B. then be assigned to a shadow register if there is a potential interest in reading the value of the signal via the monitoring circuit.
  • the signal can optionally be generated within a block.
  • the block represents a delimitable area within the programmable gate arrangement.
  • the blocks include, for example, so-called subsystems, ie subsystems having special functions of a higher-level system.
  • a signal emanating from a block can, for example, be calculated or influenced within the block, e.g.
  • the signal can be generated cyclically within the block independently of input values.
  • a signal generated or passed through within the block can be output via the output(s) of the block.
  • the transmission channel under the control of the input. This allows a user z. B. can be selected via an input unit that the value present in the shadow register is available via the transmission channel then added as a result of the input in the monitoring circuit and can be temporarily stored there. This improves flexibility and user-friendliness.
  • a programmable gate array in particular an FPGA, is often used for time-critical simulation calculations such.
  • the at least one shadow register is designed in such a way that the function can be executed independently of the shadow register.
  • the shadow register is thus a memory of the gate arrangement, which is configured in such a way that the values stored in it are no longer used for executing the function.
  • the values are - figuratively speaking - in a dead end of the function. If required, they are intended to be connected to the monitoring circuit via a transmission channel and read out via this, temporarily stored in the monitoring circuit and possibly further used.
  • Such protection avoids shadow registers being removed during the design process in one of the design steps for optimization reasons, since they are not needed to perform the actual function of the gate arrangement. It is thus preferably provided that the at least one—preferably all—shadow registers is/are protected against deletion after this(these)(s) has(have) been created in an initialization phase of the design process. This protection may involve the steps of the design process or even the partial reprogramming of the gate array.
  • the location of the shadow register in the circuit of the gate arrangement is known and/or determined with software support using a representation of the bit stream and/or the position of the bit in the bit stream belonging to the shadow register is known, with which the gate arrangement is programmed.
  • multiple transmitted values are temporarily stored in the monitoring circuit.
  • the values transmitted to the monitoring circuit are in particular buffered in each case with a time stamp.
  • time stamping is that the time stamp in the monitoring circuit is linked to the stored value, this corresponds to the assignment of the value to the time stamp.
  • the time for the timestamp can be, for example, a system time of the gate array that is valid for the gate array as a whole. It can also be a parent time to which the gate array is synchronized through communication.
  • the monitoring circuit is therefore set up to buffer a number of transmitted values, in particular to buffer them together with a time stamp.
  • the monitoring device z. B. be equipped with a ring memory, are stored in the cyclically new incoming values from the shadow register, the oldest value being overwritten by the new incoming value.
  • 100 or 1000 transmitted values can be buffered.
  • the transmission to the monitoring circuit and intermediate storage takes place there within a configurable and/or predefinable time interval.
  • the time interval corresponds in particular to a cycle time of the gate arrangement.
  • a cycle time of the gate arrangement can at a clock frequency of z. B. 125 MHz be 8 ns.
  • a gate arrangement can also have several different clock frequencies, e.g. B. a function of a gate array with a clock frequency of z. B. clocked at 100 MHz and another with z. 200MHz. Accordingly, the time interval can then correspond to one of the two clock periods of the gate arrangement.
  • the longer of the various clock durations is chosen as the time interval for transmission to the monitoring circuit and intermediate storage there.
  • the buffering in the monitoring circuit is z. B. in a BlockRAM of the monitoring circuit.
  • a monitoring circuit can, for. B. 2-10 Mbytes of BlockRAM.
  • the monitoring circuit provides temporarily stored values for a recording as a function of an event. This can involve one or preferably several or all of the values currently temporarily stored in the monitoring circuit.
  • the event can be a trigger that triggers the posting for recording.
  • the trigger can depend on the input and/or on at least one of the values temporarily stored in the monitoring circuit.
  • a timestamp is also used at the time the trigger occurred generated and assigned to the trigger event.
  • the trigger can be an edge of a signal temporarily stored in the monitoring circuit and/or an absolute value of the signal.
  • a trigger in the monitoring circuit can be recognized in that a signal routed to it serves as a trigger source and, for example, a rising edge of this signal serves as a trigger condition.
  • the trigger condition is preferably also selected via an input by a user, which is received.
  • the monitoring circuit can also record values of the signal before the e.g. B. the received values of the signal can be stored permanently.
  • a pre-trigger setting e.g. B. also by receiving an input from the user but z. It can be set, for example, that a certain number of values are saved. The number can e.g. B. be 1000. This would mean that the signal memory is filled until it is full, however the e.g. 1000 values remain in the memory because e.g. 1000 values were set in the pre-trigger settings.
  • the memory can e.g. B. be implemented as a ring memory.
  • the input is received via the graphical user interface of an input unit.
  • Values provided by the monitoring circuit are recorded and output on a graphical user interface of an output unit.
  • the input is made in particular by "drag & drop", in which case, for example, a value can be selected by a user using a pointer instrument and can be dragged into an area where, for example, the signal values temporarily stored in the monitoring circuit can then be found, in particular can be displayed as a curve.
  • the advantage of this procedure is that the transmission channel is set by partial reprogramming after the selection by the user and the actual function of the gate arrangement is not affected. This means that after the input, an output can be quickly generated on the output unit, the B. can have an output area on a screen.
  • the time stamps stored with the values can preferably be provided and recorded together with the values.
  • a shadow register is provided for a plurality of signals of the gate arrangement.
  • a transmission channel is added to one or more shadow registers by partial reprogramming.
  • the elements of the gate array intended to perform the function are independent of the partial reprogramming.
  • One or more signals can thus be selected by making an entry.
  • the transmission channels can be added to the selected signals by partial reprogramming without affecting the function of the gate array.
  • the waveform can then be displayed on the output unit - similar to an oscilloscope.
  • the graphical user interface can also z. B. also the pre-trigger described above as the trigger condition described above z. B. be set and / or selected by a user through an input.
  • multiple monitoring circuits are provided on the programmable gate array.
  • Transmission channels can be added to one or more of the monitoring circuits by partial reprogramming. This means that, particularly in the case of a number of signals with an associated shadow register, the transmission channels can optionally also be routed to different monitoring circuits. This can be advantageous, e.g. B. to be able to distribute load to several monitoring circuits.
  • At least one transmission channel is removed by the partial reprogramming.
  • the elements of the gate array dedicated to performing the function are independent of the partial reprogramming. This offers the advantage of making the process more flexible. Triggered by the input, e.g. B. Signals that were previously selected can then be deselected again. The associated transmission channel on the gate arrangement is then removed again by the partial reprogramming after the input, which means the deselection of the signal. In this way, signals can be flexibly selected and deselected again, e.g. B. to be displayed or no longer to be displayed.
  • the programmable gate array is set up by programming prior to the partial reprogramming to perform the at least one function and the at least one signal to process.
  • This programming is the so-called initial programming.
  • the transmission channel that can be added by the partial new programming is already provided.
  • Routing resources of the gate arrangement, in particular of the FPGA are preferably already reserved in the initial programming of the gate arrangement, in particular of the FPGA, in order to use the reserved routing resources later in the partial reprogramming for one or more (new and/or additional) transmission channels of to use the shadow register(s) for monitoring circuitry.
  • the transmission channel is provided in a bit stream of programming and the partial reprogramming is performed by a partial bit stream.
  • a partial bitstream is a bitstream for programming the gate array which adds and/or removes elements to the pre-existing elements of the gate array while leaving the pre-existing elements of the gate array function untouched, i. H. are independent of it.
  • the deletion can e.g. B. immediately after the initial programming or just before the partial reprogramming.
  • the programming e.g. B. the initial programming, and / or the partial reprogramming performed by a processor.
  • the processor may either be part of the programmable gate array or interfaced with the programmable gate array.
  • the connection via an interface also allows e.g. B. an arrangement in a device that z. B. has the input unit and / or the output unit. Connection via an interface also allows the processor to be located on a separate one Processor board, which can optionally be accommodated together with the board of the gate arrangement in one housing.
  • a programmable gate arrangement is set up to perform at least one function and to process at least one signal, the gate arrangement having a monitoring circuit and a shadow register assigned to the at least one signal, which is set up and provided to store the value of the assigned signal, the function being independent is executable by the shadow registry.
  • the signal is stored in the associated shadow register in particular at runtime, that is to say while the function of the gate arrangement is being carried out.
  • Elements of the gate array that are required to perform the function are arranged in a so-called functional area of the gate array.
  • the monitoring circuit can be arranged outside the functional area.
  • An arrangement for partially reprogramming such a programmable gate arrangement has an input unit and a processor.
  • the input unit is provided and set up to receive an input, in particular from a user.
  • the processor is arranged and arranged to add a communication channel between the shadow register and the monitoring circuit by partially reprogramming the programmable gate array in response to the input, the elements of the gate array intended to perform the function being independent of the partial reprogramming.
  • the gate array is set up to transmit the value stored in the shadow register to the monitoring circuit via the transmission channel.
  • the transmission takes place in particular at runtime, i. H. while the function is running.
  • the monitoring circuit is set up to temporarily store the transmitted value.
  • the monitoring circuit is set up to temporarily store a number of values. This can e.g. B. done in a ring memory.
  • the input unit and/or the output unit have a graphical user interface.
  • the input is provided in particular by "drag &drop". The application is further explained and described below with reference to exemplary embodiments illustrated in the figures.
  • FIG. 1 shows an example of a method for partially reprogramming a programmable gate array
  • FIG. 3 shows an example of a further arrangement for partially reprogramming a programmable gate arrangement.
  • FIG. 1 shows a method for partially reprogramming a programmable gate array 10 (FIGS. 2, 3).
  • step S1 an input is received from an input unit 52 (Figs. 2, 3).
  • a user selects whether he wants one or more signals CI, C2, C3, C4, C5, C6 to be output on an output unit 54 .
  • the input can be used to select which of the signals CI, C2, C3, C4, C5, C6 the user wants to have output.
  • step S2 depending on the input, i.e. on the selection by the user, a transmission channel 14 between one of the selected signals CI, C2, C3, C4, C5, C6 assigned shadow register VTP of the gate arrangement 10 and a monitoring circuit 20 of the gate arrangement 10 added by partially reprogramming the programmable gate array 10.
  • the elements of the gate array 10 which are intended to perform a function of the gate array 10 are independent of the partial reprogramming. This means that the elements used to perform the function are not changed by the partial reprogramming.
  • the added transmission channel or channels makes it possible to transmit the value stored in the shadow register VTP or in the shadow registers VTP to the monitoring circuit 20 via the transmission channel 14 or the transmission channels 14 .
  • the Monitoring circuit 20 is set up to temporarily store the transmitted value for each shadow register VTP. Further values subsequently transmitted to the monitoring circuit 20 are also temporarily stored in the monitoring circuit, so that a sequence of values of the signal CI, C2, C3, C4, C5, C6 assigned to the respective shadow register VTP is temporarily stored in the monitoring circuit.
  • step S3 in response to a trigger condition, the temporarily stored values are made available by the monitoring circuit 20, recorded and output on an output unit 54.
  • the recording of the provided values can e.g. B. in the monitoring circuit itself or in a device 50, which can also have the output unit 54.
  • the programmable gate arrangement 10 is set up to carry out at least one function and to process at least one signal CI, C2, C3, C4, C5, C6.
  • Gate array 10 includes a functional portion 12 which includes elements used to perform the function. These elements include e.g. B. Registers RI, R2, R3, the signals CI, C2, C3, C4, C5, C6 and the input/output IO1, IO2. Via the registers RI, R2, R3, e.g. B. be communicated with a processor P. Analog signals can be made available or received via the input/output IO1, IO2.
  • the shadow registers VTP which are also arranged in the functional area, can store the current value of the respectively assigned signal CI, C2, C3, C4, C5, C6 while the function is being executed.
  • the shadow registers VTP are arranged in the functional area 12 in spatial proximity to the assigned signals CI, C2, C3, C4, C5, C6.
  • the shadow registers VTP are not part of the function of .
  • the gate arrangement 10 has a monitoring circuit 20 which, for. B. can be designed as a so-called debug core.
  • a debug core is an area of the programmable gate arrangement provided for monitoring, which is also programmed by the programming of the gate arrangement and—like the function of the gate arrangement—is realized by circuit elements.
  • a transmission channel 14 can preferably be added to the monitoring circuit 20 from each shadow register VTP.
  • Signal values Si1, Si2, which are transmitted to the monitoring circuit 20 via the transmission channel, can be stored in it.
  • All shadow registers VTP are then available to the user for input and thus for selection on an input unit 52 .
  • the shadow registers VTP can thus be treated like virtual test points for which the signal values can be displayed on an output unit 54 if required.
  • the programmable gate arrangement 10 is connected to a processor P via an interface 13 .
  • the gate array 10 can be programmed via the processor P by loading a bit stream onto the gate array 10 .
  • the gate array 10 and the processor P can be arranged together in a housing 30 .
  • the housing 30 can, for. B. be a control cabinet and the gate arrangement can be inserted as an FPGA board via a slot in the control cabinet.
  • the processor P can be in the form of a processor board and can be inserted into the control cabinet via a slot.
  • the processor P is connected via an interface 12 to a communication node K, which in turn is connected to a device 50 via an interface II.
  • Node K establishes a communications link between processor P and device 50 . This communication link can be wired or wireless.
  • the device 50 has two screen areas 50.1 and 50.2.
  • the area 50.1 has the input unit 52 and the area 50.2 has the output unit 54.
  • the input unit 52 and the output unit 54 are designed as a graphical user interface of the device 50 .
  • the device 50 can be z. B. be a PC or laptop or other portable computing unit.
  • On the input unit 52 an element, e.g. B. the name of a signal Cl, C2 selected by "drag &drop" DD and pulled onto the output unit 54. This means that the input is made that the element is selected and should be displayed on the output unit 54.
  • Several elements can be selected and anoezeiot.
  • the form SC, PL in which the output is to be made can also be selected on the input unit 52.
  • Possible forms of output are, for example, in the form of an oscilloscope SC, as a plot PL, a bar graph or the like FPGA boards Boi, Bo2 connected be, each of which may have gate arrays.
  • the input unit 52 can be used to select for which board Boi, Bo2 the signal values C1, C2 are to be selected and the display of the output unit 54 is to take place.
  • transmission channels 14 are added to the monitoring circuit from the shadow registers VTP of those signals which were selected by the input in the previous step.
  • the partial reprogramming is accomplished by a partial bit stream loaded onto the gate array 10 by the processor P via the interface 13 .
  • values from the shadow registers VTP are temporarily stored in the monitoring circuit 20 .
  • the temporarily stored values can be transmitted to the device 50 and can be output there on the output unit 54 .
  • a continuous temporal output of the signals CI, C2, C3, C4, C5, C6 is possible or a trigger-controlled one.
  • the signals CI, C2, C3, C4, C5, C6 are generated within a respective corresponding block, e.g. a corresponding subsystem, B1, B2, B3, B4, B5, B6, e.g. from respective input values of the associated blocks B1, B2, B3, B4, B5, B6 are calculated.
  • the signals are also output via the outputs of blocks B1, B2, B3, B4, B5, B6.
  • the outputs are symbolically represented in Fig. 2 and in Fig. 3 by arrows, which emanate from the respective blocks B1, B2, B3, B4, B5, B6 and point directly to an adjacent connection point, each with an associated shadow register VTP connected is.
  • input unit 52 can also be used to input which type of trigger condition is to apply.
  • the trigger condition is then transmitted to the monitoring circuit 20 via the node K and the processor P.
  • Monitoring circuit 20 then monitors when the trigger condition applies and then provides the values falling under the trigger condition. After transmission to the device 50, these can then be output on the output unit 54.
  • the trigger condition is e.g. B. a rising edge of a signal CI, and entered as a pre-trigger setting 1000
  • the monitoring circuit 20 monitors the signal CI. If a rising edge is detected, the trigger condition is met. Then the 1000 latest values of CI that are cached and new arriving values are provided. The provided values are then e.g. B. recorded and issued in the device.
  • FIG. 1 Another embodiment of an arrangement 100 for partially reprogramming a programmable gate arrangement 10 is illustrated in FIG.
  • the programmable gate arrangement 10 has a functional area 12 . Its structure and function is similar to that from FIG. B. be communicated with a processor P '.
  • the gate arrangement 10 has a monitoring circuit 20 which, as shown in FIG. B. can be designed as a so-called debug core.
  • a processor P' is located on the gate array 10 board.
  • the gate array 10 can be programmed by loading a bit stream onto the gate array 10 via the processor P'.
  • the housing 30 can, for. B. be a control cabinet and the gate arrangement can be inserted as an FPGA board via a slot in the control cabinet.
  • the FPGA board can also have the processor P'.
  • the processor P' is connected via an interface 12 to a communication node K, which in turn is connected to a device 50 via an interface II.
  • Node K establishes a communications link between processor P' and device 50. This communication link can be wired or wireless.
  • the device has an input unit 52 and an output unit 54 which are designed as a graphical user interface of the device 50 .
  • the device 50 can be z. B. be a PC or laptop or other portable computing unit.
  • an element e.g. B. the name of a signal C1, C2 can be selected by and drawn onto the output unit 54. This means that the entry has been made by "drag &drop" DD that the element is selected and is to be displayed on the output unit 54.
  • Several elements can be selected and displayed.
  • transmission channels 14 are added to the monitoring circuit from the shadow registers VTP of those signals which were selected by the input in the previous step.
  • the partial reprogramming is accomplished by a partial bitstream loaded onto the gate array 10 via the processor P'.
  • values from the shadow registers VTP are temporarily stored in the monitoring circuit 20 .
  • the temporarily stored values can be transmitted to the device 50 and output there on the output unit 54 as described above with reference to FIG. 2 . It is possible e.g. B. a continuous temporal output of the signals CI, C2, C3, C4, C5, C6 or a trigger-controlled.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)

Abstract

Die Anmeldung betrifft ein Verfahren zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung (10), welche eingerichtet ist, zumindest eine Funktion auszuführen und zumindest ein Signal (C1, C2, C3, C4, C5, C6) zu verarbeiten, wobei die Gatteranordnung (10) eine Überwachungsschaltung (20) und ein dem zumindest einen Signal (C1, C2, C3, C4, C5, C6) zugeordnetes Schattenregister (VTP) aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales (C1, C2, C3, C4, C5, C6) zu speichern. Das Verfahren weist die Schritte auf:Empfangen einer Eingabe,In Abhängigkeit von der Eingabe: Hinzufügen eines Übertragungskanals (14) zwischen dem Schattenregister (VTP) und der Überwachungsschaltung (20) durch partielle Neu-programmierung der programmierbaren Gatteranordnung (10), wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind.Nach der Neuprogrammierung ist die Gatteranordnung (10) eingerichtet, den im Schattenregister (VTP) gespeicherten Wert über den Übertragungskanal (14) an die Überwachungsschaltung (20) zu übertragen und die Überwachungsschaltung (20) ist eingerichtet, den übertragenen Wert zwischenzuspeichern.Die Anmeldung betrifft weiter eine Anordnung (100) zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung (10)

Description

Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung
Die Anmeldung betrifft ein Verfahren und eine Anordnung zur Programmierung einer programmierbaren Gatteranordnung, welche eingerichtet ist, zumindest eine Funktion auszuführen und zumindest ein Signal zu verarbeiten.
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 einer 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). Beim Entwurf einer programmierbaren Gatteranordnung kann zunächst eine Systembeschreibung erstellt werden. Eine Systembeschreibung kann z. B. mittels einer Hardwarebeschreibungssprache wie z. B. VHDL oder Verilog erfolgen. Aus einer solchen Systembeschreibung kann dann mittels Synthese eine Beschreibung auf Logikebene, z. B. in Form einer Netzliste, generiert werden, welche insbesondere eine Beschreibung der Verdrahtung der Schaltung und/oder eine Verknüpfung von Rechenelementen und/oder Speicherelementen und/oder Logikschaltungselementen wie bspw. UND-Gattern, ODER-Gattern etc. in Textform erzeugt. Die Rechenelemente und die Speicherelemente sind Schaltungselemente der Gatteranordnung. Optional ist/sind ein Rechenelement oder mehrere Rechenelemente innerhalb eines Blocks oder eines sogenannten Subsystems angeordnet oder einem Block oder Subsystem zugeordnet. Ein Block und ein Subsystem in dem vorliegenden Kontext ist ein Bereich innerhalb der programmierbaren Gatteranordnung, wobei der Bereich üblicherweise vorgesehen ist, eine - durch die Systembeschreibung vorbestimmte - Aufgabe, bspw. eine Datenverarbeitungsaufgabe, zu erfüllen. Dazu kann der Block oder das Subsystem über Eingang/Eingänge und/oder über Ausgang/Ausgänge verfügen.
Zur Erstellung und/oder Beeinflussung der Systembeschreibung können beispielsweise Computersoftware-Programme, wie z.B. sogenannte Modellierungssoftware-Programme, mit einer graphischen Benutzeroberfläche beitragen. Es gibt beispielsweise graphische Benutzeroberflächen mit Blockbibliotheken zur Auswahl von Funktionsblöcken, die ein graphisches Symbol für jeden Block oder für jedes Subsystem anzeigen, wobei beispielsweise eine Beeinflussung eines Blocks oder eines Subsystems durch einen Anwender mittels der graphischen Benutzeroberfläche zu einer Veränderung eines korrespondierenden Anteils der Systembeschreibung führt. Es können beispielsweise Funktionszuweisungen zu einem Block oder Subsystem der programmierbaren Gatteranordnung mittels der graphischen Modellierungssoftware erfolgen.
Mittels des sogenannten Routings wird das sogenannte Design erzeugt, das zusätzlich die Anordnung der Schaltungselemente und des Verlaufs der Verdrahtung auf dem Board erzeugt. Eine programmierbare Gatteranordnung kann dadurch programmiert werden, dass ein sogenannter Bitstream auf das Board geladen wird. Die Programmierung kann auch als Konfiguration bezeichnet werden. Der Bitstream ist spezifisch für die Hardware des Boards und wird aus dem Design erzeugt. Nach der Einspeisung des Bitstreams, Programmierung genannt, ist die programmierbare Gatteranordnung eingerichtet, eine Funktion der logischen Schaltung auszuführen und hierzu Signale zu verarbeiten.
Programmierbare Gatteranordnungen werden z. B. in Rapid Control Prototyping (RCP) oder Hardware in the Loop (Hi L) Echtzeitsystemen angewendet. Ein Messen von Variablen der Simulationsmodelle zur Laufzeit der Simulation ist z. B. über dSPACE ControlDesk möglich.
In EP3739479A1 wird ein Verfahren zur Fehlersuche in der Programmlogik einer programmierbaren Gatteranordnung beschrieben. Hierfür ist auf der programmierbaren Gatteranordnung neben den Elementen der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, eine Überwachungsschaltung programmiert, über die ein Wert eines Signales der Funktion auslesbar ist. Die programmierbare Gatteranordnung wird zunächst mit den Elementen der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, sowie der Überwachungsschaltung programmiert. Eine Signalleitung, die einen Übertragungskanal zwischen der Überwachungsschaltung und dem Speicherort des Signalwertes herstellt, wird in einem zweiten Schritt programmiert.
Mittels der Überwachungsschaltung kann der Wert des Signales der Funktion aus dem Teil der Gatteranordnung, der die Funktion realisiert, ausgelesen werden. Die Überwachungsschaltung umfasst hierfür einen Signaleingang und ist eingerichtet, den Wert des am Signaleingang anliegenden Signals auszulesen. Die Überwachungsschaltung umfasst weiter einen Speicher, um den ausgelesenen Signalwert zu speichern.
Der Anmeldung liegt die Aufgabe zugrunde, den Entwurf der programmierbaren Gatteranordnung weiter zu verbessern.
Die Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 bzw. durch eine Anordnung mit den Merkmalen des unabhängigen Patentanspruchs 14 gelöst.
Eine programmierbare Gatteranordnung ist eingerichtet, zumindest eine Funktion auszuführen und zumindest ein Signal zu verarbeiten, wobei die Gatteranordnung eine Überwachungsschaltung und ein dem zumindest einen Signal zugeordnetes Schattenregister aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales zu speichern. Ein 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.
Ein Verfahren zur partiellen Neuprogrammierung einer solchen programmierbaren Gatteranordnung weist die Schritte auf:
• Empfangen einer Eingabe,
• In Abhängigkeit von der Eingabe: Hinzufügen eines Übertragungskanals zwischen dem Schattenregister und der Überwachungsschaltung durch partielle Neuprogrammierung der programmierbaren Gatteranordnung.
Hierbei sind die Elemente der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, unberührt von der partiellen Neuprogrammierung. Dies bedeutet, dass die Neuprogrammierung nur teilweise ist und die zuvor bereits programmierte Schaltung unberührt lässt. Damit wird der Übertragungskanal, der durch die partielle Neuprogrammierung eingefügt wird, ohne Veränderung der logischen Schaltung, die zum Ausführen der Funktion vorgesehen ist, programmiert. Hierdurch können Zeit, Kosten und weiterer Testaufwand eingespart werden. Die partielle Neuprogrammierung beeinflusst jedoch das Routing von dem zumindest einen Schattenregister zur Überwachungsschaltung, indem ein Übertragungskanal von dem Schattenregister zur Überwachungsschaltung gemäß einer Routingvorgabe im Zuge der partiellen Neuprogrammierung eingefügt wird. Die Gatteranordnung ist nach der partiellen Neuprogrammierung eingerichtet, den im Schattenregister gespeicherten Wert über den Übertragungskanal an die Über- wachungsschaltung zu übertragen und die Überwachungsschaltung ist eingerichtet, den übertragenen Wert zwischenzuspeichern. Die Überwachungsschaltung ist zudem eingerichtet weitere Werte zwischenzuspeichern.
Ein Signal kann ein Wert wie z. B. ein Messwert oder ein Wert einer Variablen der Funktion sein. Ein Signal kann dabei auch ein rein berechneter Wert, ein z. B. aus einem Messwert gewandelter Wert oder auch ein Zwischenwert sein. Ein Signal kann z. B. dann einem Schattenregister zugeordnet werden, wenn potenziell ein Interesse daran besteht, den Wert des Signales über die Überwachungsschaltung auszulesen. Das Signal kann optional innerhalb eines Blocks erzeugt werden. Der Block stellt einen abgrenzbaren Bereich innerhalb der programmierbaren Gatteranordnung dar. Zu den Blöcken zählen im Kontext der Erfindung beispielsweise sogenannte Subsysteme, also Teilsysteme aufweisend spezielle Funktionen eines übergeordneten Systems. Ein Signal, welches von einem Block ausgeht, kann zum Beispiel innerhalb des Blocks berechnet oder beeinflusst werden, bspw. unter Verwendung eines/mehrerer Eingangswertes/Eingangswerte des Blocks. In bestimmten Ausgestaltungen des Blocks kann das Signal unabhängig von Eingangswerten zyklisch innerhalb des Blocks generiert werden. Abhängig von einer Ausgestaltung des Blocks kann ein innerhalb des Blocks erzeugtes oder durchgeleitetes Signal via Ausgang/Ausgänge des Blocks ausgegeben werden.
Vorteilhaft ist es, das Hinzufügen des Übertragungskanals gesteuert durch die Eingabe vorzunehmen. Hierdurch kann durch einen Anwender z. B. über eine Eingabeeinheit ausgewählt werden, dass der im Schattenregister vorhandene Wert, über den dann in Folge der Eingabe hinzugefügten Übertragungskanal in der Überwachungsschaltung zur Verfügung steht und dort zwischengespeichert werden kann. Hierdurch werden Flexibilität und die Anwenderfreundlichkeit verbessert. Insbesondere ist es möglich, gezielt das Schattenregister auszuwählen, zu dem ein Wert in der Überwachungsschaltung zwischen gespeichert werden soll und diesen Wert zur Laufzeit, also während der Ausführung der Funktion, in der Überwachungsschaltung zwischenzuspeichern. Diese Auswahl kann flexibel immer wieder angepasst werden.
Eine programmierbare Gatteranordnung, insbesondere ein FPGA, wird häufig für zeitkritische Simulations-Berechnungen, wie z. B. HiL-Simulationen, verwendet. Diese zeitkritischen Simulationen werden zur Laufzeit einer Simulation zyklisch - z. B. in einer Taktfrequenz der Gatteranordnung - ausgeführt.
In einer Ausführungsform ist das zumindest eine Schattenregister so ausgestaltet, dass die Funktion unabhängig von dem Schattenregister ausführbar ist. Das Schattenregister ist damit ein Speicher der Gatteranordnung, der so konfiguriert ist, dass die in ihm gespeicherten Werte nicht weiter für das Ausführen der Funktion verwendet werden. Die Werte befinden sich - bildlich gesprochen - in einer Sackgasse der Funktion. Sie sind vorgesehen, bei Bedarf durch einen Übertragungskanal mit der Überwachungsschaltung verbunden zu werden und darüber ausgelesen, in der Überwachungsschaltung zwischengespeichert und ggf. weiter verwendet zu werden. Besonders vorteilhaft ist es dabei, solche Schattenregister so auszugestalten, dass sie während des Entwurfsprozesses der programmierbaren Gatteranordnung geschützt sind. Während des Entwurfsprozesses bedeutet geschützt sein, dass solche Elemente weiter vorhanden bleiben und nicht z. B. aus Effizienzgründen entfernt werden. Durch einen solchen Schutz wird vermieden, dass Schattenregister während des Entwurfsprozesses in einem der Entwurfsschritte aus Optimierungsgründen entfernt werden, da sie ja für die Ausführung der eigentlichen Funktion der Gatteranordnung nicht gebraucht werden. Damit ist bevorzugt vorgesehen, dass das zumindest eine - bevorzugt alle - Schattenregister, nachdem diese(s) in einer Initialisierungsphase des Entwurfsprozesses angelegt wurde(n), vor einem Löschen geschützt ist/sind. Dieser Schutz kann die Schritte des Entwurfsprozesses betreffen oder auch die partielle Neuprogrammierung der Gatteranordnung. Außerdem ist der Ort des Schattenregisters in der Schaltung der Gatteranordnung bekannt und/oder anhand einer Repräsentanz des Bitstreams softwareunterstützt ermittelt und/oder die Position des zum Schattenregister gehörigen Bit im Bitstream bekannt, mit der die Gatteranordnung programmiert wird.
In einer Ausführungsform des Verfahrens werden mehrere übertragene Werte in der Überwachungsschaltung zwischengespeichert. Die in die Überwachungsschaltung übertragenen Werte werden insbesondere jeweils mit einem Zeitstempel zwischengespeichert. Eine von mehreren Ausführungsformen der Zeitstempelung ist, dass der Zeitstempel in der Überwachungsschaltung mit dem gespeicherten Wert verknüpft wird, dies entspricht der Zuordnung des Wertes zu dem Zeitstempel. Bei der Zeit für den Zeitstempel kann es sich zum Beispiel um eine Systemzeit der Gatteranordnung handeln, die für die Gatteranordnung als Ganzes gültig ist. Es kann sich auch um eine übergeordnete Zeit handeln, auf die die Gatteranordnung durch Kommunikation synchronisiert ist. Die Überwachungsschaltung ist also dafür eingerichtet, mehrere übertragene Werte zwischenzuspeichern, insbesondere jeweils zusammen mit einem Zeitstempel zwischenzuspeichern. Hierfür kann die Überwachungseinrichtung z. B. mit einem Ringspeicher ausgestattet sein, in den zyklisch neu aus dem Schattenregister ankommende Werte gespeichert werden, wobei der jeweils älteste Wert durch den jeweils neu ankommenden Wert überschrieben wird. In der Überwachungsschaltung können z. B. 100 oder 1000 übertragene Werte zwischengespeichert werden.
In einer Ausführungsform des Verfahrens erfolgt die Übertragung an die Überwachungsschaltung und Zwischenspeicherung dort innerhalb eines konfigurierbaren und/oder vordefinierbaren Zeitintervalls. Das Zeitintervall entspricht dabei insbesondere einer Taktdauer der Gatteranordnung. Eine Taktdauer der Gatteranordnung kann bei einer Taktfrequenz von z. B. 125 MHz 8 ns betragen. Eine Gatteranordnung kann auch mehrere verschiedene Taktfrequenzen aufweisen, z. B. kann eine Funktion einer Gatteranordnung mit einer Taktfrequenz von z. B. 100 MHz getaktet sein und eine andere mit z. B. 200 MHz. Entsprechend kann das Zeitintervall dann einem der beiden Taktdauern der Gatteranordnung entsprechen. Vorteilhaft wird hier die längere der verschiedenen Taktdauern als Zeitintervall für die Übertragung an die Überwachungsschaltung und Zwischenspeicherung dort gewählt. Die Zwischenspeicherung in der Überwachungsschaltung erfolgt z. B. in einem BlockRAM der Überwachungsschaltung. Eine Überwachungsschaltung kann z. B. 2-10 Mbyte BlockRAM aufweisen. Die partielle Neuprogrammierung mit Hinzufügen der Übertragungskanäle bietet hierbei den großen Vorteil, dass die gesamte Taktdauer für die Übertragung vom Schattenregister zur Überwachungsschaltung zur Verfügung steht und dies unabhängig von Rechenoperationen ist, die für die Funktion der Gatteranordnung ausgeführt werden.
In einer Ausführungsform des Verfahrens stellt die Überwachungsschaltung in Abhängigkeit von einem Ereignis zwischengespeicherte Werte für eine Aufzeichnung bereit. Dabei kann es sich um einen oder bevorzugt mehrere oder alle der aktuell in der Überwachungsschaltung zwischengespeicherten Werte handeln. Bei dem Ereignis kann es sich um einen Trigger handeln, der das Bereitstellen für die Aufzeichnung auslöst. Der Trigger kann von der Eingabe und/oder von zumindest einem der in der Überwachungsschaltung zwischengespeicherten Werte abhängen. Zum Zeitpunkt des Auftretens des Triggers wird ebenfalls ein Zeitstempel erzeugt und dem Trigger-Ereignis zugeordnet. DerTrigger kann insbesondere eine Flanke eines in der Überwachungsschaltung zwischengespeicherten Signales und/oder ein absoluter Wert des Signales sein. Konkret kann ein Trigger in der Überwachungsschaltung dadurch erkannt werden, dass ein zu ihr geroutetes Signal, als Triggerquelle dient und z.B. eine ansteigende Flanke dieses Signals als Triggerbedingung dient. Bevorzugt erfolgt die Auswahl der Triggerbedingung ebenfalls über eine Eingabe durch einen Anwender, die empfangen wird.
Die Überwachungsschaltung kann dabei auch Werte des Signals vor dem aufzeichnen, indem z. B. permanent die empfangenen Werte des Signals gespeichert werden. In einer Pre-Trigger Einstellung kann z. B. ebenfalls durch Empfang einer Eingabe durch den Benutzer aber z. B. eingestellt werden, dass eine bestimmte Anzahl Werte gespeichert bleiben. Die Anzahl kann z. B. 1000 sein. Dies würde bedeuten, dass der Signal-Speicher gefüllt wird, bis er voll ist, allerdings bleiben die z.B. 1000 Werte im Speicher, da z.B. 1000 Werte in den Pre-Trigger Einstellungen eingestellt wurden. Der Speicher kann z. B. als Ringspeicher umgesetzt werden.
In einer Ausführungsform des Verfahrens wird die Eingabe über die graphische Benutzeroberfläche einer Eingabeeinheit empfangen. Durch die Überwachungsschaltung bereitgestellte Werte werden aufgezeichnet und auf einer graphischen Benutzeroberfläche einer Ausgabeeinheit ausgegeben. Die Eingabe erfolgt insbesondere durch „Drag & Drop", wobei z. B. ein Wert durch Anwahl mit einem Zeigerinstrument durch einen Anwender ausgewählt werden kann und in einen Bereich gezogen werden kann, wo dann z. B. die in der Überwachungsschaltung zwischengespeicherte Signalwerte insbesondere als Kurvenverlauf angezeigt werden können. Der Vorteil dieses Vorgehens besteht darin, dass der Übertragungskanal nach der Auswahl durch den Nutzer durch partielle Neuprogrammierung gelegt wird und die eigentliche Funktion der Gatteranordnung nicht beeinflusst wird. Hierdurch kann nach der Eingabe schnell eine Ausgabe auf der Ausgabeeinheit, die z. B. einen Ausgabebereich auf einem Bildschirm aufweisen kann, erfolgen.
Die mit den Werten gespeicherten Zeitstempel können bevorzugt gemeinsam mit den Werten bereitgestellt und aufgezeichnet werden. An dieser Stelle ist dann z. B. eine Korrektur möglich, die durch verschiedene Taktfrequenzen auf einem Board der Gatteranordnung möglich sind. In einer Ausführungsform des Verfahrens ist zu mehreren Signalen der Gatteranordnung jeweils ein Schattenregister vorgesehen. In Abhängigkeit von der Eingabe wird zu einem oder mehreren Schattenregistern jeweils ein Übertragungskanal durch partielle Neuprogrammierung hinzugefügt. Die Elemente der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, sind dabei unabhängig von der partiellen Neuprogrammierung. Durch eine Eingabe können somit ein oder mehrere Signale ausgewählt werden. Zu den ausgewählten Signalen können die Übertragungskanäle durch partielle Neuprogrammierung ohne Einfluss auf die Funktion der Gatteranordnung hinzugefügt werden. Der Signalverlauf kann dann auf der Ausgabeeinheit angezeigt werden - ähnlich zu einem Oszilloskop.
Über die graphische Benutzeroberfläche kann ebenfalls z. B. auch der zuvor beschriebene Pre-Trigger wie die zuvor beschriebene Trigger-Bedingung z. B. durch einen Anwender durch eine Eingabe eingestellt und/oder ausgewählt werden.
In einer Ausführungsform des Verfahrens sind auf der programmierbaren Gatteranordnung mehrere Überwachungsschaltungen vorgesehen. Es können Übertragungskanäle zu einer oder zu mehreren der Überwachungsschaltungen durch partielle Neuprogrammierung hinzugefügt werden. Dies bedeutet, dass insbesondere bei mehreren Signalen mit zugeordnetem Schattenregister, die Übertragungskanäle optional auch zu verschiedenen Überwachungsschaltungen gelegt werden können. Dies kann vorteilhaft sein, um z. B. Last auf mehrere Überwachungsschaltungen verteilen zu können.
In einer Ausführungsform des Verfahrens wird durch die partielle Neuprogrammierung zumindest ein Übertragungskanal entfernt. Die Elemente der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, sind unabhängig von der partiellen Neuprogrammierung. Dies bietet den Vorteil der weiteren Flexibilisierung des Verfahrens. Ausgelöst durch die Eingabe, können z. B. Signale die zuvor ausgewählt waren, danach wieder abgewählt werden. Der zugehörige Übertragungskanal auf der Gatteranordnung wird dann nach der Eingabe, die die Abwahl des Signals bedeutet, wieder durch die partielle Neuprogrammierung entfernt. So können flexibel Signale gewählt und wieder abgewählt werden, um sie sich z. B. anzeigen zu lassen oder nicht mehr anzeigen zu lassen.
In einer Ausführungsform des Verfahrens wird die programmierbare Gatteranordnung vor der partiellen Neuprogrammierung durch eine Programmierung eingerichtet, die zumindest eine Funktion auszuführen und das zumindest eine Signal zu verarbeiten. Diese Programmierung ist die sogenannte initiale Programmierung Bei dem Entwurfsprozess zu dieser initialen Programmierung und insbesondere in dieser initialen Programmierung selbst, also insbesondere in dem zu der initialen Programmierung gehörigen Bitstream, ist dabei bereits der durch die partielle Neuprogrammierung hinzufügbare Übertragungskanal vorgesehen. Bevorzugt werden Routing-Ressourcen der Gatteranordnung, insbesondere des FPGA, bereits in der initialen Programmierung der Gatteranordnung, insbesondere des FPGA, reserviert, um die reservierten Routing-Ressourcen später in der partiellen Neuprogrammierung für einen oder mehrere (neue und/oder weitere) Übertragungskanäle von dem/den Schatten reg ister/n zur Überwachungsschaltung zu verwenden.
In einer Ausführungsform des Verfahrens ist der Übertragungskanal in einem Bitstream der Programmierung vorgesehen und die partielle Neuprogrammierung erfolgt durch einen partiellen Bitstream. Ein partieller Bitstream ist ein Bitstream zur Programmierung der Gatteranordnung, welcher Elemente zu den bereits bestehenden Elementen der Gatteranordnung hinzufügt und/oder entfernt, wobei die bereits bestehenden Elemente der Funktion der Gatteranordnung davon unberührt bleiben, d. h. davon unabhängig sind.
In einer Ausführungsform des Verfahrens werden nach der Programmierung, insbesondere der initialen Programmierung, nicht mehr benötigte Elemente der Gatteranordnung gelöscht, bevor die partielle Neuprogrammierung erfolgt. Das Löschen kann z. B. unmittelbar nach der initialen Programmierung erfolgen oder aber kurz vor der partiellen Neuprogrammierung. Durch das Löschen kann die Gatteranordnung z. B. von Elementen befreit werden, die nur in der Initialphase nötig waren. Hierdurch kann z. B. Platz auf dem Board geschaffen werden und/oder Speicher freigegeben werden.
In einer Ausführungsform des Verfahrens wird die Programmierung, z. B. die initiale Programmierung, und/oder die partielle Neuprogrammierung durch einen Prozessor durchgeführt. Der Prozessor kann entweder Bestandteil der programmierbaren Gatteranordnung sein oder über eine Schnittstelle mit der programmierbaren Gatteranordnung verbunden sein. Die Verbindung über eine Schnittstelle ermöglicht auch z. B. eine Anordnung in einem Gerät, das z. B. die Eingabeeinheit und/oder die Ausgabeeinheit aufweist. Die Verbindung über eine Schnittstelle ermöglicht auch die Anordnung des Prozessors auf einem separaten Prozessorboard, das optional gemeinsam mit dem Board der Gatteranordnung in einem Gehäuse untergebracht sein kann.
Eine programmierbare Gatteranordnung ist eingerichtet, zumindest eine Funktion auszuführen und zumindest ein Signal zu verarbeiten, wobei die Gatteranordnung eine Überwachungsschaltung und ein dem zumindest einen Signal zugeordnetes Schattenregister aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales zu speichern, wobei die Funktion unabhängig von dem Schattenregister ausführbar ist. Das Speichern des Signales in dem zugeordneten Schattenregister erfolgt insbesondere zur Laufzeit, das heißt, während die Funktion der Gatteranordnung ausgeführt wird. Elemente der Gatteranordnung, welche zum Ausführen der Funktion benötigt werden, sind in einem sogenannten Funktionsbereich der Gatteranordnung angeordnet. Insbesondere die Überwachungsschaltung kann außerhalb des Funktionsbereiches angeordnet sein.
Eine Anordnung zur partiellen Neuprogrammierung einer solchen programmierbaren Gatteranordnung weist eine Eingabeeinheit und einen Prozessor auf. Die Eingabeeinheit ist vorgesehen und eingerichtet, eine Eingabe, insbesondere durch einen Anwender, zu empfangen. Der Prozessor ist vorgesehen und eingerichtet, in Abhängigkeit von der Eingabe einen Übertragungskanal zwischen dem Schattenregister und der Überwachungsschaltung durch partielle Neuprogrammierung der programmierbaren Gatteranordnung hinzuzufügen, wobei die Elemente der Gatteranordnung, die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind.
Nach der partiellen Neuprogrammierung ist die Gatteranordnung eingerichtet, den im Schattenregister gespeicherten Wert über den Übertragungskanal an die Überwachungsschaltung zu übertragen. Die Übertragung erfolgt insbesondere zur Laufzeit, d. h. während der Ausführung der Funktion. Die Überwachungsschaltung ist eingerichtet, den übertragenen Wert zwischenzuspeichern. Insbesondere ist die Überwachungsschaltung eingerichtet, mehrere Werte zwischenzuspeichern. Dies kann z. B. in einem Ringspeicher erfolgen.
In einer Ausführungsform der Anordnung weisen die Eingabeeinheit und/oder die Ausgabeeinheit eine graphische Benutzeroberfläche auf. Die Eingabe ist insbesondere durch „Drag & Drop" vorgesehen. Im Folgenden wird die Anmeldung anhand von in den Figuren dargestellten Ausführungsbeispielen weiter erläutert und beschrieben.
Fig. 1 zeigt beispielhaft ein Verfahren zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung,
Fig. 2 zeigt beispielhaft eine Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung,
Fig. 3 zeigt beispielhaft eine weitere Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung.
In den Figuren sind gleiche oder ähnliche Elemente mit den gleichen Bezugszeichen bezeichnet.
Fig. 1 zeigt ein Verfahren zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung 10 (Fig. 2, 3).
In Schritt S1 wird eine Eingabe von einer Eingabeeinheit 52 (Fig. 2, 3) empfangen. Mittels der Eingabe wird durch einen Anwender ausgewählt, ob er ein oder mehrere Signale CI, C2, C3, C4, C5, C6 auf einer Ausgabeeinheit 54 ausgegeben haben will. Zugleich kann durch die Eingabe ausgewählt werden, welches der Signale CI, C2, C3, C4, C5, C6 der Anwender ausgegeben haben will.
In Schritt S2 werden in Abhängigkeit von der Eingabe, also von der Auswahl durch den Anwender, jeweils ein Übertragungskanal 14 zwischen einem der ausgewählten Signale CI, C2, C3, C4, C5, C6 zugeordneten Schattenregister VTP der Gatteranordnung 10 und einer Überwachungsschaltung 20 der Gatteranordnung 10 durch partielle Neuprogrammierung der programmierbaren Gatteranordnung 10 hinzugefügt. Dabei sind die Elemente der Gatteranordnung 10, die zum Ausführen einer Funktion der Gatteranordnung 10 vorgesehen sind, unabhängig von der partiellen Neuprogrammierung. Das heißt, dass die Elemente, die zum Ausführen der Funktion benutzt werden, durch die partielle Neuprogrammierung nicht geändert werden.
Durch den hinzugefügten Übertragungskanal oder die hinzugefügten Übertragungskanäle wird es ermöglicht, den in dem Schattenregister VTP oder in den S ch atten reg i stern VTP gespeicherten Wert über den Übertragungskanal 14 oder die Übertragungskanäle 14 an die Überwachungsschaltung 20 zu übertragen. Die Überwachungsschaltung 20 ist eingerichtet, für jedes Schattenregister VTP den übertragenen Wert zwischenzuspeichern. Weitere in der Folge an die Überwachungsschaltung 20 übertragene Werte werden ebenfalls in der Überwachungsschaltung zwischengespeichert, so dass eine Abfolge von Werten des dem jeweiligen Schattenregister VTP zugeordneten Signales CI, C2, C3, C4, C5, C6 in der Überwachungsschaltung zwischengespeichert wird.
In Schritt S3 werden auf eine Triggerbedingung hin, die zwischengespeicherten Werte durch die Überwachungsschaltung 20 bereitgestellt, aufgezeichnet und auf einer Ausgabeeinheit 54 ausgegeben. Die Aufzeichnung der bereitgestellten Werte kann dabei z. B. in der Überwachungsschaltung selbst oder in einem Gerät 50 erfolgen, welches zugleich die Ausgabeeinheit 54 aufweisen kann.
In Fig. 2 ist ein Ausführungsbeispiel einer Anordnung 100 zur partiellen Neuprogrammierung einer programmierbaren Gattenanordnung 10 dargestellt.
Die programmierbaren Gatteranordnung 10 ist eingerichtet, zumindest eine Funktion auszuführen und zumindest ein Signal CI, C2, C3, C4, C5, C6 zu verarbeiten. Die Gatteranordnung 10 weist einen Funktionsbereich 12 auf, welcher Elemente aufweist, die zum Ausführen der Funktion verwendet werden. Diese Elemente umfassen z. B. Register RI, R2, R3, die Signale CI, C2, C3, C4, C5, C6 und den Input/Output IO1, IO2. Über die Register RI, R2, R3, kann z. B. mit einem Prozessor P kommuniziert werden. Über den Input/Output IO1, IO2 können analoge Signale zur Verfügung gestellt oder empfangen werden. Die ebenfalls im Funktionsbereich angeordneten Schatten register VTP können den aktuellen Wert des jeweils zugeordneten Signals CI, C2, C3, C4, C5, C6 speichern, währen die Funktion ausgeführt wird. Die Schattenregister VTP sind zwar im Funktionsbereich 12 in räumlicher Nähe zu den zugeordneten Signalen CI, C2, C3, C4, C5, C6 angeordnet. Die Schattenregister VTP sind jedoch unabhängig von der Funktion von nicht Bestandteil von dieser. Darüber hinaus weist die Gatteranordnung 10 eine Überwachungsschaltung 20 auf, welche z. B. als sogenannter Debug-Core ausgebildet sein kann. Ein Debug-Core ist im vorliegenden Kontext ein für die Überwachung vorgesehener Bereich der programmierbaren Gatteranordnung, der durch die Programmierung der Gatteranordnung mit programmiert wird und - wie die Funktion der Gatteranordnung - durch Schaltungselemente realisiert ist. Bevorzugt kann von jedem Schattenregister VTP aus ein Übertragungskanal 14 zu der Überwachungsschaltung 20 hinzugefügt werden. Signalwerte Sil, Si2, die über den Übertragungskanal an die Überwachungsschaltung 20 übermittelt werden, können in ihr gespeichert werden. Für den Anwender stehen dann also alle Schattenregister VTP für die Eingabe und damit die Auswahl auf einer Eingabeeinheit 52 zur Verfügung. Damit können die Schattenregister VTP wie virtuelle Test- Punkte behandelt werden, zu denen bei Bedarf die Signalwerte auf einer Ausgabeeinheit 54 angezeigt werden können.
Über eine Schnittstelle 13 ist die programmierbare Gatteranordnung 10 mit einem Prozessor P verbunden. Über den Prozessor P kann die Gatteranordnung 10 durch Laden eines Bitstreams auf die Gatteranordnung 10 programmiert werden. Die Gatteranordnung 10 und der Prozessor P können gemeinsam in einem Gehäuse 30 angeordnet sein. Das Gehäuse 30 kann z. B. ein Schaltschrank sein und die Gatteranordnung kann als FPGA-Board über einen Einschub in den Schaltschrank eingeschoben sein. Der Prozessor P kann als Prozessorboard ausgebildet sein und über einen Einschub in den Schaltschrank eingeschoben sein.
Der Prozessor P ist über eine Schnittstelle 12 mit einem Kommunikationsknoten K verbunden, welcher wiederum über eine Schnittstelle II mit einem Gerät 50 verbunden ist. Der Knoten K stellt eine Kommunikationsverbindung zwischen dem Prozessor P und dem Gerät 50 her. Diese Kommunikationsverbindung kann drahtgebunden oder drahtlos ausgebildet sein.
Das Gerät 50 weist zwei Bildschirmbereiche 50.1 und 50. 2 auf. Der Bereich 50.1 weist die Eingabeeinheit 52 und der Bereich 50.2 weist die Ausgabeeinheit 54 auf. Die Eingabeeinheit 52 und die Ausgabeeinheit 54 sind als eine grafische Benutzeroberfläche des Gerätes 50 ausgebildet. Bei dem Gerät 50 kann es sich z. B. um einen PC oder Laptop oder eine andere portable Recheneinheit handeln. Auf der Eingabeeinheit 52 kann ein Element, z. B. der Name eines Signales Cl, C2 durch „Drag & Drop" DD ausgewählt und auf die Ausgabeeinheit 54 gezogen werden. Damit ist die Eingabe erfolgt, dass das Element ausgewählt ist und auf der Ausgabeeinheit 54 angezeigt werden soll. Dabei können mehrere Elemente ausgewählt und anoezeiot werden. Auf der Eingabeeinheit 52 kann außerdem ausgewählt werden in welcher Form SC, PL die Ausgabe erfolgen soll. Möglich Ausgabeformen sind z. B. in Art eines Oszilloskops SC, als Plot PL, Balkendarstellung oder ähnliches. Das Gerät 50 kann mit mehreren FPGA-Boards Boi, Bo2 verbunden sein, die jeweils Gatteranordnungen aufweisen können. Auf der Eingabeeinheit 52 kann ausgewählt werden zu welchem Board Boi, Bo2 die Signalwerte Cl, C2 ausgewählt werden sollen und die Darstellung der Ausgabeeinheit 54 erfolgen soll.
Bei der partiellen Neuprogrammierung durch den Prozessor P gemäß Schritt S2 (Fig. 1) werden Übertragungskanäle 14 von den Schattenregistern VTP derjenigen Signale zur Überwachungsschaltung hinzugefügt, die im vorherigen Schritt durch die Eingabe ausgewählt wurden. Die partielle Neuprogrammierung erfolgt durch einen partiellen Bitstream, der durch den Prozessor P über die Schnittstelle 13 auf die Gatteranordnung 10 geladen wird.
Nach dem Hinzufügen der Übertragungskanäle 14 werden in der Überwachungsschaltung 20 Werte aus den Schattenregistern VTP zwischengespeichert. Die zwischengespeicherten Werte können an das Gerät 50 übertragen werden und dort auf der Ausgabeeinheit 54 ausgegeben werden. Beispielsweise ist eine kontinuierliche zeitliche Ausgabe der Signale CI, C2, C3, C4, C5, C6 möglich oder aber eine triggergesteuerte.
Die Signale CI, C2, C3, C4, C5, C6 werden in einer Ausführungsform der Erfindung innerhalb eines jeweils korrespondierenden Blocks, bspw. eines korrespondierenden Subsystems, Bl, B2, B3, B4, B5, B6 erzeugt, bspw. aus jeweiligen Eingangswerten der zugeordneten Blöcke Bl, B2, B3, B4, B5, B6 berechnet. Die Signale werden in der letztgenannten Ausführungsform des Weiteren via Ausgänge der Blöcke Bl, B2, B3, B4, B5, B6 ausgegeben. Die Ausgänge sind in Fig. 2 und in Fig. 3 durch Pfeile symbolisch dargestellt, die von den jeweiligen Blöcken Bl, B2, B3, B4, B5, B6 ausgehen und direkt auf jeweils einen benachbarten Verbindungspunkt zeigen, der jeweils mit einem zugeordneten Schattenregister VTP verbunden ist.
Bei einer triggergesteuerten Ausgabe kann ebenfalls über die Eingabeinheit 52 eingegeben werden, welche Art von Triggerbedingung gelten soll. Die Triggerbedingung wird dann über den Knoten K und den Prozessor P an die Überwachungsschaltung 20 übertragen. In der Überwachungsschaltung 20 wird dann überwacht, wann die Triggerbedingung zutrifft und daraufhin die unter die Triggerbedingung fallenden Werte bereitgestellt. Nach Übertragung an das Gerät 50 können diese dann auf der Ausgabeeinheit 54 ausgegeben werden. Ist die Triggerbedingung z. B. eine ansteigende Flanke eines Signals CI, und als Pre-Trigger Einstellung 1000 eingegeben worden, so wird von der Überwachungsschaltung 20 das Signal CI überwacht. Wird dabei eine ansteigende Flanke erkannt, so ist die Triggerbedingung erfüllt. Dann werden die 1000 letzten Werte von CI, die zwischengespeichert sind, und neu ankommende Werte bereitgestellt. Die bereitgestellten Werte werden dann z. B. im Gerät aufgezeichnet und ausgegeben.
In Fig. 3 ist ein weiteres Ausführungsbeispiel einer Anordnung 100 zur partiellen Neuprogrammierung einer programmierbaren Gattenanordnung 10 dargestellt.
Die programmierbaren Gatteranordnung 10 weist wie die Gatteranordnung 20 aus Fig. 2 einen Funktionsbereich 12 auf. Dessen Aufbau und Funktion ist ähnlich zu dem aus Fig. 2. Über die Register RI, R2, R3, kann z. B. mit einem Prozessor P' kommuniziert werden. Darüber hinaus weist die Gatteranordnung 10 eine Über- wachungsschaltung 20 auf, welche wie in Fig. 2 z. B. als sogenannter Debug-Core ausgebildet sein kann. In dieser Ausführungsform ist ein Prozessor P' auf dem Board der Gatteranordnung 10 angeordnet. Über den Prozessor P' kann die Gatteranordnung 10 durch Laden eines Bitstreams auf die Gatteranordnung 10 programmiert werden. Das Gehäuse 30 kann z. B. ein Schaltschrank sein und die Gatteranordnung kann als FPGA-Board über einen Einschub in den Schaltschrank eingeschoben sein. Das FPGA-Board kann zugleich den Prozessor P' aufweisen.
Der Prozessor P' ist über eine Schnittstelle 12 mit einem Kommunikationsknoten K verbunden, welcher wiederum über eine Schnittstelle II mit einem Gerät 50 verbunden ist. Der Knoten K stellt eine Kommunikationsverbindung zwischen dem Prozessor P' und dem Gerät 50 her. Diese Kommunikationsverbindung kann drahtgebunden oder drahtlos ausgebildet sein.
Das Gerät weist eine Eingabeeinheit 52 und eine Ausgabeeinheit 54 auf, die als eine grafische Benutzeroberfläche des Gerätes 50 ausgebildet sind. Bei dem Gerät 50 kann es sich z. B. um einen PC oder Laptop oder eine andere portable Recheneinheit handeln. Auf der Eingabeeinheit kann ein Element, z. B. der Name eines Signales Cl, C2 durch ausgewählt werden und auf die Ausgabeeinheit 54 gezogen werden. Damit ist durch „Drag & Drop" DD die Eingabe erfolgt, dass das Element ausgewählt ist und auf der Ausgabeeinheit 54 angezeigt werden soll. Dabei können mehrere Elemente ausgewählt und angezeigt werden.
Bei der partiellen Neuprogrammierung durch den Prozessor P' gemäß Schritt S2 (Fig. 1) werden Übertragungskanäle 14 von den Schattenregistern VTP derjenigen Signale zur Überwachungsschaltung hinzugefügt, die im vorherigen Schritt durch die Eingabe ausgewählt wurden. Die partielle Neuprogrammierung erfolgt durch einen partiellen Bitstream, der über den Prozessor P' auf die Gatteranordnung 10 geladen wird.
Nach dem Hinzufügen der Übertragungskanäle 14 werden in der Überwachungs- Schaltung 20 Werte aus den Schattenregistern VTP zwischengespeichert. Die zwischengespeicherten Werte können an das Gerät 50 übertragen werden und dort wie oben in Bezug auf Fig. 2 beschrieben auf der Ausgabeeinheit 54 ausgegeben werden. Möglich ist z. B. eine kontinuierliche zeitliche Ausgabe der Signale CI, C2, C3, C4, C5, C6 oder aber eine triggergesteuerte.
Bezugszeichenliste
10 programmierbare Gatteranordnung
12 Funktionsbereich
14 Übertragungskanal
20 Debug-Core
30 Gehäuse
50 Gerät
50.1, 50.2 Bildschirm bereich
52 Eingabeeinheit
54 Ausgabeeinheit
100 Anordnung
II, 12, 13 Schnittstelle
Bl, B2, B3, B4, B5, B6 Block
Boi, Bo2 Board
CI, C2, C3, C4, 05, 06 Signal
Sil, Si2 Signalwerte
DD Drag & Drop
SC, PL Ausgabearten
VTP Schattenregister
RI, R2, R3 Register
IO1, IO2 Input/Output
P, P' Prozessor
K Knoten
SI, S2, S3 Verfahrensschritte

Claims

Ansprüche Verfahren zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung (10), welche eingerichtet ist, zumindest eine Funktion auszuführen und zumindest ein Signal (CI, C2, C3, C4, C5, C6) zu verarbeiten, wobei die Gatteranordnung (10) eine Überwachungsschaltung (20) und ein dem zumindest einen Signal (CI, C2, C3, C4, C5, C6) zugeordnetes Schattenregister (VTP) aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales (CI, C2, C3, C4, C5, C6) zu speichern, aufweisend die Schritte
• Empfangen einer Eingabe,
• In Abhängigkeit von der Eingabe:
Hinzufügen eines Übertragungskanals (14) zwischen dem Schattenregister (VTP) und der Überwachungsschaltung (20) durch partielle Neuprogrammierung der programmierbaren Gatteranordnung (10), wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind,
• wobei die Gatteranordnung nach der Neuprogrammierung eingerichtet ist, den im Schattenregister (VTP) gespeicherten Wert über den Übertragungskanal (14) an die Überwachungsschaltung (20) zu übertragen und wobei die Überwachungsschaltung (20) eingerichtet ist, den übertragenen Wert zwischenzuspeichern. Verfahren nach Anspruch 1, wobei mehrere übertragene Werte in der Überwachungsschaltung zwischengespeichert werden, insbesondere jeweils zusammen mit einem Zeitstempel zwischengespeichert werden. Verfahren nach Anspruch 1 oder 2, wobei die Übertragung und Zwischenspeicherung innerhalb eines konfigurierbaren Zeitintervalls erfolgt, wobei das Zeitintervall insbesondere einem Takt der Gatteranordnung (10) entspricht.
4. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Überwa- chungsschaltung (20) in Abhängigkeit von einem Ereignis zwischengespeicherte Werte für eine Aufzeichnung bereitstellt.
5. Verfahren nach Anspruch 4, wobei es sich bei dem Ereignis um einen Trigger handelt, der das Bereitstellen für die Aufzeichnung auslöst, wobei der Trigger von der Eingabe und/oder von zumindest einem der in der Überwa- chungsschaltung (20) zwischengespeicherten Werte abhängt.
6. Verfahren nach einem der vorhergehenden Ansprüche, wobei
• die Eingabe über die graphische Benutzeroberfläche einer Eingabeeinheit (52) empfangen wird, und
• durch die Überwachungsschaltung (20) bereitgestellte Werte aufgezeichnet und auf einer graphischen Benutzeroberfläche einer Ausgabeeinheit (54) ausgegeben werden, wobei die Eingabe insbesondere durch „Drag & Drop" erfolgt.
7. Verfahren nach einem der vorhergehenden Ansprüche, wobei zu mehreren Signalen der Gatteranordnung (10) jeweils ein Schattenregister (VTP) vorgesehen ist und in Abhängigkeit von der Eingabe zu einem oder mehreren Schattenregistern (VTP) jeweils ein Übertragungskanal (14) durch partielle Neuprogrammierung hinzugefügt wird, wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind.
8. Verfahren nach Anspruch 7, wobei auf der programmierbaren Gatteranordnung (10) mehrere Überwachungsschaltungen (20) vorgesehen sind und Übertragungskanäle (14) zu einer oder zu mehreren der Überwachungsschaltungen (20) durch partielle Neuprogrammierung hinzugefügt werden.
9. Verfahren nach einem der vorhergehenden Ansprüche, wobei durch die partielle Neuprogrammierung zumindest ein Übertragungskanal (14) entfernt wird, wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind. Verfahren nach einem der vorhergehenden Ansprüche, wobei die programmierbare Gatteranordnung (10) vor der partiellen Neuprogrammierung durch eine Programmierung eingerichtet wird, die zumindest eine Funktion auszuführen und das zumindest eine Signal zu verarbeiten, wobei die Programmierung den durch die partielle Neuprogrammierung hinzufügbaren Übertragungskanal (14) bereits vorsieht. Verfahren nach Anspruch 10, wobei der Übertragungskanal (14) in einem Bitstream der Programmierung vorgesehen ist und die partielle Neuprogrammierung durch einen partiellen Bitstream erfolgt. Verfahren nach Anspruch 10 oder 11, wobei nach der Programmierung nicht mehr benötigte Elemente der Gatteranordnung (10) gelöscht werden, bevor die partielle Neuprogrammierung erfolgt. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Programmierung und/oder die partielle Neuprogrammierung durch einen Prozessor (P, P') durchgeführt wird, der entweder Bestandteil der programmierbaren Gatteranordnung (10) ist oder über eine Schnittstelle (13) mit der programmierbaren Gatteranordnung verbunden ist. Anordnung (100) zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung (10), welche eingerichtet ist, zumindest eine Funktion auszuführen und zumindest ein Signal zu verarbeiten, wobei die Gatteranordnung (10) eine Überwachungsschaltung (20) und ein dem zumindest einen Signal zugeordnetes Schattenregister (VTP) aufweist, das eingerichtet und vorgesehen ist, den Wert des zugeordneten Signales zu speichern, wobei die Funktion unabhängig von dem Schattenregister (VTP) ausführbar ist, wobei die Anordnung eine Eingabeeinheit (52) und einen Prozessor (P, P') aufweist, wobei die Eingabeeinheit (52) vorgesehen und eingerichtet ist, eine Eingabe zu empfangen und der Prozessor (P, P') vorgesehen und eingerichtet ist, in Abhängigkeit von der Eingabe einen Übertragungskanal (14) zwischen dem Schattenregister (VTP) und der Überwachungsschaltung (20) durch partielle Neuprogrammierung der programmierbaren Gatteranordnung (10) hinzuzufügen, wobei die Elemente der Gatteranordnung (10), die zum Ausführen der Funktion vorgesehen sind, unabhängig von der partiellen Neuprogrammierung sind, wobei die Gatteranordnung nach der Neuprogrammierung eingerichtet ist, den im Schattenregister gespeicherten Wert über den Übertragungskanal an die Überwachungsschaltung (20) zu übertragen und wobei die Überwa- chungsschaltung (20) eingerichtet ist, den übertragenen Wert zwischenzuspeichern. Anordnung nach Anspruch 14, wobei die Eingabeeinheit (52) und/oder die Ausgabeeinheit (54) eine graphische Benutzeroberfläche aufweisen und die Eingabe insbesondere durch „Drag & Drop" vorgesehen ist.
PCT/EP2022/081957 2021-12-20 2022-11-15 Verfahren und anordnung zur partiellen neuprogrammierung einer programmierbaren gatteranordnung WO2023117215A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021133835.2A DE102021133835A1 (de) 2021-12-20 2021-12-20 Verfahren und Anordnung zur partiellen Neuprogrammierung einer programmierbaren Gatteranordnung
DE102021133835.2 2021-12-20

Publications (1)

Publication Number Publication Date
WO2023117215A1 true WO2023117215A1 (de) 2023-06-29

Family

ID=84627541

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2022/081957 WO2023117215A1 (de) 2021-12-20 2022-11-15 Verfahren und anordnung zur partiellen neuprogrammierung einer programmierbaren gatteranordnung

Country Status (2)

Country Link
DE (1) DE102021133835A1 (de)
WO (1) WO2023117215A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3244326A1 (de) * 2016-05-10 2017-11-15 dSPACE digital signal processing and control engineering GmbH Verfahren zum erstellen einer fpga-netzliste
EP3739479A1 (de) 2019-05-14 2020-11-18 dSPACE digital signal processing and control engineering GmbH Verfahren zur fehlersuche in der programmlogik eines systems verteilter programmierbarer gatteranordnungen

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764079A (en) 1996-03-11 1998-06-09 Altera Corporation Sample and load scheme for observability of internal nodes in a PLD
US8686753B1 (en) 2011-04-08 2014-04-01 Altera Corporation Partial reconfiguration and in-system debugging
DE102017126094A1 (de) 2017-11-08 2019-05-09 Dspace Digital Signal Processing And Control Engineering Gmbh Verfahren zum Auslesen von Variablen aus einem FPGA

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3244326A1 (de) * 2016-05-10 2017-11-15 dSPACE digital signal processing and control engineering GmbH Verfahren zum erstellen einer fpga-netzliste
EP3739479A1 (de) 2019-05-14 2020-11-18 dSPACE digital signal processing and control engineering GmbH Verfahren zur fehlersuche in der programmlogik eines systems verteilter programmierbarer gatteranordnungen

Also Published As

Publication number Publication date
DE102021133835A1 (de) 2023-06-22

Similar Documents

Publication Publication Date Title
DE10045568B4 (de) Ereignisgestütztes Halbleiterprüfsystem
EP2765528B1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE69835106T2 (de) Eingebetteter logischer Analysator
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
EP2009525B1 (de) Testvorrichtung zum Testen wenigstens eines elektronischen Steuerungssystems und Verfahren dazu
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
DE19700513C2 (de) Mit CAD-Daten verknüpftes Halbleiterprüfsystem
DE3900248C2 (de) Verfahren zur schnellen Ablaufsteuerung digitaler Testmuster und Vorrichtung zur Durchführung des Verfahrens
EP2954440B1 (de) Verändern eines signalwerts eines fpga zur laufzeit
DE10034405A1 (de) Verfahren und System zum Programmieren von FPGAs auf PC-Karten ohne zusätzliche Hardware
DE10007427B4 (de) Ereignisgestütztes Prüfsystem
DE102013101300A1 (de) Wahlfreier Zugriff auf Signalwerte eines FPGA zur Laufzeit
DE102020124791A1 (de) Verfahren zur Übertragung von Daten von einer ersten Recheneinheit zu einer zweiten Recheneinheit
WO2023117215A1 (de) Verfahren und anordnung zur partiellen neuprogrammierung einer programmierbaren gatteranordnung
DE19841893B4 (de) Mikrokontroller
DE102016114914A1 (de) Verfahren zum Betreiben eines Steuergeräts sowie zum externen Bypassing eingerichtetes Steuergerät
EP3244325B1 (de) Verfahren zur zeitlich synchronisierten ausgabe und/oder zeitlich synchronisierten verarbeitung von signalen
AT501880A1 (de) Speicherprogrammierbare steuerung
DE102015209033A1 (de) Verfahren und Vorrichtung zum Liefern einer Prüfantwort
EP3001318A1 (de) Bestimmung von Signalen für Readback aus FPGA
DE102012203252A1 (de) Vorrichtung und Verfahren zum Testen von elektronischen Geräten mit einer räumlich getrennten Steuereinrichtung
EP3142032B1 (de) Verfahren zum ändern der konfiguration eines programmierbaren logikbausteins
DE19740543C1 (de) Verfahren zum Testen eines integrierten Schaltkreises sowie Verfahren und Datenverarbeitungsanlage zum Erzeugen von Testdaten
EP1594063B1 (de) Verfahren zum Überprüfen von Steuerungsprogrammen
DE19950810C1 (de) Vorrichtung zur Fehleremulation in digitalen Logikschaltungen

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: 22830397

Country of ref document: EP

Kind code of ref document: A1