General purpose filter

Information

  • Patent Grant
  • 6407694
  • Patent Number
    6,407,694
  • Date Filed
    Wednesday, June 14, 2000
    25 years ago
  • Date Issued
    Tuesday, June 18, 2002
    23 years ago
Abstract
A versatile signal processor. The inventive signal processor includes a plurality of filters which are selectively interconnected to provide a variety of digital signal processing functions. In the illustrative embodiment, each filter is adapted to multiply input data by a coefficient. Further, each filter includes adders for accumulating the products. The coefficients are provided by an external processor which configures the general purpose filter to a particular function, such as a general purpose filter, a Hilbert filter, a finite impulse response filter, an equalizer, a beamforming network, a convolver, a correlator, or an application specific integrated circuit by way of example. When interconnected in accordance with the teachings provided herein, these circuits may be used to provide a digital receiver.
Description




A portion of the disclosure of this Patent document contains material which is subject to copyright protection. The copyright owner has no objection to a facsimile reproduction, by any one, of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyrights with respect thereto.




BACKGROUND OF THE INVENTION




1. Field of the Invention




The present invention relates to radar receivers. More specifically, the present invention relates to multi-purpose filters used in high performance digital radar receivers.




2. Description of the Related Art




Sophisticated high performance military and commercial digital radar receivers detect and process signals in complicated environments that include broadband clutter, interference sources (intentional and unintentional), echoes, and receiver noise. These receivers perform some or all of the following functions: synthesize in-phase (I) and quadrature (Q) components from high-speed sampled signals, form video filters, notch DC components, decimate data, provide channel-to-channel equalization, perform digital range correlation, and provide interference cancellation.




Currently, these tasks are performed by Hilbert filters, digital video filters, equalization filters, discrete Fourier transform, filters, decimating filters, convolvers, correlators, and general purpose cascadable FIR filters implemented in commercial off-the-shelf hardware (COTS) and customized hardware in embedded systems.




Unfortunately, digital radar receivers implemented in accordance with conventional teachings often require several hundred signal processing chips. As a result, conventional digital radar receivers are typically heavy, bulky, and expensive to develop and manufacture. In addition, these receivers typically consume considerable power and generate much heat.




Hence, there is a need in the art for a unique receiver architecture that is highly flexible, scalable, and reconfigurable that can perform the numerous functions mentioned above. Also, during real time embedded applications, the architecture should be continually reconfigurable to quickly, easily and inexpensively handle changing requirements.




SUMMARY OF THE INVENTION




The need in the art is addressed by the signal processor of the present invention. Generally, the inventive signal processor includes a plurality of filters which are selectively interconnected to provide a variety of digital signal processing functions. In the illustrative embodiment, each filter is adapted to multiply input data by a coefficient. Specifically, each filter includes circuitry to multiply input data by coefficients to form digital filtering products and adders to accumulators the sum of the products. The coefficients are provided by a microprocessor to configure the logic to a particular function, such as a general purpose filter, a Hilbert filter, a finite impulse response filter, an equalizer, a beamforming network, a convolver, a correlator, or an application specific integrated circuit by way of example. When interconnected in accordance with the teachings provided herein, these circuits may be used to provide a digital receiver.




That is, a digital receiver, constructed in accordance with the present teachings would comprise a plurality of general purpose filters constructed in accordance with the present teachings. Each filter would have a plurality of filter banks, switching circuitry to interconnect the filter banks, and programmability provided by an external processor. The processor configures the filter banks, to provide a delay element, a first decimating filter and a first equalizer in a first channel of a first general purpose filter and a Hilbert transform, a second decimating filter and a second equalizer in a second channel of the first general purpose filter. A first range correlator is provided in a first channel of a second general purpose filter and a second range correlator is provided in a second channel of a second general purpose filter. The first channel of the first general purpose filter is connected to the first channel of the second general purpose filter and the second channel of the first general purpose filter is connected to the second channel of the second general purpose filter.




An external processor programs the general purpose filter to configure the filter banks to simultaneously provide the functions found in most digital receivers (Hilbert transforms, video filters, equalizers, range correlation, and general purpose video filters).




The versatile, flexible and reusable features of the inventive general purpose filter architecture allows analog and digital receivers to be built using a single chip type. Accordingly, the receivers are much smaller and lighter in weight than conventional systems and have lower associated power dissipation, thermal heating, and development and manufacturing cost.











BRIEF DESCRIPTION OF THE DRAWINGS





FIG. 1

is a block diagram of the general purpose filter of the present invention along with associated control circuitry.





FIG. 2

is a schematic diagram of a portion of the general purpose filter of FIG.


1


.





FIG. 3

is a block diagram of the FIR filter utilized in the general purpose filter of the present invention.





FIG. 4

is a block diagram of an FIR sub-module utilized in the general purpose filter of the present invention.





FIG. 5

is a block diagram of an individual FIR filter cell utilized in the general purpose filter of the present invention.





FIG. 6

is an illustrative functional timing for a microprocessor read operation from the general purpose filter of the present invention.





FIG. 7

is an illustrative functional timing for a microprocessor write operation to the general purpose filter of the present invention.





FIG. 8

is an illustrative functional timing diagram for the Hilbert Transform Mode of the general purpose filter of the present invention.











DESCRIPTION OF THE INVENTION




Illustrative embodiments and exemplary applications will now be described with reference to the accompanying drawings to disclose the advantageous teachings of the present invention.




While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility.





FIG. 1

is a block diagram of the general purpose filter of the present invention along with associated control circuitry. The system


10


consists of the general purpose filter


20


, a microprocessor


50


, a user interface


60


, a coefficient memory


70


, an interface and control circuit


80


, and a data collection memory


90


. The filter


20


includes first, second and third combiners


22


,


32


and


42


which allow the microprocessor


50


to selectively interconnect a plurality of 16 tap finite impulse response (FIR) filters


24


-


30


and


34


-


40


(even numbers only) therebetween via a bus (not shown). Tap filters


24


-


30


provide a first filter bank A between the first and second combiners


22


and


32


, respectively. Tap filters


34


-


42


provide a second filter bank B between the second and third combiners


32


and


42


