Sequential bit-order binary weighted multiplier-accumulator

By sequentially performing binary-weighted digital-to-analog conversion and converting analog outputs to digital bit values, the method addresses the resource and space challenges of conventional vector-matrix multiplication, achieving faster and more efficient computations.

JP7779831B2Active Publication Date: 2025-12-03APPLIED MATERIALS INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2022518260
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-19
Filing Date
2020-09-23
Publication Date
2025-12-03
Estimated Expiration
2040-09-23

AI Technical Summary

Technical Problem

Conventional vector-matrix multiplication operations require significant processing resources and space, and implementing them digitally consumes a large number of clock cycles.

Method used

A method and apparatus for performing successive binary-weighted digital-to-analog conversion by sequentially performing vector-matrix multiplication operations, converting analog outputs to digital bit values, and using a sequential binary-weighted analog-to-digital converter to generate digital outputs.

Benefits of technology

This approach reduces the number of clock cycles required for vector-matrix multiplication, achieves faster computations, and requires less area compared to conventional analog implementations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007779831000013
    Figure 0007779831000013
  • Figure 0007779831000014
    Figure 0007779831000014
  • Figure 0007779831000015
    Figure 0007779831000015
Patent Text Reader

Abstract

Various mechanisms for performing sequential vector-matrix multiplication may include sequentially performing a first vector-matrix multiplication for each bit order of values ​​in an input vector. The first vector-matrix multiplication operation for each bit order may generate an analog output. Each analog output generated by the vector-matrix multiplication may be converted to one or more digital bit values, and the one or more digital bit values ​​may be sent to a second vector-matrix multiplication operation.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Application No. 62 / 907,419, filed September 27, 2019, and U.S. Patent Application No. 16 / 688,782, filed November 19, 2019, both of which are incorporated by reference in their entirety for all purposes.

[0002] This disclosure relates generally to vector-matrix multiplication circuits for multiplier-accumulator operations. Specifically, this disclosure is directed to circuits that perform successive vector-matrix multiplication operations from analog results to sequentially generate digital outputs. [Background technology]

[0003] A vector-matrix multiplication operation may be defined as the sum of products of a vector and a matrix. Specifically, Equation 1 may be used to define a vector-matrix multiplication operation in which products are summed. TIFF0007779831000001.tif16170

[0004] In Equation 1, X i is an input vector consisting of values ​​(which can be represented using binary bits in an electronic environment), and W ij represents the weight values ​​of the matrix. Y is the output vector obtained by summing the product vectors. This function finds use in a variety of signal processing, image processing, and artificial intelligence applications, such as using neural networks.

[0005] Implementing this equation digitally consumes a significant amount of processing resources and / or processing energy. Traditional analog components or hybrid digital-analog components may require a relatively large number of clock cycles and / or a relatively large area of ​​space to implement. Summary of the Invention

[0006] In some embodiments, a method for performing successive binary-weighted digital-to-analog conversion may include sequentially performing a first vector-matrix multiplication operation for each bit order of values ​​in an input vector, the first vector-matrix multiplication operation generating an analog output. The method may also include converting each analog output generated by the vector-matrix multiplication to one or more digital bit values ​​before passing the converted analog output to a second vector-matrix multiplication operation.

[0007] In some embodiments, the vector-matrix multiplier circuit may include multiple digital inputs, each of which may receive input values ​​of a binary-encoded input vector. The circuit may also include a vector-matrix multiplier circuit that performs a binary-encoded vector multiplication operation one bit order at a time using the binary-encoded input values. The circuit may further include a sequential binary-weighted analog-to-digital converter that sequentially receives analog outputs from the vector-matrix multiplier circuit and sequentially converts each of the analog outputs to one or more digital bit values.

[0008] In some embodiments, an apparatus for performing vector-matrix multiplication may include means for receiving a plurality of digital inputs, each of which may receive an input value of a binary-encoded input vector. The apparatus may also include means for sequentially performing vector-matrix multiplication operations for each bit order of the plurality of input vector values, which may produce an analog output. The apparatus may further include means for converting each of the analog outputs to one or more digital bit values.

[0009] In any embodiment, any or all of the following features may be included, without limitation, in any combination: the first vector-matrix multiplication operation may be performed starting with a most significant bit (MSB) of each of the values ​​in the input vector and ending with a least significant bit (LSB) of each of the values ​​in the input vector; converting the analog output to one or more digital bit values ​​may include comparing the analog output to a reference signal, and a first digital bit value of the one or more digital bit values ​​may represent a logic 1 when the analog output is greater than the reference signal and a logic 0 when the analog output is less than the reference signal; converting the analog output to one or more digital bit values ​​may further include adjusting the reference signal when the first digital bit value represents a logic 1; the analog output may correspond to an MSB of each of the values ​​in the input vector, and the one or more digital bit values ​​may include the first digital bit value without a carry-over bit. Converting the analog output to one or more digital bit values ​​may further include comparing the analog output to the reference signal after adjusting the reference signal, where a second digital bit value of the one or more digital bit values ​​may represent a logic 1 when the analog output is greater than the reference signal and a logic 0 when the analog output is less than the reference signal. The first digital bit value may represent a value corresponding to the current analog output, and the second digital bit value may represent a carryover value added to the value corresponding to the previous analog output. Converting the analog output to one or more digital bit values ​​may further include maintaining the reference signal when the first digital bit value represents a logic 0. Converting the analog output to one or more digital bit values ​​may further include comparing the analog output to the reference signal after adjusting the reference signal, where a second digital bit value of the one or more digital bit values ​​may represent a logic 1 when the analog output is greater than the reference signal and a logic 0 when the analog output is less than the reference signal. There may be a two-cycle delay between converting the analog output to one or more digital bit values ​​and sending the one or more digital bit values ​​to the second vector-matrix multiplication operation.The sequential binary-weighted analog-to-digital converter may also include a charge integrated circuit having a capacitor for storing charge on each of the analog outputs. The vector-matrix multiplier circuit may also pass an indication of the current bit order. The vector-matrix multiplier circuit may also include a multiplexer that routes one or more digital bit values ​​to one of a plurality of registers, and the indication of the current bit order may control the multiplexer. The sequential binary-weighted analog-to-digital converter may also include a plurality of binary-weighted switches and capacitors that respectively store various analog outputs. The circuit / apparatus may further include a sequential binary-weighted analog-to-digital converter that sequentially receives analog outputs from the means for sequentially performing vector-matrix multiplication operations and sequentially converts each analog output to at least one digital bit value. The apparatus may also include means for converting a plurality of digital inputs to a plurality of analog signals that are input to the means for sequentially performing vector-matrix multiplication operations. The apparatus may also include a voltage reference to which the analog output is compared. The apparatus may also include means for comparing a voltage reference to the analog output.

[0010] The nature and advantages of various embodiments may be further understood by reference to the following figures. In the accompanying figures, similar components or features may have the same reference label. Furthermore, various components of the same type may be identified by a dash following the reference label and a second label that distinguishes between the similar components. When only a first reference label is used herein, the description applies to all of the similar components having the same first reference label, regardless of the second reference label. [Brief explanation of the drawings]

[0011] [Figure 1] FIG. 1 illustrates an embodiment of a vector-matrix multiplier circuit in which vector multiplication is performed on bit-order binary values ​​using analog components. [Figure 2]FIG. 1 illustrates an embodiment of an analog vector-matrix multiplier. [Figure 3] FIG. 1 illustrates an embodiment of an analog summing circuit. [Figure 4] FIG. 1 illustrates one embodiment of a method for performing a vector-matrix multiplication operation. [Figure 5] FIG. 1 illustrates an embodiment of a circuit in which vector multiplication is performed on binary-encoded inputs using analog components. [Figure 6] FIG. 2 illustrates how an input stream of individual bits may be processed by some embodiments to generate a continuous output bitstream. [Figure 7] FIG. 1 illustrates a particular process for generating a sequential binary-weighted digital output, according to some embodiments. [Figure 8] FIG. 1 illustrates a particular process for generating a sequential binary-weighted digital output, according to some embodiments. [Figure 9] FIG. 10 illustrates an alternative process for generating a sequential binary-weighted digital output, according to some embodiments. [Figure 10] FIG. 1 illustrates a pipeline of sequential MAC operations that may be performed in a sequentially layered manner, with bits processed individually between each layer, according to some embodiments. [Figure 11] 1 is a flow diagram of a method for performing successive binary-weighted digital-to-analog conversion according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0012] The embodiments detailed herein enable multiplier-accumulator (MAC) operations to be performed in less time (e.g., fewer clock cycles) than conventional analog implementations, and do not require decoding of the digital input signal. Rather, input vectors may be received in the form of binary-coded (or "bit-ordered") values. Such values ​​may typically be arranged from LSB to MSB or from MSB to LSB (e.g., "1110" represents a value of 14), multiplied in the analog domain, and then summed in either the analog or digital domain. The mechanisms detailed herein operate directly on analog conversion of the binary-coded values, and do not require conversion of the input vector into a series of pulses (e.g., 14 pulses representing a value of 14). Thus, computations may be performed significantly faster than conventional analog mechanisms. More specifically, the number of operation cycles to perform a vector-matrix multiplication is TIFF0007779831000002.tif13170. In this equation, the additional two cycles indicated in the numerator may vary depending on the implementation. For example, the embodiments detailed herein can perform vector-matrix multiplication on an 8-bit input vector 25.6 times faster compared to conventional analog MAC designs.

[0013] Furthermore, the mechanisms detailed herein may provide significant space savings over conventional analog MAC designs. Using 1-bit digital-to-analog converters (DACs) may require less area than using multi-bit DACs that convert received binary values ​​in parallel. Specifically, multiple 1-bit DACs may be used to convert a binary-encoded input vector into a binary-encoded analog voltage value in parallel. For example, for a 4-bit input vector, it may take four clock cycles (one for the LSB, one for the 2nd LSB, one for the 2nd MSB, and one for the MSB) to output the binary-encoded analog voltage value from the 1-bit DAC. The number of 1-bit DACs may be proportional to the number of input vectors (X in Equation 1). i) can be relied upon.

