Abstract:
An apparatus for processing digital signals includes a multiplier having a first input and a second input and an output producing a product. An adder is connected to receive the product from the multiplier as a first input to produce a sum. A first register is connected to receive and store the sum and to provide a second input to the adder in response to a clock signal. A second register is connected to receive and store the output of the first register in response to an inverse of the clock signal to enable the addition of two products in a single clock cycle.

Description:
FIELD OF THE INVENTION 
     This invention relates generally to digital signal processing, and more particularly to a processing core that can be arranged to perform multiple complex signal processing functions. 
     BACKGROUND OF THE INVENTION 
     Rapid advancements in digital multi-media applications is presenting increasingly more difficult challenges in designing the physical layer of communication equipment. Higher bandwidth and greater data throughput require faster and more efficient modems. For example, the processing of a real-time high quality MPEG video stream at 10.76 MHz or higher is likely to require dedicated hardware. This is due to the fact that many high speed applications, such as cable and terrestrial TV modems, ADSL modems, and ATM modems have base-band processing requirements in the order of Giga operations per second. As an added complexity, multiple communication standards exist, and many more are emerging. 
     In the prior art, adaptability has been achieved in several ways. One technique uses software configurable hardware. For example, field programmable gate arrays can implement modems that can accommodate different modulation formats for terrestrial, cable, telephone line, satellite, and wireless communications. This is an expensive solution not suitable for mass production. In another technique, multiple carrier recovery circuits are fabricated on a single chip. A particular circuit is selected based on a given type of demodulation format. As above, cost factors detract from this solution. General purpose microprocessors have been used. However, today&#39;s high bandwidths make software solutions impractical. 
     In order to arrive at a particularly useful and versatile processing core, several widely used types of digital signal demodulators/receivers can be analyzed to determine commonly employed and recurring functions that are potential candidates for implementation in a processing core. In particular, various formats can respectively include receiver processing front-ends for Quadrature Amplitude Modulation (QAM)—FIG. 1, Orthogonal Frequency Division Multiplexing (OFDM)—FIG. 2, Vestigial Side Band (VSB)—FIG. 3, and Direct Sequence Spread Spectrum (DS-SS) Wideband Code Division Multiplexing (W-CDMA)—FIG.  4 . 
     As shown in FIG. 1, a typical QAM demodulator front-end  100  includes two multipliers  111 - 112 , two interpolators  121 - 122 , an equalizer  130 , and a carrier recovery circuit  140 . The demodulator  100  takes a serial digital signal as input  101  and produces I and Q signals as output  109 . A constant modulus algorithm is used during startup. Operating in either T or T/2 mode, the equalizer typically uses a delay line configured as complex, FIR filters with decision feed-back, feed-forward, or feed-back components having programmable lengths. Adaptive filters can have over a hundred taps requiring an equal number of terms in the computed vector products of the complex numbers. 
     As shown in FIG. 2, a OFDM receiver front-end  200  can include a serial-to-parallel converter (S/P)  210 , an inverse Fast Fourier Transform (IFFT)  220 , a parallel-to serial converter (P/S)  230 , two multipliers  241 - 242 , and an adder  250 . The receiver takes a serial signal  201  as input and generates a demultiplexed serial signal as output  209 . In order to map between time and space domains, generally, X(k)=Σx(n)e −j(2π/N) , the FFT operates on blocks of, for example 2K or 8K terms. 
     As shown in FIG. 3, a VSB front-end  300  typically includes two multipliers  311 - 312 , timing and carrier recovery circuits  320  and  330 , and an equalizer  340 . The equalizer here is similar to the QAM equalizer of FIG. 1, however, the VSB front-end uses a real mode equalizer, instead of a complex mode equalizer. In a real mode equalizer only the I-channel carries data, whereas in a complex mode equalizer, such as QAM, both the I- and Q-channels carry data. Input is provided on line  301 , while the output appears on line  309 . A normalized least means square method may be used for fast convergence. To realize both QAM and VSB modes, the processing core would have to switch between real and complex multiplications and additions. 
     As shown in FIG. 4, a W-CDMA receiver front-end  400  can include a down sampler  410 , a root raised cosine filter (SCR)  420 , and multiple instances of a despreader  430  and a coherence detector and rake combiner  440 . A spread spectrum signal is the input, and a parallel signal can be fed to a channel detector  450 . The down-sampler converts the input signal to base band, the SRC performs a FIR function, and element  440  equalizes the signal. 
     The analysis identifies a number of basic functions that could be implemented by arrangements of a common processing core. The basic functions are summarized in Table  1 . In the table, the size and width are examples of typical implementations for digital video broadcast signal processing. 
     
       
         
               
             
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Basic Functions 
               
             
          
           
               
                 Function 
                 Size 
                 Input width 
               
               
                   
               
               
                 Vector product 
                 64 terms 
                 10 × 12 bits 
               
               
                 Real FIR 
                 16 taps 
                 10-bit 
               
               
                 Complex FIR 
                 16 taps 
                 10-bit 
               
               
                 Adaptive FIR 
                 256 taps 
                 10-bit 
               
               
                 DFFT 
                 block size 2 k or 8 k 
                 10-bit 
               
               
                 Direct Digital Synthesis 
                 2 kHz &lt; f &lt; 40 MHz, 
                 10-bit 
               
               
                   
                 df − 1 Hz, SFDR − 70 dB 
               
               
                   
               
             
          
         
       
     
     Therefore, it is desirable to construct a fundamental multi-functional circuit module or processing core that can be arranged alone, or in multiples to handle a number of different communication signal processing functions. 
     SUMMARY OF THE INVENTION 
     In accordance with the invention, a configurable communication signal processing core includes a set of particular arithmetic units and registers which are interconnected to operate in a plurality of different basic modes suitable for use in a number of digital modem functions. 
     Specifically, the processing core includes a multiplier having a first input and a second input and an output producing a product. An adder is connected to receive the product from the multiplier as a first input to produce a sum. A first register is connected to receive and store the sum from the adder, and to provide a second input for the adder in response to a clock signal. A second register is connected to receive and store the output of the first register in response to an inverse of the clock signal to enable the addition of two products in a single clock cycle. 
     In one embodiment, the processing core is fabricated on a single semiconductor chip having externally accessible signaling pins. In addition, the core can include a first multiplexer selecting the second input for the adder, a second multiplexer selecting the first input for the multiplier, and a third multiplexer selecting the second input for the multiplier. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 is a block diagram of a Quadrature Amplitude Modulation front-end; 
     FIG. 2 is a block diagram of an Orthogonal Frequency Division Multiplexing front-end; 
     FIG. 3 is a block diagram of a Vestigial Side Band front-end; 
     FIG. 4 is a block diagram of a Wideband Code Division Multiplexing front-end; 
     FIG. 5 is a block diagram of a multifunction processing core according to the invention. 
     FIG. 6 is a block diagram of configurable equalizer for VSB and QAM; 
     FIG. 7 is a block diagram of a circuit for calculating a fast Fourier transform; 
     FIG. 8 is a block diagram of multiple cores for a DFFT function; and 
     FIG. 9 is a block diagram for a direct digital synthesis circuit. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Processing Core Structure 
     FIG. 5 shows a multi-functional processing core  500  according to the invention. The core  500  can be arranged alone, or in multiples to handle a number of different communication signal processing functions, including the functions summarized in Table 1 above. 
     Fundamentally, the core  500  includes an adder  510 , a multiplier  520 , and two registers (FF 1  and FF 2 )  530 - 531 . The adder receives a first input from the multiplier, and the second input can be from register FF 1 . The inputs to the multiplier can be, in the case where the core is used to implement an FIR filter, data and corresponding coefficient. Register FF 1  stores the result of the adder, and register FF 2  stores the output of register FF 1 . The registers can be D-type flip-flops with enable. In the preferred embodiment, the processing core is fabricated as a single chip with external pins. 
     The registers are clocked by a clock signal (CLK). As a feature of the invention, the clock signal is inverted for register FF 2  to achieve twice the throughput rate without doubling the clock. The registers are cleared by a reset signal (R). 
     Processing Core Operation 
     Depending on which function is implemented, a single processing core, as described above, can perform two multiply and add computations per clock cycle. For example, it is desired to perform the following arithmetic operation: 
     
       
         ( ab )+( cd ) 
       
     
     During the first half of a clock cycle, the first product (ab) is computed, and nothing is added to that result. The result is fed back to the adder via register FF 1 . During the second half of the clock cycle, the second product (cd) is computed, and that result is added to the previously computed product from register FF 1 . The final result is clocked out of register FF 2  as output. 
     Multiple Processing Cores 
     In order to allow multiple processor cores  500  to be interconnected to implement the functions of Table 1, as well as many other functions, the processing core can additionally include three multiplexers  541 - 543 . The multiplexers can facilitate signal selection. The first multiplexer  541  selects the signal to be used as the second input for the adder. The second and third multiplexers  542 - 543  select the input signals for the multiplier. Therefore, as shown in FIGS. 5 and 6, the core  500  includes the following pins. P for previous data, D for current data, C for coefficients, E for enabling flip-flops, R for resetting flip-flops, S 1  for selecting the first multiplexer, S 2  for selecting the second and third multiplexers, CLK for clocking, O for output, and A for intermediate output. 
     When connected together to form some signaling function, multiple cores can share a common data bus. Thus, the latency through the core will always be a fixed value, i.e., two clock cycles. 
     Applications for Functional Arraignments of Multiple Processor Cores 
     The following sections describe how the cores according to the invention can be arranged to implement the functions of Table 1. 
     Vector Product 
     As stated above, the timing recovery circuit of the interpolators of FIG. 1 needs to compute many vector product. The product of two N-dimension vectors A and B can be expressed as follows:        S   =       ∑     i   =   1     N            A   i            B   i     .                                
     For example, the interpolators calculate a 16 to 32 term vector product for every input sample. For base band timing recovery, the sample rate is twice the symbol rate. For 256 QAM mode, the symbol rate is 5.38 MHz, whereas for 8VSB mode, it is 10.76 MHz. The symbol rate for QPSK is variable within the range of 2 to 30 MHz. The input data A are stored in a circular buffer, and coefficients B are precalculated and stored in a ROM look-up table. To reduce the latency, parallel input of each product terms maybe necessary, especially for high input rates. 
     To construct a vector product, the input vector A is fed to D 1 , D 2 , and the input vector B is fed to C 1 , C 2 . Input P is tied to ground, and S 1  is set to select feed-back from register FF 1 . S 2  is set to the sample rate clock. The core will calculate two product terms and output the sum every sample period. This structure can be easily repeated to perform the calculation on all terms. An adder can sum outputs of all cores to provide the final result. 
     Real FIR 
     To implement the FIR filter, the transpose form is preferred over the direct form because then the critical path can be expressed as a simple multiply-and-add. When configured as the FIR, input P is the partial sum output from a previous core. Input data, (tap 1  (D 1 ) and tap 2  (D 2 )), and their corresponding coefficients, (C 1  and C 2 ) are entered at symbol clock rate. Data in registers FF 1  and FF 2  are advanced at twice the symbol rate. The output of FF 1  is fed back to MUX 1  so that the output can be added to the product of tap  2 . Therefore, a two-tap FIR is achieved. 
     As an advantage, the arrangement with cores according to the invention significantly reduces the number of gates because only one multiplier and one adder are used for the arithmetic unit. In a conventional FIR structure, twice as many arithmetic units are needed. 
     Complex FIR 
     In the QAM front-end of FIG. 1, the base band signal is in complex format. To compute a complex FIR tap at data clock cycle rate using conventional logic, four multipliers and two adders are needed: 
     
       
         ( a+jb )×( c+jd )=( ac−bd )+ j ( ad+bc ). 
       
     
     The four multipliers calculate ac, bd, ad, and bc, respectively, and the real and imaginary parts are formed by one adder each. According to the invention, the above computation for a complex FIR can be implemented with two cores and an adder. 
     Adaptive FIR 
     Adaptive filters are building blocks for feed-forward and decision feed-back equalizers used in VSB and QAM receivers. They can be constructed using delay line FIR. Assuming an LMS update algorithm, the filter coefficients in the filter output formulation can be expressed as: 
     
       
           C   i ( n +1)= C   i ( n )+μ×( n−i )ε( n ). 
       
     
     Here, C i (n) is the coefficient for the ith tap at nth iteration, μis convergence factor, and ε(n) is the error. For QAM mode, the coefficients are in complex form. The adaptive FIR has the same structure of the complex FIR, with half the cores dedicated to the delay line, the other half for coefficient updating. 
     FIG. 7 shows a decision feed-back equalizer  700  for VSB and QAM receivers. The taps of the equalizer are grouped into two parts: feed-forward (EQA)  710  and decision feed-back (EQB)  720 . The output of EQA is subtracted ( 730 ) from the output of EQB, and the result is sent to the decision device (S)  740 . The output of S or decision error is used to update the filter coefficients by E  750 . The equalizer can also be configured as forward or backward only. 
     DFFT 
     Fast Fourier Transform (DFFT) and Inverse Fast Fourier Transform (IFFT) are key elements in modems that are based on OFDM as shown in FIG. 2. A DFT is a block transform expressed as follows:          X        (   k   )       =       ∑     n   =   0       N   -   1              x        (   n   )                              -   j                     (     2                   π   /   N       )                                    
     At a given time, there is a block of data currently being processed, and another block of history data. The core of the calculation portion has the same structure of a complex FIR described above. 
     FIG. 8 shows an arrangement  800  of multiple cores to implement the DFFT function. In the arrangement  800 , the cores are arranged in multiple banks  801 - 809 , the output of cores in a previous bank forming the input to corresponding cores in a next bank. In addition to the cores, the arrangement  800  includes an address generator  810  and a coefficient memory  820 . The input to the first bank are derived from R(×(xn)) and I(×(n)) blocks  830 , and the output can be to Out_R and Out_I blocks  840 . 
     The function of the input blocks is to generate time symmetry by shifting the input data left or right. The function of the output blocks is to generate frequency symmetry. Both pairs of blocks are implemented as bi-directional shift registers. This is realized by setting the coefficient input of the core as 1, and the P input of the core as zero. 
     Direct Digital Synthesis 
     Direct digital synthesis (DDS) is a key functional block for the demodulator, including down converters and I/Q separators. A basic DDS  900  is shown in FIG.  9 . The DDS includes a phase accumulator  910 , a look-up table,  920 , and a digital-to-analog (D/a) converter  930 . A clock signal  901  and a sample are the input to the accumulator  910 . Phase values  903  are provided for the look-up, and amplitude values  904  for the D/A. 
     A coordinate rotation algorithm can be used to generate the samples. The arrangement can be configured as columns of complex multipliers that “rotate” the input sample by +/−2 −k  radians, where k is the column number. 
     A highly flexible, re-configurable processing core for communication signal processing applications is described. The processing core can be used for key data path in modem function blocks. As a single chip or as an arrangement of multiple chips, the cores can be the functional building block. 
     While this invention has been described in terms of a preferred embodiment and various modifications thereof for several different applications, it will be apparent to persons of ordinary skill in this art, based on the foregoing description together with the drawing, that other modifications may also be made within the scope of this invention, particularly in view of the flexibility and adaptability of the invention whose actual scope is set forth in the following claims.