, respectively. Note that the outputs of the first three filters in each bank are fed back to the inputs thereof. Those skilled in the art will recognize that the teachings of the present invention are not limited to FIR filter implementations. The present teachings may be implemented with infinite impulse response (IIR) filters as well.




A user selects a function to be implemented via a user interface


60


. As discussed more fully below and in accordance with the present teachings, in response to the user input, the microprocessor


50


selectively interconnects the tap filters via the combiners as necessary to implement the desired function. Much of the signal processing required to implement digital radar receivers can be implemented with a plurality of digital filters properly weighted. Accordingly, in the present invention, the filters are interconnected and provided with tap weight coefficients by the microprocessor as necessary for the desired functionality. The coefficients are provided by a coefficient memory


70


. In the illustrative embodiment, timing and control is provided by an interface and control circuit


80


.





FIG. 2

is a schematic diagram of a portion of the general purpose filter of FIG.


1


. In the illustrative embodiment, the system


10


is implemented as a general purpose digital filter (GPF) chip with 128 multiply-add filter cells fabricated in 0.35 micron CMOS technology. Using current technology and the present teachings, the chip


10


may be designed by one of ordinary skill in the art, to operate at rates up to 60 MHz with an asynchronous master reset. In the preferred embodiment, the chip


10


has two 16 bit input channels, two 32 bit output channels, a chip enable and a microprocessor interface.




In the illustrative embodiment, two input ports I and Q allow 128 filter cells to be shared between two data paths. This allows the input data to processed as two separate pieces of data or as complex data. Each path may be configured as a 16 tap arbitrary phase filter, a 32 tap filter or a 128 tap single channel filter. As discussed below, coefficient double buffering and clock synchronization logic permits the user to switch between coefficient sets without causing any undesirable effects in the filter's operation.




A microprocessor compatible bus


52


, (consisting of a 16 input address bus, a 16 bit bi-directional data bus, a read/write bit, and a control select), is connected to each element in the system


10


and provides read/write access to programmable internal registers therein. As discussed below, these internal registers are double buffered (see

FIG. 5

) to allow the chip to switch to new settings upon receipt of an external sync pulse. Consequently, a one clock update cycle is required to update the new settings.




The system


10


is partitioned into 8 functional blocks: a Random Number Generator (RNG)


44


, a Data Selector & Interface (DSI)


46


, a Saturation & Peak Detector (SPD)


48


, a DC Offset Compensation (DOC)


49


, a Finite Impulse Response filter (FIR)


50


, a Data Decimator & Interface (DCI)


52


, a Timing & Control Interface (TCI)


80


, and a Data Capture Memory (DCM)


90


. Each of these elements is of conventional design.




Banks of registers


54


and


56


are disposed along the data path in order to insure proper alignment of input data, sum data and data enable signals. In addition, the General Purpose Filter Chips may be “chained” together to create a larger multi-tap FIR without requiring additional external buffering.




The RNG


44


is a programmable pseudo-random number generator that allows for a known sequence of numbers to be inserted into the front-end of the data path for self-test purposes. The data sequence for each of the channels is based on the mode and seed values programmed into the number generator. The RNG


44


allows for 12, 14 or 16 bit operation and the data output can either be a constant value, a pseudo random pattern, DCM data or input data.




The DSI


46


is a programmable module that provides data selection and decimation. It provides odd/even data samples and has independent decimation rates for the data path channels and the DCM


90


.




The SPD


48


is a general purpose, dual channel, programmable saturation and peak detector. Separate saturation counters, saturation flags, threshold values and peak value data registers are provided for each channel. A saturation occurs when the absolute value of valid channel data is greater than that channel's programmed threshold value. The peak data, over the specified sample period, is determined by identifying the maximum squared value of non-saturated channel data. When a channel's peak value is identified, data for both channels is stored in memory.




The DOC


49


allows for a DC offset value to be calculated over a specified number of samples and then, if enabled, have the offset term removed from the input data stream. In the illustrative embodiment, valid data sample sizes for DC offset calculations are powers of 2, ranging from 2 to 256.





FIG. 3

is a block diagram of the FIR filter


50


. As illustrated in

FIG. 3

, the FIR


50


includes the following 3 sub-modules: FIRA


100


, DCF


200


, and FIRB


300


. FIRA and FIRB are identical FIR sub-modules. It is important to note that data from the I/O is pipelined prior to the FIRB block. This is necessary to maintain data alignment along the data path.





FIG. 4

is a block diagram of an FIR sub-module


100


. Each FIR sub-module


100


is a programmable transposed canonical FIR filter. The sub-module can be configured as a two channel, 16 tap delay Hilbert Transform filter followed by a 16 tap filter, a 32 tap FIR filter, a 64 tap single channel FIR filter, or a 2 channel, 16 tap cross coupled FIR filter. There is a rounding option between the two filters. The type of FIR filter (i.e. low pass, band pass, high pass) is determined by the coefficient values. The programmable coefficients are double buffered to allow the user to switch between coefficients without affecting the filter's operation.





FIG. 5

is a block diagram of an individual 16 tap FIR filter cell


24


. It should be noted that

FIG. 5

shows only 2 of the filter's 16 taps. The first tap


140


includes a multiplexer


142


having an output connected to the input of a buffer register


144


. The input to the multiplexer is a coefficient supplied by the microprocessor


50


of FIG.


1


. The. output of a buffer register


144


is connected to an operational register


148


. As mentioned above, the double buffering arrangement allows the chip to switch to new settings upon receipt of an external sync pulse. Consequently, a single clock update cycle is required to update the new settings. The output of the operational register


148


is supplied to a multiplier


152


which provides a product of the coefficient input to the buffer register


144


and input data to a summer


154


where it is added to any accumulated sum from previous taps and/or filters. The output of the summer


154


is input to a third register


158


from which it is selectively supplied to a second summer


160


under control of the timing circuit


80


. The second summer adds the sum of the product provided by the second tap


150


. The second tap


150


is identical to the first tap


140


. The output of the second summer


160


is stored in the third register


174


for output.




Returning to

FIG. 3

, the DCF is a decimator and control for finite impulse response filters. In addition to allowing for data decimation to occur between FIRA and FIRB, the DCF provides decimated FIRA data to the DCM. The decimation rate is programmable and allows for separate rates to be specified for FIRB and the DCM.