[0014] The matrix multiplication operation may be performed sequentially for each bit order of the values ​​of the input vector. The parallel outputs of each 1-bit DAC may be input to a weighting element of a vector-matrix multiplier circuit. The vector-matrix multiplier circuit may be implemented by using the weighting elements of Equation 1, X i W is hung ij The vector-matrix multiplier circuit may have various weighting factors corresponding to the matrix. The vector-matrix multiplier circuit may perform a multiplication operation on each bit order of the input vector. Thus, if the input vector contains four-bit long values, the vector-matrix multiplier circuit may perform a multiplication operation on each of the four bits in succession in the time domain. The output from the vector-matrix multiplier circuit may be a continuous signal (e.g., a signal having a current or some other electrical characteristic representing the multiplication result) that is output to a summation circuit.

[0015] The summing circuit may function to perform bit-order weighted summation after the matrix multiplication operations are performed. The summing circuit may function in either the analog or digital domain. The summing circuit may receive signals from the vector matrix multiplication circuit, store the instructions for each matrix multiplication operation with the appropriate bit-order weighting, and perform the summation to determine the output value Y.

[0016] FIG. 1 illustrates one embodiment of a circuit 100 in which vector multiplication is performed on a binary-coded input using analog components. Circuit 100 may include a 1-bit DAC 114, an analog vector-to-matrix multiplier 122, and a summing component 132. Circuit 100 may be understood as being divided into three sections: Section 110 receives and converts a binary-coded digital signal (representing an input vector) into a binary-coded analog signal; Section 120 receives and outputs a binary-coded product representing the multiplication between the binary-coded analog signal and a predetermined matrix (e.g., a weighting matrix); Section 130 performs a bit-order weighted summation to sum the binary-coded products, taking into account the bit-order weighting of the binary-coded signals. Thus, the proper bit order of each bit of the binary-coded input signal is maintained so that they can be properly summed. Section 130 may use analog components to efficiently sum the product outputs of section 120; section 130 may also function in the digital domain.

[0017] Specifically, multiple digital input signals 112 may be received in parallel in section 110. Digital input signals 112 represent binary-coded values, and each digital input signal of digital input signals 112 is represented by a vector X in Equation 1. i1 . The binary bits of the input signal 112 may be represented by a voltage level (e.g., H for 1, L for 0), a pulse (e.g., a pulse for 1 and no pulse for 0), or time (e.g., a pulse in a first period for 1 and a pulse in a second period for 0). As shown, four digital input signals (112-1, 112-2, 112-3, and 112-4) may be received in parallel. Each of these input signals may receive a distinct value of the input vector. In other embodiments, the number of digital input signals may be fewer or more than the number specifically shown in FIG. 1 . Each of the digital input signals 112 may be binary encoded. Thus, for each clock cycle of the digital portion of the circuit, a particular bit order bit may be received as the digital input signal 112. For example, if each digital input signal 112 inputs a four-bit binary value, four clock cycles may be used to receive and convert each bit of the binary value in parallel to the analog domain. The digital input signal 112 may be binary coded such that the bit order of each value is from least significant bit (LSB) to most significant bit (MSB), from MSB to LSB, or in any predetermined pattern.

[0018] The digital input signal 112 may be input to the 1-bit DACs 114. Again, as shown, there are four 1-bit DACs 114 (114-1, 114-2, 114-3, and 114-4). In other embodiments, there may be fewer or more than four 1-bit DACs 114. There may be one 1-bit DAC for each binary-encoded digital input signal 112. Each of the 1-bit DACs 114 may output an analog signal representing the received digital quantity. Thus, the binary-encoded analog signals 116 (116-1, 116-2, 116-3, 116-4) may represent an analog conversion of the digital input signal 112.

[0019] In section 120, an analog vector-matrix multiplier 122 may receive the binary-encoded analog signal 116. The analog vector-matrix multiplier 122 may sequentially perform a multiplication operation for each bit order of the input value (e.g., a multiplication operation for the LSB in the first clock cycle, a multiplication operation for the second LSB in the second clock cycle, a multiplication operation for the second MSB in the third clock cycle, etc.). Thus, a separate multiplication operation may be performed for each received bit order of the binary-encoded analog signal 116. Further details regarding possible embodiments of the analog vector-matrix multiplier 122 are provided below in connection with FIG. 2. The binary-encoded multiplication result signal 124 may be output to a summing component 132.

[0020] The summing component 132 may be understood as performing a bit-order weighted addition functionality. The summing component 132 may perform the addition function by appropriately taking into account the bit order of the bits currently being evaluated by the analog vector-matrix multiplier 122 and storing the output such that the bit order is taken into account. As detailed herein, because the bit order weighting is performed by the summing component 132, the input values ​​may be evaluated by the vector-matrix multiplication circuit while still binary encoded.

[0021] In a possible analog embodiment of the summing circuit, charge accumulation and redistribution may be used to perform passive, bit-order-weighted summation. When a binary-encoded signal is received from the analog vector-matrix multiplier 122, the summing component 132 may accumulate the partial summations using charge accumulation. Once all bit orders (e.g., four bit orders for an input vector with four bit values) have been multiplied by the analog vector-matrix multiplier 122 and the summing component 132 has stored the partial summations, such as using charge accumulation, the charge may be redistributed and a voltage representing the final sum may be output. Further details regarding a possible embodiment of an analog implementation of the summing component 132 are presented below in FIG. 3.

[0022] 2 illustrates an embodiment 200 of an analog vector-matrix multiplier that evaluates one bit order of an analog converted input vector. Analog vector-matrix multiplier 201 may represent an embodiment of analog vector-matrix multiplier 122 of FIG. 1. However, it should be understood that embodiment 200 is merely an example. In FIG. 2, W ij For binary vector input X iThe analog vector-to-matrix multiplier 201 may include multiple weighting elements (202, 204, 206, 208, 210, 212, 214, and 216). Each weighting element may receive one of the binary-encoded analog signals 116 from a 1-bit DAC. In this example, the weighting elements may output a current based on the received voltage of the binary-encoded analog signal and the weight value of the particular weighting element. For example, each weighting element may be implemented using a different conductance. By varying the conductance of the weighting element, the amount of current output can be varied depending on the input voltage. For example, a voltage of 1V and a conductance of the weighting block of 8 μS results in an output of 8 μA. This value may be further weighted based on the bit order of the value. Thus, the multiplier for the least significant bit is 1, the multiplier for the second LSB is 2, and so on. In some embodiments, the weighting value used by each weighting element may be predetermined and fixed in manufacturing. In other embodiments, the weighting of each weighting element may be configurable after manufacture and reconfigurable during use of embodiment 200 .

[0023] The output of each weighting element (202, 204, 206, 208, 210, 212, 214, and 216) may be an electrical characteristic, such as a current. The currents output from weighting elements connected to the same current output may be summed together. Thus, current output 220 may include the sum of the currents output by weighting elements 202, 204, 206, and 208, and current output 222 may include the sum of the currents output by weighting elements 210, 212, 214, and 216.

[0024] The bits of each value of the input vector are evaluated one at a time (the analog vector-matrix multiplier 201 does not take bit order into account). For example, for an input vector having four 4-bit values, the MSB of each value may be evaluated first, followed by the second MSB of each value, followed by the second LSB, and finally the LSB of each value (thus corresponding to four clock cycles of binary-encoded data output by a 1-bit DAC). In other embodiments, the evaluation may proceed from LSB to MSB, or in any other predefined order. As described in more detail later in this document, the output of the analog vector-matrix multiplier 201 may be weighted by a summing circuit to take into account the bit order of the bits on which the multiplication operation is performed by the vector-matrix multiplier.

[0025] The number of columns of the weighting elements may be arbitrary and may be based on a weighting matrix that is multiplied by the input vector. Thus, while the number of columns in embodiment 200 is two, other elements may have fewer or more columns. The number of rows of the weighting elements may correspond to the number of values ​​present in the input vector. For example, Equation 2 may represent the current output by analog vector-matrix multiplier 201: TIFF0007779831000003.tif18170

[0026] Continuing with this example, the current outputs (e.g., current outputs 220, 222) are connected together to generate the binary-encoded multiplication result signal 124. The summing component 132 appropriately weights and stores each bit order, and then sums them to obtain the correct final sum.

[0027] FIG. 3 illustrates one embodiment 300 of an analog summing circuit. It should be understood that various different types of circuits can be used to accumulate and redistribute signals, which may be in the form of voltage, current, charge, or some other electrical property. An important aspect of the analog summing circuit is applying appropriate bit weighting to the received output of the analog vector-matrix multiplier 201. For example, when the analog vector-matrix multiplier 201 outputs an output corresponding to the second LSB of the input vector, the bit weighting applied by the analog summing circuit is twice the weighting of the LSB and half the weighting of the third LSB. The embodiment 300 may represent the summing component 132 of FIG. 1. The input 301 represents the binary-encoded multiplication result signal 124 from the analog vector-matrix multiplier. The input 301 is provided to a sense amplifier 310. The sense amplifier 310 outputs a voltage based on the current received by the input 301. Specifically, the embodiment 300 may use passive charge sharing and redistribution. Such a mechanism may help reduce power consumption and reduce the effects of thermal noise on the output value.

[0028] The embodiment 300 includes a capacitor-switch array 302. The capacitors may be bit-order weighted, meaning that the capacitance of each capacitor may be selected to passively store an amount of charge weighted for a particular bit order. As an example, there are four capacitors to output a 4-bit value. Capacitor 316-1 may be used to store a charge corresponding to the LSB. Therefore, capacitor 316-1 may have a capacitance of C (C is unity). Capacitor 316-2 may be used to store a charge corresponding to the second LSB. Therefore, capacitor 316-2 may have a capacitance of 2C (corresponding to the second LSB in the binary bit order and therefore representing twice the weight of C). Capacitor 316-3 may be used to store a charge corresponding to the second MSB. Therefore, capacitor 316-3 may have a capacitance of 4C. Capacitor 316-4 may be used to store a charge corresponding to the MSB. Thus, capacitor 316-4 may have a capacitance of 8C. The capacitance of each capacitor corresponds to the bit order used to store the charge representing the output of the analog vector-matrix multiplier. The capacitance may be calculated by the following Equation 3, where C is unity and N is the number of bits in the value of the input vector: Capacitance = 2 N-1 C formula 3

