METHOD FOR TEMPORALLY SYNCHRONIZING THE OUTPUT AND/OR TEMPORALLY SYNCHRONIZING THE PROCESSING OF SIGNALS
20170329732 · 2017-11-16
Inventors
Cpc classification
G06F13/00
PHYSICS
International classification
Abstract
Method for temporally synchronizing the output of signals and/or temporally synchronizing the processing of captured signals on a plurality of input and/or output channels of an electronic circuit, comprising the following steps: (a) combining a number of channels, in particular a proportion of all channels of the circuit, to form a logical group; (b) retrieving the channel latency of each channel belonging to the group from a data source; (c) determining the greatest channel latency from all retrieved channel latencies and at least temporarily storing the greatest channel latency as the group latency; (d) for each channel belonging to the group: determining the temporal difference between the group latency and the retrieved channel latency of the respective channel and storing the determined difference as a channel-associated latency offset in a memory, in particular a memory of the circuit; and (e) influencing the signal propagation via a respective channel on the basis of at least its respective stored latency offset.
Claims
1-12. (canceled)
13. A method for temporally synchronizing the output of signals and/or temporally synchronizing the processing of captured signals on a plurality of input and/or output channels of an electronic circuit, comprising the following steps of: a. combining a portion of all channels of the electronic circuit to form a logical group, b. retrieving a channel latency of each channel belonging to the logical group from a data source, c. determining a greatest channel latency from all retrieved channel latencies and at least temporarily storing the greatest channel latency as a logical group latency, d. for each channel belonging to the logical group: determining a temporal difference between the logical group latency and the retrieved channel latency and storing a determined difference as a channel-associated latency offset in a memory of the electronic circuit, e. influencing a signal propagation via a respective channel on a basis of at least a respective stored latency offset.
14. The method of claim 13, wherein a channel is assigned to the logical group by storing a group identification, in particular a group number, in a channel object of a user interface, which channel object is assigned to the channel.
15. The method of claim 13, wherein the channel is assigned to the logical group by generating a group object and storing a channel object of the channel in the group object of a user interface.
16. The method of claim 13, wherein at least values for the channel latency and the logical group latency are depicted in the channel object.
17. The method of claim 13, wherein an activity signal is generated on the basis of a group latency, which activity signal indicates the time at which the channels in the group have an active signal at their channel connections or their associated memory, in particular wherein the signal is assigned to the channel object and/or group object.
18. The method of claim 13, wherein a channel offset is stored in the channel object for at least one of the channels in the group, which channel offset is used to define an intended deviation of the signal propagation via the channel from the group latency.
19. The method of claim 18, wherein the value of the group latency of a group is changed on the basis of at least one channel offset, in particular before step d) of claim 13 is carried out.
20. The method of claim 13, wherein at least steps a) to d) are carried out using a graphical user interface which is implemented by means of software on a data processing system which is connected to the circuit by at least one communication connection in a bidirectional manner.
21. The method of claim 13, wherein step e) is carried out by software or hardware-implemented logic of the circuit, to which the latency offsets of all channels in the group have been transmitted by means of previous communication.
22. The method of claim 13, wherein the data source for retrieving the channel latencies is formed by a. a set of channel-assigned data which are stored on the data processing system on which the graphical user interface is executed, and are read into the software for generating the user interface, or b. a set of channel-assigned data which are stored in a memory element common to all channels, on the circuit, from which the data are read and are transmitted, by means of communication, to the software for generating the user interface, c. a set of data which are directly input into the software for generating the user interface by a user of said software, d. a set of data which is loaded, via a communication network, from a server onto the data processing system on which the graphical user interface is executed, and which are read into the software for generating the user interface.
23. The method of claim 13, wherein a. the function of that channel in the group which has the greatest retrieved channel latency is initially triggered at an initial triggering time for the purpose of initiating signal processing with this channel, and the function of the remaining channels in the group is gradually triggered for the purpose of initiating signal processing with the respective channel in the order of decreasing retrieved channel latencies with an interval of time between their respective stored latency offset, in particular plus a positive or negative channel offset, and the initial triggering time, or b. the functions of all channels in the group are triggered at the same time for processing respective signals and the signals processed by the channel function are each buffered in a register, and the processed signal of each channel is supplied, from the register, to further processing in a manner delayed with the respective stored latency offset, in particular plus a positive or negative channel offset, c. in the case of groups having input and output channels, the respective triggers for initiating signal output and signal input are effected at the same time or are effected in a manner offset by a predeterminable positive or negative time value, in particular by the maximum latency among the output channels.
24. The method of claim 13, wherein the times for the signal conditioning in the channel and the time for transferring the signal via the channel are added in order to form a value for a channel latency.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
DETAILED DESCRIPTION OF THE INVENTION
[0039] The present disclosure shows that it is necessary to determine only those channels which are intended to be synchronized, which can be carried out, for example, by the user in the software model of the simulation environment, for example in a user interface, preferably a graphical user interface, by combining the channels there to form a group.
[0040] The simulation environment itself then carries out the synchronization by automatically taking into account the individual latencies of the respective channels which have been combined to form the group. For this purpose, the present disclosure provides for the latencies of each channel of a circuit to be available in a data source for retrieval and use.
[0041] Therefore, there is no longer any need for users of a simulation environment to measure the latencies themselves or to manually acquire them from data sheets and take them into account during programming. The content of the data source, that is to say the latencies stored therein for each channel, preferably can be provided by the manufacturer of a circuit, particularly preferably individually for each circuit, that is to say even for different circuits which are technically structurally identical. For this purpose, the latencies of the channels associated with a circuit or data representing them can be determined using a circuit identifier, for example the individual serial number from the data source, in particular provided that the data source overall has not already been assigned to the circuit in an individualized manner.
[0042] The present disclosure therefore makes it possible for the latencies of the individual channels to already be disclosed to the modeling or configuration tool of the simulation environment, for example its graphical user interface, directly by the manufacturer, for example. If a user therefore desires synchronous output or sampling of the signals/data from a plurality of channels, a corresponding delay of the signals/data for compensating for the latencies is automatically modeled by the tool. In this case, such a delay is oriented to the maximum latency from the latencies of all channels which defines the group latency and is automatically determined according to the invention.
[0043] The present disclosure preferably can provide for at least one respective value for the respective channel latency and the group latency to be depicted in a channel object which is used, in particular, during programming, preferably object-oriented graphical block programming, preferably inside a graphical user interface. The user can immediately use and take into account the information obtained in this manner during his programming. For example, the user can therefore easily decide the channels for which he would like synchronous output or input/sampling and can identify what additional delays this signifies for the individual channels.
[0044] The present disclosure preferably provides for a respective channel to be assigned to a group by storing a group identification in a channel object of a user interface, which channel object is assigned to the respective channel. In a preferred embodiment, a group identification may be a group number, for example. Different channel objects which are used during programming are therefore given a logical link to one another which can be directly taken into account by the software model of the simulation environment. In the present disclosure, a graphical user interface (GUI) can generally be used as the user interface.
[0045] A channel can also be assigned to a group by generating a group object and storing a channel object of the respective channel in the group object of the graphical user interface. This preferably can also produce a hierarchical arrangement inside one another, which immediately also demonstrates the group assignment to the user, in particular in the graphical user interface, in a form which is visually easy to understand, and internally defines the assignment for the software model via the common group object.
[0046] One development may also provide for an activity signal to be generated on the basis of a group latency, which activity signal indicates or signals the time at which the channels in the group have an active signal at their respective channel connections/pins or the memory/register assigned to a channel. In this case, the activity signal preferably can be assigned to the channel object and/or group object, for example as an object to which further links are possible, in particular.
[0047] Such an assignment may provide for the activity signal to be available in the form of a parameter whose value can be changed or a variable inside the channel or group object; links to other objects can therefore also be established using said activity signal, in particular. Such a value may assume a logical “1” or “0”, for example, in which case the “1” can indicate the activity. Such an activity signal may therefore also be used, for example, to trigger other program parts, for example subroutines or objects, which has the advantage that execution can start precisely when the signal is present.
[0048] In the case of output channels, the signal can therefore indicate when the respective output signals are present on all channels, or at their output connections, in particular pins or registers, in the group. In the case of input channels, the signal can indicate when, on all channels, the signals present on the input side are present on the channel output side, for example in a memory/register or likewise a pin, that is to say can be supplied to synchronous further processing, after passing through the channel function. In addition, the sampling time of the signals at the pin before passing through the channel function can be indicated by means of a further activity signal. This signal makes it possible to determine in an improved manner the time at which a measurement was carried out.
[0049] In the case of output channels in particular, such an activity signal can therefore also indicate when previous values stored for each output channel in the group have been overwritten with new values, with the result that, when taking this signal into account for the purpose of triggering further program parts, it can be ensured that the execution takes place with the new current values.
[0050] Provision may also be made for different activity signals to be provided for output channels and input channels, in particular if output and input channels are represented in mixed form in a group in one possible configuration of the present disclosure.
[0051] The present disclosure may also provide for a channel offset to be stored in the channel object for at least one of the channels in the group, which channel offset is used to define an intended deviation of the signal propagation via the channel from the group latency. The user can therefore use such a channel offset to deliberately achieve a deviation for this at least one channel from the synchronicity which is otherwise present. Such a channel offset can therefore represent a variable in the channel object, to which the user can individually assign a desired value. The channel offset may have positive or negative time values, that is to say, in particular, may shift a signal on such a channel in both possible directions relative to the group latency.
[0052] When carrying out the method, provision may be made for at least the above-mentioned steps according to the invention of defining the group, retrieving the channel latency, determining the greatest channel latency and storing the channel-associated latency offset to be carried out using the graphical user interface which is implemented by means of software on a data processing system which is connected to the circuit comprising the input and/or output channels by at least one communication connection, preferably in a bidirectional manner.
[0053] This communication connection may be formed inside the simulator or else outside, for example via a network or interface or bus connection. As a result of this configuration, the latency values of the channels become directly accessible when programming the simulation environment or the simulator.
[0054] The step of influencing the signal propagation via the respective channel in a formed group preferably can be carried out by software or hardware-implemented logic of a circuit, to which the latency offsets of all channels in the group have been transmitted by means of previous communication.
[0055] The software can be formed by the simulation model which preferably calculates the simulation in real time and generates signals, for example those for a control device, or receives signals, for example from a control device, with the interposition of said input/output circuit in each case.
[0056] Hardware-implemented logic can be directly formed on said input/output circuit or else on a separate circuit, for example a separate FPGA circuit in the simulator, which is communicatively connected to said input/output circuit, in particular via the above-mentioned network, interface or bus connection.
[0057] Both the software and the hardware-implemented logic can delay the control of the channels on the basis of the respective channel latencies in the case of outputs, for example, the delay being oriented to the latency offset mentioned at the outset. For this purpose, the signals to be output can be transmitted to the input sides, for example input stages of the output channels of the circuit, with respective delays dependent on the latency offsets, for example.
[0058] In this case, provision may also be made for the signals to be output to all be transmitted to an intermediate register of the circuit in which they remain buffered until the expiry of a delay time which takes into account maximum possible jitter, for example on the connection path. It is therefore ensured that, even under the effect of jitter, all signals have reached the intermediate register before the actual output via the channels is started. After this output has been started, the output channels are then each triggered on the basis of the latency offsets of each channel, for example where channel-assigned data such as latency offsets are stored on the data processing system.
[0059] In this case, provision may be made for all signals/data for all grouped channels to be shifted to a buffer and for programmable logic, for example an FPGA, to shift signals intended for a respective channel or the intended data to the respective channel after triggering. In this case, the programmable logic can heed the channel latencies and desired offsets. As a result, although the channels all operate in a parallel manner in terms of the channel function in particular, the buffer may be serially connected to the circuit.
[0060] In contrast, in the case of inputs, the respective signals, in particular the signals handled by the channel functions, can be jointly retrieved by the software or logic after expiry of a buffering time, for example in a register, the buffering time taking into account the value of the group latency, in particular corresponding at least to the group latency.
[0061] The latency differences, in particular caused by channel-specific delay in the case of outputs or channel-specific buffering times in the case of inputs, can also be compensated for directly on the input/output circuit (I/O board) in one configuration, in particular when hardware-implemented, preferably programmable logic (for example in the form of an FPGA) or software executed by a local processor is directly present there and influences the signal propagation between the channel input side and the channel output side.
[0062] In this case in particular, the determined latency offsets can also be stored in a memory directly on said circuit. In this case, the present disclosure may provide for the programmable logic on the circuit or for the local software for influencing the signal propagation to be programmed directly on the basis of the latency offsets for each channel or at least for each channel assigned to a group on the circuit in order to synchronize its signal propagation with the other channels in the group which has been formed.
[0063] This embodiment is particularly advantageous if the input/output circuit is not directly arranged in the simulator on the processor circuit or on programmable or programmed logic (FPGA circuit), but rather the connection is effected via at least one communication path such as a network, bus or interface connection.
[0064] The practice of buffering signals from a plurality of channels before further processing (output or input) also additionally makes it possible to compensate for jitter between an upstream or downstream circuit (for example FPGA circuit) and the input/output circuit (I/O board). For such jitter compensation, the maximum possible jitter between an upstream or downstream circuit (FPGA) and the input/output circuit is preferably known to the simulation environment.
[0065] In particular, if an upstream or downstream circuit is in the form of programmable logic (FPGA) which transmits signals to the input/output circuit for synchronous output or synchronously receives a plurality of signals from the input/output circuit, the present disclosure may provide for the method steps according to the invention to be executed at least partially, possibly completely, by the programmable logic, for which purpose the method steps can be implemented in an FPGA programming environment, preferably likewise in a block-based and/or object-based manner.
[0066] In one possible embodiment, the data source mentioned at the outset for retrieving the channel latencies stored therein may be formed by a set of data which are assigned to each channel and are stored, in particular as a file, on the data processing system, that is to say preferably the simulation environment, on which the graphical user interface is executed, and are read into the software for generating the user interface.
[0067] The channel-assigned data may be in the form of a library, for example, on the data processing system and may be read therefrom on the basis of the input/output circuit used, for example on the basis of an identifier of the circuit.
[0068] Provision may also be made for the data source to be formed by a set of channel-assigned data which are stored in a memory element, in particular a memory element common to all channels, on the circuit, from which the data are read and are transmitted, by means of communication, to the software for generating the user interface.
[0069] Each circuit can therefore always carry the latency values relating to it, in particular if the manufacturer of the circuit has stored the channel latencies in the local memory of the circuit for retrieval after measuring the circuit.
[0070] One embodiment may provide for the data source to be formed by a set of channel-assigned data which is loaded, via a communication network, from a server, in particular a server of the circuit manufacturer, onto the data processing system on which the graphical user interface is executed, and which are read into the software for generating the user interface, or else is loaded onto a memory of the circuit. The first-mentioned alternative, in particular, has the advantage that no memory area on the circuit has to be provided for holding the data. In this embodiment, the data can be loaded from the server on the basis of a circuit identifier, for example a serial number.
[0071] Provision may also be made for the data source to be formed by a set of data which are directly input into the software for generating the user interface by a user of said software.
[0072] Generally when using a respective channel function and, in particular, when carrying out a simulation for the purpose of testing a control device, the present disclosure may provide for the function of that channel in the defined group which has the greatest retrieved channel latency to be initially triggered at an initial triggering time for the purpose of initiating signal processing with this channel, in particular according to its specific functionality, and for the function of the remaining channels in the group to be gradually triggered for the purpose of initiating signal processing with the respective channel in the order of decreasing retrieved channel latencies with an interval of time from their respective stored latency offset. Such an embodiment will be effected, in particular, when outputting signals via output channels. The subsequent channels can be gradually triggered by means of a respective timer which is loaded with the relevant latency offset at the initial triggering time and starts the counting, in which case the relevant channel is triggered in a manner temporally offset by the latency offset after counting down.
[0073] In this case, the present disclosure can provide for above-mentioned respective triggering to initiate the channel function only indirectly, rather than directly. For example, the triggering can also control programmable logic which is upstream of the channel and then transfers a signal intended for the relevant channel or intended data from a buffer to the input stage of the output channel which then starts the channel function. In this case, the programmable logic can heed the channel latencies and desired offsets.
[0074] During triggering, triggering time shifts can generally be effected on the basis of positive or negative channel offsets, in particular relative to the initial triggering time. As mentioned at the outset, a user, for example, may have defined such channel offsets in a channel or group object.
[0075] The present disclosure may also provide for the functions of all channels in the group to be triggered at the same time for processing respective signals and for the signals processed by the channel function to each be buffered in a register, and for the processed signal of each channel to be supplied, from the register, to further processing in a manner delayed with the respective stored latency offset, in particular plus a positive or negative channel offset. Such further processing can also be carried out in a triggered manner, for example on the basis of the expiry of the longest delay time or the group latency and/or on the basis of an above-mentioned activity signal. Such a trigger can cause all processed signals to be synchronously retrieved from a buffer in order to carry out the further processing. Such embodiments will therefore be carried out, in particular, when capturing signals via input channels and ensure in this case that the processed signals can be synchronously supplied to further processing after being captured on the output side of all grouped channels.
[0076] The present disclosure may provide for the above-mentioned individual triggering of the different channels to be carried out taking into account the latency offsets of the channels caused by an upstream or downstream circuit such as said processor circuit or else the FPGA circuit. A plurality of trigger signals are advantageously provided in this manner when the circuit having the input/output channels is directly connected to the upstream or downstream circuit, that is to say in the same data processing system which calculates the simulation, for example.
[0077] The present disclosure may also provide for a group triggering signal to be provided, which signal defines a triggering time which is intended to synchronously initiate the channel functionalities of all channels in the group, in particular directly or else indirectly after previously initiated actions. Such a group triggering signal may be formed in the software model of the simulation and may be an object variable of a group object and/or each channel object, for example, in terms of programming.
[0078] This embodiment has advantages, in particular, when a circuit having input and/or output channels is connected to an upstream or downstream circuit by means of a communication connection, for example an interface connection, a network connection or a bus connection. In this case, only a single signal must be transmitted to the circuit having the channels for the purpose of initiating all grouped channel functions in a temporally synchronous manner.
[0079] Irrespective of the type of connection to that circuit which transmits the group trigger signal, the channel function of each channel in the group can be initiated on the circuit having the channels after the group triggering signal has been received.
[0080] For this purpose, provision may also be made for the received group triggering signal to be converted into individual trigger signals for each channel, the respective latency offset preferably stored on the circuit being included in each individual trigger signal formed, in particular in the manner described above. The conversion is carried out directly on the circuit, for example by means of logic or software programmed there on the basis of the stored latency offsets. The embodiment is particularly advantageous in the event of an existing communication connection between the circuits, in particular via a network, an interface, preferably a serial interface, or a bus.
[0081] The present disclosure may also provide for a mixture of both output channels and input channels to be present in the group, rather than logically combining only output channels or only input channels in a group. In such an embodiment, triggers for outputting signals and triggers for starting synchronous further processing of captured signals can be initiated on the basis of the group latency. These two different triggers (reading and outputting) can be initiated at the same time or with a temporal (positive or negative) offset with respect to one another. In order to take an offset into account, such an offset can be stored in a group object, in particular in a manner assigned to the output channels or input channels in the group.
[0082] With regard to the channel latency, it can generally be stated that the channel latency may be composed of a plurality of latencies. For example, the time for the signal conditioning in the channel and the time for transferring the signal via the channel can be added in order to form a value for a channel latency.
[0083] One embodiment may also provide for further latency values, for example those which result from the transmission times on a connection path between the circuit having the input and/or output channels and an upstream or downstream circuit, to be added to the latencies determined from the data source for each channel. Although such an additional latency value cannot be read from the data source, it can be experimentally determined, for example, by temporally measuring the connection, for example by “pinging” the connection path.
[0084] Additional exemplary embodiments of the invention are described below.
[0085]
[0086] Alternatively, according to
[0087] On the basis of the group assignment carried out by the user, the software identifies those channels for which the channel latencies are retrieved according to the invention from a data source (not shown here). These channel latencies are depicted here in the channel object as a value and the group latency is determined for the entire group from the channel latency which has the greatest value of all channels, which group latency is likewise depicted here in the channel object. The individual latency offset is determined for each channel relative to the group latency and is stored, for example on the circuit having the channels.
[0088] The time at which the signals/data are present at the pin is referred to below as t.sub.IO P.sub.
[0089] Optionally, a positive or negative temporal offset relative to the group latency can be additionally stated for each channel in an I/O group. This is referred to below as Δt.sub.n wOffset(output offset) or Δt.sub.n rOffset(input offset) and is relative to t.sub.IO P.sub.
[0090] The practice of storing the determined latency offsets for each channel now makes it possible, according to the invention, for each channel to be individually triggered or for its signal propagation time to be delayed in such a manner that its signal is present at the outputs of the channels, for example pins, in synchronism with the signals from all other channels in the group.
[0091] The present disclosure may provide here for values of the channel and/or group latency and of the jitter of a channel or I/O group to be displayed. This display is effected in the channel object during programming on a graphical user interface. As a result, the user knows when he needs to address the group in order to be able to synchronously read the signals in/out at the I/O pin at a time determined by the user.
[0092] Latency and/or the jitter of a channel or an I/O group can also be provided as a respective signal. The user can therefore generically create his model in such a manner that it can automatically react to different latency and/or jitter values since they are available for processing in the model and on the hardware used during simulation. The change between different I/O channels/I/O boards (which actually result in different latency and jitter compensation) therefore does not require any further adaptations to the model by the user.
[0093] In the case of FPGA modeling in particular, an activity signal called “Pin active” is used to indicate to the user on the output channel block when the signals from the group are actually present at the respective pin of the output channel.
[0094] In the case of input channels in an I/O group, the acceptance of all input signals processed according to the channel function in the respective output stages of the input channels in the group is indicated to the user, for example using an activity signal referred to as “Data new”. In addition, the sampling time of the signals at the pin can be indicated by the activity signal “Pin active”.
[0095]
[0096] The activity signals “Pin active” and “Data new” can be helpful during programming; for example, they can trigger further program parts (for example submodels).
[0097]
[0098] It can be seen in the right-hand image that the channels provide their processed signals at the time t.sub.syncread (uppermost channel) or at different times before t.sub.syncread depending on the channel latency. According to the invention, the signals are accepted into the further processing only after expiry of a waiting time which is different for the channels and corresponds to said respective channel-assigned latency offset. In this case, the uppermost channel with the longest channel propagation time determines the earliest possible acceptance time t.sub.syncread into the further synchronous processing.
[0099] Signals or data are synchronously read into the input stages of the respective input channels, that is to say the signals are sampled or are read from a common register or a respective register, at t.sub.IO P.sub.
[0100] The advantage of synchronous forwarding in the case of input data in comparison with “each channel as quickly as possible” is that downstream electronics, for example a controller, always receive a new set of input data at a particular time. However, the synchronous forwarding of the input data is optional and is an advantage of the invention which does not necessarily have to be used.
[0101] However,
[0102] As already described above, initial triggering can be effected here in the channel having the greatest channel latency (that is to say the greatest converter lead time in this case). The further channels are each triggered at an interval of time from the initial trigger corresponding to the respective latency offset. This type of triggering means that the signals can be synchronously accepted into the respective converter stages.
[0103] A special embodiment of the invention may use a deliberate deviation from this synchronicity of the signal acceptance into the converter stages by taking individual channel offsets into account. This may be used in a particularly advantageous manner to sample a single signal, preferably an analog and temporally varying signal, in a temporally highly resolved manner, for example, using a plurality of input channels, for example A/D converters, at which said signal is present in a parallel manner.
[0104] Respective channel offsets can be set here for a plurality of input channels or all input channels in a group, wherein the channel offsets are equidistant from channel to channel in particular, as a result of which the signal is successively accepted into the different converter stages of the input channels at the temporal interval of the channel offsets, that is to say the signal is therefore sampled repeatedly, in particular, with a temporal resolution of the (preferably equidistant) channel offset according to the number of channels used. Temporal resolutions which are considerably better than the resolution which would be achieved if the same input signal were triggered repeatedly in succession can therefore be achieved when capturing a signal.
[0105] The respective group latency results from the greatest latency among all channels combined to form the group.
[0106] As mentioned, a user can set a positive offset (cf., for example, Δt.sub.2 wOffset or Δt.sub.2 rOffset in
[0107] If an offset is provided in a channel, this always results in asynchronicity of this channel in comparison with the group latency or in comparison with the synchronicity of the remaining channels which do not have an offset provided that the value of the group latency is not corrected. This is shown on the left and on the right in the central and lower channels in each case in
[0108] The present disclosure may provide for the value of the group latency, which is formed according to the invention in accordance with the definition mentioned at the outset, to be changed in a respective group on the basis of at least one channel offset of all channel offsets, in particular in order to achieve synchronicity of all channels in a group, despite taking individual channel offsets into account, in particular as is shown on the left using the central channel and on the right using the lower channel in
[0109] In particular, the following preferably can apply to output channels:
New group latency=original group latency+maximum of respective(channel offset−latency offset) over all channels.
[0110] For output channels, it preferably can be the case that the value of the group latency, formed according to step c) of claim 1, is corrected before carrying out step d) according to: new group latency for step d) =group latency of step c) minus the channel offset of that channel in the group which has the greatest channel latency. In the case of a negative channel offset, the group latency is therefore increased, as is shown on the left in
[0111]
[0112] According to the invention, each channel may receive its own trigger signal which can be temporally shifted, starting from an initial trigger signal, on the basis of its latency offset. The present disclosure can also provide for a group trigger for the entire group to be generated, referred to here as group enable. For the situation on the left in
[0113] In the case of the input on the right-hand side, it becomes clear that a signal present at the input replaces the previous value at the output of the channel after expiry of the group latency starting from the group trigger and can be read from a register by means of a trigger t.sub.syncread which is dependent on the group latency. This can then be carried out at the same time for all channels since, according to the invention, all channels have concluded the signal acceptance into the intermediate register after expiry of the group latency.
[0114] The further activity signal “Data new” indicates that the new data have been accepted into said register. The preferably rising edge of this activity signal signals the earliest triggering time t.sub.syncread from which the register containing the new data can be read.
[0115]
[0116] In this case, the figure shows that, inside a channel for separating possibly different time domains, a register stage may be situated in the channel between an input/output circuit and an upstream or downstream circuit, for example an FPGA circuit. The block “preprocessing” illustrates that further processing is often also required for transmission to the I/O channel, for example bit width matching, compression or serialization, if the I/O channel is connected via a serial bus or a digital filter.
[0117] The transmission channel is possibly followed by post-processing (for example decompression or deserialization) and again a register stage for synchronization in the case of possibly different time domains. This latency from the output channel block to this point is referred to as the channel transfer latency below. The channel signal conditioning latency, for example a converter latency, until the data are present at the I/O pin is additionally added to the total output latency of a channel. The reverse path applies to an input channel.
[0118] In the present disclosure, automatic jitter compensation of the channels in an I/O group can also be optionally carried out. Jitter is not produced by the signal conditioning, but rather by transmitting the data to the input/output circuit (I/O board), for example if a plurality of I/O channels of the circuit are supplied via a serial communication channel and the output delay is dependent on the load on the communication channel. This jitter can be compensated for by an intermediate register stage on the circuit (I/O board). The register values are then switched further, for example, only after waiting for the maximum jitter time. This presupposes that this jitter time can be determined or is known.
[0119] Latency differences of the individual channels on the I/O board can then still be directly compensated for on the board. For this purpose, a programmable delay circuit (for example an FPGA) can be used on the I/O board. An upstream or downstream circuit (for example FPGA circuit or processor circuit) then informs the circuit, for example during initialization, of which channels are intended to operate in a synchronous manner or with which latency offset. Alternatively, the upstream or downstream circuit directly programs the necessary delays into the circuit having the channels.
[0120]
[0121] The present disclosure means that the time at which the signals are output at the channel outputs is the same as the time at which the input signals are sampled at the respective pin or has an adjustable offset.
[0122] If necessary, a group trigger for the input channels preferably must be automatically delayed until the output signals are present at the pin. In the case of mixed I/O groups, the mixed latency (cf.
[0123] In the case of mixed groups, the input latency is the sum of the group latencies of pure output and input groups.