Returning to

FIG. 2

, the DCI


52


is a programmable, dual channel, data decimator that serves as an interface for the FIR


50


to the DCM


90


and external I/O. In non-bypass mode, the input data can be decimated, and presented to the output channel. The decimation rate for data out is independent of the decimation rate for RAM data. In the bypass mode, the data is not decimated and appears at the outputs unmodified. In this mode, the lower 16 bits are set to zero. There is a rounding option available at the data output stage.




The DCM


90


is a programmable memory module that allows input or output data from both channels to be captured. There are three points along the data path where data can be captured. The DSI


46


, DCF


200


and DCI


52


all provide the DCM


90


with data. In the illustrative embodiment, the DCM's memory is configured as two 512×16 RAMs and has a maximum input data rate of 30 MHz. These samples can be read by the microprocessor


50


(FIG.


1


). Data can be externally or internally triggered with or without a delay from the trigger to the time data is captured.




The TCI


80


handles the general timing, control, and interface requirements for the GPF. The 4 major functions of the TCI are: a microprocessor interface, data path control, AGC timing control and equalization timing control. In addition to each module's enable and data strobe signals, the TCI allows information to be sent over the microprocessor compatible bus. The bus has a 16 bit data I/O port, a 16 bit address port, a read/write bit, and a control select strobe. The control registers, coefficient registers, and DCM RAM are memory mapped into the 16 bit address space.




On chip diagnostic circuits are provided to simplify system debug and maintenance. The GPF has IEEE 1149.1 compliant boundary scan for board level test, scan for internal fault isolation, and Built-In Self Test (BIST) for internal memory verification. The boundary scan interface allows shifting of test data to and from the chips on a board for testing the integrity of the I/O. Scan circuitry provides access and visibility to internal registers, allowing for easy testing of combinatorial logic and checking register integrity. BIST verifies internal memory by writing and reading various patterns.




Signal Descriptions and Memory Map:




In the illustrative embodiment, the address bus is 16 bits wide and is partitioned as follows: the 4 MSBs make up the base address which identifies a particular GPF functional block, 1 bit is for growth and the 10 LSBs are for local addressing. An illustrative description of the input and output signals is shown in Table 1. (Note: The signal description provided in Table 1 is copyrighted by the present assignee and provided for the purpose of illustration only. A copying or creation of a derivative work from the signal description in Table 1 without the prior express written permission of the present assignee is expressly prohibited under U.S. and International Copyright Laws.)




An illustrative memory map is shown in Table 2. (Note: The memory map provided in Table 2 is copyrighted by the present assignee and provided for the purpose of illustration only. A copying or creation of a derivative work from the memory map in Table 2 without the prior express written permission of the present assignee is expressly prohibited under U.S. and International Copyright Laws.)




Functional Timing:




Illustrative functional timing for a microprocessor read operation from the GPF is shown in FIG.


6


. The enable signal ceIn indicates the beginning of a processor read/write cycle. After the address bus addressln and wrLowlIn are decoded, data from the memory location is put onto the data bus dataBi during the period when ceIn is active.




Illustrative functional timing for a microprocessor write operation to the GPF is shown in FIG.


7


. The enable signal ceIn indicates the beginning of a processor read/write cycle. After the address bus addressIn and wrLowIn are decoded, the location is written to on the rising edge of clockIn during the period when dsIn is active.




Illustrative functional timing for the Hilbert Transform Mode is shown in FIG.


8


.




Thus, the present invention has been described herein with reference to a particular embodiment for a particular application. Those having ordinary skill in the art and access to the present teachings will recognize additional modifications applications and embodiments within the scope thereof.




It is therefore intended by the appended claims to cover any and all such applications, modifications and embodiments within the scope of the present invention.












TABLE 1











Signal I/O Description














PIN NAME




SIZE




TYPE




FUNCTION

















ch1SumIn(31:0)




32




Input




Input sum for channel 1






ch2SumIn(31:0)




32




Input




Input sum for channel 2






ch1DataIn(15:0)




16




Input




Input data for channel 1






ch2DataIn(15:0)




16




Input




Input data tor channel 2






dataEnLowIn




1




Input




ch1, ch2 data input rate strobe









(from DOC)






ExtDataEnLowIn




1




Input




ch1, ch2 data input rate strobe









(from I/O)






outputEnLowIn




1




Input




Chip output enable






dmaEnLowIn




1




Input




Enables the Data Capture









RAM Memory






cpiLowIn




1




Input




Coherent processing interval









input






pdiLowIn




1




Input




Pulse detection interval






ceLowIn




1




Input




Chip Enable






spdEnLowIn




1




Input




Disable Saturation &









Peak Detection






spdDumpLowIn




1




Input




Dump data from Saturation &









Peak Detection






dcCompEnLowIn




1




Input




Enable dc compensation






dcCalcEnLowIn




1




Input




Enable dc offset calculation






gblAddressIn




16




Input




Global address from external









processor






gblwrLowIn




1




Input




Global bus read/write strobe






gbloeLowIn




1




Input




Global bus output enable






gblDsLowIn




1




Input




Global data strobe






gblCeLowIn




1




Input




Global chip select strobe






resetLowIn




1




Input




Power up reset for asic






clockIn




1




Input




60 MHz clock






testEnIn




1




Input




Test - LSI Logic required









for setting bi-directionals









to inputs and tri-states off






tdiIn




1




Input




Test - boundary scan data input






tmsIn




1




Input




Test - boundary scan mode









select






tckIn




1




Input




Test - boundary scan clock






trstIn




1




Input




Test - boundary scan









asynchronous reset






bistModeIn




2




Input




Test - enable the memory BIST






scanEnIn




1




Input




Test - scan mode enable for test






scan1In




1




Input




Test - scan input #1






scan2In




1




Input




Test - scan input #2






scan3In




1




Input




Test - scan input #3






scan4In




1




Input




Test - scan input #4






procMonEnIn




1




Input




Test - Enable the parametric









nand tree






ch1SatLowOut




1




Output




Output indicates saturation






ch2SatLowOut




1




Output




Output indicates saturation






spdDumpOut




16




Output




Saturation & peak detection









module data dump






spdDumpEnLowOut