[0029] Switch control logic 330, which may be digital and connected to the same clock as section 110, can control the opening and closing of switches 312, 314-1, 314-2, 314-3, 314-4, and 314-5. For simplicity, communication between the switch control logic and switches 312 and 314 is not shown in FIG. 3. Switch control logic 330 may be a dedicated logic circuit or may be incorporated as part of the processing system. Switch control logic 330 may initially close switches 314-1, 314-2, 314-3, 314-4, and 314-5 while switch 312 is open. Switch 314-5 may act as a reset, discharging any charge present on capacitors 316-1, 316-2, 316-3, and 316-4 to ground 320.

[0030] The switch control logic 330 may then control the switches to connect a capacitor having a capacitance associated with the current bit order being evaluated by the analog vector-matrix multiplier 122 to the binary-encoded multiplication result signal 124. The switch control logic 330 may close switch 312 and open switches 314-2, 314-3, 314-4, and 314-5. Thus, only switch 314-1 may remain closed, thereby connecting capacitor 316-1 to the output of the sense amplifier 310. During this clock cycle, the analog vector-matrix multiplier 122 may output a binary-encoded multiplication result signal corresponding to the LSB. For the next clock cycle, the switch control logic 330 keeps switch 312 closed, opens switch 314-1, and closes switch 314-2. During this clock cycle, the analog vector-matrix multiplier 122 may output a binary-encoded multiplication result signal corresponding to the second LSB. The appropriate bit weighting is passively applied by capacitor 316-2, which has twice the capacitance of capacitor 316-1, depending on the amount of charge stored therein. For the next clock cycle, switch control logic 330 keeps switch 312 closed, opens switch 314-2, and closes switch 314-3. During this clock cycle, the analog vector-matrix multiplier 122 may output a binary-encoded multiplication result signal corresponding to the second MSB. The appropriate bit weighting is passively applied by capacitor 316-3, which has twice the capacitance of capacitor 316-2, depending on the amount of charge stored therein. For the next clock cycle, switch control logic 330 keeps switch 312 closed, opens switch 314-3, and closes switch 314-4. During this clock cycle, the analog vector-matrix multiplier 122 may output a binary-encoded multiplication result signal corresponding to the second MSB. Capacitor 316-4, which has twice the capacitance of capacitor 316-3, passively applies the appropriate bit weighting depending on the amount of charge stored.In this stage, the switched capacitor-switch array 302 stores the binary-encoded multiplication results separately as charges on bit-order weighted capacitors.

[0031] At this point, each of capacitors 316-1, 216-2, 316-3, and 316-4 stores an amount of charge (Q) corresponding to the particular bit order of the capacitor. The amount of charge stored in a particular capacitor for a given bit order N may be defined by Equation 4: Q=2 N-1 *C*V formula 4

[0032] Thus, the amount of charge is equal to the capacitance of the capacitor multiplied by the voltage output by the sense amplifier 310. As detailed in relation to Equation 3, the capacitance increases by 2 for each higher bit order. N-1 is increased by a factor of

[0033] During the next clock cycle, switch control logic 330 may open switch 312, leave switch 314-5 open, and close switches 314-1, 314-2, 314-3, and 314-4. This step may be understood as a charge redistribution step. As each capacitor stores an amount of charge corresponding to its bit order during the redistribution stage, the charge on each capacitor is distributed among capacitors 316-1, 316-2, 316-3, and 316-3 to represent the final sum. Once the redistribution occurs, the sum is represented as a voltage value at the top plate of capacitor 316, which is output by sum output 134. Equation 5 represents the voltage value output by sum output 134 based on the charge stored in each capacitor. TIFF0007779831000004.tif16170

[0034] In Equation 5, the charge on each capacitor is calculated based on the associated bit order of the capacitor, V as the summation output 134. Out contributes appropriately weighted amounts to V Outrepresents the final weighted sum of the analog vector-matrix multiplication.

[0035] In total, when the input vector contains 4-bit values, the addition process will take 6 clock cycles before a valid sum output 134 is produced. More generally, the addition process may require a reset clock cycle, a redistribution clock cycle, and a clock cycle for each bit of the value.

[0036] While FIG. 3 shows four capacitors, it should be understood that this embodiment is for illustrative purposes only. The number of capacitors may be increased or decreased to accommodate various numbers of bits in the input vector values. In alternative embodiments, a differential summing circuit may be implemented to allow common-mode interference to be canceled from the summed output 134. Additionally, other embodiments may use alternative passive analog components to store and sum charges to determine the summed output 134. In yet other embodiments, the summing circuit may be implemented using digital circuitry.

[0037] Various methods may be implemented using the systems and circuits detailed in Figures 1-3. Figure 4 illustrates one embodiment of a method 400 for performing a vector-matrix multiplication operation. Method 400 may be implemented using the circuits of Figures 1-3 or alternative versions of such circuits. It should be understood that the specific example circuits of Figures 2 and 3 are examples of how the circuit of Figure 1 and the method of Figure 4 may be implemented. In some embodiments, a digital adder circuit may be used.

[0038] In block 410, the bit order of the binary-encoded signal may be converted to a binary-encoded analog signal. Multiple 1-bit DACs may be used in parallel to perform this function. Thus, each DAC may convert the digital signal to an analog signal for a given bit order in parallel. Each DAC may receive a binary-encoded digital signal representing a particular bit order for an input vector. Each vector may have N bits. Thus, it will take N clock cycles for the 1-bit DAC to convert the binary-encoded digital signal to an analog signal. For example, if the binary-encoded digital signal is "10011," it will take 5 clock cycles for this binary-encoded value (representing a value of 19, assuming the rightmost digit is the LSB) to be output by the 1-bit DAC. The analog voltage output by each 1-bit DAC may depend on the power supply voltage supplied to each 1-bit DAC.

[0039] In block 420, vector-matrix multiplication is successively performed on the bit order of the received binary-encoded analog signal. Block 420 may be performed for a specific bit order of the input vector received from the 1-bit DAC. That is, block 420 may be performed first for each LSB of the value of the input vector (and then the second LSB may be evaluated during the next iteration of block 420). Typically, the first bit evaluated will be either the MSB or the LSB of the value of the input vector. The vector-matrix multiplication may be performed by a circuit similar to embodiment 200 of FIG. 2. It should be understood that other embodiments of the analog multiplication circuit are possible. The multipliers of the vector-matrix multiplication may include weighting elements, each of which provides a weighted amount of current representing the product of the analog input value and the weighting. Such current or some other electrical characteristic may be output to a summing circuit.

[0040] In block 430, for a given bit order at which the vector-matrix multiplier performed the multiplication function in block 420, the output of the vector-matrix multiplier (which may be in the form of a current or voltage) may be stored with appropriate bit order weighting. The received signal indication is weighted by the bit order of the bits evaluated by the analog vector-matrix multiplier before being stored. For example, if the evaluation by the analog vector-matrix multiplier is performed from LSB to MSB, each subsequent bit may be given twice the weight compared to the previous bit when stored by the summing circuit. By way of example only, a sense amplifier may convert the current received from the analog vector-matrix multiplier into a voltage. In some instances of the summing circuit, this voltage may be used to charge a particular capacitor having a capacitance corresponding to the bit order at which block 420 was performed. Thus, for example, when the LSB is evaluated, the output of the analog matrix multiplier may be used to charge a capacitor with a capacitance of C, when the second LSB is evaluated, the output of the analog matrix multiplier may be used to charge a capacitor with a capacitance of 2C, and so on.

[0041] If additional bit orders are to be evaluated in block 435, method 400 may return to block 410 and be executed for the next bit order of the input vector. Thus, each bit order is successively evaluated by the analog vector-matrix multiplier, and the corresponding outputs are successively stored by the summation circuit with a weighting corresponding to that bit order. Once multiplication operations have been performed for all bit orders in block 420 and then stored in block 430, method 400 may proceed to block 440. Thus, if each value in the input vector has four bits, blocks 420 and 430 are executed four times, once for each bit of the value.

[0042] In block 440, the sum may be determined, such as by accumulating. In some embodiments, the sum is determined in the analog domain. The various bit-order-weighted values ​​stored in block 430 may be summed together. By way of example only, if a switch-capacitor array is used, the charge on each capacitor may be redistributed among the capacitors, helping to accumulate the overall charge, with the bits weighted by the capacitance of each capacitor corresponding to a particular bit order. To do this, the switches that separate the switch-capacitor array may be opened, and all switches directly connected to each capacitor (e.g., 314-1, 314-2, 314-3, and 314-4 in FIG. 3) may be closed. The charge on each capacitor may be redistributed among the capacitor fields. However, the total amount of charge remains constant, and the difference in capacitance among the capacitors will be appropriately weighted by bit order. In other embodiments, rather than using a capacitor array, another form of analog or digital circuitry may be used to determine the final sum using the appropriate bit order of each multiplication result.

[0043] An indication of the sum is output at block 450. In some embodiments, the indication of the sum is output as an analog electrical characteristic, such as a voltage magnitude. For example, the voltage at the top plates of the capacitor array in FIG. 3 can represent the sum of a vector-matrix multiplication. This voltage can be measured and, in some cases, used to determine a numerical value. For example, this output voltage can be used by a separate circuit, such as an ADC, that converts the voltage back to the digital domain.

[0044] Sequential MAC In some embodiments, the digitized MAC result is available immediately upon completion of the binary-weighted MAC operation. These embodiments may improve upon the bit-order binary-weighted multiplier-accumulator described above in FIGS. 1-4, in which the MAC digital output data is available after eight MAC cycles and eight SAR ADC cycles for an 8-bit wide data input. In these embodiments, the MSB of the MAC data is available at the end of the second cycle, and the remaining seven MAC output bits are available at the end of each successive cycle. This reduces the latency of the MAC operation by a factor of eight.

[0045] In some embodiments, the ADC may be embedded within the MAC. Sequential MAC and ADC operations may be performed from most significant bit to least significant bit. At the end of each MAC cycle, one digitized MAC data bit is available. The data can be immediately fed to the next layer of multiplier-accumulators, reducing the latency of this bit-order binary-weighted multiplier-accumulator. This, in turn, reduces the latency of each layer. By feeding data directly to the next layer, data exchange between the MAC array and the processor unit is eliminated, saving power and reducing latency.

