An approach is presented for implementing a fully programmable transversal filter using surface charge-transfer techniques. Summation of the signals from each output tap is performed automatically by using common output electrodes, and fixed binary tap weights are Provided by selectively controlling the transfer of charge within each cell. Charge packets representing a sampled data input signal are inserted into individual cells where they remain until they are replaced by a new sample. Any combination of these packets can be nondestructively read during any clock cycle with the output being automatically summed. Since the charge does not leave the cell, but is simply sloshed back and forth within it during a read-out cycle, charge-transfer losses are not cumulative in this structure. The application of these structures in various familiar signal-processing functions is discussed, and both experimental results and theoretical expressions for their performance are presented. Experimental results on a simple test cell include reading the same charge more than 5 × 105times and demonstrating a charge-transfer loss of less than 10-7per transfer.