1




Output




Saturation & peak detection









module data dump enable






spdDumpDoneLowOut




1




Output




Saturation & Peak detection









module data dump done






ch1DataOut(31:0)




32




Output




Output sum data tor channel 1






ch2DataOut(31:0)




32




Output




Output sum data for channel 2






dataEnLowOut




1




Output




Ch1 & ch2 output data









valid






dataEnLowDlyOut




1




Output




Ch1 & ch2 output data









valid (program delay)






dmaDataOut




16




Output




Output capture of data






dmaDavLowOut




1




Output




Indicates each dma data sample









valid






dmaRdyLowOut




1




Output




Indicates dma capture memory









full and ready to clock data out






dmaDoneLowOut




1




Output




Indicates capture of data









complete






calcDoneLowOut




1




Output




Indicates DOC calculation









complete






gblRdyLowOut




1




Output




Indicates end of read/write cycle






tdoOut




1




Output




Test - boundary scan output






scan1Out




1




Output




Test - scan output #1






scan2Out




1




Output




Test - scan output #2






scan3Out




1




Output




Test - scan output #3






scan4Out




1




Output




Test - scan output #4






bistDoneOut




1




Output




Test - BIST output done









when high






bistErrorOut




1




Output




Test - BIST error occurs









when low






procMonOut




1




Output




Test - parametric nand tree









output






tstDcmFsmOut




5




Output




Test - DCM state machine






tstDocCalcStateOut




2




Output




Test - DOC DC offset









compensation state machine






gblDataBi




16




Bidirect




16 bit bi-directional global









data bus to external processor






















TABLE 2











Memory Map













15-12 bits




11 bits




10-0 bits






Base Address




Growth






Address Field























Data








Base




Offset







Size




Initial







Addr




Addr




Item




Module




Access




(bits)




Value




Description









0000h




0h




LFSR modeB




RNG




R/W




2




0h




Determines LFSR & RNG mode (Buffered)













0h => Tactical













1h => Data from DCM













2h => LFSR enabled to count













3h => LFSR outputs constant value (seed)







1h




Seed 1B




RNG




R/W




16




0h




Channel 1 LFSR seed (Buffered)







2h




Seed 2B




RNG




R/W




16




0h




Channel 2 LFSR seed (Buffered)







3h




Data WidthB




RNG




R/W




2




2h




Input Dta Width (Buffered)













0h => 12 bit input data













1h => 14 bit input data













2h => 16 bit input data













3h => 12 but input data







4h




LFSR mode




RNG




R




2




0h




Determines LFSR & RNG mode













0h => Tactical













1h => Data from DCM













2h => LFSR enabled to count













3h => LFSR outputs constant value (seed)







5h




Seed 1




RNG




R




16




0h




Channel 1 LFSR seed







6h




Seed 2




RNG




R




16




0h




Channel 2 LFSR seed







7h




Data Width




RNG




R




2




2h




Input Data Width













0h => 12 bit input data













1h => 14 bit input data













2h => 16 bit input data













3h => 12 bit input data






1000h




0h




Data Dec Rate Buf




DSI




R/W




12




1h




Data path decimation rate out DSI block (Buffered)







1h




RAM Dec Rate Buf




DSI




R/W




12




1h




DCM data decimation rate out or DSI block (Buffered)







2h




Transform Select Buf




DSI




R/W




1




0h




Data select, Odd/Even or true 2 channel data













(Buffered)













0h => Samples from Channels 1 & 2













1h => Odd/even samples from Channel 1







3h




Data Dec Rate




DSI




R




12




1h




Data path decimation rate out ot DSI block







4h




RAM Dec Rate




DSI




R




12




1h




DCM data decimation rate out ot DSI block







5h




Transform Select




DSI




R




1




0h




Data select. Odd/Even or true 2 channel data













0h => Samples from Channels 1 & 2













1h => Odd/even samples from Channel 1






2000h




0h




ThresholdB




SPD




R/W




16




7FFFh




Buffered Threshold Value







1h




Sat1CountB




SPD




R




16




0h




Buffered Number of Channel 1 Saturated Samples







2h




Sat2CountB




SPD




R




16




0h




Buffered Number of Channel 2 Saturated Samples







3h




Pk1Ch1ValB




SPD




R




16




0h




Buffered Channel 1 Peak Value







4h




Pk1Ch2ValB




SPD




R




16




0h




Buffered Channel 2 Associated Value







5h




Pk2Ch1ValB




SPD




R




16




0h




Buffered Channel 1 Associated Value







6h




Pk2Ch2VaBt




SPD




R




16




0h




Buffered Channel 2 Peak Value







7h




Sat1Count




SPD




R/W




16




0h




Number of Channel 1 Saturated Samples







8h




Sat2Count




SPD




R/W




16




0h




Number of Channel 2 Saturated Samples







9h




Pk1Ch1Val




SPD




R/W




16




0h




Channel 1 Peak Value







Ah




Pk1Ch2Val




SPD




R/W




16




0h




Channel 2 Associated Value







Bh




Pk2Ch1Val




SPD




R/W




16




0h




Channel 1 Associated Value







Ch




Pk2Ch2Val




SPD




R/W




16




0h




Channel 2 Peak Value







Dh




Threshold




SPD




R/W




16




7FFFh




Threshold Value






3000h




0h




Sample Size Buffered




DOC




R/W




9




2h




Buffered DC compensation sample size







1h




Sample Size




DOC




R




9




2h




DC compensation sample size







2h




Ch1 Comp




DOC




R




16




0h




Channel 1 DC compensation value







3h




Ch2 Comp




DOC




R




16




0h




Channel 2 DC compensation value













Bit 13 = sumEnSig: Enables CH1 & Ch2 sum input













data.













0h => Disables













1h => Enables













Bit 14 = dataEnSelSig;













0h => Mux selects extDataEnLowIn













1h => Mux selects dataEnLowIn













Bit 15 = allTapMuxEnSig; Allows sum output from













FIR2 to be used as sum input to FIR3 and combiner













outputs sum data from FIR4 for Ch1 and zeros













for Ch2.













0h => Disables













1h => Enabled







80h




Buf. FIRA Mode Reg 2




FIRA




R/W




1




0h