[0046] In some embodiments, the MAC may be performed from most significant bit to least significant bit. Consequently, the integrated ADC and MAC may also operate from most significant bit to least significant bit. A potential problem exists where undigitized analog data remains in the more significant bits, resulting in a carry-over bit in the least significant bit. Because the most significant bit of the MAC is output first and this carry-over bit should not be added to the most significant bit, this carry-over problem may be eliminated. Some embodiments solve this problem by generating two MAC output bits at the end of each MAC cycle. One bit may represent the carry-over bit and one bit may represent the current bit. The carry-over bit may have the same binary weight as the next most significant bit. In this way, the need to shift the carry-over bit up to the more significant bit is eliminated. Each binary bit of MAC data may then be represented by two MAC data outputs. One may be the carry-over from the next MAC cycle and the other may be the current bit of the current MAC cycle. The next MAC layer can receive two data bits with appropriate weights assigned. The two data bits can be converted into an input data driver with three levels. If both the carryover and the current bit are 1, the input data level can be 2. If one MAC data is 1, the input data level can be 1, and if there is no MAC data that is 1, the level can be 0.

[0047] FIG. 5 illustrates one embodiment of a circuit 500 in which vector multiplication is performed on a binary-coded input using analog components. Circuit 500 is similar to circuit 100 of FIG. 1, except that the output of analog vector-matrix multiplier 122 is directed to sequential binary-weighted ADC 504. As described above, circuit 100 may include 1-bit DAC 114, analog vector-matrix multiplier 122, and summing component 132. Circuit 100 may be further understood as being divided into three sections. Section 110 may receive binary-coded digital signals, each of which may represent a value in the input vector. Section 100 may also convert the binary-coded digital signal to a binary-coded analog signal 116. Section 120 may receive binary-coded analog signal 116 and output a binary-coded product 124, which represents the multiplication between the binary-coded analog signal and a predetermined matrix (e.g., a weighting matrix). Portion 502 may sequentially receive the bit-order output from portion 120 and incrementally perform binary-weighted analog-to-digital conversion as individual bits are received from portion 120. In some embodiments, circuit 500 may use a default bit-ordering in which the MSB of each digital input signal 112 is received first, followed by the MSB-1 bit and so on through the LSB. Portion 502 may sequentially provide multiple digital output signals 506 that are immediately usable as they have been processed by portion 502. For example, one of the multiple digital output signals 506 representing the MSB may be output, followed by one of the digital output signals 506 representing the MSB-1 bit, and so on.

[0048] As an example, multiple digital input signals 112 may be received in parallel by portion 110. Digital input signals 112 may represent binary-coded values, with each digital input signal of digital input signals 112 being represented by a vector X in Equation 1. i The value of X i(i=0, 1, 2, ...). The binary bits of the input signal 112 may be represented by a voltage level (e.g., H for 1, L for 0), a pulse (e.g., a pulse for 1 and no pulse for 0), or time (e.g., a pulse in a first period for 1 and a pulse in a second period for 0). As shown, four digital input signals (112-1, 112-2, 112-3, and 112-4) are received in parallel. Each of these input signals receives a distinct value of the input vector. In other embodiments, fewer or more than four digital input signals may be received. Each of the digital input signals 112 may be binary encoded. Thus, for each clock cycle of the digital portion of the circuit, a bit of a particular bit order is received as the digital input signal 112. For example, if each digital input signal inputs a four-bit binary value, four clock cycles may be used to receive and convert the binary values ​​in parallel to the analog domain. The digital input signal 112 may be binary coded so that the bit order of each value may be taken from MSB to LSB.

[0049] The digital input signal 112 may be input to the 1-bit DACs 114. The four 1-bit DACs 114 (114-1, 114-2, 114-3, and 114-4) are shown as examples only. In other embodiments, the number of 1-bit DACs 114 may be fewer or more than four. For example, other embodiments may use 8-bit, 16-bit, 32-bit, 64-bit, 128-bit, and / or similar representations of data. In this disclosure, for ease of explanation, a 4-bit data value may be used as a representative example. However, the operations described below may be repeated for data of any value range, multiplying the bits between the MSB and LSB. Regardless of the number of bits, there may be one 1-bit DAC for each binary-encoded digital input signal 112. Each of the 1-bit DACs 114 may output an analog signal representing the received digital quantity. Thus, the binary-encoded analog signals 116 (116-1, 116-2, 116-3, 116-4) may represent an analog conversion of the digital input signal 112.

[0050] In portion 120, an analog vector-matrix multiplier 122 may receive the binary-encoded analog signal 116. The analog vector-matrix multiplier 122 may sequentially perform a multiplication operation for each bit order of the input value (e.g., a multiplication operation for the MSB in the first clock cycle, a multiplication operation for MSB-1 in the second clock cycle, a multiplication operation for MSB-2 in the third clock cycle, etc.). Thus, a separate multiplication operation may be performed for each bit order of the received binary-encoded analog signal 116. Further details regarding possible embodiments of the analog vector-matrix multiplier 122 are provided above in connection with FIG. 2.

[0051] The sequential binary weighted ADC 504 in the portion 502 may receive the multiplication result signal 124 output from the analog vector-matrix multiplier 122. For example, as each bit of the binary-encoded analog signal 116 is processed by the analog vector-matrix multiplier 122 (starting from the MSB), the result may be immediately passed to the sequential binary weighted ADC 504. The sequential binary weighted ADC 504 may then perform analog-to-digital conversion on each analog bit received from the analog vector-matrix multiplier 122. This may incrementally provide a digital output signal 506 as each analog bit is processed by the analog vector-matrix multiplier 122. Additionally, the sequential binary weighted ADC 504 may provide carry-over bits between each of the bits represented by the digital output signal 506 that may be used to construct a final digital representation of the result.

[0052] In some embodiments, portion 502 of circuit 500 may also include all or part of portion 130 of circuit 100 of Figure 1. For example, some embodiments may include charge integrated circuits, charge accumulation and redistribution circuits, and / or other portions of summation component 132 used to generate the final analog result of the matrix multiplication process at this stage.

[0053] 6 illustrates how an input stream of individual bits may be processed by some embodiments to generate a continuous output bit stream. i may be provided as multiple bit streams 602 (Ip_0, ..., Ip_N). For example, for an 8-bit data representation, each of the values ​​in the input vector may be represented using a sequence of 8 bits. Each of the bit streams 602 is ordered such that the MSB is provided first, followed by each less significant bit, down to the LSB. In some embodiments, the bit streams 602 may be routed sequentially through a 1-bit DAC, as described above.

[0054] The analog values ​​generated from each bit in bitstream 602 may be fed one by one to MAC cell array 601. Array 601 may be similar to analog vector-matrix multiplier 201 of FIG. 2 described above. The weight values ​​in array 601 are represented by W in Equation 2. ij As explained above, array 601 can receive each bit from a particular position in bit stream 602 and process the bits together to generate an analog output that can be passed to binary weighted ADC 504. In some embodiments, array 601 can also provide a value indicating the bit position of the processed bit. For example, the first bit received by array 601 can be the MSB of each of bit stream 602. Each of the MSBs can be converted to an analog value and multiplied by the matrix value in array 601. This can generate an analog current output from array 601 that is fed to binary weighted ADC 504. This output is represented by the bit at index 7 of the 8-bit data, i.e., the MSB (e.g., Op_b <7> ) This value may be described as an output that is subsequently used to control subsequent circuit elements in the data path.

[0055] Binary weighted ADC 504 may receive each bit as it is provided by array 601. In these embodiments, in contrast to the embodiment of FIG. 3, providing digital output 604 from binary weighted ADC 504 may begin immediately upon processing by array 601. For example, these embodiments may perform incremental analog-to-digital conversion on each analog value individually as it is provided by array 601, rather than waiting for the sum of the analog values ​​on each of the capacitors of FIG. 3 to be provided by array 601 and then performing analog-to-digital conversion on the final analog value. When the MSB and carry value from MSB-1 of bitstream 602 are processed by array 601, binary weighted ADC 504 may generate the MSB of digital output 604.

[0056] After processing each of the bits in the bitstream 602, the binary-weighted ADC 504 may provide a digital output representing a digital representation of the result of Equation 1. However, as shown in FIG. 6, the digital output 604 may include an additional N−1 bits for N-bit data. Specifically, the digital output 604 may include a carry-over bit between each bit value representing a carry-over value from the next bit in the bitstream that is added to the previous bit. For example, the digital output 608 may include the result for bit 7, the result for bit 6, the carry-over result for bit 6 added to the result for bit 7, and so on. This may result in the digital output 604 having 2N−1 bits for the N-bit data.

[0057] 7 illustrates a specific process for generating sequential binary-weighted digital outputs, according to some embodiments. This specific embodiment uses a charge integrated circuit 704 to store successive outputs from a multiplication matrix. The following example again uses 8-bit data values ​​as an example. However, the principles for processing bits 6 through 0 can be duplicated / removed to increase / decrease the number of bits used to represent each data value. The following description describes the processing for each bit contained in the 8-bit value.

[0058] The MAC operations performed by the analog multiplication matrix are represented by the operational flow on the left side of Figure 7. The MAC operation may output a current corresponding to the multiplication of the MSB from each of the input data values ​​with a weight in the multiplication matrix, starting with the MSB (e.g., bit 7) in operation 701. The current from the MAC operation may be passed to a charge integrated circuit 704. The charge integrated circuit 704 may include a capacitor that receives the current from the MAC operation and stores the analog value as a charge on the capacitor. The charge integrated circuit 704 may also include circuitry that scales the current passed to the capacitor to correspond to the bit weight of the current operation. For example, when the MSB is received from the MAC operation, the charge integrated circuit 704 may allow the full current (unscaled) to be stored on the capacitor.

[0059] Comparator 705 may then receive the capacitor voltage as an input. Another input may be received from voltage reference circuit 710. The output of voltage reference circuit 710 may be initially set to a voltage level midway between all outputs of the MAC operation. If the capacitor voltage is higher than the voltage reference, the output of comparator 704 will be logic 1. If the capacitor voltage is lower than the voltage reference, the output of comparator 704 will be logic 0.

