Reconfigurable programmable digital filter architecture

Abstract: A VLSI integrated circuit (100), which comprises a single IIR input and global section and identically-structured cascadable filter sections (FS), each of which filter sections includes a pair (102T, 102B) of time-multiplexed, real-coefficient, input-weighted FIR filter units and additional delay means, can be selectively programmed to operate in any one of a number of different filter configurations that can define real FIR or IIR filters, complex FIR or IIR filters, or filters which are various combinations thereof. One or more of such integrated circuits (100) are useful for implementing a digital deghosting and/or equalization filter.

Description: The invention concerns a reconfigurable programmable digital filter structure. Background Modes of communicating information between a transmitter and one or more receivers may be accomplished by terrestrial broadcast, by satellite, and/or by cable. Such communicated information includes analog NTSC television signals, digital HDTV television signals and digital mobile telephone signals, by way of examples. The received signal may be distorted with respect to the transmitted signal due to multipath effects or other signal transmission effects. As known, such distortion may be minimized at the receiver by means of a suitable equalization filter thereat. In particular, so-called deghosting filters may be used as a multipath equalization filter to minimize multipath distortion displayed by a television receiver. One example of such deghosting filter, which is implemented in digital form, is disclosed in US-A-5 065 242 which issued to Dieterich et al. on November 11, 1991. Proceedings of the IEEE 1990, Custom Integrated Circuits Conference, 13-16 May 1990, Boston, M.M. Cai et al.,"A 40MHz Programmable and Reconfigurable Filter Processor", pages 13.2.1-13.2.4, discloses a programmable digital filter with reconfigurable architecture which is suitable for configuring either as a single complex digital filter or as at least one separate real digital filter. Invention The specific filter characteristics of a deghosting filter or other type of equalization filter of each individual television set, mobile telephone, or other type of communication receiver incorporating such a filter preferably are tailored to that particular receiver in order to be effective in minimizing the distortion of the signal received thereby. However, television sets and mobile telephones are massed-produced items in which cost also must be minimized. What is needed is a single integrated circuit (chip) architecture which permits one or more of such chips to efficiently and economically implement a reconfigurable programmable digital filter having characteristics of a deghosting filter or any other type of equalization filter that may be separately tailored for use in each individual receiver of any type of communication equipment. The invention is directed to a digital filter as defined in claim 1. The filter comprises means including multiplexer means combined with first and second input-weighted digital filter units each of which has a given number of multiplier-coefficient taps that provides a reconfigurable programmable digital filter suitable for use as a deghosting filter. The first and second digital filter units are configured as a single complex digital filter unit with the given number of complex multiplier coefficients for a complex sampled input signal. Figure 1 diagrammatically illustrates an overview of the architecture of an (n+1) section VLSI chip suitable for efficiently implementing a reconfigurable programmable deghosting filter having n filter sections, and FIGURE la diagrammatically illustrates an arrangement employing a plurality of such chips. Figure 2 diagrammatically illustrates a configuration of a pair of real-coefficient FIR filter units employed in eachof the n filter sections of Figure 1, and Figure 2a is a timing diagram indicative of the operation thereof. Figures 3 to 6 diagrammatically show in detail illustrative examples of various types of filters suitable for use as deghosting and/or equalization filters, each of which may be implemented on a VLSI chip by a different programmable configuration of a single global section and three identically-structured filter sections. A digital channel equalization and deghosting filter for either HDTV or NTSC signals must adapt to any combination of preghost, postghost, and other linear channel impairments in a channel that is then being received. These filter types are needed to accomplish attenuation of post ghosts, preghosts, and channel equalization using a variety of algorithms. Channel equalization is accomplished by dense Finite Impulse Response (FIR) filters; postghost cancellation is accomplished by sparse Infinite Impulse Response (IIR) filters, and pre-ghost attenuation is accomplished by sparse FIR filters. Further, while the values of digitized NTSC signals are defined by only real values and require only real-valued digital filters, digitized HDTV signals are complex and require complex-valued digital filters. The present invention is directed to a versatile filter architecture that enables various combinations of the above-described filter modes to be configured on a single VLSI chip without physically rewiring the chip. This not only provides a low cost single filter integrated circuit (IC) that allows for selection of the optimal filter topology for a given input signal. Referring now to FIGURE 1, there is diagrammatically shown a VLSI chip 100 area divided into (n+1) subareas consisting of a single IIR input and global section subarea and filter section FS subareas 1 through n, in which all filter sections have identical architectures. The data input bus provides input data to the transposed architecture filter in a FIR configuration. The IIR output bus provides the output of an IIR adder to the input of a transposed architecture filter for IIR filter implementations. The bus is indicated as bidirectional since a configurable multichip system may have the IIR adder located on any of the n chips. In principle, n could have a value as small as one (i.e., VLSI chip 100 could comprise only a single filter section). However, in practice, the value of n is normally larger than one (VLSI chip 100 normally comprises a given plurality of filter sections). In an actually designed VLSI chip, the value of n is five. However, for illustrative purposes in describing the present invention, it is assumed in the examples shown in FIGURES 4a, 4b and 5 to 12 that the value of n is only three. Each of the n filter sections of chip 100 includes a pair of input-weighted filter units 102T and 102B that are shown in FIGURE 1. In addition, each of these n filter sections comprises other structure including input multiplexers, routing multiplexers registers, and bulk delay means that are not shown in FIGURE 1 but are shown and described in detail below in connection with FIGURES 2, 2a, 3 to 6. The IIR input and global section of chip 100, is shown and described in detail below in connection with FIGURES 3 to 6, includes routing multiplexers and other structure (a) for selectively interconnecting the n filter sections, (b) for selectively operating none, part or all of the n filter sections as FIR filters and/or operating none, part or all of the n filter sections as IIR filters, and (c) for selectively controlling the filter section output which is forwarded to the cascade output of chip 100. A single chip 100 is all that is needed for the case of a deghosting and/or equalization filter requiring n or fewer filter sections. In the case of a a deghosting and/or equalization filter requiring more than n filter sections, a given plurality of chips 100-1 to 100-m may be cascaded, as shown in FIGURE 1a. In this case the cascade output of each chip except that of the last chip 100-m is forwarded to the cascade input of each chip except that of first chip 100-1. The pair of filter units 102T and 102B may be alternatively configured to operate as a single complex-coefficient input-weighted digital filter having a given number of taps for a complex input signal, as shown in FIGURE 2, which shows top real-coefficient FIR filter unit 102T and bottom real-coefficient FIR filter unit 102B associated with an input multiplexer 200, and to FIGURE 2a, which is a timing diagram indicative of the operation of the FIGURE 2 structure. Each of filter units 102T and 102B is a multitap input-weighted filter having two multiplier-accumulator registers associated with each tap, as indicated in FIGURE 2. Input signals are provided from a source of television signal video component for example, and output signals are provided to video signal processing circuits in a television signal receiver for example. Successive Real R and Imaginary I input data samples are respectively applied to first and second inputs of multiplexer 200 at a given sample rate that is one-half the filter clock Clk rate. Multiplexer 200, in response to Clk applied to the switch S input thereof, forwards an R input data sample to the inputs of both filter units 102T and 102B during the first Clk period of each successive sample period (designated SP in FIGURE 2a) and forwards an I input data sample to the inputs of both filter units 102T and 102B during the second Clk period of each successive sample period. Although not specifically shown in FIGURE 2, during the first Clk period, appropriately-valued multiplier coefficients R and I, respectively, are applied to the first of the two multiplier-accumulator registers associated with each tap of filter unit 102T and each tap of filter unit 102B, respectively. During the second Clk period, the negative of an appropriately-valued multiplier coefficient -I is applied to the second of the two multiplier-accumulator registers associated with each tap of filter unit 102T and an appropriately-valued multiplier coefficient R is applied to the second of the two multiplier-accumulator registers associated with each tap of filter unit 102B. The value of a complex multiplier coefficient c involves both a real value R and an imaginary value I and a complex input sample i also involves both a real value R and an imaginary value I. Therefore, the product (R+jI) c (R+jI) i of the complex coefficient c times the complex input sample i is equal to (RcRi-IcIi)+j(RcIi+IcRi). It usually requires four digital filter units to perform this involved complex product computation. However, filter units 102T and 102B, by employing time-multiplexed coefficients and two multiplier-accumulator registers between taps, permits this involved complex product computation to be performed with only the two filter units 102T and 102B. In particular, the sample output from filter 102T during the first Clk period of each sample period is RR and during the second Clk period of each sample period is -II. Together, they represent the real portion of each complex output sample, shown as EE in the FIGURE 2a timing diagram. Similarly, the sample output from filter 102B during the first Clk period of each sample period is IR and during the second Clk period of each sample period is RI. Together, they represent the imaginary portion of each complex output sample, shown as FF in the FIGURE 2a timing diagram. In a designed chip, each of filter units 102T and 102B comprises only three taps. For this reason, a whole filter usually comprises a plurality of cascaded filter units on a single chip or, in some cases, on a plurality of cascaded chips. The real cascade output of a corresponding filter unit 102T of a preceding filter section, designated E, can be forwarded to the sumin input of the filter unit 102T of FIGURE 2. In a similar manner the imaginary cascade output of a corresponding filter unit 102B of a preceding filter section, designated F, can be forwarded to the sumin input of the filter unit 102B of FIGURE 2. There are two alternative ways of handling the sumin input sample value forwarded to an input-weighted filter unit 102T or 102B. A first way, not shown in FIGURE 2, is to handle the sumin value in the same manner as such sample values are handled internally within an input-weighted filter unit 102T or 102B of any filter section. More specifically, each of the multiplexed first and second multiplier-accumulator registers associated with each tap of filter unit 102T or 102B multiplies the current input sample value by a coefficient value associated therewith, then adds this product value to the accumulated sum value from the corresponding multiplexed register forwarded thereto from the preceding tap after a delay of a specified number of Clk periods. In this first way, The sumin input E or F to a filter unit of a given filter section from the multiplexed output EE or FF of a corresponding filter unit of a preceding filter section is directly forwarded to the given filter section in multiplexed form. In this case, the first and second Clk period sample values of this sumin input is respectively added to the sum value of the first multiplier-accumulator register and to the sum value of the second multiplier-accumulator register associated with the first tap of the filter unit of the given filter section. In the second way, shown in FIGURE 2, the multiplexed outputs EE and FF are demultiplexed before being forwarded to the E and F sumin filter-unit inputs of a following filter section. This is accomplished by delaying The EE and FF outputs by a Clk period in registers 202T and 202B and then adding the delayed EE and FF outputs to the undelayed EE and FF outputs in summers 204T and 204B. In this second way, the Real Out output from summer 204T and the Imag Out output from summer 204B (designated Out in FIGURE 2a) is forwarded only during a selected valid one of the first and second Clk periods of each sample period SP (designated V portions of Out in FIGURE 2a), and is not forwarded during the unselected invalid one of the first and second Clk periods of each sample period SP (designated X portions of Out in FIGURE 2a). The selected valid one of the first and second Clk periods of each sample period SP for summers 204T and 204B need not be the same as one another. Examples of reconfigurable programmable filter chip architecture: The filter clock employed by the designed VLSI chip embodying the reconfigurable programmable digital filter architecture of the present invention is 28.636MHz and the input data sample clock is 14.318MHZ (i.e., one half the rate of the filter clock). The programming of the filter is determined by a software-controlled CPU. As stated in the above "overview", the designed VLSI chip comprises six sections comprising a single IIR input and global section and five filter sections, all of which filter sections have identical architectures. Because of the large amount of structure included in each of these sections, it is necessary in FIGURES 3 to 6 to abbreviate the designations of each structural item and to limit the illustrative examples of reconfigurable filter chip architecture shown in in FIGURES 3 to 6 to only three filter sections in order to fit all this structure within available drawing area. Nomenclature for this VLSI chip is derived from its use in a complex mode. Real filter sections and associated hardware relate to filter sections 102T and associated hardware in the description, while imaginary filter sections relate to filter sections 102B. The following is a list of the abbreviated designations employed in FIGURES 3 to 6: 1. Filter-section abbreviated designations: FIR Filter--Multiplexed FIR filter units similar to those shown in FIGURE 2. These input-weighted filters contain inter-tap programmable delays of from 1 to 4 sample periods, and they include multiplexed coefficients. "Input" connects to the coefficient multipliers, "sumin" adds in to the product of the first coefficient multiplier, and "sumout" is the output of the last adder, delayed by a clock period equal to one half a sample period. RB[4..1], IB[4..1]--Real and Imaginary Input Multiplexer Control. There are four inputs to each input multiplexer. There are four control bits to each multiplexer. On each of the first and second clock periods T0 and T1 of a sample period, different data are presented to the control of the input multiplexer. This allows any input to be selected from the four input selections during T0, and any input to be selected during T1. This is an easy way to obtain the required flexibility to cascade devices and support all required modes of operation. Each input multiplexer control includes a first latch for storing two control bits written into it by a CPU control line which define the effective one of the four inputs during any clock period T0, and a second latch for storing two control bits written into it by the CPU control line which define the effective one of the four inputs during any clock period T1. RIReg, IIReg--Real and Imaginary Input Data Registers. This is a pipeline delay, as well as a buffer for data into the filter inputs. This is programmable to sample at clock rate for complex modes. RM1, IM1--Real and Imaginary Real/complex mode multiplexers. Complex mode is set to input 1. RM2, IM2--Real and Imaginary Output Multiplexers for selecting the data output source from the following 4 options: Option Complex Mode Function 0 Inter Section delay 2 1 Inter Section delay 1 2 Inter Section delay 3-155 3 Not Useful ROReg, IOReg--Real and Imaginary Output Data Registers. T0--First clock period of a sample period. T1--Second clock period of a sample period. Tlena--Enable in T1. This is a register operating at sample rate, enabled only during the T1 clock periods. Data will transition only on the sample period transitions. The bulk delay operates at sample period rate, not clock period rate. This forms the third delay added to the bulk delay range of 0 to 152 to get the range from 3 to 155. z -1 --Delay of clock period where it stands alone in FIGURES 3 to 6. Otherwise, it is adjustable to be either one clock period for complex, or one full sample period (Tlena), or one full sample period enabled in T0 for complex (ROReg, lOReg). Its only consistent definition is that it is implemented with only a single register stage. z -3kr ,z -3ki --Real and Imaginary programmable inter-tap delay. Range from 0 to 3 sample period delays. z -RDEL , z -IDEL --Real and Imaginary Bulk Delay Registers. Programmable from 0 to 152 sample period delays. 2. IIR input and global section abbreviated designations: ISC, QSC--In-phase Scaling Control and Quadrature Scaling Control. This multiplexer allows shifting of IIR feedback data to get additional precision when all IIR coefficients are less than 1, 1/2, or 1/8. In FIR only mode, it is convenient to select a 0 as input. This multiplexer is statically controlled and resembles a switch. M2--Quadrature (Imaginary) cascade source select. In conjunction with M5, any filter section or IIR adder output or zero can be cascaded to the sumin input of the input filter section of the chip (filter section n in FIGURE 1 and filter section 3 in FIGURES 3 to 6). Like RB and IB, this multiplexer can alternately select different inputs on each clock period cycle. This is required for some complex mode configuration cascades. M3--In-phase (Real) cascade source select. In conjunction with M4, any filter section or IIR adder output or zero can be cascaded to the sumin input of the input filter section of the chip (filter section n in FIGURE 1 and filter section 3 in FIGURES 3 to 6). Like RB and IB, this multiplexer can alternately select any input clock period cycle. This is required for some complex mode cascades. M4--In-phase (Real) section select. Selects the output of any real (In-phase) half filter section or the real IIR adder output to drive M3. M5--Quadrature (Imaginary) section select. Selects the output of any imaginary (quadrature) half filter section or the imaginary IIR adder output to drive M2. M6--In-phase (Real) output select. Selects the output of any real half filter section or the real IIR adder output to be output from the lout terminals. M7--Quadrature (Imaginary) output select. Selects the output of any imaginary half filter section or the imaginary IIR adder output to be output from the Qout terminals. M8--FIR Input Multiplexer. In FIR modes, input data comes from either the IIR filter output or the phase rotator output. Either way, it is routed through the IIR filter adder--the other IIR addend is set to 0 by ISC and QSC if the filter is pure FIR. In complex modes, M8 multiplexes real and imaginary data at the clock period rate which is twice the sample period rate, thereby formatting the input data for the multiplexed filter sections. TOena z -1 --A register enabled in the T0 clock period of a sample period. 3. Chip system input and output abbreviated designations: 0 --The constant value of zero. I1, I2, 13--Outputs of In-phase (real) filter sections 1, 2, 3. Iout--In-phase filter output. Iph--In-phase input to IIR adder, from phase rotator. Isumin--In-phase Cascade Input. MIO--Multiplexed Filter I/O - Real/Imaginary multiplexed signal in complex mode. This is an output on the chip with the active IIR feedback adder. It is input on all other chips. MIOena enables the output capability. MIOena--Enables the output capability of the MIO bus. QI, Q2, Q3--Outputs of Quadrature filter sections 1, 2, 3. Qout--Quadrature Filter output. Qph--Quadrature input to IIR adder, from phase rotator. Qsumin--Quadrature Phase Cascade Input. The identical chip architecture of the three filter sections and the single IIR input and global section shown in each of FIGURES 3 to 6 is selectively programmed to be reconfigured into a particular one of nine different filter configurations or, alternatively, to merely forward the cascade input to the chip with a certain amount of delay to the cascade output of the chip without any filtering taking place. A software-controlled CPU accomplishes this selective programming solely by (1) determining the input-output connection of each input multiplexer of each filter section during respective clock periods To and T1 of each sample period; (2) determining the input-output connection of each routing multiplexer RM1, IM1, RM2 and IM2 of each filter section; (3) determining the input-output connection of each routing multiplexer ISC, QSC, M2, M3, M4, M5, M6, M7 and M8 of the single IIR input and global section; and (4) controlling the respective digital values of the in-phase (real) Iph portion and the quadrature-phase (imaginary) Qph portion of a complex phase-rotating coefficient. FIGURE 3 shows an example of a complex IIR filter configuration. In this configuration, the entire chip is programmed as a complex IIR filter. Sections 1 and 2 are shown with only a z -1 delay and section 3 is separated from section 2 by the bulk delay. The Isumin and Qsumin terminals are not used, except possibly for cascading; input data arrives on I and Q input terminals of the VLSI chip (not shown), and the filter output is derived on lout and Qout. RIReg and IIReg are all configured for clocking during both the T0 and T1 clock periods, and ROReg and IOReg are configured for clocking only at the end of a T0 clock period. FIGURE 4 shows an example of a configuration comprising a complex IIR filter with a complex FIR filter on one chip. In this configuration, filter sections 1 and 2 are in IIR filter mode, while section 3 is configured as a 3 tap FIR. Phase adjusted input data arrives on Iph and Qph, and output data is derived on lout and Qout, which receives their output from filter section 3. RIReg and IIReg are all configured for clocking during both T0 and T1 clock periods, and ROReg and IOReg are configured for clocking only at the end of T0 clock periods. Filter section 2 is separated from filter section 1 by a z -1 delay of one sample period (i.e. e clock periods), while filter section 1 uses the bulk delay to get a total delay of 3 to 155 sample periods before being added to the input data. Note that a delay is incurred in recovering the complex output data of section 3. If section 3 were to cascade to the next chip, the complex components (i.e., the four coefficient/data products RR, -II, RI, and IR) could be passed over the output busses. Since this example is a stand alone configuration, the real and imaginary filter outputs are computed before the output. This delay is simply signal latency. FIGURE 5 shows an example of a configuration comprising a single complex FIR filter. In the light of the above teaching, this configuration is straight forward. FIGURE 6 shows an example of a configuration which conveys data unchanged by operating merely as a delay line between the chip inputs and outputs. This is the the default condition that occurs on power startup of the chip. The data passes through unchanged because the coefficients are all set to zero in response to a special control signal present on power startup, which is applied to multiplexers ISC and QSC to cause these multiplexers to forward 0 values to the IIR adders, while this special control signal also causes the value of the complex coefficient defined by Iph and Qph to be 1-2 -10 +j0, rather than being 0. The default operation passes data from input to sumout on the chip and cause data to ripple through the sumin of the FIR filters to the next sumout. It is not intended that the particular illustrative examples shown in FIGURES 3 to 6 of the filter architecture of the present invention be in any way limiting. Many different or larger filter configurations of input-weighted multiplexed filter-unit pairs that form complex FIR or IIR filters can be implemented with the designed six-section VLSI chip, and even larger filter configurations can be implemented with a plurality of such chips connected in cascade.