Buffered FIRA Control Register 2













Bit 15 = Synchronous FIR clear













0h => Clear disabled













1h => Clear enabled






4000h




100-




Coefficients Mod 0




FRA




R




16




0h




Module 0 Tap 0-7 coefficients







107h







108-




Coefficients Mod 1




FRA




R




16




0h




Module 1 Tap 0-7 coefficients







10Fh







110-




Coefficients Mod 2




FRA




R




16




0h




Module 2 Tap 0-7 coefficients







117h







118-




Coefficients Mod 3




FRA




R




16




0h




Module 3 Tap 0-7 coefficients







11Fh







120-




Coefficients Mod 4




FRA




R




16




0h




Module 4 Tap 0-7 coefficients







127h







128-




Coefficients Mod 5




FRA




R




16




0h




Module 5 Tap 0-7 coefficients







12Fh







130-




Coefficients Mod 6




FRA




R




16




0h




Module 6 Tap 0-7 coefficients







137h







138-




Coefficients Mod 7




FRA




R




16




0h




Module 7 Tap 0-7 coefficients







13Fh







140h




Mode Register 1




FRA




R




16




0h




Mode 1 Control register













Data Bit 0; Read ch1DataMuxEnRSig













Data Bit 1; Read ch1ABDataMuxEnRSig













Data Bit 2; Read ch2DataMuxEnRSig













Data Bit 3; Read ch2ABDataMuxEnRSig













Data Bit 4; Read ch1MultEnRSig













Data Bit 5; Read ch2MultEnRSig













Data Bit 6; Read ch1RndEnRSig













Data Bit 7; Read ch2RndEnRSig













Data Bit 8; Read ch1MuxEnRSig













Data Bit 9; Read ch2SumMux2EnRSig













Data Bit 10; Read ch2MuxEnRSig






4000h




00-07h




Buf Coefficients Mod 1




FIRA




R/W




16




0h




Buffered Module 0 Tap 0-7 coefficients







08-0Fh




Buf Coefficients Mod 1




FIRA




R/W




16




0h




Buffered Module 1 Tap 0-7 coefficients







10-17h




Buf Coefficients Mod 2




FIRA




R/W




16




0h




Buffered Module 2 Tap 0-7 coefficients







18-1Fh




Buf Coefficients Mod 3




FIRA




R/W




16




0h




Buffered Module 3 Tap 0-7 coefficients







20-27h




Buf Coefficients Mod 4




FIRA




R/W




16




0h




Buffered Module 4 Tap 0-7 coefficients







28-2Fh




Buf Coefficients Mod 5




FIRA




R/W




16




0h




Buffered Module 5 Tap 0-7 coefficients







30-37h




Buf Coefficients Mod 6




FIRA




R/W




16




0h




Buffered Module 6 Tap 0-7 coefficients







38-3Fh




Buf Coefficients Mod 7




FIRA




R/W




16




0h




Buffered Module 7 Tap 0-7 coefficients







40h




Buf FIRA Mode Reg 1




FIRA




R/W




16




0h




Buffered FIRA Control Register 1













Bits 1-0 = ch1DataMuxEnSig,













ch1 ABDataMuxEnSig













0h => Mux selects ch1CascadeDataIn













1h => Mux selects ch1ABCascadeDatIn













2h => Mux selects ch1DataIn













3h => Mux selects zero













Bits 3-2 = ch2DataMuxEnSig













ch2ABDataMuxEnSig













0h => Mux selects ch2CascadeDataIn













1h => Mux selects ch2ABCascadeDataIn













2h => Mux selects ch2DataIn













3h => Mux selects zero













Bit 4 = ch1MultEnSig; Enables Ch1 phase shifting.













0h => Disabled













1h => Enabled













Bit 5 = ch2MultEnSig; Enables Ch2 phase shifting.













0h => Disabled













1h => Enabled













Bit 6 = ch1RndEnSig; Enables Ch1 rounding.













0h => Disabled













1h => Enabled













Bit 7 = ch2RndEnSig; Enables Ch2 rounding.













0h => Disabled













1h => Enabled













Bit 8 = ch1DataMux2EnSig













0h => Mux selects data from Ch1 Rnd/Mult













1h => Mux selects data from Ch1 data mux 1













Bit 9 = ch1 SumMux2EnSig













0h => Mux selects data from FIR1 sumOut













1h => Mux selects data from sumMuxEnSig













Bit 10 = ch2DataMux2EnSig













0h => Mux selects data from Ch2 Rnd/Mult













1h => Mux selects data from Ch2 data mux 1













Bit 11 = ch2SumMux2EnSig













0h => Mux selects data from FIR3 sumOut













1h => Mux selects data from FIR3 sumIn













Bit 12 = crossCoupleSelSig: Enables cross













coupling of data out of 16 tap FIRs.













0h => Disabled













1h => Enabled













Data Bit 11; Read ch2SumMux2EnRSig













Data Bit 12; Read crossCoupledEnRSig













Data Bit 13; Read sumEnRSig













Data Bit 14; Read dataEnSelRSig













Data Bit 15; Read allTapMuxEnRSig













Data Bit 15; allTapMuxEnRSig







180h




Mode Register 2




FRA




R




16




0h




Mode 2 Control register













Data Bit 0-14; No function













Data Bit 15 = Read firClr






5000h




0h




Data Dec Rate Buf




DCI




R/W




12




1h




buffered decimation rate for the output data







1h




RAM Dec Rate Buf




DCI




R/W




12




1h




buffered decimation rate for the RAM data







2h




Bypass Mode Buf




DCI




R/W




1




0h




buffered mode select













0h = non-bypass; Data passed through unchanged













1h = bypass; Bypass data (16) is passed directly













and concatenated with zeros based on the













scale format selected.







3h




Output Data Format




DCI




R/W




1




0h




buffered data format select








Buf








data not rounded = 0h













data rounded to 16 bits = 1h







4h




RAM Data Format Buf




DCI




R/W




1




0h




buffered RAM data format select













data not rounded = 0h













data rounded to 16 bits = 1h







5h




Scale Format Buf




DCI




R/W




3




0h




buffered scale format for output data













ouptut is input (round 16) data Bit 31, Bit 30:16 = 0h