[0060] As explained above, the MAC operation may also provide the current bit value as an output to the charge integrated circuit 704. The current bit value may be used to scale the current to an appropriate level based on the current bit value. The current bit value may also be used as a select signal for a multiplexer 708 that routes the output of the comparator 705 to a particular register. For example, the multiplexer 708 may be coupled to multiple output registers 712. The current bit value may be used to select one of the output registers 712 that corresponds to the current bit being processed. For the MSB, a "msb <7> The "bit reg" register may be selected into which the output of comparator 705 may be latched.

[0061] When the current value is latched into the corresponding register 712, an output signal 714 may be generated so that a later stage in the processing pipeline can begin using those bit outputs to process a subsequent multiplication operation. At this stage, the "msb <7> A "first digital bit value" (i.e., output of most significant bit 7) may be provided. This output may represent the current binary weight for the current bit and may also be referred to as the digital bit value or the "first digital bit value" for the current bit being processed by the MAC operation.

[0062] At each stage, the value of the voltage reference 710 provided by the voltage reference circuit may be adjusted. Continuing with the example of the MSB (bit 7), if the original voltage reference used to process the MSB was Vref_msb and the output of the comparator 705 is logic 1, then a new increment DVref7=(½)Vref_msb may be provided to the voltage reference 710. On the other hand, if the output of the comparator 705 is logic 0, then there is no additional increment to the voltage reference and it may remain as Vref_msb. The reference voltage may incorporate at least two elements. One element may represent the base reference voltage, and its value may be determined by the bit-level weight. This may be expressed in the following Equation 5 for a charge integration embodiment: Bits of the same bit weight may have the same base reference voltage, e.g., bits <7> and co <6> The second element may include any accumulated additional adjustment that is applied when the comparator output is logic 1. This accumulated adjustment may be formulated as shown in Listing A for the charge integration embodiment.

[0063] After processing the MSB (bit 7), the multiplication operation may output the result of the next most significant bit, i.e., MSB-1 (bit 6). Following the same procedure as described above, the analog value provided from the multiplication operation may be multiplied by 0.5 to reflect the lower bit order of MSB-1 (bit 6), and a corresponding charge may be stored on the capacitor of the charge integrated circuit 704. The voltage developed on the capacitor may be provided to the comparator 705 along with a voltage reference 710. The signal provided by the voltage reference 710 may correspond to the voltage reference used for the bit one higher than the current bit level. In this example, the comparator may receive the signal level of Vref_msb used by the MSB as described above.