Claims: A reconfigurable programmable digital filter including: first (102T) and second (102B) input-weighted digital filter sub-sections each of which have data inputs and a given number of multiplier-coefficient taps; input means for providing signal samples to said digital filter; output means (204T, 204B) for receiving output signals from said digital filter sub-sections, characterized by: said first (102T) and second (102B) digital filter sub-sections are operated with a sample period (SP) divided into successive first and second time-multiplexed clock periods (Clk); filter reconfiguration means including multiplexer means (200) for time-multiplexing the data and multiplier coefficient inputs of said first and second digital filter sub-sections during said first and second successive clock periods wherein said first and second digital filter sub-sections are configured for operation as a complex digital filter with complex multiplier coefficients and a complex sampled input signal provided thereto by said input means, wherein said multiplexer means are used for applying the value of the real component of each input sample as an input to said first digital filter sub-section and further means are used for applying the value of the real component of the multiplier coefficient to each tap of said first digital filter sub-section during said first clock periods; the said multiplexer means are used for applying the value of the real component of each input sample as an input to said second digital filter sub-section and said further means are used for applying the value of the imaginary component of the multiplier coefficient to each tap of said second digital filter sub-section during said first clock periods; the said multiplexer means are used for applying the value of the imaginary component of each input sample as an input to said first digital filter sub-section and said further means are used for applying the negative of the value of the imaginary component of the multiplier coefficient to each tap of said first digital filter sub-section during said second clock periods; the said multiplexer means are used for applying the value of the imaginary component of each input sample as an input to said second digital filter sub-section and said further means are used for applying the value of the real component of the multiplier coefficient to each tap of said second digital filter sub-section during said second clock periods. The digital filter defined in claim 1, wherein said filter reconfiguration means further includes: first means (202T, 204T) responsive to respective outputs of said first digital filter sub-section (102T) during said first and second clock periods for deriving an output sample from said first means having a value corresponding to the sum of said respective outputs of said first digital filter sub-section; second means (202B, 204B) responsive to respective outputs of said second digital filter sub-section (102B) during said first and second clock periods for deriving an output sample from said second means having a value corresponding to the sum of said respective outputs of said second digital filter sub-section. The digital filter defined in claim 1 or 2, wherein each of said first (102T) and second (102B) digital filter sub-sections includes means for inserting a programmable delay adjustable between a minimum and a maximum number of clock periods between adjacent taps thereof. VLSI circuit with a digital filter according to any of claims 1 to 3, including: a first given number of filter sections and a single IIR input and global section, wherein each of said filter sections includes a pair of said first (102T) and second (102B) input-weighted digital filter sub-sections, and wherein each one of said pairs has a second given number of taps, two multiplier-accumulator registers between taps thereof, and first programmable delay means between taps thereof for introducing a sample delay that can be adjusted between a first and a second small number of sample periods; said single IIR input and global section includes in-phase (I_ph) and quadrature-phase (Q_ph) means for programmably adjusting the phase of samples applied as inputs thereto, and programmable routing multiplexers (ISC, QSC) for applying the output of selected filter sections as inputs to said in-phase and quadrature-phase means, and for selectively cascading (M2-M8) at least some of said first given number of filter sections to configure said cascaded filter sections as a complex FIR or IIR filter.

Inventors: KNUTSON PAUL GOTHARD, KNUTSON, PAUL GOTHARD
Applicants: THOMSON CONSUMER ELECTRONICS, THOMSON CONSUMER ELECTRONICS, INC.
Application year: 1994
Main classification: H03H17
IPC codes: H03H17, H04N5