SWITCHED-CAPACITOR CASCADED MATRIX MULTIPLIER WITH VARIABLE INPUT BIT RESOLUTION
20250217606 ยท 2025-07-03
Inventors
Cpc classification
International classification
Abstract
A capacitive multiplier includes, in part, a multitude of capacitors disposed along S rows and T columns. The capacitors disposed in the ith column are coupled to one another and are configured to be coupled to or uncoupled from capacitors disposed in the column T via an ith switch, where i ranges from 1 to (T-1). The capacitive multiplier further includes, in part, a timing controller configured to generate (T-1) control signals each of which is associated with one of (T-1) switches. The timing controller generates the (T-1) control signals in sequence such that the ith switch is closed before (i+1)th switch opens, and the ith switch is opened before closing the (i+1)th switch. In response to closing of the ith switch, the capacitors in the ith column are coupled to capacitors in column T to share and distribute their charges.
Claims
1. A capacitive multiplier comprising: a plurality of capacitors disposed along S rows and T columns, wherein capacitors disposed in i.sup.th column are coupled to one another and are configured to be coupled to or uncoupled from capacitors disposed in the column T via an i.sup.th switch; wherein i ranges from 1 to (T-1); a timing controller configured to generate (T-1) control signals each associated with a different one of (T-1) switches, wherein the timing controller generates the (T-1) control signals in sequence such that the i.sup.th switch is closed before (i+1).sup.th switch, and the i.sup.th switch is opened before closing the (i+1).sup.th switch, wherein in response to closing of the i.sup.th switch capacitors in the i.sup.th column are coupled to capacitors in column T to share and distribute their charges, wherein S and T are integer numbers.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] The following Detailed Description, Figures, and appended Claims signify the nature and advantages of the innovations, embodiments and/or examples of the claimed inventions. All of the Figures signify innovations, embodiments, and/or examples of the claimed inventions for purposes of illustration only and do not limit the scope of the claimed inventions. Such Figures are not necessarily drawn to scale, and are part of the Disclosure.
[0006]
[0007]
[0008]
[0009]
[0010]
DETAILED DESCRIPTION
[0011] A switched capacitor vector-dot product (VDP) engine, referred to herein as a VDP engine or VDP, as depicted in
[0012] The X and W inputs can be of variable bit-depth, i.e. 8 bits, 4 bits, 3 bits, and the like. The VDP includes a multitude of sub-circuits, as shown in
[0013] The W inputs are loaded into the cross-coupled inverters and stored for computation, as shown in the exemplary
[0014]
[0015] In array 300, each column is shown as including N capacitors in parallel. In order to accumulate across the bit-wise depth of W, the columns 350.sub.0-350.sub.7 are successively connected through switch matrix 360. There are two additional columns of capacitors disposed at the each end of the array, namely column 350.sub.9 positioned to the right of column 350.sub.0, and column 350.sub.8 positioned to the left of column 350.sub.7. The capacitors in array 350.sub.9 store the accumulated results as the switching network 360 operates across the array.
[0016] Column 350.sub.0-350.sub.8 are controlled so as to be coupled to or uncoupled from node A by associated switches SW0-SW8 respectively, which in turn, are controlled by the timing logic 390. For example, when switch SW0 is caused to close by timing logic 390, the capacitors in column 350.sub.0 are coupled to node A to share and distribute the charges. Capacitors in column 350.sub.9 are directly coupled to node A.
[0017] The signals S.sub.0-S.sub.8, mac_clear, and accum_clear supplied by timing logic 390, are used to control switches SW0-SW8 of the capacitor array 300. To perform the accumulation column-wise and across the array, the switches are closed and opened in order, thus sharing their charge with the capacitors disposed in array 350.sub.9. For example, when SW0 is closed, the charge in the capacitors of column 350.sub.0 is shared with the capacitors in column 350.sub.9. As the capacitors in columns 350.sub.0 and 350.sub.9 have the same capacitance, the charge is divided equally between them. After the charge distribution between the capacitors in columns 350.sub.0 and 350.sub.9, switch SW0 is opened and switch SW1 is closed. Accordingly, the charges of the capacitors in column 350.sub.1 and column 350.sub.9 are redistributed. The charges of capacitors in columns 350.sub.1 and 350.sub.9 are both halved, with column 350.sub.1 holding the charge from bit 1 of the array 300, and column 350.sub.9 holding half the charge of column 350.sub.0, which is further divided by 2. The closing and opening of the switches continues until the final result of the multiplication is achieved in column 350.sub.9 by closing switch SW8. After SW8 is opened, the result of the multiplication at node A of column 350.sub.9 is supplied to comparator 365. The output of comparator 365, which is either a logic 1 or 0, is supplied to SAR 370 whose output provides an additional signal to timing logic 390.
[0018] The timing diagram for an 8-bit W being multiplied by a 2-bit X is shown in
[0019] When SW8 is closed the second time, the charge stored on the MSB from the X0 multiplication with W0-7 is halved to scale it appropriately, while being added to the result of X1 multiplied with W0-7. This final result is stored on the MSB of column 350.sub.9 and then delivered to the SAR ADC for conversion to the digital domain. With the conversion complete, the entire MAC array is reset through mac_clear while the next N inputs of X value is shifted in to begin its MAC function, starting with bit 0. There is no constraint on the number of bits shifted in for each X input. Shown in
[0020] The timing network is flexible as shown in
[0021] As described above, C4-C7 could be ignored, but they can store another W input that is 4b deep. The input X could be cycled through again, or another input X entirely could be shifted in, going through the same operation shown in
[0022] The flexibility in how the array can be configured and operated advantageously provides enhanced efficiency in performing MAC operations. The sequence, size, and order of the MAC operations may be arbitrarily configured by the timing logic shown in