[0064] The output of the comparator 705 in the previous cycle generated the digital value of the MSB. However, in the first cycle of the next MSB-1, the output of the comparator 705 generates a carry-over bit (e.g., <6> If the voltage on the capacitor of the charge integrated circuit 704 is higher than the voltage reference 710, then the "co <6> A logic one may be stored in the "carry over bit reg" register. When the carry over bit is a logic one, the voltage reference 710 may be supplied with a new increment DVref6c=(½)Vref_msb to become (¾)Vref_msb for the next comparator operation. Alternatively, if the voltage on the capacitor of the charge integrated circuit 704 is lower than the voltage reference 710, then the "co <6> A logic 0 can be stored in the "bit reg" register. This bit is used as part of standard arithmetic operations described below. <7> represents a carry bit that can be added to

[0065] The analog output of the multiplication operation for the MSB-1 bit may be used for two separate comparison operations: one to generate the MSB-1 carry-over bit, or "second digital bit value," described above, and a subsequent comparator operation to generate the MSB-1 binary weight bit, or "first digital bit value" for the MSB-1 MAC operation. To generate the MSB-1 binary weight bit, the comparator may again compare the capacitor voltage with a reference level for the MSB-1 level, which is Dvref6s+(½)Vref_msb, where DVref6s is the sum of all accumulated DVref values. For the MSB-1 bit, DVref6s=DVref7+DVref6c. If the capacitor voltage is higher, the bit output is 1; if the capacitor voltage is lower, the bit output is 0. Finally, if the bit value is 1, the reference level may receive another increment DVref6=(1 / 4)Vref_msb.

[0066] In a general sense, each bit after the MSB can generate a carry-over bit by using a voltage reference from the previous bit. For every bit after the MSB, the Nth carry-over bit can be generated using a comparator that uses the reference signal from the next most significant bit in the bit weight level, as explained above. If the most significant output bit is a logic 1, the comparator's reference level is increased by DVrefNc, where N is the Nth carry-over bit, and DVrefNc=1 / (2). M-(N+1) Vref_msb, where M is the Mth = MSB bit, Vref_msb is the reference level of the MSB bit, and N is the Nth bit running from the Mth bit (MSB) to the 0th bit (LSB). For each Nth carry-over bit, the reference level is VrefNc = VrefNcb + DvrefNcs, where VrefNcb = 1 / (2) M-(N+1) Vref_msb is the base reference level of the Nth carry-over bit (i.e., the base reference level of the (N+1)th bit), TIFF0007779831000006.tif16170 is the accumulated sum of the increased Vref increments before the Nth bit.

[0067] Similarly, the operation of the current binary Nth bit comparator with respect to the current bit weight uses a reference level. If the integrated charge level is higher than the reference level, the current binary output bit will be 1, and the reference level of the comparator is DVrefN=1 / (2) M-N+1 Vref_msb. For each Nth bit, the reference level is VrefN=VrefNb+DvrefNs, where VrefNb=1 / (2) M-N *Vref_msb is the Nth bit-based reference level, TIFF0007779831000007.tif16170 is the accumulated sum of Vref increments boosted by the previous Nth carry-over bit. This general process can be repeated for each bit in the sequence up to the LSB. As explained below, each binary output has a carry-over bit and a normal bit for the current bit-level weight. These two bits can be fed directly to subsequent layers of the MAC operation. As an example, Listing A completes the operations shown in FIG. 7 for a charge integration embodiment using 8 bits of data.

[0068] FIG. 8 illustrates a specific process for generating sequential binary-weighted digital outputs, according to some embodiments. This circuit is similar to the circuit illustrated in FIG. 7 and described above. However, this circuit uses a multiplexer instead of a charge integrated circuit 704 to receive various outputs from the multiplication function. Instead of scaling the analog outputs from the multiplication function and adding the charges associated with those outputs onto a single integration capacitor, this circuit can select various outputs from the multiplication function to feed to a comparator. The multiplication function operates as described above in connection with FIG. 7, except that the voltage reference 710 can be scaled appropriately.

[0069] 9 shows an alternative process for generating sequential binary-weighted digital outputs, according to some embodiments. Specifically, this circuit may include a transimpedance amplifier (TIA) or sense amplifier 906 along with a plurality of binary-weighted switches and / or capacitors 905. This may be similar to the arrangement shown above in FIG. 3. The analog outputs from the multiplication functions may each be stored on a dedicated capacitor separated by a plurality of switches. The binary-weighted switches and / or capacitors 905 may be provided with a binary sequence control 902 to control the switches so that the analog output of the multiplication function is stored on the appropriate capacitor.

[0070] As explained above, the MSB may be processed once and each of the bits following the MSB may be processed twice by the comparator 705. The MSB is the first digital bit value (e.g., "msb <7> bit reg"), and each subsequent bit may generate both a first digital bit value and a second digital bit value (e.g., a carry-over bit). At each stage, the voltage reference 710 may be scaled based on the binary weight of the corresponding bit. Thus, the output of the voltage reference 710 may include a binary-weighted reference scaling circuit 910. The voltage reference 710 may be scaled using a voltage divider, a capacitive divider, and / or any other method for selectively scaling a voltage.

[0071] The following description details the operations for processing the MSB and each of the bits following the MSB for 8-bit data. First, use the TIA 906 to select the MSB bit. <7> The MAC current of may be converted to a voltage, and the associated MSB capacitor 905 may be charged to this voltage. Comparator 705 may compare this voltage to an MSB reference level, which may be Vref_msb7=Vref_msb. If the voltage is higher than Vref_msb7, the MSB output bit may be 1, and the reference level may be increased by DVref7=(½)Vref_msb7.

[0072] Proceeding to operate on the MSB-1 bit (e.g., bit 6), the output current of the multiplication operation may be converted to a voltage by TIA 906 and stored on the associated capacitor 905. This capacitor may be half the size of the MSB capacitor described above. The MSB-1 capacitor may then be connected to the MSB capacitor by a switch to redistribute the charge. The voltage reference 710 may be adjusted to compensate for the effect of the additional capacitance using the ratio RVC6 = 1 / (1 + 1 / 2) = 2 / 3. <6> The reference level of RVC6 may be Vref6c=(Vref_msb+DVref6cs)*RVC6=2 / 3*Vref_msb, where DVref6cs=DVref7. Then, a comparator may compare the voltage redistributed to the capacitor with (2 / 3)Vref_msb. After the comparison, <6> may be set to logic 1 if the redistributed voltage level is higher than the reference value, or may be set to logic 0 otherwise. <6> =1, the reference voltage level is increased by DVref6c=(1 / 2)Vref_msb so that the capacitance ratio is properly applied.

[0073] Next, the second half of the operation for the MSB-1 bit can be performed. The first half of the operation described above can generate the carry-over bit, and the second half can generate the bit-level weight bit for the MSB-1 multiplication operation. Comparator 705 calculates the bit where Vref6=RVC6((1 / 2)Vref_msb+DVref6s). <6> The reference level can be received, where DVref6s = DVref7 + DVref6c. <6> The output may be logic 1 if the bit level is higher than the reference, otherwise logic 0. As an example, Listing B completes the operations shown in Figure 9 for an embodiment of the TIA using 8 bits of data.

[0074] FIG. 10 illustrates a pipeline of sequential MAC operations that may be performed in a sequentially layered manner, with bits processed individually between each layer, according to some embodiments. The pipeline may include a first stage including the MAC cell array 601 and binary-weighted ADC 504 shown above in FIG. 6. As explained above, the output of the first stage of the pipeline may include a stream of sequentially generated bits 604. The stream of sequentially generated bits 604 may include bit-level weight bits, referred to as "first digital bit values," and FIG. 10 illustrates a first digital bit value for an 8-bit data example. <7> , <6> ,..., <0> The stream of sequentially generated bits 604 is shown in FIG. <6> , ..., co <0> 6. Each bit in the stream of sequentially generated bits 604, when output from the binary-weighted ADC 504, may be available as an input to a sequential stage.

[0075] The pipeline may also include a second stage including a second MAC cell array 1001 and a second binary-weighted ADC 1004. The second MAC cell array 1001 may receive the stream of sequentially generated bits 604 from the output of the first binary-weighted ADC 504 of the first stage of the pipeline. In some embodiments, the entire bitstream including both the first and second digital bit values ​​(e.g., bit-level weight bits and carry-over bits) in the bitstream may be directly provided to the MAC cell array 1001. In other embodiments, the carry-over bits may be combined with the bit-level weight bits so that the input bitstream to the second MAC cell array 1001 is the same width (e.g., 8 bits) as the rest of the datapath. These bits may be combined by adding the carry-over bit to the previous bit-level weight bit. This may result in some bit values ​​having a value of "2," represented by doubling the voltage / current as a logic 1 signal at the input.

[0076] 10 illustrates one of the advantages provided by the sequential binary-weighted ADC at the output of the MAC operation. Specifically, the second MAC stage in the pipeline can begin processing each bit as it is output, without waiting for all bits to be processed by the first MAC stage in the pipeline. Recall from the discussion above that both MAC cell arrays 201 and 1001 use multiple 1-bit DACs to receive each bit at the input sequentially. Thus, the second stage can begin operation of the 1-bit DAC when a bit is provided by the first stage. After a two-cycle delay, the first binary-weighted ADC 504 outputs a bit <7> and Bitco <6> The second MAC cell array 1001 can then receive the bit <6> These bits can be received immediately without waiting for the next or subsequent bits to be provided.

[0077] Although Figure 10 shows only two stages of the MAC pipeline, other embodiments may include many additional stages not explicitly depicted in Figure 10. Prior to this disclosure, where N is the number of bits in the data path, each additional stage would require at least N additional clock cycles. However, using the embodiment of Figure 10 described herein, each additional stage requires only an additional delay of two clock cycles to provide the first two bits output from each stage.

[0078] 11 shows a flow diagram of a method 1100 for performing successive binary-weighted digital-to-analog conversion according to some embodiments. Each of the steps in method 1100 may be performed as described above in FIGS. 1-10. In particular, any of the operations, functions, and / or circuits described above may be used to perform these operations.

[0079] The method may include the step of sequentially performing (1102) a first vector-matrix multiplication operation on each bit order of values ​​of an input vector. The first vector-matrix multiplication operation on each bit order may generate an analog output. For example, a MAC cell array, as described above, may be used to receive each successive digital bit from each value in the input vector. These values ​​may be sequentially converted to an analog signal by a 1-bit DAC and then processed by an analog multiplication matrix. The analog output may include an analog current representing the result of the multiplication / accumulation operation represented by the matrix.

[0080] The method may also include converting (1104) the analog output from the MAC operation to one or more digital bit values. This conversion may be performed by providing a voltage reference as one input to a comparator. Some embodiments may provide a voltage based on the analog output from the vector-matrix multiplication operation as the other input to the comparator. For example, a transimpedance amplifier may convert the analog current to a voltage, which may be stored on an integrated capacitor or on individual capacitors representing respective bit-level weights. In some embodiments, each analog output representing a multiplication operation output may be converted to one or more digital bit values. For example, the MSB may be converted to one bit-level weight bit, which may be referred to as the first digital bit value. For the bits following the MSB up to the LSB, each bit may be converted to a bit-level weight bit and a carry-over bit, which may be referred to as the second digital bit value. The terms “first” and “second” do not imply any order or importance, but simply distinguish these two bits from each other in operation. Depending on the particular implementation, various methods may be used to adjust the reference signal provided to the comparator when the first digital bit value represents a logic 1. Conversely, when the output of the comparator is a logic 0, the reference signal may remain the same as the base reference voltage at the current bit level weight (i.e., no additional adjustment of the base reference voltage at the current bit level is necessary, even if the base reference voltages of each successive bit level are different). These various methods of adjusting the reference signal are described in detail above and in Lists A and B.

[0081] The method may further include sending one or more digital bit values ​​to a second vector-matrix multiplication operation (1106). This operation may be optional in some embodiments and may be included in architectures where the output of one MAC stage provides the input of a subsequent MAC stage in a pipeline including multiple MAC stages. Between each MAC stage, there may be a two-cycle delay to generate the MSB bit and the first carry-over bit from the previous stage.

[0082] The methods, systems, and devices discussed above are exemplary. Various configurations may omit, substitute, or add various procedures or components, as appropriate. For example, in alternative configurations, the methods may be performed in a different order than described, and / or various stages may be omitted, added, and / or combined. Also, functions described with respect to a particular configuration may be combined in various other configurations. Various aspects and elements of the configurations may be combined in a similar manner. Also, because technology evolves, many of the elements are exemplary and do not limit the scope of the disclosure or the claims.

[0083] Specific details are set forth in the description to provide a thorough understanding of example configurations (including implementations). However, the configurations may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques are shown without unnecessary detail so as not to obscure the configurations. This description provides example configurations only and does not limit the scope, applicability, or configuration of the claims. Rather, the foregoing description of the configurations should provide one skilled in the art with an enabling description for implementing the described technology. Various changes in the function and organization of elements may be made without departing from the spirit or scope of the present disclosure.

[0084] Also, the configurations may be described as processes that are depicted in flow diagrams or block diagrams. While operations may be described as sequential operations, many of the operations may be performed in parallel or simultaneously. In addition, the order of operations may be rearranged. A process may have additional steps not included in the figures.

[0085] While several example configurations have been described, various modifications, alternative configurations, and equivalents may be used without departing from the spirit of this disclosure. For example, the elements described above may be components of a larger system, in which case other rules may take precedence or the application of the invention may change. It is also contemplated that multiple steps may be undertaken before, between, or after the elements described above. List A Actuation mechanism using charge accumulation 1. Charge is accumulated from the MSB to the LSB of the input bits using a binary weighted method. 2. Binary weighted by scaling the MAC current to charge the capacitor. 3. After charge integration / charging of each binary bit, two comparator checks are performed in succession. 1. The Nth carry-over bit comparator checks the reference level one bit higher. If the integrated charge level is higher, the higher output bit is 1 and the comparator reference level is increased by DVrefNc, where N is the Nth carry-over bit. This higher output bit is a borrow bit. DVrefNc=1 / (2) M-N *Vref_msb, where M is the Mth = MSB bit, Vref_msb is the reference level of the MSB bit, and N is the Nth bit running from Mth (MSB) to 0th (LSB). 2. The Nth (current) bit comparator checks the current binary reference level. If the integrated charge level is higher than the reference level, the current binary output bit is 1, and the comparator reference level is DVrefN=1 / (2) M-N+1 *Increased by Vref_msb. 4. For each Nth carry-over bit, the reference level is VrefNc=VrefNcb+DvrefNcs, where VrefNcb is the base reference level for the Nth carry-over bit and also the base reference level for the (N+1)th bit. VrefNcb=1 / (2) M-(N+1) *Vref_msb. DvrefNcs is the accumulated sum of the boosted Vref of the previous Nth bit, The file is TIFF0007779831000008.tif16170. 5. For each Nth bit, the reference level is VrefN=VrefNb+DvrefNs, where VrefNb is the base reference level of the Nth bit. VrefNb=1 / (2) M-N *Vref_msb. DVrefNs is the accumulated sum of the boosted Vref of the previous Nth carry-over bit. The file is TIFF0007779831000009.tif17170. 6. Continue to the LSB bit. 7. The reference level adjustment is obtained from the DAC circuit. 8. Each binary output has a borrow bit and a unique bit. The two bits are fed directly to the next layer of MAC operation. 9. In the input driver, for example the DL driver, the binary bits are examined for carry-over bits from each current bit and the next weighted bit. 1. If one of the current or carry-over bits is 1, then the input strength, e.g., voltage level, is 1. 2. If both the current bit and the carry-over bit are 1, the input strength, e.g., voltage level, is doubled. 3. By doing so, the charge integration time can be reduced by half. 4. A 3-level DL driver / DAC is required for this operation. Example Actuation Mechanism with Charge Integration Using 8-bit MAC 1. The MAC current of the MSB bit charges the integration capacitor. 1. A comparator checks the capacitor voltage against the MSB reference level (Vref_msb). 1. If the capacitor voltage is higher, the MSB <7> The bit output is 1, otherwise it is 0. 2. <7> =1, the reference level is increased by Dvref7=1 / 2*Vref_msb. 2. Bit <6> The bit MAC current of charges the integration capacitor with a current ratio of 0.5 (compared to the MAC of the MSB). 1. A comparator checks the capacitor voltage against the MSB reference level Vref_msb. 1. If the capacitor voltage is higher, <6> The bit output is 1, otherwise co <6> =0, where co <6> is the carry-over bit <7> is. 2.co <6> =1, the reference level is increased by DVref6c=1 / 2*Vref_msb to 3 / 2*Vref_msb. 2. The comparator is Dvref6s+1 / 2*Vref_msb <6> Check the capacitor voltage against the reference level of DVref6s. DVref6s is the accumulated sum of all of the DVrefs, where DVref6s=DVref7+DVref7c. 1. If the capacitor voltage is higher <6> The bit output is 1, otherwise <6> =0. 2. <6> =1, the reference level is increased by DVref6=1 / 4*Vref_msb. 3. Bit <5> The bit MAC current of the 1 bit charges the integration capacitor with a current ratio of 0.25 (compared to the MAC of the MSB). 1. The comparator is Dvref5cs+1 / 2*Vref_msb <6> Check the capacitor voltage against the reference level of the bit: DVref5cs = DVref7 + DVref6c + DVref6. 1. If the capacitor voltage is higher, <5> The bit output is 1, otherwise co <5> =0. 2.co <5> =1, the reference level is increased by DVref5c=1 / 4*Vref_msb. 2. The comparator is Dvref5s+1 / 4*Vref_msb <5> Check the capacitor voltage against the reference level: Dvref5s=DVref7+DVref6c+DVref6+DVref5c. 1. If the capacitor voltage is higher <5> The bit output is 1, otherwise <5> =0. 2. <5> If =1, the reference level is increased to 1 / 8*Vref_msb. 4. Bit <4> The bit MAC current charges the integration capacitor at a current ratio of 1 / 8 (compared to the MAC of the MSB). 1. The comparator is Dvref4cs+1 / 4*Vref_msb <5> The capacitor voltage is checked against a reference level. Dvref4cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5. 1. If the capacitor voltage is higher, the MSB <4> The bit output is 1, otherwise co <4> =0. 2.co <4> =1, the reference level is increased by DVref4c=1 / 8*Vref_msb. 2. The comparator is Dvref4s+1 / 8*Vref_msb <4> The capacitor voltage is checked against a reference level. Dvref4s = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c. 1. If the capacitor voltage is higher <4> The bit output is 1, otherwise <4> =0. 2. <4> =1, the reference level is increased by DVref4=1 / 16*Vref_msb. 5. Bit <3> The bit MAC current charges the integration capacitor with a current ratio of 1 / 16 (compared to the MAC of the MSB). 1. The comparator is Dvref3cs+1 / 8*Vref_msb <4> The capacitor voltage is checked against the reference level of the bit. Dvref3cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + Dvref4. 1. If the capacitor voltage is higher, <3> The bit output is 1, otherwise co <3> =0. 2.co <3> =1, the reference level is increased by DVref3c=1 / 16*Vref_msb. 2. The comparator is Dvref3s+1 / 16*Vref_msb <3> The capacitor voltage is checked against a reference level. Dvref3s = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + Dvref4 + DVref3c. 1. If the capacitor voltage is higher <3> The bit output is 1, otherwise <3> =0. 2. <3> =1, the reference level is increased by DVref3=1 / 32*Vref_msb. 6. Bit <2> The bit MAC current charges the integration capacitor at a current ratio of 1 / 32 (compared to the MAC of the MSB). 1. The comparator is Dvref2cs+1 / 16*Vref_msb <3> The capacitor voltage is checked against the reference level of the bit. Dvref2cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + Dvref4 + DVref3c + DVref3. 1. If the capacitor voltage is higher, <2> The bit output is 1, otherwise co <2> =0. 2.co <2> =1, the reference level is increased by DVref2c=1 / 32*Vref_msb. 2. The comparator is Dvrefs+1 / 32*Vref_msb <2> The capacitor voltage is checked against a reference level. Dvref2s = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + Dvref4 + DVref3c + DVref3 + DVref2c. 1. If the capacitor voltage is higher <2> The bit output is 1, otherwise <2> =0. 2. <2> =1, the reference level is increased by DVref2=1 / 64*Vref_msb. 7. Bit <1> The bit MAC current charges the integration capacitor with a current ratio of 1 / 64 (compared to the MAC of the MSB). 1. The comparator is Dvref1cs+1 / 32*Vref_msb <2> The capacitor voltage is checked against the reference level of the bit. Dvref1cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + Dvref4 + DVref3c + DVref3 + DVref2c + DVref2. 1. If the capacitor voltage is higher, <1> The bit output is 1, otherwise co <1> =0. 2.co <1> =1, the reference level is increased by DVref1c=1 / 64*Vref_msb. 2. The comparator is Dvrefs+1 / 64*Vref_msb <1> The capacitor voltage is checked against a reference level. Dvref1s = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + Dvref4 + DVref3c + DVref3 + DVref2c + DVref2 + DVref1c. 1. If the capacitor voltage is higher <1> The bit output is 1, otherwise <1> =0. 2. <1> =1, the reference level is increased by Dvref1=1 / 128*Vref_msb. 8. Bit <0> The bit MAC current charges the integration capacitor with a current ratio of 1 / 128 (compared to the MAC of the MSB). 1. The comparator is Dvrefs+1 / 64*Vref_msb <1> The capacitor voltage is checked against the reference level of the bit. Dvref0cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + Dvref4 + DVref3c + DVref3 + DVref2c + DVref2 + DVref1c + DVref1. 1. If the capacitor voltage is higher, <0> The bit output is 1, otherwise co <0> =0. 2.co <0> =1, the reference level is increased by Dvref0c=1 / 128*Vref_msb. 2. The comparator is Dvrefs+1 / 64*Vref_msb <0> The capacitor voltage is checked against a reference level. Dvref1s=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+Dvref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c+DVref1+DVref0c. If the capacitor voltage is higher <0> The bit output is 1, otherwise <0> =0. List B Actuation mechanism using a transimpedance amplifier, a capacitor, and a switch 1. MAC of input bits from MSB to LSB using a binary weighted method. 2. The TIA converts the MAC current for each binary bit into a voltage, which is maintained on a binary-weighted capacitor. 1. Each binary bit, from MSB to LSB, has a binary-weighted capacitor for storing the TIA output voltage. 2. When the TIA output voltage is stored, the storage capacitor is connected to another capacitor associated with the most significant bit. By doing this, new binary charges (represented by voltage and capacitance) are added and the total charge is redistributed. 3. The reference level needs to be adjusted for the additional capacitance. The ratio of the adjusted reference level is TIFF0007779831000010.tif16170. This ratio is applied to each binary step after the charges have been redistributed. 3. After the charge redistribution of each binary bit, two comparator checks are performed in succession. 1. The carry-over bit comparator checks the reference level of the next bit higher. If the redistributed capacitor level is higher, the carry-over bit becomes 1 and the comparator reference level becomes DVrefNc=1 / (2) M-N *Raised by Vref_msb, where M is the Mth=MSB bit and Vref_msb is the reference level of the MSB bit. N is the Nth bit running from Mth (MSB) to 0th (LSB). 2. The Nth (current) bit comparator checks the current binary reference level. If the integrated charge level is higher than the reference level, the current binary output bit is 1, and the reference level of the comparator is DVrefN=1 / (2) M-N+1 *Increased by Vref_msb. 4. For each Nth carry-over bit, the reference level is VrefNc=(VrefNcb+DvrefNcs)*RVCN, where VrefNcb is the base reference level of the Nth carry-over bit and also the base reference level of the (N+1)th bit. VrefNcb=1 / (2) M-(N+1) *Vref_msb. DvrefNcs is the accumulated sum of the boosted Vref of the previous Nth bit, The file is TIFF0007779831000011.tif16170. 5. For each Nth bit, the reference level is VrefN=(VrefNb+DvrefNs)*RVCN, where VrefNb is the base reference level of the Nth bit. VrefNb=1 / (2) M-N *Vref_msb. DVrefNs is the accumulated sum of the boosted Vref of the previous Nth carry-over bit. The file is TIFF0007779831000012.tif18170. 6. Continue to the LSB bit. 7. Each binary output has a borrow bit and a unique bit. The two bits are fed directly to the next layer of MAC operation. Example operating mechanism using TIA using 8-bit data 1. MSB bit <7> The MAC current is calculated using a TIA. <7> and the associated MSB capacitor is V <7> It will be charged until 1. The comparator is this V <7> is checked against the MSB reference level, where Vref_msb7=Vref_msb. 1.V <7> is higher than Vref_msb7, the MSB output bit is 1. 2. <7> =1, the reference level is increased by Dvref7=1 / 2*Vref_msb. 2. Bit <6> The MAC current is calculated using a TIA. <6> and the associated bits <6> A capacitor (half the size of the MSB capacitor) is connected to V <6> It will be charged until 1. <6> Capacitors are used to redistribute charge. <7> It is connected to a capacitor. 2. For the effect of the additional capacitance, the reference level is adjusted using the ratio RVC6=1 / (1+1 / 2)=2 / 3. 3.co <6> The reference level is Vref6c=(Vref_msb+DVref6cs)*RVC6=2 / 3*Vref_msb. In this formula, DVref6cs=DVref7. 1. The comparator checks the redistributed level against 2 / 3*Vref_msb. 2. If the redistributed level is higher, <6> =1, otherwise co <6> =0. 3.co <6> =1, the reference level is increased by DVref6c=1 / 2*Vref_msb so that the capacitance ratio is properly applied. 4. The comparator is a bit <6> Check the reference level Vref6=RVC6*(1 / 2*Vref_msb+DVref6s). In this formula, DVref6s=DVref7+DVref6c. 1. The higher the level, the bit <6> The output is 1, otherwise the bit <6> The output is 0. 2. <6> =1, the reference level is increased by DVref6=1 / 4*Vref_msb so that the capacitance ratio is properly applied. 3. Bit <5> The MAC current is calculated using a TIA. <5> and the associated bits <5> The capacitor (1 / 4 the size of the MSB capacitor) is V <5> It will be charged until 1. <5> Capacitors are used to redistribute charge. <7> and <6> is connected to the capacitor. 2. For the added capacitance, the reference level is adjusted using the ratio RVC5=1 / (1+1 / 2+1 / 4)=4 / 7. 3.co <5> The reference level is Vref5c=(1 / 2*Vref_msb+DVref5cs)*RVC5=4 / 7*(1 / 2*Vref_msb+Dvref5s), where Dvref5cs=DVref7+DVref6c+DVref6. 1. The comparator checks the redistributed level against Vref5c. 2. If the redistributed level is higher, <5> =1, otherwise co <5> =0. 3.co <5> =1, the reference level is increased by DVref5c=1 / 4*Vref_msb so that the capacitance ratio is properly applied. 4. The comparator is a bit <5> Check the reference level Vref5=RVC5*(1 / 4*Vref_msb+DVref5), where Dvref5=DVref7+DVref6c+DVref6+DVref5c. 1. The higher the level, the bit <5> The output is 1, otherwise the bit <5> The output is 0. 2. <5> =1, the reference level is increased by DVref5=1 / 8*Vref_msb so that the capacitance ratio is properly applied. 4. Bit <4> The MAC current is calculated using a TIA. <4> and the associated bits <4> The capacitor (1 / 8 the size of the MSB capacitor) is V <4> It will be charged until 1. <4> Capacitors are used to redistribute charge. <7> , <6> , <5> is connected to the capacitor. 2. For the added capacitance, the reference level is adjusted using the ratio RVC4=1 / (1+1 / 2+1 / 4+1 / 8)=8 / 15. 3.co <4> The reference level is Vref4c=(1 / 4*Vref_msb+DVref4cs)*RVC4=8 / 15*(1 / 4*Vref_msb+Dvref4cs). In this formula, Dvref4cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5. 1. The comparator checks the redistributed level against Vref4c. 2. If the redistributed level is higher, <4> =1, otherwise co <4> =0. 3.co <4> =1, the reference level is increased by DVref4c=1 / 8*Vref_msb so that the capacitance ratio is properly applied. 4. The comparator is a bit <4> Check the reference level Vref4=RVC4*(1 / 8*Vref_msb+DVref4), where Dvref4=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c. 1. The higher the level, the bit <4> The output is 1, otherwise the bit <4> The output is 0. 2. <4> =1, the reference level is increased by DVref4=1 / 16*Vref_msb so that the capacitance ratio is properly applied. 5. Bit <3> The MAC current is calculated using a TIA. <3> and the associated bits <3> The capacitor (1 / 16 the size of the MSB capacitor) is V <3> It will be charged until 1. <3> Capacitors are used to redistribute charge. <7> , <6> , <5> , <4> is connected to the capacitor. 2. For the added capacitance, the reference level is adjusted using the ratio RVC4=1 / (1+1 / 2+1 / 4+1 / 8+1 / 16)=16 / 31. 3.co <3> The reference level is Vref3c=(1 / 8*Vref_msb+DVref3cs)*RVC3=16 / 31*(1 / 8*Vref_msb+Dvref3cs). In this formula, DVref3cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + DVref4. 1. The comparator checks the redistributed level against Vref3c. 2. If the redistributed level is higher, <3> =1, otherwise co <3> =0. 3.co <3> =1, the reference level is increased by DVref3c=1 / 16*Vref_msb so that the capacitance ratio is properly applied. 4. The comparator is a bit <3> Check the reference level Vref3=RVC3*(1 / 16*Vref_msb+DVref3). DVref3=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c. 1. The higher the level, the bit <3> The output is 1, otherwise the bit <3> The output is 0. 2. <3> =1, the reference level is increased by DVref3=1 / 32*Vref_msb so that the capacitance ratio is properly applied. 6. Bit <2> The MAC current is calculated using a TIA. <2> and the associated bits <2> The capacitor (1 / 32 the size of the MSB capacitor) is V <2> It will be charged until 1. <2> Capacitors are used to redistribute charge. <7> , <6> , <5> , <4> , <3> is connected to the capacitor. 2. For the added capacitance, the reference level is adjusted using the ratio RVC2=1 / (1+1 / 2+1 / 4+1 / 8+1 / 16+1 / 32)=32 / 63. 3.co <2> The reference level is Vref2c=(1 / 16*Vref_msb+DVref2cs)*RVC2=32 / 63*(1 / 16*Vref_msb+Dvref2cs). In this formula, DVref2cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + DVref4 + DVref3c + DVref3. 1. The comparator checks the redistributed level against Vref2c. 2. If the redistributed level is higher, <2> =1, otherwise co <2> =0. 3.co <2> =1, the reference level is increased by DVref2c=1 / 32*Vref_msb so that the capacitance ratio is properly applied. 4. The comparator is a bit <2> Check the reference level Vref2=RVC2*(1 / 32*Vref_msb+DVref2). Dvref2=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3+DVref2c. 1. The higher the level, the bit <2> The output is 1, otherwise the bit <2> The output is 0. 2. <2> =1, the reference level is increased by DVref2=1 / 64*Vref_msb so that the capacitance ratio is properly applied. 7. Bit <1> The MAC current is calculated using a TIA. <1> and the associated bits <1> The capacitor (1 / 64th the size of the MSB capacitor) is V <1> It will be charged until 1. <1> Capacitors are used to redistribute charge. <7> , <6> , <5> , <4> , <3> , <2> is connected to the capacitor. 2. For the added capacitance, the reference level is adjusted using the ratio RVC2=1 / (1+1 / 2+1 / 4+1 / 8+1 / 16+1 / 32+1 / 64)=64 / 127. 3.co <1> The reference level is Vref1c=(1 / 32*Vref_msb+DVref1cs)*RVC1=64 / 127*(1 / 32*Vref_msb+Dvref1cs). In this formula, DVref1cs = DVref7 + DVref6c + DVref6 + DVref5c + DVref5 + DVref4c + DVref4 + DVref3c + DVref3 + DVref2c + DVref2. 1. The comparator checks the redistributed level against Vref1c. 2. If the redistributed level is higher, <1> =1, otherwise co <1> =0. 3.co <1> =1, the reference level is increased by DVref1c=1 / 64*Vref_msb so that the capacitance ratio is properly applied. 4. The comparator is a bit <1> Check the reference level Vref1=RVC1*(1 / 64*Vref_msb+DVref1). DVref1=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c. 1. The higher the level, the bit <1> The output is 1, otherwise the bit <1> The output is 0. 2. <1> =1, the reference level is increased by DVref1=1 / 128*Vref_msb so that the capacitance ratio is properly applied. 8. Bit <0> The MAC current is calculated using a TIA. <0> and the associated bits <0> The capacitor (1 / 128 the size of the MSB capacitor) is V <0> It will be charged until 1. <0> Capacitors are used to redistribute charge. <7> , <6> , <5> , <4> , <3> , <2> , <1> is connected to the capacitor. 2. For the added capacitance, the reference level is adjusted using the ratio RVCO=1 / (1+1 / 2+1 / 4+1 / 8+1 / 16+1 / 32+1 / 64+1 / 128)=128 / 255. 3.co <0> The reference level is Vref0c=(1 / 64*Vref_msb+DVref0cs)*RVC0=128 / 255*(1 / 64*Vref_msb+Dvref0cs). In this formula, DVref0cs=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c+DVref1. 1. The comparator checks the redistributed level against Vref0c. 2. If the redistributed level is higher, <0> =1, otherwise co <0> =0. 3.co <0> =1, the reference level is increased by DVref0c=1 / 128*Vref_msb so that the capacitance ratio is properly applied. 4. The comparator is a bit <0> Check the reference level Vref0=RVC0*(1 / 128*Vref_msb+DVref0). DVref0=DVref7+DVref6c+DVref6+DVref5c+DVref5+DVref4c+DVref4+DVref3c+DVref3+DVref2c+DVref2+DVref1c+DVref1+DVref0c. 1. The higher the level, the bit <0> The output is 1, otherwise the bit <0> The output is 0.

Claims

1. 1. A method for performing successive binary weighted digital-to-analog conversion, comprising: a vector-matrix multiplier sequentially performing first vector-matrix multiplication operations for each bit order of values ​​of an input vector, the first vector-matrix multiplication operations for each bit order generating an analog output; For each analog output produced by the vector-matrix multiplication operation: a binary-weighted analog-to-digital converter converting the analog output into one or more digital bit values; the binary-weighted analog-to-digital converter passing the one or more digital bit values ​​to a second vector-matrix multiplication operation each time the one or more digital bit values ​​are generated; A method comprising:

2. 2. The method of claim 1, wherein the first vector-matrix multiplication operation is performed starting with a most significant bit (MSB) of each of the values ​​in the input vector and ending with a least significant bit (LSB) of each of the values ​​in the input vector.

3. converting the analog output to one or more digital bit values; comparing the analog output to a reference signal, wherein a first digital bit value of the one or more digital bit values ​​represents a logic one when the analog output is greater than the reference signal and a logic zero when the analog output is less than the reference signal. The method of claim 1.

4. converting the analog output to one or more digital bit values; adjusting the reference signal when the first digital bit value represents a logical one. The method of claim 3.

5. the analog output corresponds to the MSB of each of the values ​​in the input vector; the one or more digital bit values ​​include the first digital bit value without a carry-over bit; The method of claim 3.

6. converting the analog output to one or more digital bit values; further comprising comparing the analog output to the reference signal after adjusting the reference signal, wherein a second digital bit value of the one or more digital bit values ​​represents a logical one when the analog output is greater than the reference signal and a logical zero when the analog output is less than the reference signal. The method of claim 4.

7. the first digital bit value represents a value corresponding to a current analog output; the second digital bit value represents a carry-over value to be added to a value corresponding to a previous analog output; The method of claim 6.

8. converting the analog output to one or more digital bit values; maintaining the reference signal when the first digital bit value represents a logical zero. The method of claim 3.

9. converting the analog output to one or more digital bit values; further comprising comparing the analog output to the reference signal after adjusting the reference signal, wherein a second digital bit value of the one or more digital bit values ​​represents a logical one when the analog output is greater than the reference signal and a logical zero when the analog output is less than the reference signal. The method of claim 8.

10. 2. The method of claim 1, wherein there is a two cycle delay between converting the analog output to the one or more digital bit values ​​and passing the one or more digital bit values ​​to the second vector-matrix multiplication operation.

11. a plurality of digital inputs each receiving a binary encoded input value of an input vector; a vector-matrix multiplier that uses the binary-encoded input values ​​to perform a binary-encoded vector multiplication operation one bit order at a time; a sequential binary-weighted analog-to-digital converter that sequentially receives analog outputs from the vector-to-matrix multiplier and sequentially converts each of the analog outputs into one or more digital bit values, the one or more digital bit values ​​being output as each of the one or more digital bit values ​​is generated by the sequential binary-weighted analog-to-digital converter; A vector-matrix multiplier circuit comprising:

12. the sequential binary weighted analog-to-digital converter each of said analog outputs comprises a charge integrated circuit comprising a capacitor for storing charge; 12. The vector-matrix multiplier circuit of claim 11.

13. 12. The vector-matrix multiplier circuit of claim 11, wherein the vector-matrix multiplier also passes an indication of the current bit order.

14. 14. The vector-matrix multiplier circuit of claim 13, further comprising a multiplexer that routes the one or more digital bit values ​​to one of a plurality of registers, the indication of a current bit order controlling the multiplexer.

15. the sequential binary weighted analog-to-digital converter a plurality of binary-weighted switches and capacitors each storing a different one of said analog outputs; 12. The vector-matrix multiplier circuit of claim 11.

Citation Information

Patent Citations

  • Multiply-Accumulate Circuits

    US20180095722A1

  • Analog multiplier-accumulators

    US20180253643A1

  • Redundant signed digit A-to-D conversion circuit and method thereof

    US5644313A