ouptut is input (round 16) data Bit 31, Bit 29:15 = 1h













ouptut is input (round 16) data Bit 31, Bit 28:14 = 2h













ouptut is input (round 16) data Bit 31, Bit 27:13 = 3h













ouptut is input (round 16) data Bit 31, Bit 26:12 = 4h













ouptut is input (round 16) data Bit 31, Bit 25:11 = 5h













ouptut is input (round 16) data Bit 31, Bit 24:10 = 6h













ouptut is input (round 16) data Bit 31, Bit 23:9 = 7h






5000h




6h




RAM Scale Format Buf




DCI




R/W




3




0h




buffered scale format for RAM data













ouptut is input (round 16) data Bit 31, Bit 30:16 = 0h













ouptut is input (round 16) data Bit 31, Bit 29:15 = 1h













ouptut is input (round 16) data Bit 31, Bit 28:14 = 2h













ouptut is input (round 16) data Bit 31, Bit 27:13 = 3h













ouptut is input (round 16) data Bit 31, Bit 26:12 = 4h













ouptut is input (round 16) data Bit 31, Bit 25:11 = 5h













ouptut is input (round 16) data Bit 31, Bit 24:10 = 6h













ouptut is input (round 16) data Bit 31, Bit 23:9 = 7h







7h




Data Enable Delayed




DCI




R/W




4




1h




buffered data enable delayed













0 clock cycle delay from output data enable = 0h













1 clock cycle delay from output data enable = 1h













2 clock cycle delay from output data enable = 2h













3 clock cycle delay from output data enable = 3h













4 clock cycle delay from output data enable = 4h













5 clock cycle delay from output data enable = 5h













6 clock cycle delay from output data enable = 6h













7 clock cycle delay from output data enable = 7h







8h




Data Dec Rate




DCI




R




12




1h




current decimation rate for the output data







9h




Ram Dec Rate




DCI




R




12




1h




current decimation rate for the RAM data







Ah




Bypass Mode




DCI




R




1




0h




current mode select













non-bypass = 0h













bypass mode = 1h







Bh




Output Data Format




DCI




R




1




0h




current data format select













data not rounded = 0h













data rounded to 16 bits = 1h







Ch




Ram Data Format




DCI




R




1




0h




current RAM data format select













data not rounded = 0h













data rounded to 16 bits = 1 h






5000h




Dh




Scale Format




DCI




R




3




0h




current scale format for Output data













output is input (round 16) data Bit 31, Bit 30:16 = 0h













output is input (round 16) data Bit 31, Bit 29:15 = 1h













output is input (round 16) data Bit 31. Bit 28:14 = 2h













output is input (round 16) data Bit 31, Bit 27:13 = 3h













output is input (round 16) data Bit 31, Bit 26:12 = 4h













output is input (round 16) data Bit 31. Bit 25:11 = 5h













output is input (round 16) data Bit 31, Bit 24:10 = 6h













output is input (round 16) data Bit 31. Bit 23:9 = 7h







Eh




RAM Scale Format




DCI




R




3




0h




current scale format for RAM data













output is input (round 16) data Bit 31, Bit 30:16 = 0h













output is input (round 16) data Bit 31, Bit 29:15 = 1h













output is input (round 16) data Bit 31, Bit 28:14 = 2h













output is input (round 16) data Bit 31. Bit 27:13 = 3h













output is input (round 16) data Bit 31, Bit 26:12 = 4h













output is input (round 16) data Bit 31, Bit 25:11 = 5h













output is input (round 16) data Bit 31, Bit 24:10 = 6h













output is input (round 16) data Bit 31, Bit 23:9 = 7h







Fh




Data Enable Delayed




DCI




R




4




1h




current data enable delayed













0 clock cycle delay from output data enable = 0h













1 clock cycle delay from output data enable = 1h













2 clock cycle delay from output data enable = 2h













3 clock cycle delay from output data enable = 3h













4 clock cycle delay from output data enable = 4h













5 clock cycle delay from output data enable = 5h













6 clock cycle delay from output data enable = 6h













7 clock cycle delay from output data enable = 7h






6000h




000




Ch1 Mem




DCM




R/W




16




NA




Channel 1 capture memory







1FFh







200-




Ch2 Mem




DCM




R/W




16




NA




Channel 2 capture memory







3FFh







400h




Buffered Control




DCM




R/W




16




0h




Buffered Data capture control register













Bit 0 = 1 - Capture On Sync













Bit 1 = 1 - Snapshot Burst Out













Bit 2 = 1 - Snapshot Feedback













Bits 4,5 - Capture select 00b = DSI.













01b = DCI, 10b = DCF













Bit 11 = 1 - Capture Complete













Bit 15 = 1 - Reset (Note: Read back at 0b after you













write a 1b)













Bits 3.6.7,8,9.10,13,14 - No function







401h




Dly_BHi




DCM




R/W




4




0h




Delay Counter Buffered High Byte







402h




Dly_BLo




DCM




R/W




16




1h




Delay Counter Buffered Low Byte







404h




Control




DCM




R




16




0h




Data capture control register













Bit 0 = 1 - Capture On Sync













Bit 1 = 1 - Snapshot Burst Out













Bit 2 = 1 - Snapshot Feedback













Bits 4,5 - Capture select 00b = DSI,













01b = DCI. 10b = DCF













Bit 11 = 1 - Capture Complete













Bit 15 = 1 - Reset (Note: Read back at 0b after you













write a 1b)













Bits 3,6,7.8,9,10,13,14 - No function







405h




Dly_Hi




DCM




R




4




0h




Delay Counter High Byte







406h




Dly_Lo




DCM




R




16




1h




Delay Counter Low Byte






7000h




0h




Sync control




TCI




R/W




16




0h




Sync control for all modules













Bit C - Sync Select 0b = CPU lb = External













Bit 1 = Sync Source 0b = CPI 1b = PDI













Bit 2 = Sync on/off 0b= Off 1b = On













Bit 3 = Sync Mode Change







1h




SPD control




TCI




R/W




16




0h




Bits 0,1 = SPD Sync Source 00b -NOP, 01b - CPU













10b - Delay, 11b - External













Bit 8 - CPU Dump Control 0b = Off, 01b = On













