Design method of a sigma-delta converter
A supervised deep learning approach with a generic sigma-delta converter model constrained by hardware specifications addresses the limitations of existing methods by optimizing converter topology for diverse configurations and performance.
Patent Information
- Application Number
- FR2024003328
- Authority / Receiving Office
- FR · FR
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-29
- Publication Date
- 2025-10-03
AI Technical Summary
Existing methods for designing sigma-delta converters using deep learning and artificial intelligence do not allow for the direct design of new converters from hardware constraints and performance specifications, as they are typically applied to predefined topologies.
A method involving supervised deep learning with a generic sigma-delta converter model comprising a recurrent encoder and decoder, constrained by hardware specifications, to design a converter that satisfies specific performance criteria.
The method enables the design of a sigma-delta converter that meets desired hardware specifications by optimizing the converter's topology through supervised deep learning, allowing for a wide range of configurations and improved performance.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Title of the invention: Method for designing a sigma-delta converter Technical field
[0001] The present description relates generally to electronic circuits and, more particularly, to sigma-delta type converters, whether they are analog-to-digital (AD) or analog-to-information (A2I) converters. Prior art
[0002] The use of deep learning processes to design analog and mixed-signal circuits has been proposed for the design of analog-to-digital or analog-to-information converters.
[0003] For example, artificial intelligence (AI)-assisted methods have been used on the outputs of known converters to mitigate hardware non-idealities of these known converters. However, in this case, the AI-assisted methods are not directly used to design the converter.
[0004] As another example, converter topologies inspired by neural networks have been proposed, sometimes by applying deep learning methods to adapt the weights of these topologies. However, in these other examples, each proposed topology is predefined from a very specific known converter, and therefore cannot be reused to develop a new converter from, for example, a specification or a specification listing the hardware constraints and the performances that it would be desirable for this new converter to respect. For example, the article "Design Automation of Analog and Mixed Signal Circuits Using Neural Networks - A Tutorial Brief" by G.Linan-Cembrano et al, published in "IEEE Transactions on Circuits and Systems IL Express Briefs" presents work on the use of artificial intelligence to assist in porting a reference topology to a best-fit hardware implementation. Summary of the invention
[0005] There is a need for a method for designing sigma-delta type converters which overcomes all or part of the known design methods for converters using deep learning processes and / or artificial intelligence.
[0006] An embodiment overcomes all or part of the drawbacks of the methods of known sigma-delta converter designs.
[0007] One embodiment provides a method for designing a sigma delta converter comprising a supervised deep learning step applied to a converter model, wherein: the converter model comprises at least one recurrent encoder and at least one recurrent decoder; each recurrent encoder is based on a generic model comprising a succession of K identical generic cells Cellk, with K an integer parameter greater than or equal to 1 and k an integer index ranging from 1 to K; the converter operates at an oversampling rate N, with N an integer greater than or equal to 1; each conversion by the converter comprises N cycles C[n], with n an integer index ranging from 1 to N; each cell Cellk of the generic model is a recurrent neural network which, at each cycle C[n], calculates a product of an input vector X[n] by a weight vector Wk of the cell Cellk and provides an output vector Qk[n] comprising D pairs of outputs Akd[n] and Bkd[n], with: - D integer greater than or equal to 1 and an integer index ranging from 0 to Dl, - Akd[n] the result of the product calculated by the cell Cellk delayed by d cycles, - Bkd[n] a quantification of the result of the product calculated by the cell Cellk delayed by d cycles; and at the start of each cycle C[n], the vector X[n] is the same for all the cells Cellk and includes, for example is equal to, the concatenation of the K vectors Qk[n] and a sample x[n], for the cycle C[n], of a signal x to be converted, and in which the sigma-delta converter is obtained by manufacturing an electronic circuit corresponding to the model obtained after training.
[0008] According to one embodiment, each recurrent encoder models a sigma-delta modulator of the converter and each recurrent decoder models a filter of the converter.
[0009] According to one embodiment, each recurrent decoder is based on one or more successions of simple recurrent neural networks.
[0010] According to one embodiment, at least one constraint determined by a material property or by a functional property of the converter to be manufactured is applied to the converter model, preferably to each encoder.
[0011] According to one embodiment, said at least one constraint comprises: a constraint determined by a maximum dynamic at the output of one of the K cells Cellk and corresponds to an addition of a cut-off layer at the output of said cell Cellk; and / or a constraint determined by a robustness to temporal non-idealities and corresponds to an addition on an internal node of the encoder of a data augmentation layer modeling a random Gaussian noise; and / or a constraint determined by a sizing of circuits implementing encoder weights and corresponds to a training focused on quantization; and / or a constraint determined by a surface of the converter to be manufactured and corresponds to a masking of encoder weights; and / or a constraint determined by a topology of the converter to be manufactured and corresponds to a weight masking of the encoder; and / or a constraint determined by a surface of the converter and corresponds to a weight cutoff technique of the encoder.
[0012] According to one embodiment, at least one regularization determined by a material property or by a functional property of the converter is applied to the converter model.
[0013] According to one embodiment: a regularization is determined by a surface of the converter to be manufactured and corresponds to an L1 regularization applied to the weights of the encoder; and / or a regularization is determined by an attenuation of internal signals and corresponds to a penalty when a weight of a loopback path of a cell Cellk is less than 1.
[0014] According to one embodiment, a cost function used for training comprises a term determined by a regularization function determined by saturation conditions of the converter.
[0015] According to one embodiment, the cost function comprises a term determined by a fidelity function of the logarithm type of the sum of the exponentials of the differences.
[0016] According to one embodiment, the manufacturing of the converter comprises an implementation of each non-zero weight of the encoder model driven by a capacitive circuit having a capacitance whose value is determined by said weight.
[0017] According to one embodiment, the manufacturing of the converter comprises an implementation of each non-zero weight of the encoder model driven by a resistive circuit having a resistance whose value is determined by said weight.
[0018] According to one embodiment, the training is focused on quantification.
[0019] According to one embodiment, the decoder is determined by a functionality of the converter to be manufactured.
[0020] According to one embodiment, the converter to be manufactured implements cyclic and alternating sampling of several input channels of the converter. Brief description of the drawings
[0021] These characteristics and advantages, as well as others, will be explained in detail in the following description of particular embodiments given without limitation in relation to the attached figures among which:
[0022] [Fig.l] schematically represents an analog-digital converter of the sigma-delta type;
[0023] [Fig.2] represents an example of a recurrent autoencoder structure modeling the structure of the sigma-delta converter of [Fig.l];
[0024] [Fig.3] represents an exemplary embodiment of a part of the converter of [Fig.2];
[0025] [Fig.4] represents another exemplary embodiment of a part of the converter of [Fig.2];
[0026] [Fig.5] illustrates an exemplary embodiment of a generic cell based on a recurrent neural network, for a generic recurrent encoder model;
[0027] [Fig.6] illustrates an example of a generic model based on the generic cell of the [Fig.5] ;
[0028] [Fig.7] illustrates an update of the outputs of the cells of the model of [Fig.6];
[0029] [Fig.8] illustrates an example of a decoder;
[0030] [Fig.9] is a flowchart illustrating one embodiment of a method of designing a sigma-delta converter;
[0031] [Fig. 10] illustrates an embodiment of a transposition of a generic cell into a circuit;
[0032] [Fig.l 1] illustrates an embodiment of a transposition of a converter model into a circuit as well as an example of control signals of the circuit;
[0033] [Fig. 12] illustrates an embodiment of a circuit for a hardware implementation of a converter model;
[0034] [Fig. 13] illustrates an embodiment of another circuit for a hardware implementation of a converter model;
[0035] [Fig. 14] illustrates an embodiment of yet another circuit for a hardware implementation of a converter model;
[0036] [Fig. 15] illustrates an embodiment of yet another circuit for a hardware implementation of a converter model;
[0037] [Fig. 16] illustrates an embodiment of a transposition of a converter model into a circuit as well as an example of control signals of the circuit;
[0038] [Fig. 17] illustrates another example of a decoder;
[0039] [Fig. 18] illustrates cyclic, alternating and interleaved sampling between three input channels of a converter;
[0040] [Fig. 19] illustrates, in block form, an example of a converter model adapted to alternating and interleaved sampling of the converter input channels;
[0041] [Fig.20] illustrates, in block form, another example of a converter model adapted to alternating and interleaved sampling of the converter input channels;
[0042] [Fig.21] illustrates, in block form, an example of an analog-to-information converter model;
[0043] [Fig.22] illustrates inference results of a latent parameter by the converter model of [Fig.21] after supervised deep training;
[0044] [Fig.23] illustrates inference results of a latent parameter by the converter model of [Fig.21] after supervised deep training;
[0045] [Fig.24] illustrates inference results of a latent parameter by the converter model of [Fig.21] after supervised deep training;
[0046] [Fig.25] illustrates inference results of a latent parameter by the converter model of [Fig.21] after supervised deep training; and
[0047] [Fig.26] illustrates steps of the method described in relation to [Fig.9]. Description of the embodiments
[0048] The same elements have been designated by the same references in the different figures. In particular, the structural and / or functional elements common to the different embodiments may have the same references and may have identical structural, dimensional and material properties.
[0049] For the sake of clarity, only the steps and elements useful for understanding the described embodiments have been shown and are detailed.
[0050] Unless otherwise specified, when referring to two elements connected to each other, this means directly connected without intermediate elements other than conductors, and when referring to two elements connected (in English "coupled") to each other, this means that these two elements can be connected or be connected by means of one or more other elements.
[0051] In the following description, when reference is made to absolute position qualifiers, such as the terms "front", "back", "top", "bottom", "left", "right", etc., or relative position qualifiers, such as the terms "above", "below", "upper", "lower", etc., or to orientation qualifiers, such as the terms "horizontal", "vertical", etc., reference is made unless otherwise specified to the orientation of the figures.
[0052] Unless otherwise specified, the expressions "about", "approximately", "substantially", and "of the order of" mean to within 10%, preferably to within 5%.
[0053] [Fig.l] schematically represents an example of an analog-digital converter of the sigma-delta type of order M, with M an integer greater than or equal to 1 and equal to 1 in the example of [Fig.l]. The converter here is a converter which is configured to convert an analog and continuous signal (DC from the English "direct current") into a digital signal, and which is reset at each conversion, each conversion comprising, as will be described in more detail later, N cycles.
[0054] The converter comprises a sigma-delta modulator 100 and a filter 102 (each delimited by dotted lines in [Fig.l]).
[0055] The modulator 100 comprises an analog integrator 104 (delimited by dotted lines in [Fig.l]) and a quantizer 106, here on one bit.
[0056] The filter 102 is for example implemented by a digital integrator as shown in [Fig.l].
[0057] The converter operates with an oversampling rate N commonly designated by the acronym OSR (from the English "OverSampling Rate"), with N an integer greater than or equal to 1, for example greater than or equal to 2. Thus, each conversion of an input signal x comprises N cycles C[n], with n an integer index ranging from 1 to N.
[0058] At each cycle C[n], the modulator 100 receives a sample xe (or x[nl]) corresponding to the sampling of the signal x in the previous cycle. At each cycle C[n], the converter implements the following three operations: - the difference between the xed sample of the previous cycle and the output B11 of the modulator 100 in the previous cycle is integrated by the analog integrator 104, so as to provide the output Ail of the integrator 104; - the output Ail is quantized by the quantizer 106 to update the output B11 of the modulator 100; - output B1 is supplied to filter 102 which then calculates the digital output y (or y[n]) of the converter for this cycle n.
[0059] In other words, the filter implements the following equation in z: [Math 1] A11 = Z^A 11 + xe -511) with Z 1 a delay of one cycle.
[0060] This amounts in time to: [Math 2] Al l[ / z] =A[w-1] + x[w-1] -Bllfn-1]
[0061] In practice, the internal signals of the converter must remain within a given dynamic centered on the threshold of the quantizer 106. This is made possible thanks to the negative feedback loop controlled by the sign of the output signal B11 of the quantizer.
[0062] For the example illustrated in [Fig.l], this behavior is expressed according to the equations [Math 3] and [Math 4] above, with the hypotheses [Math 5] respected: [Math 3] Al ifnl = i 1 - £">1 Hz] avec ' un indice entier - [Math 4] B1 l[n] — ^sigr^Al l[ / î]) °ù s <gn(A 1 1 [ n]) est la fonction retournant le signe de Al l[n] par rapport au seuil du quantificateur 106. [Math 5] n > 1 - -4 1[i] e {44} p° ur 1 > °' et Bi ¢1' 0
[0063] The digital signal xq obtained at the end of each conversion, that is to say at the end of N corresponding conversion cycles, is then equal to y[N] can then be expressed, in this example, according to the equation [Math 6]: [Math 6] filin ' the normalization in 1 / N not being represented in [Fig.l]. A^ = y[7V] = --¾.....-
[0064] In the example of [Fig.l], in the integrator 104, the delay z 1 of one cycle is applied to the direct path. However, the person skilled in the art will know how to adapt this example to the case where, in the integrator 104, the delay z 1 of one cycle is applied to the feedback path, between the output A11 and the summing block, by providing that a delay z 1 of one cycle is also applied to the feedback path between the output B11 and the subtracting block.
[0065] In the example of [Fig.l], in the filter 102, the delay z 1 of one cycle is applied to the feedback path, between the output y[n] and the summing block. Here too, the person skilled in the art will be able to adapt this example to the case where, in the filter 102, the delay z 1 of one cycle is applied to the direct path, between the summing block and the output y[n].
[0066] To reduce the quantization noise, it is known to use converters of order M greater than 1. In this case, the modulator 104 comprises a succession of integrators, and the filter comprises, for example, a succession of integrators.
[0067] The proposed method aims to design a converter by implementing supervised deep learning associating input data with output data, based on the exploration of sigma-delta converter topologies. Observing that sigma-delta converters have recursive structures, it is proposed to model a sigma-delta converter by a recurrent autoencoder structure as illustrated in [Fig.2]. The recurrent autoencoder then provides a digitized image of the analog input signal x in the example illustrated in [Fig.2]. In other examples, the recurrent autoencoder provides a digital estimate of one or more latent parameters of the input signal.
[0068] [Fig.2] represents an example of a mo- recurrent autoencoder structure delineating the structure of the sigma-delta converter in [Fig. 1].
[0069] The modulator 100 (delimited by dotted lines in [Fig.2]) is here implemented by a recurrent encoder 100. The recurrent encoder 100 comprises, in this example where M is equal to 1, a cell 200 corresponding to a recurrent neural network (RNN). This cell 200 is configured to implement recursive processing where the output data of the cell, for a given cycle, are updated from, or as a function of, the output data of the cell in the previous cycle and one or more input data (or values) of the cell. Recurrent neural networks are well known to those skilled in the art and are not redefined here. For example, a recurrent neural network may be similar from a mathematical point of view to an infinite impulse response filter due to its recurrence.
[0070] The filter 102 is here implemented by a recurrent decoder 102. The recurrent decoder 102 comprises, in this example, a cell 202 corresponding to a simple recurrent neural network (SRNN). For example, a simple recurrent neural network is configured to implement at least the following operation: the output of the cell 202, y[n] in the example of [Fig. 2], corresponds to the sum of the output of the cell 202 in the previous cycle, y[nl] in the example of [Fig. 2], weighted by a corresponding weight Wc (not shown in [Fig. 2]), and an input of the cell 202, Bll[n] in the example of [Fig. 2], weighted by a corresponding weight Wd (not shown in [Fig.2]), which corresponds to a scalar product between an input vector and a weight vector (dot product in English) where, in this example, the input vector is equal to the concatenation of y[nl] and Bll[n] and the weight vector is made up of the weights Wc and Wd. Cell 202 of [Fig.2] corresponds to filter 102 of [Fig.l] when the weights Wc and Wd are unitary. Simple recurrent neural networks are well known to those skilled in the art and are not redefined here. For example, the source code of a simple recurrent neural network is available on the following web page: https: / / github.eom / keras-team / keras / blob / v2.14.0 / keras / layers / rnn / simple_mn.py#Ll 93-L214. .
[0071] [Fig.3] represents an exemplary embodiment of a cell 200 corresponding to the sigma-delta converter of order M=1 of [Fig.2].
[0072] The cell 200 comprises a recurrent layer of neurons, or said, otherwise, corresponds to a recurrent neural network. The cell or layer of neurons 200 is said to be recurrent in that it receives its outputs Ail and B11 on its inputs, and more particularly that it receives, at a cycle C[n] of given index n, the outputs All[n-1] and B11[n-1] of the preceding cycle C[n-1] (the delay z 1 of a cycle not being represented in [Fig.3]).
[0073] At each cycle C[n], the cell 200 also receives the sample x[nl] corresponding to this cycle.
[0074] The cell 200 is configured to multiply each of its inputs Al 1 [n-1], B11 [n-1] and x[n-1] by a weight corresponding respectively W1 la, W11b and W1 Ix, and to sum the results of these products. The result of the summation corresponds to the output Al l[n], and the quantization of the output Al l[n] by the quantizer 106, which in fact corresponds to an activation layer, results in the output Bll[n]. In the example of [Fig. 3], the quantizer 106 is a two-level quantizer. However, the person skilled in the art will be able to adapt this example to the case where the quantizer 106 quantifies on more than two levels. For example, quantifier 106 can be a 4-level quantifier and the output Bll[n] can then take 4 quantized values, preferably uniformly distributed, between -0.5 and 0.5 using the conditions of the example of equation [Math 4] where B11 belongs to the range -0.5; 0.5.Because the recurrent cell or neuron layer 200 provides a quantized output B11, this recurrent cell or neuron layer 200 is, for example, said to have a quantized output.
[0075] In other words, the cell 200 is configured to calculate the scalar product of its input vector X[n] = [x[nl], All[n-1], Bll[n-1]] by its weight vector Wll = [W1 Ix, W1 la, W11b], and provide the output Al 1 [n] equal to the result of this scalar product, and the output B1 l[n] corresponding to the quantization on one bit of the output All[n]. The cell 200 therefore provides an output vector Ql[n] = [All[n], Bll[n]].
[0076] The modulator 100 illustrated in [Fig.l] is obtained with the cell 200 when the weights Wllx, Wlla and Wllb are respectively equal to 1, 1 and -1.
[0077] In the example of [Fig. 3], the delays z 1 of a cycle are not shown. In this example, a delay of one cycle is arranged on the feedback path connecting the output Al l[n] to the input Al l[nl] of the cell 200, and a delay of one cycle is arranged on the feedback path connecting the output B1 l[n] to the input B1 l[nl]. However, the person skilled in the art will be able to adapt this example to the case where the feedback paths of the data A11 and B11 are devoid of delay, and where a delay of one cycle is provided between the summing block of the cell and the output Al l[n], as is shown in the example of [Fig. l].
[0078] [Fig.4] represents an exemplary embodiment of a simple neural network 202 corresponding to the example filter 102 of the sigma-delta converter of order M=1 of [Fig.2]. The neural network 202 is said to be simple in that it comprises only a single recurrent layer of neurons.
[0079] The neural network 202, that is to say its layer of neurons, is recurrent in that it takes as input, at a cycle C[n] of given index n, the output y[nl] that the network 202 provided at the previous cycle C[n-1]. Furthermore, at a cycle C[n] of given index, the Network 202 also takes as input the output B11[n] of cell 200. In this example, network 202 multiplies each of its inputs y[nl] and B1 l[n] by the corresponding weights Wc and Wd respectively, and the output y[n] of the network is then equal to the sum of these products. By setting Wc=l and Wd=l / N, we find the example of filter 102 of [Fig.l] (in which the 1 / N normalization is not shown). We could also introduce a normalization dependent on the index n, so as to obtain a normalized output y[n] for each index n using the following recurrence relation: [Math 7] [- -| B! I[m]+(h-1 )y[»T] y [KJ— n
[0080] In the example of [Fig.4], the delay z 1 of a cycle is not shown. In this example, this delay of a cycle is arranged on the feedback path connecting the output y[n] to the input y[nl] of the cell 202. However, the person skilled in the art will be able to adapt this example to the case where the feedback path of the data y is without delay, and where this delay of a cycle is provided between the summing block of the cell and the output y[n] of the cell.
[0081] The figures described above show that a particular sigma-delta converter topology can be modeled by an autoencoder comprising a recursive encoder 100 implemented from a recurrent neural network cell 200 and a recursive decoder 102 implemented from a simple recurrent neural network.
[0082] As an example, the auto-encoder described above could undergo a supervised deep learning step, for example to obtain values of the weights W1 la, W11b, W1 Ix, Wy and Wb, although this is of little interest for a sigma-delta converter of order 1. On the other hand, this could be of interest for sigma-delta converters of order strictly higher than 1, on the condition that each of these converters is modeled by a model based on recurrent neural networks.
[0083] However, there are many different topologies of sigma-delta converters. These topologies are, for example, determined by: the nature of the input signal; and / or the type of information that the converter must provide as output; and / or the performance that the converter must have in terms of conversion accuracy; and / or the maximum surface area that the converter must have; and / or the order M of the converter; and / or the value N of the oversampling rate; and / or a desired robustness to noise; and / or maximum excursions that output signals from the converter stages must have; and / or constraints on the converter weights, this list not being exhaustive.
[0084] To improve the operation of a given sigma-delta converter having a particular topology, one could think of firstly producing from this particular topology a specific model of this topology, this model comprising an encoder-decoder pair with an encoder model (corresponding to the modulator) based on recurrent neural networks and a decoder model (corresponding to the filter) also based on recurrent neural networks, for example simple recurrent neural networks. Once this formalism is established, supervised deep learning could then be implemented on the model extracted from this particular topology. However, the design of such a model must be adapted to each topology of the sigma-delta converter considered, which can prove to be complex and tedious.Furthermore, this work of designing a model based on recurrent neural networks would then have to be done for each different sigma-delta converter topology, which is not desirable due to the large number of different sigma-delta converter topologies.
[0085] A method for designing a sigma-delta converter is proposed here in which a generic converter model is used, and supervised deep learning is applied to this generic model to obtain a converter model which is then manufactured. Indeed, the purpose of the present description is not to train a neural network to then program a processor dedicated to the implementation of neural networks, but rather to obtain a specific circuit, for example an integrated circuit, satisfying a set of specifications, or criteria, linked to the targeted hardware implementation. In other words, rather than proposing a method for sizing a particular sigma-delta converter topology by sequentially ensuring that a set of specifications linked to a targeted hardware implementation is satisfied, a generic sigma-delta converter topology model is proposed here.The sizing of this model is optimized, during deep learning implemented on the model, to jointly satisfy a set of hardware specifications. Indeed, these hardware specifications are transcribed in the form of constraints and / or regularizations on the weights and data of the model so as to limit the search space during supervised deep learning and to guide the learning (or optimization) process towards a topology satisfying the expected specifications. The converter thus obtained is, for example, designated by the acronym RCN (from the English "Recurrent Converter Network" or "Recurrent Conversion Network").
[0086] In other words, a generic topology is proposed here having degrees of very significant freedom of possible interconnections between internal cells, without the imprint of a particular topology. This generic topology makes it possible to cover a multitude of configurations, without a priori on the final configuration chosen. Deep learning will allow us to assign a particular weight to each of the interconnections so as to converge towards a final topology adapted to the training data. The starting point is therefore a generic (or generalist) topology with a random weighting of the different possible interconnections (and therefore agnostic of the problem addressed) that we will specialize by learning, or with a weighting corresponding to a reference structure that we will want to evolve.
[0087] More particularly, this generic model, which corresponds to an auto-encoder, comprises a recurrent encoder corresponding to the sigma-delta modulator of the generic model, and a recurrent decoder corresponding to the filter of the generic model. Both the encoder and the decoder correspond to layers of recurrent neural networks (RNN).
[0088] Even more particularly, the proposed converter model is said to be generic because the modeling of its encoder is based on a cascade (or succession) of K identical generic cells, with K an integer greater than or equal to 1, preferably greater than or equal to 2, where each generic cell corresponds to a recurrent neural network. The number K is then a parameter (or hyper-parameter) of the generic model. The number K is, for example, determined by the target order M of the converter, and is, for example, equal to M+1.
[0089] [Fig.5] illustrates an exemplary embodiment of such a generic cell Cellk, k being an integer index ranging from 1 to K and identifying the cell Cellk among the succession of K cells Cellk of the recurrent encoder.
[0090] At each cycle C[n], the cell Cellk receives an input vector X[n]. This vector X[n] is updated at the start of each cycle C[n], from the output data of the K cells Cellk obtained at the end of the previous cycle C[n-1]. Although only one cell Cellk is represented, when the generic model comprises several successive cells Cellk, these cells receive the same vector X[n], which is identical for all the cells Cellk at the start of each cycle C[n].
[0091] The cell Cellk comprises a layer (or vector) Wk of weights, comprising as many weights as there are elements in the input vector X[n] of the cell Cellk.
[0092] The cell Cellk is configured, at each cycle C[n], to multiply each of its inputs by a corresponding weight, to provide the sum Ak0[n] of these products, and the quantization Bk0[n] of this sum. In other words, the cell Cellk is configured, at each cycle, to make the scalar product of its input vector X[n] by its weight vector Wk, the result of this scalar product being the output Ak0[n] of the cell, and the quantization of the output AkO[n] providing the output BkO[n].
[0093] Preferably, to enable a generic model to be obtained allowing greater freedom of choice during the supervised deep learning step, the cell Cellk is configured to also provide outputs corresponding to the outputs Ak0[n] and Bk0[n], but with a delay of at least one conversion cycle. In the example of [Fig.5], the cell Cellk provides outputs Akl[n] and Bkl[n] corresponding to the respective outputs Ak0[n] and Bk0[n] delayed by one cycle, as represented by a block DI in [Fig.5].
[0094] More generally, the cell Cellk is therefore configured to provide, at each cycle C[n], D pairs of outputs Akd[n], Bkd[n], with Akd[n] the result of the product of the input vector X[nd] by the weight vector Wk, and Bkd[n] the quantification of the result of the product of the input vector X[nd] by the weight vector Wk, D being an integer greater than or equal to 1, preferably 2, and d being an integer index ranging from 0 to Dl.
[0095] Thus, for a cycle C[n] of given index n, the output Ak0[n] corresponds to the scalar product X[n].Wk (also noted<X[n],Wk> ) calculated by the cell Cellk at this cycle C[n], the output Bk0[n] corresponding to the quantization of the output Ak0[n].
[0096] Furthermore, for this same cycle C[n], the output Akd[n] corresponds to the scalar product X[nd].Wk, and the output Bkd[n] corresponds to the quantization of the output Akd[n]. In other words, at the beginning of each conversion cycle C[n], Akd[n] = Ak0[nd] and Bkd[n] = Bk0[nd]. In other words, at the beginning of each conversion cycle C[n], the output Akd[n] corresponds to the output Ak0[n] calculated by the cell Cellk d cycles before the cycle C[n] and the output Bkd[n] corresponds to the output Ak0[n] calculated by the cell Cellk d cycles before the cycle C[n]. Said in another way, at the beginning of each cycle C[n], Akd[n] <— Akd-l[nl] and Bkd[n] <— Bkd-l[nl], with " a mathematical operator meaning "receives".
[0097] In the example of [Fig.5], and in the remainder of the description, D is, for example, chosen equal to 2, and the cell Cellk then provides, at each cycle C[n], a pair of non-delayed outputs Ak0[n], Bk0[n], and a pair of outputs Akl[n], Bkl[n] delayed by one cycle. In [Fig.5], for each non-zero value of d, a block Dd represents the application of a delay of d cycles between the pair of non-delayed outputs Ak0[n], Bk0[n], and a pair of outputs Akd[n], Bkd[n] delayed by d cycles. Thus, in the example of [Fig.5], the cell Cellk comprises a block Dl.
[0098] It should be noted that the integer D is a parameter (or hyper-parameter) of the proposed generic model.
[0099] At each cycle C[n], the set of D pairs of outputs Akd[n], Bkd[n] forms the output vector Qk[n] of the cell Cellk.
[0100] At each cycle C[n], the input vector X[n] of each of the K cells Cellk is then the same for all the cells, at least at the beginning of the cycle C[n] before the Cellk cells calculate their outputs AkO[n] and BkO[n] which are therefore updated during the cycle C[n], and is equal to the concatenation of the sample x[n] at the beginning of the cycle C[n] and the K output vectors Qk[n] of the K Cellk cells which are updated during the cycle from the sample x[n]. The vector X[n] therefore comprises 1 + K*2*D elements (or inputs for the Cellk cells). In other words, at each cycle C[n], the values AkO[n] and BkO[n] are updated during the cycle C[n] from the value of x[n] at the beginning of the cycle.
[0101] Thus, for each cell Cellk of index k equal to p, with p an integer index ranging from 1 to K, the vector Wp of the weights of the cell Cellp, that is to say the vector Wk of the weights of the cell Cellk of index k equal to the index p considered, comprises: a weight Wpx applied to the input x[n] of the cell Cellp; and K times D pairs of weights Wapkd, Wbpkd, with p the integer index of the cell Cellp considered and k ranging from 1 to K.
[0102] In each cell Cellk of index k equal to p, or, in other words, in each cell Cellp, for k ranging from 1 to K and for d ranging from 0 to Dl, the weight Wapkd of the cell Cellp is applied to the output Akd[n] of the cell Cellk, this output Akd[n] of the cell Cellk being an input of the cell Cellp, and the weight Wbpkd is applied to the output Bkd[n] of the cell Cellk, this output Bkd[n] of the cell Cellk being an input of the cell Cellp.
[0103] [Fig.6] illustrates by an example the formalism described above.
[0104] [Fig.6] represents an example of an encoder 200 based on a generic model at K=3 successive Cellk cells, in the case where D is equal to 2.
[0105] The Cellk cells (Celll, Cell2 and Cell3 in the example of [Fig.6]) are connected one after the other in order of increasing index k. In other words, at each of the N cycles of a conversion, the Cellk cells update their outputs Ak0[n] and Bk0[n] one after the other in order of increasing index k, or, in other words, update their non-delayed outputs sequentially and in order of increasing index k.
[0106] [Fig.7] illustrates the sequential updating of the non-delayed outputs of the cells Cellk, and, more particularly in this example, the updating of the outputs of the cells Cellk in the case where K is equal to 3.
[0107] At a time tO the nth conversion cycle C[n] begins.
[0108] From time t0 to a following time tl, still in cycle C[n], cell Celll calculates the product X[n].Wl, and, at time tl, the new outputs A10[n] and B10[n] of cell Celll are available. Outputs A10[n] and B10[n] are therefore updated at time tl, and do not change again until the end of cycle C[n].
[0109] From time tl to a following time t2, still in cycle C[n], cell Cell2 calculates the product X[n].W2, and, at time t2, the outputs A20[n] and B20[n] of the cell Cell2 are available. Outputs A20[n] and B20[n] are therefore updated at time t2, and do not change again until the end of cycle C[n].
[0110] From time t2 to a following time t3, still in cycle C[n], cell Cell3 calculates the product X[n].W3, and, at time t3, outputs A30[n] and B30[n] of cell Cell2 are available. Outputs A30[n] and B30[n] are therefore updated at time t3, and do not change again until the end of cycle C[n].
[0111] Time t3 marks the end of cycle C[n] and the beginning of the following cycle C[n+1]. Thus, at time t3, for each cell Cellk, the delayed outputs of the cells are updated, or, in other words, at the beginning of each cycle C[n+1], Akd[n+1] = Akd-l[n] and Bkd[n+1] = Bkd-l[n]. For example, at time t0, the delayed output Al l[n] of cell Celll is updated with the value of output A10[nl] calculated by cell Celll in the previous cycle C[n-1]. In other words, at the beginning of each cycle C[n+1], that is to say at the end of each cycle C[n], Akd[n+1] <— Akd-l[n] and Bkd[n+1] <— Bkd-l[n], with " a mathematical operator meaning "receives". The data Akd[n+1], Bkd[n+1] available at the beginning of each cycle C[n+1] constitute, for example, the inter-cycle data. The inter-cycle data are available at each passage from a cycle C[n] to the following cycle C[n+1], for example at times t0 and t3 in [Fig.7].
[0112] Then, the operation described for cycle C[n] is repeated in cycle C[n+1]. For example, between time t3 and time t4, cell Cell1 calculates the product X[n+l].Wl, and, at time t4, outputs A10[n+l] and B10[n+l] of cell Cell1 are available, and so on.
[0113] Returning to the example of [Fig.6], the updates of the non-delayed outputs Ak0[n], Bk0[n] of the cells Cellk are therefore carried out from left to right during each cycle C[n]. Thus, in this example, during a given cycle C[n], the outputs A10[n] and B10[n] of the cell Celll are updated before the outputs A20[n] and B20[n] of the cell Cell2, these two outputs themselves being updated before the outputs A30[n] and B30[n] of the cell Cell3. This updating of the outputs Ak0[n] and Bk0[n] during the cycle C[n] is called, for example, intra-cycle updating. The intra-cycle update differs from the update of the outputs Akd[n] and Bkd[n], where d is strictly positive, which is done from the outputs Ak0[n] and Bk0[n] between two successive cycles and which is called, for example, inter-cycle update, or transfer.For example, in each cycle C[n], the output data updated at each intra-cycle of this cycle C[n] constitute the intra-cycle data of cycle C[n]. For example, in [Fig.7], the intra-cycle data of cycle C[n] are available at times tl, t2, t3. .
[0114] In the example of [Fig.6], the vector W1 of the weights of the cell Celll is made up of the following K*2*D+1 = 13 weights: Wlx, WbllO, WallO, Wblll, Walll, Wbl20, Wal20, Wbl21, Wal21, Wbl30, Wal30, Wbl31, Wal31, the vector W2 of the weights of the cell Cell2 is made up of the following K*2*D+1 = 13 weights: W2x, Wb210, Wa210, Wb211, Wa211, Wb220, Wa220, Wb221, Wa221, Wb230, Wa230, Wb231, Wa231, and the vector W3 of the weights of the cell Cell3 is made up of the following K*2*D+1 = 13 weights: W3x, Wb310, Wa310, Wb311, Wa311, Wb320, Wa320, Wb321, Wa321, Wb330, Wa330, Wb331, Wa331.
[0115] Thus, the WM matrix of weights of the generic encoder model example of [Fig.6] can be written: [Math 8] 1 Wlx W2x W3x i with T the operator W10 0210 0310 0110 0210 0310 YES 0211 0311 YES 0211 0311 09120 09220 09320 WMt= (WW2;W3)r= 0120 0220 0 / 320 0121 0221 0 / 321 0121 0221 0321 0130 0230 0330 0130 0230 0 / 330 0031 09231 09331 law31 0231 0331! transposed matrix.
[0116] The proposed generic model allows for a greater number of degrees of freedom in the hardware implementation compared to the model of the example of Figures 3 and 4 which is very specific to the converter example of [Fig.l].
[0117] Indeed, the proposed generic encoder model makes it possible to explore a wide variety of possible topologies, in which each Cellk cell has access, on its inputs, to the outputs of each of the K Cellk cells of the model. For example, the proposed generic encoder model makes it possible to explore, by supervised deep learning, technical solutions, i.e. topologies, which would be difficult, or even impossible, to size with usual analytical approaches. This also makes it possible to propose original topologies jointly exploiting the quantized data at the output of the different cells. MASH type topologies (from the English "Multi-Stage Noise Shaping") are proposed in the literature, in which the quantization error is transferred to each cycle from an upstream modulator to a downstream modulator. The proposed approach makes it possible to go beyond this MASH technique by transferring from one cell to another, or from one group of cells to another, any possible configuration of signals.
[0118] [Fig.8] represents an example of a filter 102 which can be used in a generic model of a sigma delta converter based on a K-cell Cellk encoder.
[0119] In this example, the sigma-delta type converter considered is configured to convert an analog (i.e. non-discretized) and continuous signal x into a digital signal, and is reset at each conversion, each conversion comprising N cycles C[n].
[0120] For such a converter, the filter 102 is then composed, for example, of a succession of Q SRNNq cells each corresponding to a simple recurrent neural network SRNNq of the type described in relation to [Fig.4], with q an integer index ranging from 1 to Q, and Q an integer. For example, Q at least equal, preferably equal, to the number K of Cellk cells of the encoder. In this example, Q is equal to 3 and the filter 102 is sized for a converter comprising for example K=3 Cellk cells. Thus, in this example, the filter 102 comprises Q equal to 3 successive cells SRNN1, SRNN2 and SRNN3.
[0121] The SRNNq networks are connected one after the other in order of increasing index q. Each SRNNq network provides, at each cycle C[n], an output Fq[n].
[0122] In this example, each SRNNq network includes a first input, a second input, and an output. The first input of each SRNNq network is coupled to the output of that SRNNq network, the second input of the first SRNN1 network being coupled to an output of the encoder, and the second input of each subsequent SRNNq network being coupled to the output of the previous SRNNq-1 network.
[0123] For example, at each cycle C[n], each SRNNq network receives its output Fq delayed by one cycle (block z 1 in [Fig.8]), i.e. its output Fq[n-1] from the previous cycle C[n-1], on its first input.
[0124] In this example, the second input of the first SRNN network 1 receives a quantized data stream provided by the cell Cellk of index k equal to K, for example the quantized data stream BK0 provided by the last cell Cellk of the succession of K cells Cellk of the encoder. As another example, the second input of the first SRNN network 1 receives a quantized data stream delayed by d cycles provided by the cell CellK, for example the quantized data stream delayed by d=1 cycle BK1. In this example, the second input of the first SRNN network 1 therefore receives the quantized data stream B30. More particularly, in this example, at each cycle C[n], the second input of the first SRNN network1 receives the output B30[n] of the cell Cell3.
[0125] For q greater than or equal to 2, that is to say for SRNNq networks other than the first SRNN1 network, the second input of each SRNNq network is coupled to the output of the previous SRNNq-1 network. Although this is not the case in this example, in other examples not shown, one or more SRNNq networks may include, in addition to its second input coupled to the output of the previous SRNNq-1 network, a third input coupled to the output of a previous SRNNq-g network, with g an integer index greater than or equal to 2. Furthermore, although this is not the case in the example of [Fig.8], each SRNNq with index q strictly greater than 1 may have an additional input receiving, like the SRNN1 network, the data BK0[n].
[0126] In this example, for q greater than or equal to 2, the second input of each SRNNq network is coupled to the output Fq-1 of the previous SRNNq-1 network by a normalization stage NORM present on the output of the stage SRNNq-1. In other words, for q strictly less than 3, the output of each SRNNq network is coupled to the second input of the following network SRNNq+1 by a normalization stage NOMR. The objective of these NORM stages is to facilitate deep learning although they do not necessarily have a hardware equivalence. Thus, for q greater than or equal to 2, the second input of each SRNNq network receives a data Fq-1' corresponding to the normalization by a NORM stage of the output Fq-1 of the previous SRNNq-1 stage. For example, at each cycle C[n], for q greater than or equal to 2, the second input of each SRNNq network receives a data Fq-l'[n].
[0127] For example, each NORM stage scales the output Fq-1 of the SRNNq-1 stage preceding it to provide a normalized output Fq-1' for a sequence of N successive cycles. For example, each NORM normalization stage is configured so that, for each of the N cycles of a conversion, the output of the NORM stage does not exceed a given maximum value, for example 1. For example, each NORM stage applies, at each cycle C[n], a gain to the data that it receives to provide its output data, this gain possibly depending on the index n of the cycle considered.
[0128] In another example, the normalization stages NORM between the SRNNq networks are omitted, and the second input of each SRNNq network with index q greater than or equal to 2 directly receives the output Fq-1 of the previous SRNNq-1 network.
[0129] The filter further comprises a normalization stage NORMb configured to receive the output Fq of the last network SRNNq, i.e. the output F3 in this example, and to provide the signal xq.
[0130] The normalization stage NORMb is configured to put the output value xq of the filter output on the same scale as the input signal x of the converter, so as to allow a reconstruction of the signal x at each conversion cycle C[n]. The signal xq then corresponds to the output of the stage NORMb.
[0131] At each cycle C[n], each SRNNq network is configured to calculate the scalar product between its input vector and a corresponding weight vector, and to update its output with the result of this scalar product. In particular, for each SRNNq network, the input vector of the network at cycle C[n] includes the output Fq[n-1] provided by this same network at the previous cycle C[n-1] as well as the output of the SRNNq-1 network.
[0132] In this example where each SRNNq network comprises two inputs and one output, each SRNNq network comprises a weight vector having a first weight Wcq applied to the first input of the SRNNq network considered, and a second weight Wdq applied to the second input of the SRNNq network considered.
[0133] For example, at each cycle C[n]: - the output Fl[n] of the SRNN1 network corresponds to the sum of its input Fl[n-1] multiplied by a weight Wcl and its input B30[n] multiplied by a weight Wdl; - the output F2[n] of the SRNN2 network corresponds to the sum of its input F2[n-1] multiplied by a weight Wc2 and its input F'l[n] multiplied by a weight Wd2; and - the output F3[n] of the SRNN3 network corresponds to the sum of its input F3[n-1] multiplied by a weight Wc3 and its input F'2[n] multiplied by a weight Wd3.
[0134] An example of a filter adapted to a sigma-delta type converter configured to convert, in N cycles, a continuous analog signal x into a digital signal xq, this converter being reset at the start of each conversion, has been described above.
[0135] According to one embodiment, whatever the sigma-delta type converter considered, the converter filter is implemented from one or more cascades (or successions) of simple recurrent neural networks, or cells, with or without a NORM normalization stage at the output of one or more of these networks.
[0136] The figures described above illustrate a sigma-delta converter model consisting of an encoder based on a generic model implemented by K generic Cellk cells of recurrent neural networks, and a decoder implemented from several simple recurrent neural networks also called cells.
[0137] It is then possible to implement supervised deep learning on this converter model.
[0138] Although an example of a sigma-delta converter model has been described above in which the encoder is obtained from a generic model where K is equal to 3, and in which the decoder is of the type described in relation to [Fig.8], many other sigma-delta converter models can be obtained from the generic cell Cellk, for example by changing the K value and / or the filter model used for the model.
[0139] Usually, supervised deep learning is implemented using a training data set, by defining a cost function Fcost that we seek to minimize during supervised deep training with the data training. Specifically, the values of the encoder and decoder weights are optimized during deep learning to minimize the cost function.
[0140] The Fcost function includes a fidelity function, or term, Ffid which expresses, for each training data provided as input to the model, therefore to the converter, an image of the error between the output value(s) of the model and the expected (ideal) output value(s) for this input.
[0141] For example, in the case of a sigma-delta converter configured to convert a continuous analog signal of value xa into a corresponding digital signal xq, reset at each conversion of N cycles, the fidelity function compares, for each training data item, the difference between the value xa of the signal x provided as input to the model and the value of the digital counterpart xq obtained for this value xa of the input signal x.
[0142] However, the person skilled in the art will be able to adapt the examples indicated below of cost function, and in particular the examples of fidelity function, to the case of a sigma-delta type converter reset at each conversion and having a function other than the conversion of a continuous analog signal into a digital signal, for example to a sigma-delta type converter configured to extract one or more latent parameters from an input of the converter. In other words, the person skilled in the art will be able to adapt these examples of cost function, and in particular the examples of fidelity function, to the case where what is minimized is the error between a latent parameter extracted by the converter on a training data item provided as input to the converter, and the expected latent parameter corresponding to this training data item.
[0143] As an example, for each training batch of dimension S, that is to say that a batch comprises, in this example, S input values xa, with S a strictly positive integer, the function Ffid(xa, xq) of the batch can be based on the mean square error Frmse(xa, xq) between the S pairs of values xa[s] and xq[s] of the batch, with s an integer index ranging from 1 to S: [Math 9] Frmse(xa, xq) -
[0144] As another example, the function Fid(xa,xq) of each training batch can be based on a function Flse logarithm of the sum of the exponentials of the differences between the S values xa[s] and xq[s] of the batch: [Math 10] (Ç x ^^'“[^l-^t®]) j
[0145] As another example, the function Fid(xa, xq) of each training batch can be based on a linear combination Fmix(xa, xq) of the functions Frmse and Flse: [Math 11] Fmix(xa, xq) = A*Frmse(xa, xq) + B*Flse(sa, xq), with A and B positive factors whose sum is equal to 1, for example equal to 0.8 and 0.2 respectively, although the person skilled in the art will be able to predict other values.
[0146] As another example, the function Fid(xa, xq) of each training batch can be based on a linear combination Fmax(xa, xq) of the maximum error between the values xa[s] and xq[s] of the batch and the norm Lp of the error between the values xa[s] and xq[s] of the batch: [Math 12] s - Fmax(xa, xq) = Cl*max5{|xa[s] -xq[s] |} + Cl|xa[s] -xq[s] | With [Math 13] (Cl*max5{ [w[«]-aç[.s] |} _ g 5 where p is the index of the Lp norm, for example p C2 j * Lt j xa f iÿ 1 1 n Cl + C2 = l is equal to 5 for the L5 standard, and where maxs{lxa[s] - xq[s]l] the function returning the maximum error, in absolute value, of conversion for the training batch considered comprising S pairs of an input value xa[s] and an output value (or converted value) xq[s], it being understood that in this example of a sigma-delta type converter, the expected output value for a given input value xa[s] is equal to this input value.
[0147] Although four examples of fidelity functions Ffid(xa, xq) have been described above, the person skilled in the art is able to provide other fidelity functions adapted to a sigma-delta converter model configured to convert a continuous analog signal x of value xa into a digital signal xq, where the converter is reset at each conversion of N cycles. More generally, the person skilled in the art is able to provide fidelity functions adapted to sigma-delta converter models which are reset at each conversion of N cycles but which aim to extract one or more latent parameters from an input provided to the converter. For example, these fidelity functions may be adapted so as to optimize different metrics (maximum error, average error, outlier authorization, etc.).
[0148] In the examples of fidelity functions Ffid(xa, xq) described above, for each input data of index s of a given training batch, the error calculated between the input xa[s] and its digital counterpart xq[s] is calculated only at the end of the conversion, i.e. at the cycle of index N. However, the person skilled in the art will be in able to adapt these examples of fidelity functions to the case where, for each input data of index s of a given batch, the image of the error is calculated, in the case of a simple regression, as a sum, for example weighted, of the errors calculated at each of the N conversion cycles between the input data and its digital counterpart. Such weighting makes it possible, for example, to take into account the decrease in the error with the increase of the index n during the N conversion cycles, and, for example, also to maximize the performance of the converter for each conversion cycle.
[0149] Usually, the Fcost function can, in addition to being based on a fidelity function Ffid, be based on or include one or more regularization functions. These regularization functions are, for example, applied to layers of the models or implemented in the model in the form of a specific layer that does not necessarily have a hardware counterpart. Usually, a regularization is applied to weights or data of the model and aims to guide supervised deep learning, for example by expressing a target result (i.e. a target specification), for example in the hardware implementation that will be made of the converter from the trained model.
[0150] Thus, according to one embodiment, the Fcost function comprises at least one regularization function.
[0151] According to one embodiment, said at least one regularization function is determined by a functional property and / or a material property of the converter that one wishes to obtain after the supervised deep learning.
[0152] According to one embodiment, one of these regularizations aims to ensure that the excursions of the internal signals of the modulator have a bounded excursion, which makes it possible to avoid saturations in the hardware converter which will be manufactured from the trained model.
[0153] According to one embodiment, a regularization function aims to keep, for each training batch, and for each of the S training data of the batch, the output signals Ak0 of the K cells Cellk of the encoder in K respective value ranges from -Ak to +Ak, with Ak a positive threshold value for example determined by the value of the supply voltage that the converter will receive. By defining, for each training batch, Ak0[s] as the maximum value taken during the N cycles of a conversion by the signal Ak0 for an input data xa of rank s of the training batch considered, this regularization function Fdr(Ak0) can, for example, be written, for each training batch: [Math 14] Fdr(AkO) = s] - clip(AkO[s], - A k, A kj) clip(AkO[s], -Ak,Ak) the function that forces the value AkO[s] to the value -Ak when AkO[s] is less than -Ak, and to +Ak when the value AkO[s] is greater than +Ak. As an example, in the rest of the description, Ak is equal to 0.4 in this example where the signals (or data) quantized in the encoder, i.e. the signals Bkd, have a dynamic corresponding to a range from -0.5 to 0.5.
[0154] Thus, according to one embodiment, the Fcost function can be written: [Math 15] Fcost(xa, xq, AkO) - Ffid(xa, xq)+ À*Fdr(Akty with X a scalar factor.
[0155] In the same way as a fidelity function, for each training data of index s of a given training batch, a regularization function may be calculated only at the Nth conversion cycle, or, alternatively, be calculated at a particular cycle C[n], for example each of the N conversion cycles C[n]. Furthermore, a regularization function calculated at a given cycle C[n] may be calculated from a sequence of data obtained up to this cycle, and may be non-linear, for example corresponding to a minimum or maximum value of a calculation performed on these data, or linear, for example corresponding to a weighted sum of a calculation performed on these data.
[0156] The regularization function Fdr in the Fcost function advantageously aims to ensure the stability of the recurrent modulator for a given value N of oversampling rate.
[0157] Of course, the person skilled in the art will be able to provide other regularization functions determined by functional and / or material properties of the converter to be manufactured.
[0158] In addition to the Fcost function determined by a fidelity function Ffid and, preferably, by at least one regularization function, constraints and / or regularization terms may be applied to the generic model.
[0159] Thus, according to one embodiment, at least one constraint and / or at least one regularization term is applied to the generic model, on the weights of the model or on the data.
[0160] According to one embodiment, at least one constraint and / or at least one regularization (or regularization term) applied to the generic model is determined by a material property and / or a functional property that the converter to be manufactured must respect.
[0161] For example, a constraint corresponds to a characteristic that is forced into the model, during supervised deep learning. A constraint can be implemented by adding a layer to the model that will not have a material counterpart (or in other words, a material variation), for example by applying a mask to the weights of the model, or by applying a function to layers of the model. A A constraint can apply to the model's data tensors, or to the model's weights. A constraint is, for example, a function or layer that acts directly on the data or weights it receives, i.e., can modify the values of that data or weights.
[0162] For example, a regularization aims to guide learning in order to obtain a desired result in the trained model or in its hardware counterpart. A regularization can be implemented by adding a layer to the model that will not have a hardware counterpart and which will aim to calculate quantities on the data passing through it without modifying this data, these quantities then being used in the calculation of the cost function, for example by being added to the fidelity function. A regularization can also be implemented by applying a function to layers of the model. A regularization can be applied to the data tensors ("data tensor" in English) of the model and is then for example called an activity regularizer ("activity regularizer" in English), or to the weights of the model and is then for example called a regularizer ("kernel regularizer" in English).Regularization layers or functions on weights or data allow, for example, to assign additional penalties to the cost function, these penalties being defined by deviations between quantities calculated on the latent weights or the model data and the expected values for these quantities.
[0163] According to one embodiment, a constraint applied to the model is determined by the maximum possible dynamic range at the output of each Cellk cell of the model. For example, this constraint corresponds to the addition of a clipping layer, at the output of each Cellk cell, which clips (or saturates) the output signals of the Cellk cells when these signals go outside the maximum authorized dynamic range.
[0164] According to one embodiment, a constraint applied to the model is determined by a targeted robustness of the fabricated converter to temporal non-idealities, for example linked to kTC noise when the weights of the fabricated converter are implemented by capacitances or capacitive circuits. For example, this constraint corresponds to the addition, on each internal node of the encoder, of a data augmentation layer adding random Gaussian noise to this internal node.
[0165] According to one embodiment, a constraint applied to the weights of the model, in particular to the weights of the encoder, is determined by a dimensioning of the circuits (capacitive or resistive) implementing the weights. This constraint corresponds to the search for a common denominator of the weights of the encoder or of a subgroup of weights of the encoder. The purpose of this constraint is to find an adequate dimensioning of the weights of the model which favors obtaining a common denominator to all the weight values of the converter or a subset of the converter's weights. This constraint amounts to implementing supervised deep learning using Quantification Aware Training (QAT). QAT-type training is well known and allows the learning of quantized WM weights (see [Math 8]), these quantized weights being derived from the latent weights, denoted WM1. For example, training to obtain quantized weights includes a Q-step uniform quantization implemented during the feedforward phase, combined with a Straight Through Estimator for the gradient during the back propagation phase.As an alternative example, the person skilled in the art will also be able to provide, instead of a direct estimator, any proxy for the gradient backpropagation phase. For example, a proxy makes it possible to replace, for the calculation of the gradient, a non-derivable function used during the inference, such as for example the quantization function, by an alternative function on which the gradient can be calculated. For example, the proposed quantization function is based on the round() function which rounds the fractional part to the nearest integer. The input dynamics of the round() function is set, for example, from the maximum value W'max of the absolute values of the latent weights of the encoder, . with : [Math 16] W l max = max( | WM 1 1) For example: [Math 17] WM = qstep*roimd\^^ ) with qstep the quantization step. As an example qstep is equal to l / (round((2ci O / Wmax)) and q is an integer allowing to set the granularity of the quantization carried out and to set the maximum ratio between the largest and smallest absolute weight. As another example, qstep is a value learned using a W!scale weight learned during training, and is then for example equal to l / (round((2q O / Wscalc)).
[0166] In the example above, quantization-driven supervised deep learning makes it possible to find an adequate sizing of the model weights favoring obtaining a common denominator for all weight values. This allows the implementation of the weights by switched capacitors each corresponding to one or more identical unit capacitors, each of the unit capacitors having the same value determined by the common denominator obtained during training. In another example, this allows the implementation of the weights by resistors cor each corresponding to one or more identical unit resistances, each of the unit resistances having the same value determined by the common denominator obtained during training.
[0167] According to one embodiment, a regularization that can be applied to the model during supervised deep learning is determined by a surface area of the converter to be manufactured, and, more particularly, aims to reduce this surface area. For example, it is intended to introduce a regularization applying to the weights of the encoder which is analogous to an LO norm (representative of the number of non-zero values) or to any equivalent form, for example an L1 regularization under certain hypotheses, to limit the number of electrical connections in the converter, or, in other words, to prune electrical connections in the converter.
[0168] According to one embodiment, a constraint applied to the model is determined by a surface area of the converter to be manufactured and, more particularly, aims to reduce this surface area by masking connections in the encoder. For example, weights of the encoder model are masked during training to limit the number of effective connections between the cells of the encoder, which results in greater compactness of the final converter. For example, the latent weight matrix WM1 is multiplied by a binary mask, i.e. by a matrix of masking latent weights, so as to deactivate the corresponding connections. This binary mask is, for example, obtained by thresholding a matrix of masking latent weights.To control the number of nuisance weights of the binary mask, a regularization function may depend on the number of nuisance weights after thresholding the masking weight matrix, and add a term to the cost function that will be determined by a deviation between the number of nuisance weights of the binary mask counted by the regularization function and a targeted or expected number of nuisance masking weights. In one embodiment, rather than being determined by a target surface for the converter to be manufactured, the constraint of applying a binary mask to weights of the model is determined by a target topology for the converter to be manufactured, and the mask is configured to remove data paths (or connections) in the model that do not correspond to any path in the target topology.
[0169] According to one embodiment, a constraint applied to the model is determined by a surface area of the converter to be manufactured and, more particularly, aims to reduce this surface area. For example, weight clipping techniques can be implemented to reduce the surface area of the converter.
[0170] According to one embodiment, a regularization applied to the model is determined by material properties of the converter to be manufactured and aims to avoid attenuation of signals from the modulator. For example, this regularization is applied to the weights corresponding to the feedback path with a delay of one cycle of each cell Cellk, that is to say for example to the weight Wapkl with k equal p of each cell Cellk of index k equal p, for example to the weights Wal 11, Wa221 and Wa331 in the example of [Fig.6]. As an example, this regularization introduces a penalty added to the cost function when one or more of these weights are less than 1. In other words, this regularization corresponds to a regularization function determining the cost function with the fidelity function, and, for example, other regularization functions, for example the Fdr function. In other words, this regularization corresponds to a regularization function used in the calculation of the cost function.
[0171] According to one embodiment, one or more constraints applied to the model are determined by hardware properties of the converter to be manufactured, and aim to emulate static errors on the value of the weights actually implemented in hardware and the value of the corresponding weights of the model and / or the finite gains of the operational amplifiers implementing in hardware the summation and / or integration functions of the model. For example, each of these constraints is implemented by a layer without hardware correspondence which acts on the data or the weights of the model. For example, a data augmentation layer can be used to add an error on the effective weights of the model during the training phase, or even inference.As another example, an augmentation layer can be used downstream of the adder of each Cellk, to introduce a non-unit weighting modeling the gain error of the amplifier implementing the summation.
[0172] According to one embodiment, a constraint applied to the weights of the model (latent or quantified), and more particularly to the weight of the encoder model, is determined by functional properties of the converter to be manufactured, and aims to force the type, positive or negative, of at least certain feedbacks implemented in the converter to be manufactured. This constraint consists of forcing the sign of given weights of the encoder model to force negative and positive feedbacks in the model. For example, the sign of the weights corresponding to negative feedbacks is forced to be a negative sign, and the sign of the weights corresponding to positive feedbacks is forced to be a positive sign.
[0173] According to one embodiment, in addition to constraints and / or applied to the model, at least some of which are determined by material or functional properties of the converter to be manufactured, a normalization layer is optionally added to the output of the model. This normalization layer consists of adding a sizing factor (or weight) to the output of the decoder model, so as to adapt the dynamics of the output of the converter model to the index n of the current cycle C[n]. By way of example, the normalization layer is configured so that the converter provides, at each cycle, output data to scale. According to one embodiment, a regularization function can be assigned to this normalization layer. For example, to smooth the reconstruction between each cycle, an L2 regularization is applied to the derivative of the absolute value of these sizing weights, so that these sizing weights have values that evolve monotonically as a function of the oversampling value N.
[0174] According to one embodiment, in addition to constraints and / or regulations and / or weightings applied to the model, at least some of which are determined by material or functional properties of the converter to be manufactured, optionally learning strategies are applied to the supervised deep training, or, in other words, are introduced into the supervised deep learning phase.
[0175] As an example, this or these learning strategies aim to ensure stable behavior of the model during supervised deep training.
[0176] According to one embodiment, one of these learning strategies consists of implementing one or more callback functions to adjust characteristics of the training phase, for example from one training batch to the next, and / or from one training epoch to the next.
[0177] According to one embodiment, one of these learning strategies consists of choosing statistical parameters on the input data provided to the model during the supervised deep learning phase. For example, each training batch is selected or constructed from the training data, for example from a static database or generated on the fly, so that each training batch respects a statistical property. For example, the distribution of the input and output data also makes it possible to introduce an implicit regularization of the model, for example a regularization promoting homogeneity of the performance of the converter over the entire dynamic range of the input signal.
[0178] According to one embodiment, one of these learning strategies relates to the initialization of the latent weights of the encoder model. For example, the latent weights of the encoder model are initialized to purely random values. As another example, the latent weights of the encoder model are initialized to values corresponding to the values of the weights of a reference topology. As another example, the latent weights of the encoder model are initialized with the corresponding weight values of a reference topology if these weights of the reference topology are unaffected, and with a random value otherwise.
[0179] According to one embodiment, a callback function of type "ReduceLROnPlateau" (Reduction of the learning rate on plateau) is used on a metric representative of the desired specifications, for example relating to the implementation ma material and / or converter functionalities, at the end of each learning epoch. For example, this function aims to reduce the learning rate when the considered metric no longer varies. For example, the metric is representative of a material property of the converter to be manufactured. An example of a metric that can be used is determined by the ratio between the DR dynamics of the parameter to be inferred on the maximum conversion error on this DR dynamics (for example the quantization error). This metric is representative of a maximum number of quantization steps that can be used without there being a quantization error on this DR dynamics. For example, this metric can be expressed by the following formula [Math 18]: [Math 18] MAXresol = log„ (--- / .-"M—j—nr ) 2\maxsj | xa [ y ] -xq [ s J |} /
[0180] According to one embodiment, a callback function is used at the end of each learning epoch to randomly activate and deactivate data augmentation layers added to the internal nodes of the encoder, for example the data augmentation layers introducing white noise on these internal nodes. This can allow better convergence of the model during learning.
[0181] According to one embodiment, a recall function used during learning makes it possible to progressively deactivate static binary masks applied to the latent weights of the encoder model, i.e. this recall function makes it possible to progressively reactivate connections of the model during learning, among the connections which were masked at the start of learning.
[0182] According to one embodiment, a recall function used during training progressively decreases the value of q defined in relation to quantization-oriented learning (QAT).For example, training may start without weight quantization in a first set of training epochs, then weight quantization is enabled with a first quantization level q=ql (with ql an initial quantization level value) for a second set of training epochs starting from the best set of latent weights obtained at the end of the first set of training epochs, then, for subsequent sets of training epochs, each set of training epochs starts, for example, with the best set of latent weights obtained at the end of the previous set of training epochs by reducing the value of q, until a desired value of q determined by material properties of the converter to be manufactured is obtained.
[0183] [Fig.9] schematically illustrates, by means of a flowchart, a method of rea- Development of a design method for a sigma-delta converter.
[0184] At a step 900 (block "SET K, N and D"), the hyperparameters of the model, namely the number K of cells Cellk, the oversampling rate N and the value D defining the delays, are defined by the designer. For example, other hyperparameters of the model can be defined by the designer at this step, such as for example the number of possible values at the output of each quantizer or, in other words, the quantization resolution of the outputs Bkd.
[0185] For example, the value of the number N can be determined by a hardware constraint coming from a specification 902 (block "HW SPEC") defining hardware and / or functional constraints that the converter should respect, as represented in [Fig.9].
[0186] For example, the value of the number D may be at least partly determined by this specification. For example, the number D may be reduced with the maximum surface area targeted for the converter. Indeed, the larger the number D, the greater the number of connections and weights of the model, and therefore the larger the surface area of the converter will be.
[0187] For example, the number K may be at least partly determined by the specifications 902, for example by a maximum target area for the converter and / or by a target conversion accuracy of the converter. For example, the higher the number K, the larger the converter will be, and / or the higher the number K, the lower the conversion error, for example related to thermal noise and quantization error, will be. By way of example, the number K may be determined at least partly by the order M of the converter to be manufactured, K preferably being greater than or equal to M.
[0188] Although this is not illustrated in [Fig.9], step 900 further comprises a step of determining a filter (or decoder) model from recurrent neural networks, so as to obtain, at the end of step 900, a converter model. By way of example, the filter comprises one or more successions (cascading) of simple recurrent neural networks. An example of a filter model for an analog-to-digital converter has been described in relation to [Fig.8]. The person skilled in the art will be able to provide other filter models modeled from recurrent neural networks, for example from at least simple recurrent neural networks, for an analog-to-digital converter, or even for analog-to-information converters taking an analog signal as input and providing information on this signal (frequency, amplitude, etc.) as output.
[0189] In an optional next step 904, constraints and / or regularizations are added directly to the converter model. For example, these constraints and / or regularizations are added in the form of layers having no material counterpart in the converter that will be manufactured, in the form of functions applied to layers of the model, or in the form of masks applied to weights of the model. For example, at least one regularization can be applied to the model in the form of an additional term in the cost function.
[0190] According to one embodiment, at least one constraint and / or at least one regularization applied to the generic model is determined by a material property and / or a functional property that the converter to be manufactured must respect, as illustrated in [Fig.9] by an arrow going from block 902 to block 904.
[0191] For example, at least one constraint and / or at least one regularization applied to the generic model is determined by saturation values of the internal signals of the modulator and corresponds, for example, to the addition of cut-off layers to the model.
[0192] For example, at least one constraint applied to the generic model is determined by a target robustness of the converter to temporal non-idealities, and consists, for example, of inserting data augmentation layers to model the noise in the converter.
[0193] For example, at least one constraint applied to the generic model is determined by an implementation of the weights in a quantized form, and corresponds, for example, to an implementation of deep learning using quantization-oriented training. In other words, this constraint corresponds to the addition of a quantization layer of the latent weights of the model.
[0194] For example, at least one constraint applied to the generic model is determined by a target surface for the converter to be manufactured, and corresponds, for example, to the application of at least one binary mask to weights of the model and / or to the implementation of a weight cutoff technique.
[0195] For example, at least one constraint applied to the generic model is determined by errors on the finite gains of operational amplifiers which will be used to implement the converter and corresponds, for example, to the addition of an augmentation layer downstream of the adder of each of each Cellk, to introduce a non-unit weighting modeling the finite gain error of the amplifier implementing the summation.
[0196] For example, at least one constraint applied to the generic model is determined by maximum static errors targeted on component values implementing the weights of the model and corresponds, for example, to the addition of errors on weights of the model.
[0197] For example, at least one constraint applied to the generic model is determined by a target converter or modulator topology, and consists of masking weights of the generic model to remove data paths in the model that do not correspond to any data path in the target topology.
[0198] For example, at least one constraint applied to the generic model is determined by the direction of the data paths in the converter to be manufactured, and consists of forcing the signs of certain weights of the generic model to implement positive and / or negative feedback loops in the converter to be manufactured.
[0199] For example, at least one constraint applied to the generic model is determined by a maximum target area, and consists of masking encoder weights to reduce the number of data paths in the model, which amounts to reducing the number of connections in the manufactured converter, and therefore its area.
[0200] For example, at least one regularization applied to the model is determined by a maximum target area, and consists, for example, of an L1 regularization to limit the total number of unit weights used.
[0201] For example, at least one regularization applied to the model is determined by an output dynamic of the converter to be manufactured. For example, an L2 regularization can be implemented on the derivative of the absolute values of the sizing factors, or weights, of a weighting layer added at the output of the model.
[0202] At a following step 906 (block "DEFINE Fcost"), a cost function is defined for the following supervised deep training step 908 (block "SUPERVISED DL"). The definition of the Fcost function consists of defining a fidelity function Ffid from which the Fcost function is expressed.
[0203] Preferably, the function Fcost is determined by the function Ffid and by at least one regularization function as illustrated in [Fig.9] by block 910 (block "Fcost REG") indicating that the cost function Fcost determined in step 906 is partly determined from a regularization function.
[0204] For example, the Fcost function is determined in part from a regularization function determined by a material property and / or a functional property of the converter to be manufactured as illustrated in [Fig.9] by the arrow going from block 902 to block 910. For example, the Fcost function is determined in part from a regularization function, for example Fdr, determined by a maximum excursion of the output signals of each cell Cellk of the modulator, and / or, for example, by a regularization function adding a penalty in the cost function when certain weights, for example the weights Wapkl of each cell Cellk of index k equal to p, are less than 1.
[0205] In the next step 908, the generic model of the converter is trained by implementing supervised deep training.
[0206] As previously indicated, learning strategies may be provided during supervised deep training, as illustrated by a block 916 ("DL STRATEGY" in [Fig.9]).
[0207] According to one embodiment, at least one learning strategy corresponds to a recall function 918 (block "CB FCT") as illustrated in [Fig.9] by a arrow going from block 916 to block 918. The recall function is applied at the learning step 908, i.e. used during step 908, as illustrated in [Fig.9] by an arrow going from block 918 to block 908. Examples of such recall functions have been given previously.
[0208] According to one embodiment, at least one learning strategy corresponds to a statistical property 919 (block "STAT") applied, or imposed, to the training data as illustrated in [Fig.9] by an arrow going from block 919 to block 918. For example, each training batch is selected or constructed from the training data so that each training batch respects a statistical property. For example, to train a converter model configured to convert a continuous analog signal into its digital counterpart, each training batch is constructed so that the average of the absolute values of the training data that composes it is the same in all the training batches, and is, for example, equal to half the positive input dynamics of the converter to be manufactured.
[0209] According to one embodiment, at least one learning strategy corresponds to an initialization of the latent weights of the model 921 (block "INIT"), and corresponds to a way of initializing the latent weights of the model as illustrated by an arrow going from block 921 to block 908 in [Fig.9]. Various ways of initializing the latent weights of the model have been described previously, for example randomly and / or from the weights of a reference topology and / or from the weights of a model obtained at the end of a previous step 908.
[0210] The training step 908 is then implemented. It is during the training step 908 that the various learning strategies are applied, such as for example the recall functions and / or the statistical properties defined on the training data and / or the initialization choices of the latent weights of the model.
[0211] At the end of one or more training epochs 908, at a following step 920 (block "Ok?"), it is checked whether the model obtained, i.e. the weights of the model which are obtained after the implementation of a step 908, satisfy the material and / or functional properties defined for the converter to be manufactured. In other words, this step 920 consists of checking whether a training stopping criterion has been reached or not.
[0212] If this is not the case (output NO of block 920), step 908 is implemented again using as starting model the trained model obtained at the end of the previous step 908, or a trained model obtained at the end of one of the epochs of the previous step 908, or a model having different latent weight initialization conditions, for example a latent weight initialization that is random and independent of any previously learned topology or any reference topology. As another example, step 908 can be implemented again at from a generic model obtained by implementing again steps 900, 904, 906 and 916 but with different constraints and / or regularizations and / or learning strategies.
[0213] If this is the case (output Y of block 920), step 920 is followed by a step 922 ("RESULTING TOPO" block). At this step 922, a trained model is available which satisfies the material properties and / or the material properties which determined the constraints and regularizations applied to the generic model at steps 904 and 906. This model defines, or determines, a topology of the converter to be manufactured, that is to say, for example, the connections (or data paths) in the converter to be manufactured, the weights to be applied to each internal signal of the converter, the delays to be applied, and the summations to be implemented.
[0214] In a following step 924 ("CIRCUIT MAPPING" block), the topology of step 922, i.e. the trained model received in step 922, is mapped onto, or transformed into, hardware. For example, each data path of the trained model is implemented by an electrical connection, and / or the weights are implemented by resistive or capacitive components and / or the delays are implemented by corresponding timing signals, the sums between data are implemented by summing circuits, for example from operational amplifiers, etc.
[0215] Preferably, during this step of transforming the trained model into a circuit, the material properties and / or the functional properties of the converter to be manufactured which were used in steps 900, 904, 906, 908 and 910 are respected, as illustrated in [Fig.9] by an arrow going from block 902 to block 924. For example, if a regularization based on the dynamics of the converter signals was applied to the model in step 904, the circuit is designed to respect this dynamics. As another example, if the training is focused on quantization, the weights will each be implemented from a unit resistive or capacitive component.For example, if the model used during training includes constraint layers to emulate the maximum gain of the operational amplifiers implementing sums in the converter to be manufactured, the operational amplifiers actually used for the converter circuit have this maximum gain value.
[0216] Finally, in a following step not illustrated, the circuit obtained at the end of step 924 is manufactured.
[0217] [Fig.26] illustrates, in a schematic, general manner and in the form of blocks, an example of how constraints and regularizations can be applied to the model during training. In other words, [Fig.26] illustrates steps of the method described in relation to [Fig.9].
[0218] In this [Fig.26], a block 2600 ("Latent W") represents the latent weights of the encoder. As illustrated by a block 2602 ("C,R"), regularization functions and / or constraints can be applied to these latent weights. For example, a constraint is applied to the latent weights and will directly act on the values of the latent weights, for example by limiting the maximum value that these latent weights can take. For example, an L1 regularization is attached to the latent weights of the encoder, which will assign a penalty term to the cost function. In [Fig.26], the cost function is represented in the form of a block 2604 ("Fcost") and the penalty(s) assigned to the cost function are represented in the form of a block 2606 ("Pen").
[0219] Furthermore, constraints may be applied to the latent weights of the encoder by means of one or more layers that will not have a hardware counterpart. In [Fig.26], these constraints are represented by a block 2608 ("C on Data") receiving the latent weights (block 2600), to which constraints and / or regularizations (block 2602) may have been applied directly, and providing constrained weights represented in the form of a block 2610 ("Cons W") in [Fig.26].
[0220] For example, block 2608 includes such a constraint layer implementing the quantization of the weights. This constraint layer receives the latent weights 2600, and provides quantized weights. The constrained weights 2610 will then be quantized weights.
[0221] For example, when aiming for a capacity-based implementation of weights, block 2608 may include a constraint layer emulating the dispersion of capacity values related to the manufacturing of these capacities. This layer will add fixed dispersions to the data it receives, this data being for example the quantized weights provided by the constraint layer of the example above.
[0222] The constrained latent weights 2610 thus obtained can then directly correspond to the effective weights of the encoder model, the latter being represented by a block 2612 ("Eff W") in [Fig.26].
[0223] However, as illustrated in the example of [Fig.26], these constrained latent weights 2610 can be multiplied by a mask, the result of this multiplication then corresponding to the effective weights 2612.
[0224] For example, in [Fig. 26], there are provided latent masking weights represented in the form of a block 2614 ("Latent Mask"). In the same way as for the latent weights 2600 of the encoder, constraints and / or regularizations can be applied directly to the latent masking weights 2614. In [Fig. 26], these constraints and / or regularizations directly applied to the latent masking weights 2614 are represented in the form of a block 2616 ("C,R").
[0225] At least one constraint is applied to the latent masking weights 2614 by a layer without material counterpart, represented in [Fig.26] by a block 2618 ("C on data"). This layer 2618 receives the latent masking weights 2614, and provides constrained latent masking weights represented in the form of a block 2620 ("Cons Mask") in [Fig.26]. For example, layer 2618 performs thresholding on levels of the weights 2614. In practice, the constrained latent masking weights 2620 correspond to a binary mask.
[0226] To control the binary mask 2620, for example the rate of nuisance weights in the binary mask 2620, one or more regularization functions 2616 may be applied to the masking latent weights 2614, and / or one or more regularization functions 2622 ("R on data" block) may be applied to the weights 2620 (i.e., the binary mask). In practice, when provided, these regularizations do not modify the value of the weights of the binary mask 2620. For example, a regularization function 2622 counts the number of nuisance weights in the binary mask 2620, and assigns a penalty 2606 proportional to the deviation between the counted number and a desired number.
[0227] The constrained latent weights 2610 of the encoder are then multiplied by the binary mask 2620, as represented by a block 2624 ("Mult") in [Fig.26], to obtain the effective weights 2612.
[0228] These effective weights are used in the encoder model, represented in the form of a block 2626 ("Enc Mod") in [Fig.26], and correspond to the weights which will be physically implemented when the trained model is satisfactory in terms of the targeted performances.
[0229] Furthermore, layers without hardware counterpart can be applied, i.e. added, to the encoder model 2626. In [Fig.26], these layers without hardware counterpart are represented in the form of a block 2628 ("Layers"). For example, one or more layers 2628 correspond to constraint layers. For example, a constraint layer 2628 makes it possible to saturate signals in the encoder model 2626 when these signals exceed a threshold. As another example, one or more layers 2628 correspond to data augmentation layers. For example, a data augmentation layer 2628 makes it possible to add Gaussian temporal noise to signals of the encoder model 2626.
[0230] In [Fig.26], the decoder model is represented in the form of a block 2630 ("Dec Mod"). This block receives signals from the encoder model 2626, and provides output data Out. The encoder model 2626 receives input data In.
[0231] Although not detailed in [Fig.26], regularization functions and / or normalizations can be applied to the decoder model 2630.
[0232] During training, block 2626 receives the input data In and block 2630 provides the corresponding output data Out.
[0233] The Fcost function is then calculated from the Out data. More particularly, the Fcost function is calculated from a fidelity function 2632 ("Ffid") and, when there are any, penalties 2606 assigned to the cost function by regularization functions. The Fcost function is then representative of an error between the Out data obtained at the output of the model, and the expected data for the In inputs supplied to the model.
[0234] This is followed by a BP step of backpropagation of the error.
[0235] [Fig. 10] illustrates, in a generic manner, an example of a hardware implementation of a trained encoder model when the weights are implemented from capacitive components.
[0236] More particularly, the top [Fig. 10] represents the implementation of any weight W, that is to say any one of Wpx, Wapkd or Wbpkd of a cell Cellk.
[0237] As shown in the top left of [Fig. 10], when the weight W is negative, the latter is implemented by a Cneg circuit comprising a capacitance C of value equal to the absolute value of the weight times the value of a unit capacitance C0. The capacitance C is connected between two nodes 1000 and 1002. A switch IT1 connects the node 1000 to an input In of the Cneg circuit, and a switch IT2 connects the node 1000 to an output Out of the Cneg circuit. A switch IT3 connects the node 1002 to a reference potential.
[0238] Each Cneg circuit comprises two control inputs wr and rd. Switch IT3 is closed when either of its inputs wr and rd receives an active signal. Switch IT1 is controlled by a signal corresponding to the signal on its input wr with, optionally, a delay to limit charge injections, and is closed when this delayed signal is active, open otherwise. Switch IT2 is controlled by a signal corresponding to the signal on its input rd with, optionally, a delay to limit charge injections, and is closed when this delayed signal is active, and open otherwise.
[0239] As shown in the top right of [Fig. 10], when the weight W is positive, the latter is implemented by a circuit Cpos comprising a capacitance C of value equal to the absolute value of the weight times the value of a unit capacitance C0. The capacitance C is connected between two nodes 1004 and 1006. A switch IT4 connects the node 1004 to an input In of the circuit Cpos, and a switch IT5 connects the node 1006 to an output Out of the circuit Cpos. A switch IT6 connects the node 1004 to the reference potential, and a switch IT7 connects the node 1006 to the reference potential.
[0240] Each circuit Cpos comprises two control inputs wr and rd. The switch IT4 is controlled by a signal corresponding to the signal on its input wr with, optionally, a delay to limit charge injections, and is closed when This delayed signal is active, otherwise open. Switch IT5 is controlled by a signal corresponding to the signal on its rd input with, optionally, a delay to limit charge injections, and is closed when this delayed signal is active, otherwise open. Switch IT6 is closed when the signal on its rd input is active, and otherwise open. Switch IT7 is closed when the signal on its wr input is active, and otherwise open.
[0241] Furthermore, the bottom of [Fig. 10] represents the implementation of a cell Cellk of index k equal to 1 in the example of [Fig. 10], in the example of converter model where K is equal to 3 and D is equal to 2.
[0242] In this figure, each Cneg or Cpos circuit implementing a corresponding weight is represented by a block having the same reference as the weight it implements. Each Cneg or Cpos circuit implementing a weight Wapkd, respectively Wbpkd receives on its input In the signal AkO, respectively BkO, from the cell Cellk.
[0243] The signals supplied to the inputs wr and rd of the circuits Cpos and Cneg make it possible to implement the transfer of data between the K cells Cellk during the same conversion cycle C[n], and between two successive conversion cycles, by implementing the corresponding delays of d cycles.
[0244] Each cell Cellk further comprises a Sample circuit. An input In of the Sample circuit receives the signal x. In each cell Cellk, the output Out of the Sample circuit is connected to the input of the circuit Cpos or Cneg implementing the weight Wkx of the cell. Each Sample circuit comprises a switch IT8 connected between the input In and the output Out of the Sample circuit, and a switch IT9 connected between the output Out of the Sample circuit and the reference potential.
[0245] Each Sample circuit further receives a control signal Rst. Switch IT8 is configured to be closed when signal Rst is inactive, and open otherwise, switch IT9 being configured to be closed when signal Rst is active, and open otherwise. For example, signal Rst is switched to the active state during a reset phase prior to each conversion in N cycles.
[0246] Each cell Cellk comprises a SUMk circuit. For example, the cell Celll shown in [Fig. 10] comprises a SUM1 circuit. Each SUMk circuit comprises an operational amplifier AOP. The AOP amplifier of the cell Cellk has its inverting input (-) connected to an input In of the SUMk circuit of the cell, this input In being connected to the node 108k of the cell (1081 in [Fig. 10] which represents the cell Celll, or, in other words, the cell Cellk with index k equal to 1). The AOP amplifier has its non-inverting input (+) connected to the reference potential. A unit capacitor C0 is connected between the output and the inverting input of the AOP amplifier. A switch IT10 is connected in parallel with the unit capacitor C0. A switch IT11 couples the output of the AOP amplifier of the SUMk circuit to the output Out of this circuit SUMk. A switch IT12 is connected between the output Out of the SUMk circuit and the reference potential.
[0247] Each SUMk circuit receives the Rst signal. Switch IT11 is closed when the Rst signal is inactive, open otherwise. Switch IT12 is closed when the Rst signal is active, open otherwise.
[0248] Each SUMk circuit further receives a control signal Rstk from the cell Cellk to which this circuit belongs. For example, in [Fig. 10], the circuit SUM1 receives the signal Rstl. The switch IT10 is closed when the signal Rstk received by the SUMk circuit to which it belongs is active, open otherwise. For example, in [Fig. 10], the circuit SUM1 receives the signal Rstl.
[0249] In each cell Cellk, the output Out of the SUMk circuit of the cell provides the signal AkO of the cell. In the example of [Fig.10], the SUM1 circuit of the cell Celll provides the signal A10 on its output Out.
[0250] To provide the signal BkO, each cell Cellk comprises a circuit Quantk having its input In connected to the output Out of the circuit SUMk of the cell, and its output Out providing the signal BkO of the cell. In the example of [Fig. 10], the circuit Quanti of the cell Celll has its input In connected to the output Out of the circuit SUM1 of the cell Celll, and its output Out providing the signal B10.
[0251] Each Quantk circuit comprises a threshold comparator COMP, one input of which, for example non-inverting, is connected to its input In, and another input of which, for example inverting, is connected to the reference potential. The comparator COMP of each Quantk circuit is clocked by a control signal Cmpk received by this circuit, and for example active in the high state. For example, the output of the circuit COMP is updated when its timing signal is active. For example, in [Fig. 10], the circuit Quanti receives the signal Cmpl.
[0252] In addition, each Quantk circuit includes a switch IT13 coupling the output of the comparator COMP to the output of the Quantk circuit, and a switch IT14 coupling the output Out of the Quantk circuit to the reference potential. Each Quantk circuit receives the control signal Rst. The switch IT13 is closed when the signal Rst is inactive, open otherwise. The switch IT14 is closed when the signal Rst is active, open otherwise.
[0253] In [Fig. 10], the output signals of each of the 3 cells Cell1, Cell2 and Cell3 are shown, which are supplied to the corresponding Cneg and Cpos circuits of the illustrated cell Cell1.
[0254] The supply of the control signals received by the inputs rd and wr of the circuits Cneg and Cpos, of the K signals Cmpk, of the K signals Rstk and of the signal Rst of a K-cell encoder CellK so as to implement the data transfers (of the charges in the example of [Fig. 10]) between the K cells during a cycle of given index n, by implementing the delays of d cycles, and so as to obtain the operation described in relation to figures 5, 6 and 7 is within the reach of those skilled in the art from the present description.
[0255] [Fig. 11] illustrates, at the top, a more detailed implementation of a trained modulator model, in the case where K is equal to 3 and D is equal to 2, and, at the bottom, timing diagrams of the control signals, in an example where each of the control signals is active in the high state. More particularly, these timing diagrams illustrate a reset phase Reset and a first cycle C[l] of a conversion over N cycles C[n].
[0256] Figures 12, 13, 14, 15 and 16 illustrate, in a generic manner, an example of a hardware implementation of a trained encoder model when the weights are implemented from resistive components.
[0257] More particularly, as illustrated by Figures 12 and 16, each weight of a cell Cellk, i.e. any one of Wpx, Wapkd or Wbpkd of the cell, is implemented by a circuit Rw. The circuit Rw comprises a resistor R of value equal to the value of a unit resistor RO divided by the value of the weight. The resistor R is connected between two nodes 1200 and 1202, the node 1202 being connected to an output Out of the circuit Rw. Furthermore, each circuit Rw comprises two inputs Inl and In2 and a multiplexer MUX having its two inputs connected to the respective inputs Inl and In2, and its output connected to node 1200. When the weight implemented by the circuit Rw is negative, the multiplexer couples the input Inl to node 1200, and, conversely, when the weight implemented by the circuit Rw is positive, the multiplexer couples the input In2 to node 1200. Although this is not illustrated in [Fig.12], the multiplexer MUX receives a binary control signal whose state is determined by the sign of the implemented weight. As an example, this control signal is provided by a control circuit not shown, for example a control circuit providing a control signal to each of the multiplexers MUS of the circuits Rw. .
[0258] [Fig. 16] represents the hardware implementation of a generic encoder model, in an example converter model where K is equal to 3 and D is equal to 2.
[0259] In this figure, each Rw circuit implementing a corresponding weight is represented by a block having the same reference as the weight it implements. In each cell Cellk, each Rw circuit has its output Out connected to a node 1201k of the cell. For example, in [Fig. 16], the Rw circuits of the cell Celll all have their outputs connected to the node 12011 of the cell. In addition, each Rw circuit receives on its inputs Inl and In2 a pair of signals corresponding to an output signal of one of the cells Cellk to which the weight implemented by this circuit must be applied.
[0260] Each cell Cellk comprises a SUMk circuit as shown in [Fig. 16], an implementation of a SUMk circuit being illustrated in [Fig. 13].
[0261] Each SUMk circuit comprises an operational amplifier AOP and a switch IT15 coupling the inverting input (-) of the AOP amplifier of the cell Cellk to the input In of the SUMk circuit of the cell, this input In being connected to the node 1008k of the cell. The AOP amplifier has its non-inverting input (+) connected to the reference potential. A unit capacitor CO is connected between the output and the inverting input of the AOP amplifier. A series association of a switch IT16 and a unit resistor RO is connected in parallel with the capacitor CO. The output of the amplifier is connected to the output Out of the SUMk circuit.
[0262] Each SUMk circuit receives a control signal rdk. Switch IT15 is closed when the rdk signal is active, open otherwise. Switch IT16 is closed when the rdk signal is active, open otherwise.
[0263] As shown in [Fig. 16], each cell Cellk comprises a circuit Quantk having its input In connected to the output Out of the circuit SUMk of the cell, and an output Out, an implementation of a circuit SUMk being illustrated in [Fig. 14].
[0264] Each Quantk circuit comprises a threshold comparator COMP, one input of which, for example non-inverting (+), is connected to its input In, and another input of which, for example inverting (-), is connected to the reference potential. The comparator COMP of each Quantk circuit is clocked by a control signal Cmpk received by this circuit. For example, the output of the circuit COMP is updated when its timing signal is active.
[0265] As shown in [Fig. 16], each cell Cellk further comprises several SH circuits, each providing a corresponding output signal of the cell Cellk. An implementation of an SH circuit is illustrated in [Fig. 15]. In this implementation, each output signal of an SH circuit, corresponding to an output signal of a cell Cellk, corresponds to a pair of signals provided to the inputs Inl and In2 of a circuit Rw corresponding to a weight to be applied to this cell output signal, and only one of the signals of the pair of signals is selected by the multiplexer of the circuit Rw according to the sign of the weight.
[0266] Each SH circuit comprises an input In and two outputs Outl and Out2 and is configured to store on capacitors an image of the voltage received on its input In. Furthermore, depending on the way each SH circuit is controlled by a control signal received on its input rst and a control signal received on its input wr, each SH circuit makes it possible to implement or not a delay of one cycle C[n] between its input and its output. Each SH circuit also makes it possible, when its outputs Outl and Out2 are connected to the respective inputs Inl and In2 of a circuit Rw, to implement the sign of the weight corresponding to this circuit Rw, by selecting with the multiplexer MUX of the circuit Rw one or the other of the two inputs Inl and In2.
[0267] More particularly, as shown at the bottom of [Fig. 15], each SH circuit comprises a circuit A coupling the input In of the SH circuit to the output Out1, and a circuit B coupling the input In of the SH circuit to the output Out2.
[0268] Circuit A comprises a unit capacitor CO connected between a node 1204 and the reference potential. A switch IT17 coupling the input In to node 1204, and a switch IT18 coupling the node 1204 to the reference potential. An analog unit buffer circuit Buff couples the node 1204 to a node 1206. A switch IT19 couples the node 1206 to the output Outl and a switch IT20 couples the output Outl to the reference potential.
[0269] Switch IT17 is closed when the signal received by the wr input is active, open otherwise. Switches IT18 and IT20 are closed when the signal received by the rst input is active, open otherwise, switch IT19 being closed when the rst signal is inactive, open otherwise.
[0270] Circuit B includes a unit capacitor C0 connected between a node 1208 and a node 1210. A switch IT21 couples the input In to node 1208, a switch IT22 couples the node 1208 to the reference potential, a switch IT23 couples the node 1210 to a node 1212, and a switch IT24 couples the node 1210 to the reference potential. An analog unit buffer circuit Buff couples the node 1212 to a node 1214. A switch IT25 couples the node 1214 to the output Out2 and a switch IT26 couples the output Out2 to the reference potential.
[0271] Switch IT21 controlled by a signal corresponding to the signal received by the input wr to which, preferably, a delay has been applied to avoid charge injections, and is closed when this delayed signal is active, open otherwise. Switches IT22 and IT23 are closed when the signal received by the input wr is inactive, open otherwise. Switch IT24 is closed when the signal received by the input wr is active or when a signal corresponding to the signal received by the input rst to which, preferably, a delay is applied is active, and open otherwise. Switch IT25 is closed when the signal received by the input rst is inactive, open otherwise, switch IT26 being closed when the signal rst is active, open otherwise.
[0272] In [Fig. 16], each cell Cellk comprises two SH circuits connected to the output Out of the SUMk circuit of the cell, a first of the two circuits providing the output signal AkO of the cell, and the other of the two circuits providing the signal Akl of the cell. In addition, each Cellk comprises two other SH circuits connected to the output Out of the Quantk circuit of the cell, a first of the two circuits providing the output signal BkO of the cell, and the other of the two circuits providing the signal Bkl of the cell. For example, each SH circuit provides a pair of signals having identical absolute values but opposite signs, and the multiplexer of the RW circuit to which this pair of signals is supplied makes it possible to select one of the two signals, which returns to selecting the weight sign.
[0273] At the bottom of [Fig. 16], timing diagrams illustrate modulator control signals, in an example where each of the control signals is active in the high state. More particularly, the timing diagrams illustrate a reset phase Reset and a first cycle C[l] of a conversion over N cycles C[n]. In this example: the first circuit SH from the top in cell Celll receives the signals wrl and Rst on its respective inputs wr and rst; the second SH circuit from the top in cell Celll receives the signals wr3 and Rst on its respective inputs wr and rst; the third SH circuit from the top in cell Celll receives the signals wrl and Rst on its respective inputs wr and rst; the fourth SH circuit from the top in cell Celll receives the signals wr3 and Rst on its respective inputs wr and rst; the first SH circuit from the top in cell Cell2 receives the signals wr2 and Rst on its respective inputs wr and rst; the second SH circuit from the top in cell Cell2 receives the signals wr3 and Rst on its respective inputs wr and rst; the third SH circuit from the top in cell Cell2 receives the signals wr2 and Rst on its respective inputs wr and rst; the fourth SH circuit from the top in cell Cell2 receives the signals wr3 and Rst on its respective inputs wr and rst; the four SH circuits of the Cell3 cell receive the signals wr3 and Rst on their respective inputs wr and rst; the SUM1 circuit receives the control signal rdl; the SUM2 circuit receives the control signal rd2; the SUM3 circuit receives the control signal rd3; the Quanti circuit receives the Cmpl control signal; the Quant2 circuit receives the control signal Cmp2; and the Quant3 circuit receives the control signal Cmp3.
[0274] It will be noted that the implementation of Figures 12 to 16 allows, when the values of the resistors R of the circuits Rw are programmable, to program the modulator of [Fig. 16] so as to be able to implement different trained models of K-cell modulators. This can allow, for example, to quickly test a hardware implementation of a trained modulator model, without having to design a dedicated circuit. More generally, a programmable modulator topology of the type of that of [Fig. 16], with a given value of K and a given value of D can be programmed with trained models of modulators in which K is less than or equal to this given value of K and / or D is less than or equal to this value given by D. In other words, this programmable topology is like an FPGA (Field Programmable Gate Array), but is dedicated to being programmed from the trained modulator model based on a succession of Cellk cells.
[0275] Similarly, in the implementation of Figures 10 and 11, when the values of the capacitances of the circuits Cneg, Cpos, Sumk and Quantk are programmable, and each weight is implemented by a Cneg circuit, a Cpos circuit and a multiplexer selectively routing a received signal to one or other of the circuits Cneg or Cpos depending on the sign of the weight considered, the modulator is then programmable. For example, a programmable capacitance can be implemented by a bank of capacitances selectable in parallel, for example by a bank of capacitances weighted by dichotomy. This makes it possible to program different trained modulator models with K cells, so as, for example, to quickly test a hardware implementation of a trained modulator model without having to design a dedicated circuit. More generally, a programmable modulator topology of the type of that of [Fig.11], with a given value of K and a given value of D can be programmed with trained models of modulators in which K is less than or equal to this given value of K and / or D is less than or equal to this given value of D. In other words, this programmable topology is like an FPGA (Field Programmable Gate Array), but is dedicated to being programmed from the trained model of modulator based on a succession of Cellk cells.
[0276] In the implementation examples described above in relation to Figures 10 to 16, the weights and paths have all been represented. In practice, when aiming for a hardware implementation by a dedicated circuit, when a weight is zero, the circuit corresponding to the implementation of this weight as well as the connections associated with this circuit are omitted.
[0277] An example of implementation of the method described previously will now be described.
[0278] In this example, the manufacture of a sigma-delta converter of order M equal to 3 is sought, the converter being of the cascaded integrator type (CIFF from the English "Cascaded Integrator Feed-Forward").
[0279] The generic encoder model 200 comprises, in this example, K equals 4 cells Cellk, the cells Celll, Cell2 and Cell3 each corresponding to an integrator and the cell Cell4 being a summing and quantizing stage.
[0280] Since sigma-delta modulator topologies for CIFF converters are well known, constraints determined by these converter hardware topologies have already been applied to the generic encoder model 200 under the form of a binary mask to hide the weights, i.e. the data paths, absent from these known hardware topologies. Furthermore, from this prior knowledge of the target topology, D is set equal to 2.
[0281] Thus, after masking, the WM matrix of the weights of the example of the generic encoder model to correspond to a known CIFF topology can be written: [Math 19] I H'l.v 0 0 W4x 0 0 0 0 0 0 0 0 / 410 0 0 0 0 YES 0211 0 0 0 0 0 0 0 0 0 0 / 420 0 0 0 0 WMr= 0 0221 0321 0 0 0 0 0 0 0 0 0430 0 0 0 0 0 0 0331 0 0 0 0 0 0 0 0 0 0141 0 0 0 0 0 0 0
[0282] The decoder (or filter) of the CIFF converter model used here is of the type described in relation to [Fig.8].
[0283] The trained models are compared with a known third-order CIFF converter, hereinafter called the reference CIFF converter and corresponding to the matrix of equation [Math 19] above in which the unaffected weights have the following values: - Wlx = 0.5674 ; -Wall = 1.0000; - Wbl41 =-0.5674 ; - Wa211 =0.5126 ; - Wa221 = 1.0000 ; - Wa321 =0.3171 ; -Wa331 = 1.0000; - W4x = 1.0000 ; - Wa410= 1.4000 ; - Wa420 = 0.9900 ; and - Wa430 = 0.4700.
[0284] To compare the reference CIFF converter with converters obtained by training the model, i.e. by training the matrix [Math 19], we observe the maximum error over the entire DR dynamics of the converter. We also use the MAXresol metric defined by [Math 18].
[0285] Furthermore, a maximum value N equal to 100 is set here.
[0286] Furthermore, we compare training of the model carried out with random noise following a Gaussian distribution having a standard deviation equal to 0.25*103, this random noise being added to the model, at the output of each cell Cellk, as a data augmentation layer.
[0287] In order to compare the performance of a converter obtained after supervised deep learning with that of the reference converter, the MAXresol metric is for example used, for example with test signals of equivalent dynamics. More particularly, the signals of the model have a maximum excursion corresponding, for example, to the range [-0.5; 0.5]. The input data used for the learning have a dynamics included in the range [-0.4; 0.4] and the input data used for the test have a dynamics included in the range [-0.35; 0.35]. The DR dynamics of the converter will be a result of the learning. Thus, if the learning is such that, at step 920 ([Fig.9]), the trained model satisfies the targeted specifications, then the converter corresponding to the trained model will have a DR dynamics at least adapted to the test data.For example, for the reference converter, the dynamic DR of the input data corresponds to the range [-0.35; 0.35].
[0288] Furthermore, to evaluate the impact of the choice of the Fcost function on the training, we consider here a function Fcostl = Frmse + Fdr, a function Fcost2 = Flse + Fdr, a function Fcost3 = Fmix + Fdr and a function Fcost4 = Fmax + Fdr, with A and B equal to 0.8 and 0.2 respectively in the fidelity function Fmix, and Ak equal to 0.4 in the expression of the Fdr function according to [Math 15].
[0289] The value of the MAXresol metric obtained by simulation of the trained model in the absence of temporal noise is: - better (higher) than that obtained for the reference converter when the model was trained with the Fcost2 or Fcost3 function, - less good (weaker) than that obtained for the reference converter when the model was trained with the Fcostl function, and - better (higher) than that obtained for the reference converter when the model was trained with the Fcost4 function for values of N greater than 50.
[0290] The value of the MAXresol metric obtained by simulation of the trained model in presence of noise, is: - better than that obtained for the reference converter when the model was trained with the Fcost2 or Fcost3 function for values of N less than 50, and - worse than that obtained for the reference converter when the model was trained with the Fcostl function, - less good than that obtained for the reference converter when the model was trained with the Fcost4 function for values of N less than 50, - similar to that obtained for the reference converter when the model was trained with the Fcost4 function for values of N greater than 50.
[0291] As an example, the modulator weight matrix obtained with training using the Fcost2 function and with the data augmentation layers introducing random temporal noise can be written: [Math 20] ! 0.4922 0 0 0.7467 0 0 0 0 0 0 0 1.2985 0 0 0 0 1.0197 0.3713 0 0 0 0 0 0 0 0 0 1.0519 0 0 0 0 wmt = 0 1.0192 0.1166 0 0 0 0 0 0 0 0 1.1020 0 0 0 0 0 0 1.0195 0 0 0 0 0 0 0 0 0 -0.5014 0 0 0 0 0 0 0
[0292] By way of example, the modulator corresponding to the trained model can be implemented in the manner described with figures 10 and 11 for an implementation of the weights in capacitive form, or in the manner described in relation to figures 12 to 16 for an implementation of the weights in resistive form.
[0293] Referring again to the example of the trained model obtained as indicated by [Math 20], the quantization error for this trained model was compared to that of the reference converter, with and without temporal noise, for a value N equal to 100.
[0294] In the absence of temporal noise, it was found that this quantization error is lower for the trained model than for the reference converter for input signals x having a value xa between -0.35 and approximately -0.30 and between approximately 0.30 and 0.35, i.e. at the limits of the DR dynamic range.
[0295] In the presence of temporal noise, the quantization errors for the trained model and for the reference converter are similar over the entire DR dynamic range.
[0296] Another example of implementation of the method of [Fig.9] described previously will now be described.
[0297] In this other example, it is proposed to train a model corresponding to the topology defined by the weight matrix of [Math 21]: [Math 21] i ¥Lï W2x W3x W4j ! 0 0 0 0 0 0 0 MB 0 0 0 0 Wdll W211 W311 0 0 0 0 0 0 0 0 Wa420 0 0 0 0 WMT= W121 W221 W321 0 0 0 0 0 0 0 0 W430 0 0 0 0 W131 W231 W331 0 0 0 0 0 0 0 0 0 WM41 Wfâ41 W341 0 0 0 0 0
[0298] In other words, this model comprises K equals 4 cells Cellk. The cells Celll, Cell2, Cell3 and Cell4 all receive the signal x[n] and apply respective weights Wlx, W2x, W3x and W4x to it. The cells Celll, Cell2 and Cell3 all receive the unquantized and delayed output of a cycle Al l[n] from the cell Celll and apply respective weights Wal 11, Wa211 and Wa311 to it. The cells Celll, Cell2, and Cell3 all receive the unquantized and delayed output of a cycle A21[n] from the cell Cell2 and apply respective weights Wal21, Wa221 and Wa321 to it. The cells Celll, Cell2 and Cell3 all receive the unquantized and delayed output of a cycle A31[n] from the cell Cell3 and apply respective weights Wal31, Wa231 and Wa331 to it. Cells Cell1, Cell2 and Cell3 all receive the quantized and delayed output B41[n] from cell Cell4 and apply respective weights Wbl41, Wb241 and Wb341 to it.Cell4 receives the unquantized and undelayed outputs A10[n], A20[n] and A30[n] from the respective cells Cell1, Cell2 and Cell3 and applies the weights to them. respective Wa410, Wa420 and Wa430. The other connections are absent, and their corresponding weights are null, and its weights are kept null during training thanks to a constraint applied to the model, in practice a binary mask.
[0299] The model defined by [Math 21] is a mixed topology between a CIFF topology and a CIFB topology (from the English "Cascaded Integrators Feed-Backward" - counter reaction to cascaded integrators).
[0300] The value of the MAXresol metric obtained by simulation of the trained model in the absence of temporal noise is: - better for matrix topology [Math 21] than for matrix topology [Math 20] for values of N greater than 50 when the models were trained with the Fcost2 or Fcost3 function, - similar for matrix topology [Math 21] and for matrix topology [Math 20] for values of N less than 50 when the models were trained with the Fcost2 or Fcost3 function, and - similar for the matrix topology [Math 21] and for the matrix topology [Math 20] for values of N between 1 and 100 when the models were trained with the Fcost4 function.
[0301] The value of the MAXresol metric obtained by simulation of the trained model in the presence of temporal noise is: - better for matrix topology [Math 21] than for matrix topology [Math 20] for values of N greater than 50 when the models were trained with the Fcost2 or Fcost3 function, - similar for matrix topology [Math 21] and for matrix topology [Math 20] for values of N less than 50 when the models were trained with the Fcost2 or Fcost3 function, and - similar for the matrix topology [Math 21] and for the matrix topology [Math 20] for values of N between 1 and 100 when the models were trained with the Fcost4 function.
[0302] As an example, the trained model obtained with the Fcost2 function from the matrix topology [Math 21] corresponds to the following weight matrix: [Math 22] 1 0.4919 0.2338 0.2810 0.1613 0 0 0 0 0 0 0 0.6285 0 0 0 0 1.0193 0.3723 0.1167 0 0 0 0 0.5667 0 0 0 0 0 0 0 0 WMT = -0.0003 1.0196 0.1557 0 0 0 0 0 0 0 0 0.8706 0 0 0 0 -0.0001 -0.0001 1.0006 0 0 0 0 0 0 0 0 0 -0.4938 -0.2278 -0.2373 0 i 0 0 0 0
[0303] For this example of trained model, it was found that the quantization error of the trained model is better than that of the reference converter for all the DR dynamics when there is no temporal noise. In addition, the INL (from the English "Integral Non Linerity" - integral non linearity) is better for the trained model.
[0304] By taking the example of the trained model corresponding to [Math 22], or by starting from the model corresponding to the topology of the matrix [Math 21], a new training step focused on quantification is implemented to obtain quantified weights.
[0305] In this example, in equation [Math 17], qstep is a value learned using a learned Wlscale weight, and is then equal to l / (round((2ci O / W'scale)). In addition, a constraint is applied to the model so that the quantized weights are all multiples of a factor of 1 / s with s being an integer.
[0306] We then obtain a matrix WMq of quantified weights multiple of a unit element (common denominator) of value 1 / s with s equal to 6. In addition, the learned value of qstep is equal to 4, and the quantified weight matrix is written: [Math 23] 3 1 2 4 0 0 0 0 0 0 0 1 0 0 0 0 6 2 0 0 0 0 0 0 0 0 0 5 0 0 0 0 WMqr = 0 6 1 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 -3 -1 -2 0 0 0 0 0
[0307] Each non-zero weight is implemented by multiplying its quantized value by the value of the unit element, in this example equal to 1 / s with s equal to 6.
[0308] This implementation with quantized weights is compared to a reference converter corresponding to the reference converter of the previous examples in which the weights have been quantized. It is then found that, in this reference converter with quantized weights, the output signals of the stages saturate whereas this is not the case for the output signals of the Cellk cells of the trained model with quantized weights of [Math 23].
[0309] Furthermore, the trained model with quantized weights of [Math 23] has a quantization error much lower than that of the reference converter with quantized weights, over the entire DR dynamic range, for a value N equal to 100.
[0310] This results from the fact that the classic sizing methodology for obtaining the quantized weights of the reference converter from the non-quantized weights of this reference converter does not take into account the effects of the quantization of the weights. On the contrary, the method presented here, for example allowing the quantized weight matrix to be obtained [Math 23] takes these effects into account when the training is focused on quantization. This illustrates the interest of a learning process jointly satisfying all the hardware specifications transcribed in the form of constraints or regularizations, unlike a standard sizing approach requiring a sequential adjustment of the topology parameters.
[0311] For example, as mentioned previously, it is possible to put implements a LO or L1 regularization during quantization-based training. It has been found that, by increasing the weighting of an L1 regularization (which aims to introduce a penalty depending on the sum of the absolute values of the latent weights of the encoder), the number of unharmed weights tends to decrease. Increasing the weight of the L1 regularization allows to obtain a more compact trained model, for example a trained model corresponding to an order 2 rather than an order 3 as is the case of the trained model corresponding to the matrix [Math 23], but with lower performance.
[0312] In the analog-to-digital converter driving examples described above, preferably, the quantized outputs of the Cellk cells are not used, for example by being masked by a masking matrix, except for the last cell.
[0313] As another example, it is planned to keep, for each cell Cellk, at least one quantized output Bkd[n], and to provide all of these quantized outputs to a filter designed to process these bit streams.
[0314] Another example of implementation of the method of [Fig.9] described previously will now be described.
[0315] In this other example, it is proposed to train a converter model in which the filter receives at least one quantized output Bkd[n] from each cell Cellk.
[0316] [Fig. 17] illustrates an example of a filter model for processing bit streams from the K cells Cellk of a generic modulator model, in the case where each cell provides a bit stream corresponding to the output Bkl[n] of the cell.
[0317] At each cycle C[n] of a conversion, the filter receives K bit streams Bkl[n].
[0318] The filter comprises a first one-dimensional convolution layer CONV. This convolution layer is configured to perform at each cycle C[n] recombinations of the K Bkl flows over a given temporal depth, to enrich the expressiveness of the filter.
[0319] For example, the CONV layer receives K Bkl channels of temporal depth N. The CONV layer then performs C*K convolutions of depth v. For example, the CONV layer calculates C values, each value being a weighted sum of K convolutions of depth v applied to the K received channels. The CONV layer then provides as output a vector of dimension C updated at each conversion cycle C[n].
[0320] The output of this convolution layer CONV is provided to a first branch 1700 of the filter. The first branch comprises several cascaded SRNN (Simple Recurrent Neural Network) cells or networks, without an activation layer. In [Fig. 17], each SRNN network or cell is referenced 1701. As an example, the first network 1701 is similar to the SRNN1 network of the [Fig.8], with the difference that, rather than receiving a single bit BkO[n] and applying a single weight Wdl to it, this network receives a vector of C elements to which it applies a corresponding vector of C weights. In addition, the recurrent network SRNN1 also receives as input as many signals as it provides outputs, each of these input signals being determined by a corresponding output of the network, and to which it applies a weight vector Wcl having a size equal to the number of outputs of the network. In this example, the network provides only a single output and the vector Wcl includes only a single weight. As an example, the number of networks 1701 is determined by the targeted filtering precision, and is, for example, greater than or equal to K.
[0321] The output of the CONV layer is also provided to a second branch 1702 of the filter. The second branch comprises cascaded gated recurrent units (GRUs), for example with linear and sigmoid activation. Gated recurrent units are well known to those skilled in the art and are not redefined here. In [Fig. 17] each gated recurrent unit is referenced 1703. For example, the number of recurrent units is the same as the number of networks 1701.
[0322] Each of the branches 1700 and 1702 therefore provides a single data item (or signal) updated at each cycle C[n]. The outputs provided by each of the branches 1700 and 1702 are then concatenated as illustrated in [Fig. 17] by a "CONCAT" block.
[0323] The filter finally comprises a NORM layer for normalizing the output of the CONCAT layer, i.e. a 2-dimensional data vector, updated at each cycle C[n]. The NORM layer performs, at each cycle C[n], a weighted sum, with learned weights, of the two data of the 2-dimensional vector that it receives.
[0324] In another example, branch 1702 and concatenation CONCAT can be omitted, as well as the convolution block, in order to keep only branch 1700 which will directly receive the K Bkl flows as input.
[0325] As an example, we consider a generic model in which: for the modulator: - K is equal to 4; - the maximum value of N is 100; - the value ranges of the training input data, simulation input data and internal signals of the modulator are the same as those defined for the previous examples; - m = 4 ; - data augmentation layers adding random Gaussian noise with a standard deviation equal to 0.25*103 are added at the output of each of the K cells Cellk; - a weight masking matrix is applied to the WM matrix of the weights of the modulator, to mask: * for each cell Cellk except the last one, the weights Wak40, Wbk40, Wak41, and * for the last cell Cell4, the weights other than W4x, Wa410, Wb410, Wa420, Wb420, Wa430 and Wb430; and for the filter: - the convolution is only done on the delayed quantized outputs of the K cells Cellk, that is to say on the outputs Bkl[n] of the K cells Cellk; - branch 1700 includes 4 networks 1701; and - branch 1702 includes 4 units 1703.
[0326] Preferably, to facilitate convergence when training the model, from several sets of input data xa, a normalization layer is added to the model, at the output of the filter, which is configured, for each training data set xa, to apply a corrective gain aligning the average of the absolute values of the signals xq obtained for this data set xa, on the average of the absolute values of the input data xa of this set. In this case, a statistical property is imposed on the training data which consists in that, in each data set xa used, the data xa follow a distribution with an average of the absolute values known and identical for all the sets. Such a statistical property corresponds to a learning strategy as illustrated by block 919 ("STAT") of [Fig.9].
[0327] Preferably, to facilitate convergence during model training, regularization layers on the data are added at the output of each cell Cellk, to introduce, for each input data set xa, a penalty proportional to the difference between the average of the absolute values targeted for this set and the average of the absolute values obtained for this set at the output of each cell Cellk. In this case, the same statistical property as above is imposed on the training data sets.
[0328] Preferably, to facilitate convergence during model training, the learning rate is made dependent on the current value of the MAXresol metric, in addition to a conventional decrease in the learning rate based on the rank of the epochs. This corresponds to a learning strategy illustrated by block 918 ("CB FCT") in [Fig.9],
[0329] Preferably, to facilitate convergence during model learning, two different learning rates are provided, one for the filter, the other for the modulator, and, at each epoch, only one of the two learning rates is updated by a callback function, alternating an epoch with an update of the first rate, and an epoch with an update of the second rate. This corresponds to a strategy learning rate illustrated by block 918 ("CB FCT") in [Fig.9]. The advantage of predicting these two learning rates is to alternate, over the epochs, the one of the two learning rates which is the strongest, for example ten times stronger than the other learning rate for the epoch considered, so as to stabilize the learning, while not freezing the updating of the weights.
[0330] Preferably, the training is quantization-oriented, but with a quantization step qstep that is no longer based on the maximum value of the absolute values at latent weights and equal to l / (round((2ci 'j / W'max)), but which is learned during training and equal to l / (round((2ci 'j / W^e)), with WUaie a weight learned during training.
[0331] In the example considered, the cost function used is the Fcost2 function.
[0332] The model trained with quantized weights obtained for this example then has a lower quantization error than that of the model trained with quantized weights corresponding to [Math 23], and, in addition, better robustness with respect to noise. Thus, this example shows that the use, by the filter, of the quantized outputs of each Cellk cell makes it possible to improve the analog-digital conversion.
[0333] Another example of implementation of the method of [Fig.9] described previously will now be described.
[0334] In this other example, we consider here the case where the converter to be manufactured is configured to implement analog-digital conversions at the bottom of the column of a pixel matrix within an image sensor. It is conventionally planned to put one converter per column so that, when reading a line, each converter converts the output signal of a pixel in its column. However, this results in a cumbersome implementation due to the surface area occupied by each converter.
[0335] Reading several columns with a single converter makes it possible to relax the implementation constraints, in particular the constraints linked to the surface available at the bottom of each column. In such an implementation, a single converter is provided for several columns, for example three columns, which makes it possible to divide the number of converters by 3. In this case, the converter first converts the signal of a first column of the set in N cycles, then the signal of a second column of the set in N cycles and so on until all the columns have been read. However, the time required to implement each cycle is limited by the time required to sample the signal, which results in the time required for a converter to read all the columns with which it is associated.Indeed, in a capacitive converter, at each of the N conversion cycles, an input capacitor of the converter must first be charged with the output signal of the column, which corresponds to the signal to be converted. However, this charging time is gener- . significant rumble, for example due to the properties of the pixel's source follower transistor which is responsible for charging the capacitance.
[0336] Thus, in this application example, a converter is proposed implementing a reading method, more particularly a sampling method, in which the columns associated with the same converter are sampled by this converter one after the other, cyclically and repeatedly at the input of the converter. In other words, a converter is proposed in which channels at the input of the converter are sampled cyclically, alternately and interlaced. In this way, while the converter samples a column, it can process the sample available for the previous column. This makes it possible to reduce the total time required to convert the output signals of all the columns associated with the converter.
[0337] [Fig. 18] illustrates the case of a converter associated with three columns Coll, Col2 and Col3, i.e. a multiplexing of three columns to a converter, in the case where the columns are read sequentially, one after the other (at the top of [Fig. 18]), and in the case where the reading of the columns is done in a cyclic and interleaved manner (at the bottom of [Fig. 18]). More particularly, during the interleaved reading of the columns, the N conversion cycles of each column are interleaved in a cyclic manner with the N conversion cycles of each of the other columns.
[0338] In [Fig. 18], at the top, the Coll column is read first by the converter. This reading corresponds to N cycles C[n], referenced Cl[n] in [Fig.18], each cycle Cl[n] starting with a period S1 corresponding to the sampling of the output signal of the Coll column. Then the Col2 column is read second by the same converter. This second reading corresponds to N cycles C[n], referenced C2[n] in [Fig. 18], each cycle C2[n] starting with a period S2 corresponding to the sampling of the output signal of the Col2 column. Finally, the Col3 column is read last by the converter. This last reading corresponds to N cycles C[n], referenced C3[n] in [Fig. 18], each cycle C3[n] starting with a period S3 corresponding to the sampling of the output signal of the Col3 column.
[0339] In [Fig. 18], at the bottom, the N read cycles of each column are interleaved in a cyclic and overlapping manner with the N read cycles of each other column. For example, the converter successively implements a cycle Cl[n], then a cycle C2[n] then a cycle C3[n] and repeats this pattern N times. During each cycle Cl[n], the period S2 of the cycle C2[n] is implemented so that, as soon as the cycle Cl[n] ends, the period S2 is finished. During each cycle C2[n], the period S3 of the cycle C3[n] is implemented so that, as soon as the cycle C2[n] ends, the period S3 is finished. Finally, during each cycle C3[n], the period S3 of the cycle Cl[n+1] is implemented so that, as soon as the cycle C3[n] ends, the period S3 is finished.
[0340] As a result, the total time required for the converter to read the 3 columns is lower in the case where the N conversion cycles of each column are interleaved in a cyclic and overlapping manner with the N conversion cycles of each other column, than in the case where the N reading cycles of each column are implemented successively for each column and the columns are read one after the other, without reducing the sampling times S1, S2, S3 of the output values of the columns Coll, Col2, Col3. This results from the fact that, when the N conversion cycles of each column are interleaved in a cyclic and overlapping manner with the N conversion cycles of each other column according to a pattern repeated N times, the sampling of the conversion cycle corresponding to the column is implemented during the previous conversion cycle which corresponds to another column.
[0341] To implement the operation described above, a sampling circuit TSample with T inputs and one output is provided in the hardware implementation of the converter to be manufactured, with T the number of columns associated with the converter. The sampling circuit is configured to cyclically and periodically sample the T columns one after the other. Furthermore, each time the output of the sampling circuit provides a sampled signal corresponding to a column, the sampling circuit implements the sampling of another column. Thus, while the encoder of the converter receives and processes the sampled signal available on the output of the sampling circuit and corresponding to one of the T columns, the sampling circuit is sampling another of the T columns. In an implementation based on sampling capacities, unlike the solution presented at the top of [Fig.18] in which there is a single sampling capacity at the input of the converter, the proposed interleaved solution however implies the presence of T sampling capacities in order to manage the overlaps.
[0342] The conversion of the output signals of T columns, when a conversion is carried out in N cycles, is carried out in T*N cycles C[n], with n an index ranging from 1 to T*N. At each cycle C[n], the quantized outputs Bkd of each cell Cellk are memorized at each update of the input vector of one of the K cells of the converter, the update of each cell being carried out for example from left to right, and all of the memorized outputs are supplied to the decoder at the end of the cycle C[n] in the form of a corresponding vector Z[n]. In other words, at each start of intracycle of a cycle C[n], where an intracycle begins when a cell Cellk provides its updated outputs to the next cell Cellk, all the outputs Bkd of the K cells CellK are memorized, and all of these memorizations are provided at the end of cycle C[n] in the form of a vector Z[n] to the decoder.So, this vector Z[n] includes D*K Bkd signals for each intracycle, so D*K*K Bkd signals at the end of cycle C[n]. It is . It is important to note that this notion of intracycle makes it possible to exploit the transient evolution of the BkOd outputs of a given C[n] cycle. In the case where only the Bkld outputs are taken into account, the notion of intracycle has no meaning since all the cells are updated at the same time.
[0343] The decoder model used comprises, for example, T branches 1900 each comprising several simple recurrent neural networks 1902. The first simple recurrent neural network 1902 of each branch 1900 is configured to receive an input vector having the dimension of the vector Z[n], and therefore comprises a weight vector having the dimension of the vector Z[n] plus one (for the feedback signal of the network on itself in the case of simple recurrent networks with a single output). The following networks 1902 of the branch are, for example, similar to the networks SRNN2 and SRNN3 described in relation to [Fig.8].
[0344] The decoder further comprises a demultiplexing circuit Cmux. The circuit Cmux receives each of the vectors T*N vector Z[n]. The circuit Cmux is configured to provide the vectors Z[n] that it receives in an alternating and cyclic manner to each of the T branches 1900. Thus, at cycle C[n] corresponding to one of the T columns, the vector Z[n] obtained at the end of cycle C[n] is provided to the same branch of the T branches 1700 of the filter. Each branch 1900 of the decoder then provides the conversion result of a corresponding column.
[0345] [Fig. 19] illustrates an example of a converter model as described above in the case where T is equal to 3.
[0346] The encoder 1904 comprises K equals 4 cells CellK in this example, and is represented in the form of a block so as not to overload the figure. The converter model comprises a block 1906 (block "TSample" in [Fig. 19]) implementing, in the model, the function of the sampling circuit TSample which will be part of the converter once manufactured. The block Tsample receives the output signals xal, xa2 and xa3 from the T columns Coll, Col2 and Col3. The output vector Z[n] of the encoder, that is to say the vector Z[n] available at the end of each of the T*N cycles C[n], is supplied by the encoder 1904 to the filter, or decoder, 1908.
[0347] The filter 1908 comprises the T=3 branches 1900 of cascaded networks 1902. For example, each branch comprises K=4 cascaded networks 1902. Optionally, each branch 1900 comprises a normalization layer 1910 (block "NORM" in [Fig. 19]) connected to the last network 1902 of the branch. The decoder 1908 comprises a block 1912 (block "Cmux" in [Fig.19]) putting, in the model, the function of the Cmux circuit which will be part of the converter once manufactured.
[0348] Each branch provides a digital signal corresponding to the conversion of the signal of one of the T columns. For example, a first branch 1900 provides a signal xql corresponding to the conversion of the signal xal, a second branch provides a signal xq2 corresponding to the conversion of the signal xa2, and a third branch provides a signal xq3 corresponding to the conversion of the signal xal.
[0349] For example, by training a converter model of the type of that of [Fig. 19] in which: the modulator includes K equals four cells Cellk, N is equal to T*40, T is equal to 3, D is equal to 2, data augmentation layers are provided and introduce Gaussian random noise with standard deviation equal to 0.25* 103, the value ranges of the training input data, simulation input data and internal signals of the modulator are the same as those defined for the previous examples, the demodulator corresponds to the 1908 decoder described in relation to [Fig.l]9, and in which the training is implemented in the following way: the training is focused on quantization with q included belonging to the range from 10 to 20, the cost function used is the Fcost2 function, the inventors obtained a model of a trained converter operating with the multiplexing on its input described above with T equal to 3, with a unit weight for the quantized weights equal to 1.18889*106 for q equal to 20.
[0350] For each column, the conversion performance by the driven converter, for example evaluated with the MAXresol metric, is similar to that obtained by providing an independent converter per column implementing a conversion in N cycles.
[0351] This example of training an analog-to-information converter demonstrates the benefit of the generic encoder model proposed here, as well as the proposed converter design method. In particular, this example shows that it is possible to train the generic encoder model together with a filter model in the form of neural networks, or, in other words, a filter modeled by neural networks, so as to implement an analog-to-information conversion function. Without the method proposed here, and in particular without the generic encoder model proposed here, there is no method for determining and sizing a converter topology for implementing the same multiplexing / demultiplexing between several channels, where the sampling is alternated cyclically and periodically between the channels.
[0352] Another example of implementation of the method of [Fig.9] described previously will now be described.
[0353] In this other example, the converter to be manufactured is of the type described in the previous example, that is to say with alternating, cyclic and periodic multiplexing of T channels to be converted at the input of the converter encoder, and alternating, cyclic and periodic demultiplexing of output vector Z[n] of the encoder to T branches of the decoder, the multiplexing and demultiplexing being updated at the start of each of the T*N conversion cycles C[n]. However, it is proposed here in addition to provide R weight matrices WMi for the encoder model, with i ranging from 1 to R, and, optionally, V weight matrices WEj for the decoder, with j ranging from 1 to V. In this example, R and V are equal to T. An additional function SEL is added to the converter model.This function is configured to select which of the WMi matrices, and, when optional WEj matrices are provided, which of the WEj matrices should be used at each of the T*N C[n] cycles, based on the analysis of several Z[n] vectors provided by the encoder during the previous C[n] cycles and on the knowledge of the index n of the current C[n] cycle. This SEL function, corresponding to an attention mechanism, is, for example, added to the model in the form of a neural network. Preferably, during training, a regularization is applied to the weights of the WMi matrices to force these different WMi weight matrices to have a certain weight rate in common. Indeed, this allows for a more compact hardware implementation. A similar regularization can be provided for the different WEj weight matrices.
[0354] An example of such a converter model is illustrated, in a very schematic and functional manner, in [Fig.20], in the case where R and V are equal to 3, and where T is equal to 3.
[0355] As seen in [Fig.20], the encoder model 1904 includes the R = 3 weight matrices WMI, WM2 and WM3, and, in this example, the decoder model 1908 includes the V = 3 weight matrices WE1, WE2 and WE3. A block 2000 ("SEL" in [Fig.20]) receives the output vectors Z[n] from the encoder 1904, and the index n of the current cycle C[n]. This block 2000 then determines, on the basis of several vectors Z[n] received during the cycles C[n] preceding the current cycle C[n], which of the weight matrices WMI, WM2 and WM3 must be used at the level of the encoder 1904 for the current cycle C[n], and, when V matrices WEj are provided for the decoder, which of the weight matrices WE1, WE2 and WE3 must be used at the level of the decoder for this current cycle C[n]. The SEL function indicates to the encoder 1904 the matrix WMi selected for the current cycle, and to the decoder 1908 the matrix WEj selected for this current cycle, via two respective signals cmdl and cmd2.
[0356] To implement in hardware the model of [Fig.20] after having trained the latter, each weight in common between the three matrices WMI, WM2, WM3 can be implemented by a single corresponding circuit, for example a single Cpos or Cneg circuit, and when a weight is different according to the matrix WMI, WM2, WM3 considered, each different value of this weight is implemented by a corresponding dedicated circuit, and this circuit is selected (or activated or connected in a corresponding data path) when the WMi matrix to which it belongs is selected by the circuit 2000, and deselected (or deactivated or disconnected from the corresponding data path) when another WMi matrix is selected by the circuit 2000. As an example, the circuit 2000 can be implemented by a digital circuit adapted to implement the trained neural network corresponding to the SEL function. As an example, a regularization function can be used in order to favor a limited difference between the R WMi matrices.
[0357] In an alternative embodiment not illustrated, only the R WMi matrices of the encoder 1904 and the SEL function are provided, the decoder 1908 being modeled by a single weight matrix, identical for all the conversion cycles.
[0358] In another example, not illustrated, of implementation of the method of [Fig.9] described previously, it is proposed to modify the matrix WM of weights of the encoder and that WE of the weights of the decoder as a function of the current index n of the conversion, in a manner similar to that described in patent application EP 3259847.
[0359] Thus, two pairs WMI, WE1 and WM2, WE2 of weight matrices of the encoder and the decoder are provided.
[0360] A value of the index n of the cycle C[n] at which the matrix pair WMI, WE1 is replaced by the matrix pair WM2, WE2 is learned during supervised deep training. For example, using a converter topology of the type defined by [Math 19], a constraint is applied to the matrices WMI and WM2 so that the weights of the matrix WMI corresponding to the unquantized and delayed loopback paths of the Cellk by one cycle are forced to 1, that is to say so that the weights Wal 11, Wa221, and Wa331 are forced to 1 in the example of the matrix [Math 19], and that these same weights are forced to a value greater than 1 in the matrix WM2. Furthermore, preferably, a regularization or constraint is applied to the other weights of these two matrices WMI and WM2 so that they are the same in both matrices, so as to reduce the complexity and the area of the converter that will be manufactured from the trained model.
[0361] Another example of implementation of the method of [Fig.9] described previously will now be described.
[0362] In this other example, the converter to be manufactured is no longer intended to convert analog signals into digital signals, but is intended to extract one or more latent parameters from an analog input signal. In other words, in this example, the converter to be manufactured is an analog-to-information converter, and not a so-called standard analog-to-digital converter, in the sense that this converter is no longer limited to a static input signal and / or this converter no longer provides the digitized image of the input signal.
[0363] This example will be described in the case of a sinusoidal analog input signal xa, from which we want to extract latent parameters.
[0364] More specifically, the sampled signal xa is expressed in the form x[n] = 0.5*(A*sin(2*n*F*n + q>) + C), with n ranging from 1 to N. The latent parameters to be extracted are, in this example: - the amplitude A distributed uniformly over an interval [-0.4; 0.4] for training and [-0.35; 0.35] for simulations during testing; - the frequency F expressed as follows: [Math 24] F — ---------!_________with H a parameter uniformly distributed on an in- H*(N-Prnin)-^^^) interval [-0.45; 0.45] for training and [-0.43; 0.43] for simulations during testing, Pmin for example equal to 4 and Pmax for example equal to N; - the continuous component C distributed uniformly over an interval [-0.4; 0.4] for training and [-0.35; 0.35] for simulations during testing; and - the phase q> expressed as follows: [Math 25] (p = arccos(2X) with X a uniformly distributed parameter over an interval [-0.45; 0.45] for training and [-0.43; 0.43] for simulations during testing.
[0365] The converter model comprises J encoders ENCj each comprising K cells Cellk, i.e. J encoders such as those described previously, J being an integer strictly greater than 1 and j being an index ranging from 1 to J. Each of the J encoders receives as input, at each cycle C[n], a corresponding analog sample x[n].
[0366] At each cycle C[n], each encoder provides a vector Zj[n] comprising the outputs Bkl of each of the K cells Cellk of this encoder, these vectors Zj[n] being concatenated to form a vector V[n] comprising J*K elements.
[0367] The converter model comprises a decoder or filter receiving the vectors V[n] from the encoder consisting of the J encoders of K cells Cellk.
[0368] The decoder comprises E CONVe convolution layers, with E an integer equal to the number of latent parameters sought, and e an integer ranging from 1 to E. At each cycle C[n], each CONVe layer performs O convolutions on the last 1 successive vectors V[n] received, for example on 1=4 vectors V[n], with O a non-zero integer. In other words, each CONVe layer performs O convolutions on the time axis of the vectors V[n] with a depth of 1 cycles C[n]. Of course, the person skilled in the art will have understood that each CONVe layer is then adapted to memorize (or store) 1-1 successive vectors V[n], so as to be able to implement each of the O convolutions on 1 successive vectors V[n]. At each cycle C[n], each CONVe layer provides a vector Ve[n] comprising the result of the O convolutions made by the CONVe layer at this cycle. These O convolutions are made from O convolution kernels learned and independent of each other within the same layer and between the E layers.
[0369] The decoder further comprises E FILTERe filters. Each FILTERe filter receives the vector Ve[n] from a corresponding CONVe layer.
[0370] For example, each FILTERe filter comprises a cascade of simple recurrent neural networks, i.e. simple recurrent neural networks connected one after the other, preferably ending with a normalization layer (or stage).
[0371] For example, each FILTERe filter comprises at least four, for example five, simple recurrent neural networks.
[0372] Preferably, in each FILTERe filter a stage introducing non-linearities is interposed between the output of the third simple recurrent neural network and the input of the fourth simple recurrent neural network. The purpose of this non-linearity is to facilitate the estimation of the spectral content of the signal in each band, independently of the power of the signal, so as to facilitate the extraction of the parameter F. For example, the non-linearity stage is configured to calculate the square of each output value of the third simple recurrent neural network, to apply an L2 normalization to the squared values thus calculated (for example by dividing the sum of the squared values of the training batch), and to calculate the square root of these normalized values.
[0373] Each FILTERe filter is configured to provide one of the latent parameters sought.
[0374] [Fig.21] illustrates, schematically and in the form of blocks, an example of such a converter model, in the case where J is equal to 8, and E is equal to 4.
[0375] In this example, the converter model therefore includes: - a modulator 2100 comprising J encoders ENCj (ENC1, ENC2, ..., ENC8 in [Fig.21]); and - a 2102 filter comprising: a CONCAT block configured to implement the concatenation of J vectors Z[n] to provide the vector V[n], E convolution layers CONVe (CONV1, CONV2, CONV3, CONV4 in [Fig.21]), each implementing O convolutions of depth for example equal to 4 on the time axis, and E FILTERe filters (FILTER1, FILTER2, FILTER3, FILTER4 in [Fig.21]).
[0376] At each cycle C[n]: - each of the J encoders ENC1, ENC2, ..ENC8 receives the sampled analog signal x[n], and provides a corresponding vector respectively Zl[n], Z2[n], .. Z8[n], - the CONCAT block provides the vector V[n] from the J vector Zi[n], - each of the layers CONV1, CONV2, CONV3, CONV4 receives the vector V[n], performs O convolution on this vector and the 1-1 previous vectors, and provides the respective vector VI[n], V2[n], V3[n] and V4[n] comprising the result of the O convolutions; - each of the filters FILTER1, FILTER2, FILTER3 and FILTER4 receives the vector VI [n], V2[n], V3[n] and V4[n] respectively; and - at the Nth cycle C[n], i.e. at the end of the conversion, the output of the filter FILTER1 provides the amplitude A of the converter input signal, the output of the filter FILTER2 provides the frequency F of the converter input signal, the output of the filter FILTER3 provides the DC component C of the converter input signal, and the output of the filter FILTER4 provides the value of the parameter X from which the phase q> of the converter input signal can be calculated.
[0377] The model proposed in [Fig.21] was trained with: - training focused on quantification, - N equal to 120, - a learning strategy consisting of learning the quantization step in the first encoder ENC1 only and applying the same learned quantization step to the other encoders of the modulator 1200, which makes it possible to limit the influence of variations in the values of the capacities resulting from manufacturing variations in the converter which will be manufactured and to simplify the implementation of the weights by having a unit capacity value common to all the encoders ENCj, - the use of the cost function Fcost2 adapted to the present case, and - adding layers introducing temporal noise on the output of each Cellk cell of each ENCj encoder.
[0378] Figures 22, 23, 24 and 25 illustrate the evolution of the values provided by the trained converter for the respective parameters A, F, C and X (ordinate axes) as a function of the respective expected values Atrue, Ftrue, Ctrue and Xtrue (abscissa axes) of these parameters.
[0379] It should be noted that the conversion accuracy could be increased by increasing the value of the parameter J and / or the depth of the E*O convolutions on the time axis and / or the number of simple recurrent neural networks cascaded in each FILTERe filter.
[0380] The above example shows that it is possible, from the generic model of K-cell-based encoder Cellk, to build an encoder model and train it by supervised deep learning, so as to implement a given analog-to-information conversion. This converter can then be manufactured, for example by implementing each encoder of the trained converter model in the manner described in relation to figures 10 and 11 or 12 to 16, and by implementing the trained model of the decoder filter in software and / or in hardware, for example at least in part with a digital circuit adapted to implement a neural network.
[0381] Obtaining such a converter would not be possible with usual design methods.
[0382] As a variant, it could be provided that each cell Cellk of the encoder ENCj has access to the outputs of the cells of another encoder. This would amount to increasing the dimension of the weight vector associated with the input of each cell Cellk so as to be able to receive the outputs Akd or Bkd of at least one cell of another encoder. Regularization functions or constraints would, for example, be applied to avoid having too many unaffected weights. The exchange of data between several cells would enrich the overall expressiveness of the network. In this proposed variant, the updating of the outputs of the cells Cellk can, for example, be carried out from left to right within each encoder.In summary, we would have groups of cells forming an encoder which can exchange signals with other groups of cells forming another encoder, with an order of updating the AkO and BkO outputs common between the different encoders or specific to each encoder.
[0383] Although an example of an analog-to-information converter has been described here, other examples of analog-to-information converters can be designed using the proposed generic encoder model and the proposed design method. In particular, the person skilled in the art will be able to adapt the modeling of the filter in the form of neural networks to the functionality sought for the converter that he is designing.
[0384] Various embodiments and variations have been described. Those skilled in the art will understand that certain features of these various embodiments and variations could be combined, and other variations will occur to those skilled in the art.
[0385] In particular, the examples of regularizations, constraints and learning strategies are not limited to those described above for illustrative purposes. The person skilled in the art will be able to provide other constraints, for example determined by the material and / or functional properties of the converter to be manufactured, other regularizations, for example determined by the material properties material and / or functional properties of the converter to be manufactured, and other learning strategies, for example determined by the material and / or functional properties of the converter to be manufactured. For example, the person skilled in the art may rely on at least one of the following techniques allowing the exploration of topologies of a network with different learning or training strategies: - knowledge distillation: consists of training a neural network to behave like another neural network, which, applied to the present description, amounts to training a converter to behave like another converter; - noise to noise ("Noise2Noise" in English): consists of training a network to convert a noisy signal by calculating the cost function not from the network's output data, but from noisy data obtained from output data to which noise has been added (for example with data augmentation layers at the network's output); - contrastive learning: close input data (or data having a particular relationship at the network input) leads to close output data (or data having a particular relationship at the network output; - Neural Architecture Search (NAS): consists of an automatic search for architecture by progressively making a simple initial topology more complex.
[0386] Furthermore, the person skilled in the art will be able to provide other functionalities for a converter to be manufactured than those which have been described by way of example, and will be able to adapt the filter model to be connected following the generic encoder model as a function of these targeted functionalities, that is to say, for example, adapt the modeling of the filter in the form of neural networks as a function of the targeted functionality in the converter to be manufactured.
[0387] Furthermore, the examples of values given as examples, for example for the parameters Ak, X, for the standard deviation of the Gaussian noise of the data augmentation layers, the parameter K, the parameter D, the parameter N, the parameter q, etc., may be modified by the person skilled in the art, for example on the basis of the material and / or functional property of the converter that he seeks to design with the generic model and the method proposed, for example by implementing the described method several times and successively, and by modifying certain parameters at each new implementation, depending on the converter that he seeks to design.
[0388] Finally, the practical implementation of the described embodiments and variants is within the reach of those skilled in the art from the functional indications given above. In particular, although this has not been described, the filter models (i.e. decoder), once trained, can be implemented by bare circuits and / or computer programs suitable for implementing neural networks. Indeed, the data received by the filters described are quantified data that can easily be represented by digital data that can be processed by software and / or by a digital circuit.
Claims
Claims
1. Method for designing a sigma delta type converter comprising a supervised deep learning step applied to a converter model, wherein: the converter model comprises at least one recurrent encoder and at least one recurrent decoder; each recurrent encoder is based on a generic model comprising a succession of K identical generic cells Cellk, with K an integer parameter and greater than or equal to 1 and k an integer index ranging from 1 to K; the converter operates at an oversampling rate N, with N an integer greater than or equal to 1; each conversion by the converter comprises N cycles C[n], with n an integer index ranging from 1 to N;each cell Cellk of the generic model is a recurrent neural network which, at each cycle C[n], calculates a product of an input vector X[n] by a weight vector Wk of the cell Cellk and provides an output vector Qk[n] comprising D pairs of outputs Akd[n] and Bkd[n], with: - D integer greater than or equal to 1 and d an integer index ranging from 0 to Dl, - Akd[n] the result of the product calculated by the cell Cellk delayed by d cycles, - Bkd[n] a quantification of the result of the product calculated by the cell Cellk delayed by d cycles; and at the beginning of each cycle C[n], the vector X[n] is the same for all the cells Cellk and comprises, for example is equal to, the concatenation of the K vectors Qk[n] and a sample x[n], for the cycle C[n], of a signal x to be converted, and in which the sigma-delta converter is obtained by manufacturing an electronic circuit corresponding to the model obtained after training.;
2. The method of claim 1, wherein each recurrent encoder models a sigma-delta modulator of the converter and each recurrent decoder models a filter of the converter.
3. Method according to claim 1 or 2, wherein each recurrent decoder is based on one or more successions of simple recurrent neural networks (SRNN1, SRNN2, SRNN3.
4. Method according to any one of claims 1 to 3, wherein at least one constraint determined by a material property or by a functional property of the converter to be manufactured is applied to the converter model, preferably to each encoder.
5. Method according to claim 4, wherein said at least one constraint comprises: a constraint determined by a maximum dynamic at the output of one of the K cells Cellk and corresponds to an addition of a cut-off layer at the output of said cell Cellk; and / or a constraint determined by a robustness to temporal non-idealities and corresponds to an addition on an internal node of the encoder of a data augmentation layer modeling a Gaussian random noise; and / or a constraint determined by a dimensioning of circuits implementing weights of the encoder and corresponds to a training focused on quantization; and / or a constraint determined by a surface of the converter to be manufactured and corresponds to a masking of weights of the encoder; and / or a constraint determined by a topology of the converter to be manufactured and corresponds to a masking of weights of the encoder;and / or a constraint determined by a surface of the converter and corresponds to a weight cutoff technique of the encoder.;
6. A method according to any one of claims 1 to 5, wherein at least one regularization determined by a material property or by a functional property of the converter is applied to the converter model.
7. Method according to claim 6, wherein: a regularization is determined by a surface of the converter to be manufactured and corresponds to an L1 regularization applied to the weights of the encoder; and / or a regularization is determined by an attenuation of internal signals and corresponds to a penalty when a weight of a loopback path of a cell Cellk is less than 1.
8. A method according to any one of claims 1 to 7, wherein a cost function used for training comprises a term determined by a regularization function determined by saturation conditions of the converter.
9. A method according to claim 7, wherein the cost function includes a term determined by a fidelity function of the logarithm type of the sum of the exponentials of the differences.
10. A method according to any one of claims 1 to 9, wherein manufacturing the converter comprises implementing each non-zero weight of the encoder model driven by a capacitive circuit (Cpos, Cneg) having a capacitance (C) a value of which is determined by said weight.
11. A method according to any one of claims 1 to 9, wherein fabricating the converter comprises implementing each non-zero weight of the encoder model driven by a resistive circuit (Rw) having a resistance (R) a value of which is determined by said weight.
12. A method according to any one of claims 1 to 11, wherein the training is quantization-oriented.
13. A method according to any one of claims 1 to 12, wherein the decoder is determined by a functionality of the converter to be manufactured.
14. Method according to any one of claims 1 to 13, wherein the converter to be manufactured implements cyclic and alternating sampling of several input channels (Coll, Col2, Col3) of the converter.
Citation Information
Patent Citations
High-linearity sigma-delta converter
EP3259847A1
System and method using neural networks for analog-to-information processors
US10970441B1
Analog-to-digital converters employing continuous-time chaotic internal circuits to maximize resolution-bandwidth product—CT TurboADC
US11394391B2