Bit 10 - CPU Enable Control 0b = Off, 01b = On













Bit 12 - Armed 0b = Off, 01b = On













Bit 15 - SPD timing reset 0b = Off, 01b = On













Bits 2.3,4,5,6,7.9,11,13,14 No function







2h




SPD Delay High




TCI




R/W




4




0h




SPD delay counter high byte







3h




SPD Delay Low




TCI




R/W




16




1h




SPD delay counter low byte







4h




SPD Enable High




TCI




R/W




4




0h




SPD enable counter high byte







5h




SPD Enable Low




TCI




R/W




16




1h




SPD enable counter low byte







6h




DOC control




TCI




R/W




16




0h




Bits 0,1 = DOC Sync Source 00b -NOP, 01b - CPU













lCb - Delay, 1 lb - External













Bit 8 - CPU Dump Control 0b = Off, 01b = On













Bit 10 - CPU Enable Control 0b = Off, 01b = On













Bit 12 - Armed 0b = Off, 01b = On













Bit 15 - SPD timing reset 0b = Off, 01b = On













Bits 2.3,4,5.6,7,9,11,13.14 No function







7h




DOC Delay High




TCI




R/W




8




0h




DOC delay counter high byte







8h




DOC Delay Low




TCI




R/W




16




1h




DOC delay counter low byte







9h




DOC Enable High




TCI




R/W




8




0h




DOC enable counter high byte







Ah




DOC Enable Low




TCI




R/W




16




1h




DOC enable counter low byte






8000h




0h




Data Dec Rate Buf




DCF




R/W




12




1h




buffered decimation rate for the output data







1h




Ram Dec Rate Buf




DCF




R/W




12




1h




buffered decimation rate for the RAM data







2h




Bypass Mode Buf




DCF




R/W




1




0h




buffered bypass mode or data path select













data path = 0h













bypass mode = 1h







3h




Output Data Format




DCF




R/W




2




0h




buffered data format select








Buf













data not rounded = 0h













round to 16 bits = 1h







4h




Ram Data Format Buf




DCF




R/W




1




0h




buffered RAM data format select













data not rounded = 0h













round to 16 bits = 1h







5h




Scale Format Buf




DCF




R/W




3




0h




buffered scale format for output data













output is input (round 16) data Bit 31, Bit 30:16 = 0h













output is input (round 16) data Bit 31, Bit 29:15 = 1h













output is input (round 16) data Bit 31, Bit 28:14 = 2h













output is input (round 16) data Bit 31, Bit 27:13 = 3h













output is input (round 16) data Bit 31, Bit 26:12 = 4h













output is input (round 16) data Bit 31, Bit 25:11 = 5h













output is input (round 16) data Bit 31, Bit 24:10 = 6h













output is input (round 16) data Bit 31, Bit 23:9 = 7h






8000h




6h




RAM Scale Format Buf




DCF




R/W




3




0h




buffered scale format for RAM data













output is input (round 16) data Bit 31, Bit 30:16 = 0h













output is input (round 16) data Bit 31, Bit 29:15 = 1h













output is input (round 16) data Bit 31, Bit 28:14 = 2h













output is input (round 16) data Bit 31, Bit 27:13 = 3h













output is input (round 16) data Bit 31, Bit 26:12 = 4h













output is input (round 16) data Bit 31, Bit 25:11 = 5h













output is input (round 16) data Bit 31, Bit 24:10 = 6h













output is input (round 16) data Bit 31, Bit 23:9 = 7h







8h




Data Dec Rate




DCF




R




12




1h




current decimation rate for the output data







9h




RAM Dec Rate




DCF




R




12




1h




current decimation rate forthe RAM data







Ah




Bypass Mode




DCF




R




1




0h




current bypass mode or data path select













data path = 0h













bypass mode = 1h







Bh




Output Data Format




DCF




R




2




0h




current data format select













data not rounded = 0h













round to 16 bits = 1h







Ch




RAM Data Format




DCF




R




1




0h




current RAM data format select













data not rounded = 0h













round to 16 bits = 1h






8000h




Dh




Scale Format




DCF




R




3




0h




current scale format for output data













output is input (round 16) data Bit 31, Bit 30:16 = 0h













output is input (round 16) data Bit 31, Bit 29:15 = 1h













output is input (round 16) data Bit 31, Bit 28:14 = 2h













output is input (round 16) data Bit 31, Bit 27:13 = 3h













output is input (round 16) data Bit 31, Bit 26:12 = 4h













output is input (round 16) data Bit 31, Bit 25:11 = 5h













output is input (round 16) data Bit 31, Bit 24:10 = 6h













output is input (round 16) data Bit 31, Bit 23:9 = 7h







Eh




RAM Scale Format




DCF




R




3




0h




current scale format for RAM data













output is input (round 16) data Bit 31, Bit 30:16 = 0h













output is input (round 16) data Bit 31, Bit 29:15 = 1h













output is input (round 16) data Bit 31, Bit 28:14 = 2h













output is input (round 16) data Bit 31, Bit 27:13 = 3h













output is input (round 16) data Bit 31, Bit 26:12 = 4h













output is input (round 16) data Bit 31, Bit 25:11 = 5h













output is input (round 16) data Bit 31, Bit 24:10 = 6h













output is input (round 16) data Bit 31, Bit 23:9 = 7h






9000h




00-07h




Buf Coefficients Mod 0




FRB




R/W




16




0h




Buffered Module 0 Tap 0-7 coefficients







08-0Fh




Buf Coefficients Mod 1




FRB




R/W




16




0h




Buffered Module 1 Tap 0-7 coefficients







10-17h




Buf Coefficients Mod 2




FRB




R/W




16




0h




Buffered Module 2 Tap 0-7 coefficients







18-1Fh




Buf Coefficients Mod 3




FRB




R/W




16




0h




Buffered Module 3 Tap 0-7 coefficients







20-27h




Buf Coefficients Mod 4




FRB




R/W




16




0h




Buffered Module 4 Tap 0-7 coefficients







28-2Fh




Buf Coefficients Mod 5




FRB




R/W




16




0h




Buffered Module 5 Tap 0-7 coefficients







30-37h




Buf Coefficients Mod 6




FRB




R/W




16




0h




Buffered Module 6 Tap 0-7 coefficients







38-3Fh




Buf Coefficients Mod 7




FRB




R/W




16




0h




Buffered Module 7 Tap 0-7 coefficients







40h




Buf Mode Register 1




FRB




R/W




16




0h




Buffered Mode 1 Control register













Data Bit 0 = 1; Enable ch2DataMuxEnRsig













Data Bit 1 = 1; Enable ch2ABDataMuxEnRSig













Data Bit 2 = 1; Enable ch2DataMuxEnRSig













Data Bit 3 = 1; Enable ch2ABDataMuxEnRsig













Data Bit 4 = 1; Enable ch1MultEnRSig













Data Bit 5 = 1; Enable ch2MultEnRSig













Data Bit 6 = 1; Enable ch1RndEnRSig













Data Bit 7 = 1; Enable ch2RndEnRsig













Data Bit 8 = 1; Enable ch1MuxEnRSig













Data Bit 9 = 1; Enable ch1SumMuxEnRSig













Data Bit 10 = 1; Enable ch2MuxEnRSig













Data Bit 11 = 1; Enable ch2SumMux2EnRSig













Data Bit 12 = 1; Enable crossCoupledEnRSig













Data Bit 13 = 1; Enable sumEnRSig













Data Bit 14 = 1; Enable dataEnSelRSig













Data Bit 15 = 1; Enable allTapMuxEnRSig













Data Bit 15 = 1; Enable allTapMuxEnRSig







80h




Buf. Mode Register 2




FRB




R/W




16




0h




Buffered Mode 2 Control register













Data Bit 0-14: No function













Data Bit 15 = 1: Enable firClr






9000h




100-




Coefficients Mod 0




FRB




R




16




0h




Module 0 Tap 0-7 coefficients







107h







108-




Coefficients Mod 1




FRB




R




16




0h




Module 1 Tap 0-7 coefficients







10Fh







110-




Coefficients Mod 2




FRB




R




16




0h




Module 2 Tap 0-7 coefficients







117h







118-




Coefficients Mod 3




FRB




R




16




0h




Module 3 Tap 0-7 coefficients







11Fh







120-




Coefficients Mod 4




FRB




R




16




0h




Module 4 Tap 0-7 coefficients







127h







128-




Coefficients Mod 5




FRB




R




16




0h




Module 5 Tap 0-7 coefficients







12Fh







130-




Coefficients Mod 6




FRB




R




16




0h




Module 6 Tap 0-7 coefficients







137h







138-




Coefficients Mod 7




FRB




R




16




0h




Module 7 Tap 0-7 coefficients







13Fh







140h




Mode Register 1




FRB




R




16




0h




Mode 1 Control register













Data Bit 0; Read ch2DataMuxEnRSig













Data BIt 1; Read ch2ABDataMuxEnRSig













Data Bit 2; Read ch2DataMuxEnRSig













Data Bit 3; Read ch2ABDataMuxEnRSig













Data Bit 4; Read ch1MultEnRsig













Data Bit 5; Read ch2MultEnRSig













Data Bit 6; Read ch1RndEnRSig













Data Bit 7; Read ch2RndEnRSig













Data Bit 8; Read ch1MuxEnRSig













Data Bit 9; Read ch1SumMux2EnRSig













Data Bit 10; Read ch2MuxEnRsig













Data Bit 11; Read ch2SumMux2EnRSig













Data Bit 12; Read crossCoupledEnRSig













Data Bit 13; Read sumEnRSig













Data Bit 14; Read dataEnSelRSig













Data Bit 15; Read allTapMuxEnRSig













Data Bit 15; allTapMuxEnRSig







180h




Mode Register 2




FRB




R




16




0h




Mode 2 Control register













Data Bit 0-14; No function













Data Bit 15 = 1; Read firClr














Accordingly,



Claims
  • 1. A signal processing system comprising:a plurality of filters, each filter including means for multiplying input data by a coefficient; switch means for selectively interconnecting the filters; and means for selectively activating the switch means.
  • 2. A digital receiver comprising:a plurality of general purpose filters, each filter having: a plurality of filter banks, switch means for selectively interconnecting the filter banks, and processor means for selectively activating the switch means, the processor means including a processor and means for selectively activating the switch means, through the processor, to configure the filter banks to provide: a first decimating filter and a first equalizer in a first channel of a first general purpose filter, a Hilbert transform, a second decimating filter and a second equalizer in a second channel of the first general purpose filter, a first range correlator in a first channel of a second general purpose filter, and a second range correlator in a second channel of a second general purpose filter, the first channel of the first general purpose filter being connected to the first channel of the second general purpose filter and the second channel of the first general purpose filter being connected to the second channel of the second general purpose filter.
  • 3. The invention of claim 1 wherein each filter includes means for multiplying input data by coefficients to provide products.
  • 4. The invention of claim 3 wherein each filter includes means for accumulating the products.
  • 5. The invention of claim 4 wherein the coefficients are provided by a memory.
  • 6. The invention of claim 5 wherein the means for selectively activating the switch means is an external processor.
  • 7. The invention of claim 1 wherein the means for selectively activating the switch means includes means for selectively activating the switch means so that the signal processor functions as a general purpose filter.
  • 8. The invention of claim 1 wherein the means for selectively activating the switch means includes means for selectively activating the switch means so that the signal processor functions as a Hilbert filter.
  • 9. The invention of claim 1 wherein the means for selectively activating the switch means includes means for selectively activating the switch means so that the signal processor functions as a beamforming network.
  • 10. The invention of claim 1 wherein the means for selectively activating the switch means includes means for selectively activating the switch means so that the signal processor functions as an equalizer.
  • 11. The invention of claim 1 wherein the means for selectively activating the switch means includes means for selectively activating the switch means so that the signal processor functions as a finite impulse response filter.
  • 12. The invention of claim 1 wherein the means for selectively activating the switch means includes means for selectively activating the switch means so that the signal processor functions as an application specific integrated circuit.
  • 13. The invention of claim 1 wherein the means for selectively activating the switch means includes means for selectively activating the switch means so that the signal processor functions as a digital receiver.
US Referenced Citations (1)
Number Name Date Kind
5625894 Jou Apr 1997 A