HSP50216 INTERSIL | Alldatasheet
Document overview
- Manufacturer or author: Provided By ALLDATASHEET.COM(FREE DATASHEET DOWNLOAD SITE)
- PDF pages: 53
Technical content
Features
- Up to 70MSPS Input
- Four Independently Programmable Downconverter Channels in a single package
- Four Parallel 16-Bit Inputs -Fixed or Floating Point Format
- 32-Bit Programmable Carrier NCO with > 115dB SFDR
- 110dB FIR Out of Band Attenuation
- Decimation from 8 to >65536
- 24-bit Internal Data Path
- Digital AGC with up to 96dB of Gain Range
- Filter Functions - 1 to 5 Stage CIC Filter - Halfband Decimation and Interpolation FIR Filter - Programmable FIR Filter - Resampling FIR Filter
- Cascadable Filtering for Additional Bandwidth
- Four Independent Serial Outputs
- 3.3V Operation
Applications
- Narrow-Band TDMA through IS-95 CDMA Digital Software Radio and Basestation Receivers
Ordering Information
RANGE ( oC) PACKAGE PKG. NO HSP50216KI -40 to +85 196 Ld BGA V196.12x12 Data Sheet February 2000
196 LEAD BGA
K J H G F E D C B A 123456789 1 1 10 L M N VCC D9GNDVCC 13 14 C14 C10 C8 GND VCC GND D11 ENIDD13B1 D15 D3 D1 D0B0 C12 C6 C4 C2 C0 B3 WRB2 B5 GND P0VCC B7 P2GND CLK GND P4VCC B9 VCC P6GND B11 GND P8VCC B13 P10GND B15 P12 SD2C SD2DSD2BSD1B INTRPT P15ENIA A12 A14 SD2A SD1CGNDVCCGND ADD0A8 A10 GNDVCC SCLK SYNCCSYNCBSYNCA SYNCD SYNCI SYNCOA7 A9 A11 A13 A15 SD1A P D12 D10D14C13 ENIC D8 D6 D4C11 C9 C7 C5 C3 C1 POWER PIN GROUND PIN SIGNAL PIN THERMAL BALL NC (NO CONNECTION) B12 B14 B10 GND B6 VCCP3 A6A3 VCC SD1D ADD1 A4A2A1 P14 A0 P13RESET VCCP11 B4 P1 ENIB RDCE C15 D5 D2 ADD2 µP MODE HSP50216
VCC - Positive Power Supply Voltage, 3.3V ±0.15 GND - Ground, 0V. INPUTS A(15:0) I Parallel Data Input bus A. Sampled on the rising edge of clock when ENIA is active (low). B(15:0) I Parallel Data Input bus B. Sampled on the rising edge of clock when ENIB is active (low). C(15:0) I Parallel Data Input bus C. Sampled on the rising edge of clock when ENIC is active (low). D(15:0) I Parallel Data Input bus D. Sampled on the rising edge of clock when ENID is active (low). ENIA I Input enable for Parallel Data Input bus A. Active low. This pin enables the input to the part in one of two modes, gated or interpolated. In gated mode, one sample is taken per CLK whenENI is asserted. ENIB I Input enable for Parallel Data Input bus B. Active low. This pin enables the input to the part in one of two modes, gated or interpolated. In gated mode, one sample is taken per CLK whenENI is asserted. ENIC I Input enable for Parallel Data Input bus C. Active low. This pin enables the input to the part in one of two modes, gated or interpolated. In gated mode, one sample is taken per CLK whenENI is asserted. ENID I Input enable for Parallel Data Input bus D. Active low. This pin enables the input to the part in one of two modes, gated or interpolated. In gated mode, one sample is taken per CLK whenENI is asserted. CONTROL CLK I Input clock. All processing in the HSP50216 occurs on the rising edge of CLK. SYNCI I Synchronization Input Signal. Used to align the processing with an external event or with other HSP50216 devices. SYNCI can update the carrier NCO, reset decimation counters, restart the filter compute engine, and restart the output section among other functions. For most of the functional blocks, the response to SYNCI is programmable and can be enabled or disabled. SYNCO O Synchronization Output Signal. The processing of multiple HSP50216 devices can be synchronized by tying the SYNCO from one HSP50216 device (the master) to the SYNCI of all the HSP50216 devices (the master and slaves). RESET I Reset Signal. Active low. Asserting reset will halt all processing and set certain registers to default values. OUTPUTS SD1A O Serial Data Output 1A. A serial data stream output which can be programmed to consist of I1, Q1, I2, Q2, magnitude, phase, frequency (dφ/dt), AGC gain, and/or zeros. In addition, data outputs from Channels 0, 1, 2 and 3 can be multiplexed into a common serial output data stream. Information can be sequenced in a programmable order.See Serial Data Output Formatter Section and Microprocessor Interface Section. SD2A O Serial Data Output 2A. This output is provided as an auxiliary output for Serial Data Output 1A to route data to a second destination or to output two words at a time for higher sample rates. SD2A has the same programmability as SD1A except that floating point format is not available.See Serial Data Output Formatter Section and Microprocessor Interface Section. SD1B O Serial Data Output 1B. See description for SD1A. SD2B O Serial Data Output 2B. See description for SD2A. SD1C O Serial Data Output 1C. See description for SD1A. SD2C O Serial Data Output 2C. See description for SD2A. SD1D O Serial Data Output 1D. See description for SD1A. SD2D O Serial Data Output 2D. See description for SD2A. SCLK O Serial Output Clock. Can be programmed to be at 1, 1/2, 1/4, 1/8, or 1/16 times the clock frequency. The polarity of SCLK is programmable. SYNCA O Serial Data Output 1A sync signal. This signal is used to indicate the start of a data word and/or frame of data. The polarity and position of SYNCA is programmable. HSP50216
The HSP50216 is a four channel digital receiver integrated circuit offering exceptional dynamic range and flexibility. Each of the four channels consists of a front-end NCO/digital mixer/CIC-filter block and a back-end FIR/AGC/polar- conversion block. The parameters for the four channels are independently programmable. Four parallel data input busses (A(15:0), B(15:0), C(15:0) and D(15:0)) and four serial data outputs (SDxA, SDxB, SDxC, and SDxD; x = 1 or 2) are provided. Each input can be connected to any or all of the internal signal processing channels, Channels 0, 1, 2 and 3. The output of each channel can be routed to any of the serial outputs. Outputs from more than one channel can be multiplexed through a common output if the channels are synchronized. The four channels share a common input clock and a common serial output clock, but the output sample rates can be synchronous or asynchronous. Bus multiplexers between the front end and back end sections provide flexible routing between channels for cascading back-end filters or for routing one front end to multiple back ends for polyphase filtering (to provide wider bandwidth filtering). A level detector is provided to monitor the signal level on any of the parallel data input busses. Each front end NCO/digital mixer/CIC filter section includes a quadrature numerically controlled oscillator (NCO), digital mixer, and a cascaded-integrator-comb filter (CIC). The NCO has a 32-bit frequency control word for 16.3MHz tuning resolution at an input sample rate of 70MSPS. The SFDR of the NCO is >115dB. The CIC filter order is programmable between 1 and 5 and the CIC decimation factor can be programmed from 4 to 65536, depending on the number of stages selected. Each back end section includes an FIR processing block, an AGC and a cartesian-to-polar coordinate converter. The FIR processing block is a flexible filter compute engine that can compute a single FIR or a set of filters. A single filter in a chain can have up to 256 taps and the total number of taps in a set of filters can be up to 384. The filter compute engine supports a variety of filter types including decimation, interpolation and resampling filters. The coefficients for the programmable digital filters are 22 bits wide. Coefficients are provided in ROM for several halfband filter responses and for a resampler. The AGC section can provide up to 96dB of either fixed or automatic gain control. For automatic gain control, two settling modes and two sets of loop gains are provided. Separate attack and decay slew rates are provided for each loop gain. Programmable limits allow the user to select a gain range less than 96dB. The outputs of the cartesian-to-polar coordinate conversion block, used by the AGC loop, are also provided as outputs to the user for demodulation. The HSP50216 supports both fixed and floating point parallel data input modes. The floating point modes support gain ranging A/D converters. Gated, interpolated and multiplexed data input modes are supported. The serial data output word width for each data type can be programmed to one of ten output bit widths from 4-bit fixed point through 32- bit IEEE floating point. SYNCB O Serial Data Output 1B sync signal. This signal is used to indicate the start of a data word and/or frame of data. The polarity and position of SYNCB is programmable. SYNCC O Serial Data Output 1C sync signal. This signal is used to indicate the start of a data word and/or frame of data. The polarity and position of SYNCC is programmable. SYNCD O Serial Data Output 1D sync signal. This signal is used to indicate the start of a data word and/or frame of data. The polarity and position of SYNCD is programmable. MICROPROCESSOR INTERFACE P(15:0) I/O Microprocessor Interface Data bus. See Microprocessor Interface Section. P15 is the MSB. ADD(2:0) I Microprocessor Interface Address bus. ADD2 is the MSB. See Microprocessor Interface Section. Note: ADD2 is notused but designated for future expansion. WR I Microprocessor Interface Write Signal. The data on P(15:0) is written to the destination selected by ADD(2:0) on the rising edge ofWR when CE is asserted (low).See Microprocessor Interface Section. RD I Microprocessor Interface Read Strobe. The data at the address selected by ADD(2:0) is placed on P(15:0) whenRD is asserted (low) andCE is asserted (low).See Microprocessor Interface Section. µP MODE I Microprocessor Interface Mode Control. This pin is used to select the Read/Write mode for the Microprocessor Interface. CE I Microprocessor Interface Chip Select. Active low. This pin has the same timing as the address pins. INTRPT O Microprocessor Interrupt Signal. Asserted for a programmable number of clock cycles when new data is available on the selected Channel. Pin Descriptions (Continued) NAME TYPE DESCRIPTION HSP50216
The HSP50216 is programmed through a 16-bit microprocessor interface. The output data can also be read via the microprocessor interface for all channels that are synchronized. The HSP50216 is specified to operate to a maximum clock rate of 70MSPS over the industrial temperature range (-40 oC to 85oC). The power supply voltage range is 3.3V± 0.15V. The I/Osare not 5V tolerant. Input Select/Format Block Each front end block and the level detector block contains an input select/format block. A functional block diagram is provided in the above figure. The input source can be any of the four parallel input busses (see Microprocessor Interface Section Table 1, IWA *000h) or a test register loaded via the processor bus (see Microprocessor Interface Section Table 40, GWA F807h). The input to the part can operate in a gated or interpolated mode. Each input channel has an input enable ( ENIx, x = A, B, C or D). In the gated mode, one input sample is processed per clock that the ENIx signal is asserted (low). Processing is disabled whenENIx is high. TheENIx signal is pipelined through the part to minimize delay (latency). In the interpolated mode, the input is zeroed when the ENIx signal is high, but processing inside the part continues. This mode inserts zeros between the data samples, interpolating the input data stream up to the clock rate. On reset, the part is set to gated mode and the input enables are disabled. The inputs are enabled by the first SYNCI signal. The input section can select one channel from a multiplexed data stream of up to 8 channels. The input enable is delayed by 0 to 7 clock cycles to enable a selection register. The register following the selection register is enabled by the non-delayed input enable to realign the processing of the channels. The one-clock-wide input enable must align with the data for the first channel. The desired channel is then selected by programming the delay. A delay of zero selects the first channel, a delay of 1 selects the second, etc. The parallel input busses are 16 bits wide. The input format may be twos complement or offset binary format. A floating point mode is also supported. The floating point modes and the mapping of the parallel 16-bit input format is discussed below. Floating Point Input Mode Bit Mapping The input bit weighting for fixed point is 20 (corresponding to parallel input bus A, B, C or D bit 15) to 2-15 (corresponding to parallel input bus A, B, C or D bit 0). For floating point modes, the least significant 2 or 3 bits are used as exponent bits (See Floating Point Input Mode Bit Mapping Tables). The difference between the four floating point modes with three exponent bits is where the exponent saturates. HSP50216
Floating Point Input Mode Bit Mapping Tables A, B, C or D(15:0) Input: 2^ - 0 1 2 3 4 5 6 7 8 9 10 11 12 13(exp2) 14(exp1) 15(exp0) 11-BIT MODE: 11-BIT MANTISSA (MINIMUM), 3-BIT EXPONENT, 30dB EXPONENT RANGE EXPONENT GAIN (dB) PIN BIT WEIGHTING TO 16-BIT INPUT MAPPING, 2^- 0 0 0 0 000000123456789 1 0 0 0 1 6 00000123456789 1 0 1 1 0 1 0 1 2 0000123456789 1 0 1 1 1 2 0 1 1 1 8 000123456789 1 0 1 1 1 2 z 1 0 0 2 4 00123456789 1 0 1 1 1 2 zz 101 (Note 1) 30 0123456789 1 0 1 1 1 2 zzz NOTE: 1. Or 110 or 111, the exponent input saturates at 101. 12-BIT MODE: 12-BIT MANTISSA, 3-BIT EXPONENT, 24dB EXPONENT RANGE EXPONENT GAIN (dB) PIN BIT WEIGHTING TO 16-BIT INPUT MAPPING, 2^- 0 0 0 0 00000123456789 1 0 1 1 0 0 1 6 0000123456789 1 0 1 1 1 2 0 1 0 1 2 000123456789 1 0 1 1 1 2 z 0 1 1 1 8 00123456789 1 0 1 1 1 2 zz 100 (Note 2) 24 0123456789 1 0 1 1 1 2 zzz NOTE: 2. Or 101, 110, or 111, the exponent input saturates at 100. 13-BIT MODE: 13-BIT MANTISSA, 3-BIT EXPONENT, 18dB EXPONENT RANGE EXPONENT GAIN (dB) PIN BIT WEIGHTING TO 16-BIT INPUT MAPPING, 2^- 0 0 0 0 0000123456789 1 0 1 1 1 2 0 0 1 6 000123456789 1 0 1 1 1 2 z 0 1 0 1 2 00123456789 1 0 1 1 1 2 zz 011 (Note 3) 18 0123456789 1 0 1 1 1 2 zzz NOTE: 3. Or 100, 101, 110, or 111, the exponent input saturates at 011. 14-BIT MODE: 14-BIT MANTISSA, 2-BIT EXPONENT, 12dB EXPONENT RANGE EXPONENT GAIN (dB) PIN BIT WEIGHTING TO 16-BIT INPUT MAPPING, 2^- 0 0 0 000123456789 1 0 1 1 1 2 1 3 0 1 6 00123456789 1 0 1 1 1 2 1 3 z 10 (Note 4) 12 0123456789 1 0 1 1 1 2 1 3 zz NOTE: 4. Or 11, the exponent input saturates at 10. HSP50216
An input level detector is provided to monitor the signal level on any of the input busses. Which input bus, the input format, and the level detection type are programmable (see Microprocessor Interface Section Tables 37, 38 and 39, GWA’s F804h, F805h and F806h). The supported monitoring modes are: integrated magnitude (like the HSP50214 w/o the threshold), leaky integration (Y n =X n xA+Y n-1x (1-A)), and peak detection. The measurement interval can be programmed from 2 to 65537 samples (or continuous for the leaky integrator and peak detect cases). The output is 32 bits and is read via theµP interface. NCO/Mixer After the input select/format section, the samples are multiplied by quadrature sine wave samples from the carrier NCO. The NCO has a 32-bit frequency control, providing sub-hertz resolution at the maximum clock rate. The quadrature sinusoids have exceptional purity. The purity of the NCO should not be the determining factor for the receiver dynamic range performance. The phase quantization to the sine/cosine generator is 24 bits and the amplitude quantization is 19 bits. The carrier NCO center frequency is loaded via theµP bus. The center frequency control is double buffered - the input is loaded into a center frequency holding register via theµP interface. The data is then transferred from the holding register to the active register by a write to a address IWA *006h or by a SYNCI signal, if loading via SYNCI is enabled. To synchronize multiple channels, the carrier NCO phase accumulator feedback can be zeroed on loading to restart all of the NCOs at the same phase. A serial offset frequency input is also available for each channel through the D(15:0) parallel data input bus (if that bus is not needed for data input). This is legacy support for HSP50210 type tracking signals. After the mixers, a PN signal can be added to the data. This feature is provided for test and to digitally reduce the input sensitivity and adjust the receiver range (sensitivity). The effect is the same as increasing the noise figure of the receiver, reducing its sensitivity and overall dynamic range. The one bit PN data is scaled by a 16-bit programmable scale factor. The overall range for the PN is 0 to 1/8 full scale. A gain of 0 disables the PN input. The bit weighting for the gain is: SIGNAL (2^-): The minimum, non-zero, PN value is 1/(2 18) of full scale (-108dBFS) on each axis (-105dBFS total). For an input noise level of -75dBFS, this allows the SNR to be decreased in steps of 1/8dB or less. The I and Q PN codes are offset in time to decorrelate them. The PN code is selected and enabled in the test control register (F800h). The PN is added to the signal after the mix as: so the maximum level is -12dBFS and the minimum, non- zero level is -108dBFS. The PN code can be 2 15-1, 223-1 or 215-1 * 223-1. CIC Filter Next, the signal is filtered by a cascaded integrator/comb (CIC) filter. A CIC filter is an efficient architecture for decimation filtering. The power or magnitude squared frequency response of the CIC filter is given by: where M = Number of delays (1 for the HSP50216) N = Number of stages and R = Decimation factor. The CIC filter order is programmable from 0 to 5. The minimum decimation is 4. If the order is set to 0, there must be at least 4 clocks between samples or the decimation counter must be set to 4 to chose every 4th sample. The integrator/comb bit widths are: The integrators are sized for decimation factors up to 512 with 5 stages. The maximum decimation varies with the number of stages, but the maximum is 65536, limited by the decimation counter. A CIC filter has a gain of R N , where R is the decimation factor and N is the number of stages. For a 5 stage CIC, the gain is R 5. The number of input bits is 24. The decimation factors that a CIC can handle depends on the sizes of the integrators. The integrators are sized to prevent more than one rollover per decimation period. In the HSP50216, the integrators are slightly oversized to reduce the quantization noise at each stage. Because the CIC filter gain can vary greatly with decimation, a barrel shifter is provided ahead of the CIC to add gain to the input signal. The shift factor is adjusted to keep the total barrel shifter and CIC filter between 0.5 and 1.0. The shift 01234567891 01 11 21 31 41 51 61 71 81 92 0 PN (2^): SSSXXXXXXXX X X XXXXXX GAIN REG (2^): XXXXXXXXXXX X X X X X (A POSITIVE 16-BIT VALUE IS LOADED, S = SIGN) Bit Weights 0. 1234567890123456789 Input Bits X XXXXXXXXXXXXXXXXXXX PN Value± 0 00PPPPPPPPPPPPPPPP Pf() π Mf()sin π f R----- sin HSP50216
factor can be from 0 to 31. The equation used to compute the shift factor is: Shift Factor = 45 - Ceiling(log2(RN )). NOTE: With a CIC order of zero, the CIC shifter does not have sufficient range to route more than 10 bits to the back end. Back End Section One back-end processing section is provided per channel. Each back end section consists of a filter compute engine, a FIFO for rate smoothing, an AGC and a cartesian-to-polar coordinate conversion block. A block diagram showing the major functional blocks and data routing is shown above. The data input to the back end section is through the filter compute engine. There are two other inputs to the filter compute engine, they are a data recirculation path for cascading filters and a magnitude and dφ/dt feedback path for AM and FM filtering. There are seven outputs from each back end processing section. These are I and Q directly out of the filter compute engine (I2, Q2), I and Q passed through the FIFO and AGC multipliers (I1, Q1), magnitude (MAG), phase (or dφ/dt), and the AGC gain control value (GAIN). The I2/Q2 outputs are used when cascading back end stages. The routing of signals within the back end processing section is controlled by the filter compute engine. The routing information is embedded in the instruction bit fields used to define the digital filter being implemented in the filter compute engine. HSP50216
The filter compute engine is a dual multiply-accumulator (MAC) data path with a microcoded FIR sequencer. The filter compute engine can implement a single FIR or a set of filters. For example, the filter chain could include two halfband filters, a shaping (matched) filter and a resampling filter. The following filter types are currently supported by the architecture and microcode:
- even symmetric w/ even # of taps decimation filters
- even symmetric w/ odd # of taps decimation filters (including HBFs)
- odd symmetric w/ even # of taps decimation filters
- odd symmetric w/ odd # of taps decimation filters
- asymmetric decimation filters
- complex filters
- interpolation filters (up to interpolate by 4)
- interpolation halfband filters
- resampling filters (under NCO control)
- fixed resampling ratio filter (within the available number of coefficients)
- quadrature to real filtering (w/ fs/4 up conversion) The input to the filter compute engine comes from one of three sources - a CIC filter output (which can also be another backend section), the output of the filter compute engine (fed back to the input) or the magnitude and dφ/dt fed back from the cartesian-to-polar coordinate converter. The number and size of the filters in the chain is limited by the number of clock cycles available and by the data and coefficient RAM/ROM resources. The data RAM is 384 words (I/Q pairs) deep. The data addressing is modulo in power-of-2 blocks, so the maximum filter size is 256. The block size and the block starting memory address for each filter is programmable so that the available memory can be used efficiently. The coefficient RAM is 192 words deep. It is half the size of the data memory because filter coefficients are typically symmetric. ROMs are provided with halfband filter coefficients, resampling filter coefficients, and constants. The filter compute engine exploits symmetry where possible so that each MAC can compute two filter taps per clock, by doing a pre-add before multiplying. In the case of halfband filters, the zero-valued coefficients are skipped for extra efficiency. There is an overhead of one clock cycle per input sample for each filter in the chain (for writing the data into the data RAM) and (except in special cases) a two clock cycle overhead for the entire chain for program flow control instructions. The output of the filter compute engine is routed through a FIFO in the main output path. The FIFO is provided to more evenly space the FIR outputs when they are produced in HSP50216
bursts (as when computing interpolation filters). The FIFO is four samples deep. The FIFO is loaded by the output of the filter when that path is selected. It is unloaded by a counter. The spacing of the output samples is specified in clock periods. The spacing can be from 1 (fall through) to 4096 samples (approximately the spacing for a 16KSPS output sample rate when using 65MSPS clock). The number and order of the filtering in the filter chain is defined by a FIR control program. The FIR control program is a sequence of up to 32 instruction words. Each instruction word can be a filter or program flow instruction. The filter instruction defines a FIR in the chain, specifying the type of FIR, number of taps, decimation, memory allocation, etc. For program flow, a wait for input sample(s) instruction, a loop counter load, and several jumps (conditional and unconditional) are provided. The simplest filter program computes a single filter. It has three instructions (see Sample Filter #1Program Instructions below): The parameters of the FIR (including type, number of taps, decimation and memory usage) are specified in the bit fields of the step 2 instruction word. To change the filtering the only other change needed is the number of samples in the wait threshold register. The filter in this example requires 52 clock cycles to compute, allocated as follows: Using a 65MSPS clock, the output sample rate could be as high as 1.25MSPS. The input sample rate from the CIC filter would be 2.5MSPS. The impulse response length would be 38 µsec (95 taps at 0.4µs/tap). Each additional filter added to the signal processing chain requires one instruction step. As an example of this, a typical filter chain might consist of two decimate-by-2 halfband filters being followed by a shaping filter with the final filter being a resampling filter. The program for this case might be (see Sample Filter Program #2 Instructions below): SAMPLE FILTER #1 PROGRAM STEP INSTRUCTION
0 Wait for enough input samples
(equal to the decimation factor)
1 FIR
Type = even symmetric 95 taps Dec x 2 Compute one output Decrement wait counter Memory block size 128 Memory block start at 64, Coefficient block start at 64 Step size 1 Output to AGC
2 Jump, Unconditional, to step 0
SAMPLE FILTER #1 CLOCK CYCLES CALCULATION CLOCK CYCLES FUNCTION PERFORMED
48 Clocks for FIR computation (two taps/clock due to
symmetry)
2 Clocks for writing the input data into the data RAMs
(Decimate by 2 requires 2 inputs per output)
2 Clocks for the program flow instructions (wait and
jump)
52 Total
SAMPLE FILTER #2 PROGRAM STEP INSTRUCTION
0 Wait for enough input samples (usually equal to the
total decimation - 8 in this case) Type = even symmetry 15 taps Halfband Dec x 2 Compute four outputs Memory block size 32 Memory block start at 0 Coefficient block start at 13 Output to step 2 Decrement wait count
2 FIR
Type = even symmetry 23 taps Halfband Dec x 2 Compute two outputs Memory block size 32 Memory block start at 32 Coefficient block start at 24 Output to step 3
3 FIR
Type = even symmetry 95 taps Dec x 2 Compute one output Memory block size 128 Memory block start at 64 Coefficient block start at 64 Step size 1 Output to step 4
4 FIR
Type = resampler Increment NCO 6 taps Compute one output Memory block size 8 Memory block starts at 192 Coefficient block start at 512 Step size 32 Output to AGC
5 Jump, Unconditional, to 0
Sample filter #2 requires:
- 32 + 32 + 128 + 8 = 200 data RAM locations
- (95+1)/2=48 coefficient RAM location (resampler and HBF coefficient are in ROM). The number of clock cycles required to compute an output for Sample filter #2 is calculated as follows: Total decimation is 8, so the input sample rate for the FIR chain could be up to: fCLK /(ceil(105/8)) = fCLK /14. With a 65MHz clock, this would support a maximum input sample rate to the FIR processor of 4.6MHz and an output sample rate up to 0.580MHz. The shaping filter impulse response length would be: (95 x 2)/580,000 = 82µs. The maximum output sample rate is dependent on the length and number of FIRs and their decimation factors. Illustrating this concept with Filter Example #3, a higher speed filter chain might be comprised of one decimate-by-2 halfband filter (15 taps) followed by a 30 tap shaping FIR filter with no decimation. The program for this example could be: The number of clock cycles required to compute an output for Sample filter #3 is calculated as follows: For Filter Example #3 and a 65MSPS input, the maximum output sample rate would be 2.5MSPS and the maximum FIR processor input sample rate would be 5MSPS (At 80MSPS, the FIR could be up to 42 taps). Channels 0, 1, 2 and 3 can be combined in a polyphase structure for increased bandwidth or improved filtering. Filter Example #4 will be used to demonstrate this capability. Symbol rate of 4.096 MSym. The desired output sample rate is 8.192MSPS. Arrange the four back end sections as four filters operating on the same CIC output at a rate of 65.536MHz/4=16.384MHz. Each channel computes the same sequence, offset by one output sample from the previous sample. Each channel decimates down to 2.048M and then the channels are SAMPLE FILTER #2 CLOCK CYCLES CALCULATION CLOCK CYCLES FUNCTION PERFORMED
20 Halfband 1 compute clocks
(5 per compute x4 computes)
8 Halfband 1 input sample writes
14 Halfband 2 compute clocks
(7 per compute x2 computes)
4 Halfband 2 input sample writes
48 48 x 1 FIR compute clocks
2 FIR input sample writes
6 6 x 1 resampler compute clocks
1 Resampler input sample writes
1 Jump instruction
1 Wait instruction
105 Clock cycles per output
SAMPLE FILTER #3 PROGRAM STEP INSTRUCTION
0 Wait for enough input samples (2 in this case)
Type = even symmetry 19 taps Halfband Dec x 2 Compute one output Memory block size 32 Memory block start at 0 Coefficient block start at 18 Output to step 2 Reset wait count Type = even symmetry 30 taps Dec x 1 Compute one output Memory block size 64 Memory block start at 32 Coefficient block start at 64 Step size 1 Output to AGC
3 Jump, Unconditional, to 0
SAMPLE FILTER #3 CLOCK CYCLES CALCULATION CLOCK CYCLES FUNCTION PERFORMED 6 6 x 1 HBF compute clocks
2 HBF input writes
15 15 x 1 FIR compute clocks 1 1 FIR input write 1 1 wait 1 1 jump
26 Clock cycles per output
multiplexed together to get the desired 8.192MSPS. The input sample rate to the final filter of each channel must meet Nyquist for the final output to assure that no information is lost due to aliasing. The number of FIR taps available for these requirements is calculated as follows: 65536/2048 = 32 clocks minus (8writes + 1wait + 1jump = 10clocks) = 22 clocks Therefore, the number of taps is: 22 x 2 = 44 taps. Multiplexing the four outputs gives a final output sample rate of 8.192. The impulse response is 44 taps at 16.384M or 22 output samples (11 symbols at 4.096M). The AGC loop filter output of channel 4 can be routed to control the forward AGC gain control of all four channels. This assures that the gains of the four back end sections are the same. The gain error, however, is only computed from every fourth output sample. The back end processing sections of two or more HSP50216s can be combined using the same polyphase approach, but the AGC gain from one part cannot be shared with another part (except via theµP interface), so polyphase filter using multiple parts would typically usually use a fixed gain. Filter Sequencer SAMPLE FILTER #4 PROGRAM STEP INSTRUCTION
0 Wait for enough input samples (8 in this case)
type = even symmetry 44 taps decx8 compute one output memory block size 64 memory block start at 0 coefficient block start at 64 step size 1 output to AGC offset memory read pointers by 0, -2, -4, -6
2 Jump, Unconditional, to 0
The filter sequencer is programmed via an instruction RAM and several control registers. These are described below. Instruction RAMs The filter compute engine is controlled by a simple sequencer supporting up to 32 steps. Each step can be a filter or one of four sequence flow instructions - wait, jump (conditional or unconditional), load loop counter, or NOP . There are 128 bits per instruction word with each word consisting of condition code selects, FIR parameters and data routing controls. Not all of the instruction word bits are used for all instruction types. The actual sequencer instruction is only 9 bits. The rest of the bits are used for filter parameters or for the loop counter preload. Each sequence step is loaded in four 32-bit writes. The mapping of the bit fields for the instruction types is shown in the instruction bit field table that follows. When the filter is reset, the instruction pointer is set to 31 (the last instruction step). The read and write pointers are initialized on reset, so a reset must be done when the channel is initialized or restarted. A fixed offset can be added to the starting read address of the filter in one sequence step. This function is provided to offset the data reads of the filters in a polyphase filter bank - all filters in the bank will write the same data to the same RAM location. To offset the computations the RAM read address is offset. The instruction word bits (127:0) are assigned to memory words as follows:
- 31:0 to destination C C C C 0 0 0 1 0 x x x x x 0 0
- 63:32 to destination C C C C 0 0 0 1 0 x x x x x 0 1
- 95:64 to destination C C C C 0 0 0 1 0 x x x x x 1 0
- 127:96 to destination C C C C 0 0 0 1 0 x x x x x 1 1 where CCCC is the channel number and xxxxx is the instruction sequence step number. Note theµPHold bit in the filter compute engine control register (IWA = *00Ah) must be set for the microprocessor to read from or write to the instruction or coefficient RAMs. HSP50216
POSITIONS FUNCTION DESCRIPTION 8:0 Instruction Instruction Field Bit Mapping B i t 876543210 Type W A I T 00XXXXCCC FIR 0 1 Start IncrRS DecrSel DecrEn LdLp DecrLp EnU/C JUMP 1 JJJJJC C C (NOPs and loading the loop counter are special cases of the FIR instruction) XXXX = ignored JJJJJ = jump destination (sequence step number) CCC = condition code 000 = ( w aitcount≥ threshold) 001 = waitcount ≥ threshold 010 = loop counter ≠0 011 = loop counter = 0 100 = RSCO Tab (RSCO - resampler NCO carry output) 101 = RSCO 110 = sync (if enabled) orµP controlled bit 111 = always Start = load parameters and start filter computation, set to zero for no-ops, loop counter loads IncrRS = increment resampler during this filter. Increments on start or at each FIR output depending onµPcontrol bit. DecrSel = selects between two decrement values for the wait counter. DecrEn = decrement wait count on starting this instruction. LdLp = load loop counter with the data in the I(20:9) bit field. The start bit should not be set when this bit is set. DecrLp = decrement loop counter on starting this instruction. EnU/C = enable U/C counter with this FIR. This multiplies the data by 1, j, -1, -j. The multiplication factor changes each time the filter runs. 14:9 FIR Type FIR Parameter Bit Fields 14:9 FIR type
000000 NOP
000001 Decimating FIR, Even Symmetric, Even # Taps
000010 Decimating FIR, Even Symmetric, Odd # Taps
000011 Decimating FIR, Odd Symmetric, Even # Taps
000100 Decimating FIR, Odd Symmetric, Odd # Taps
000101 Decimating FIR, Asymmetric
001000 Resampling FIR, Asymmetric
001001 Interpolating HBF
100000 Decimating FIR, Complex (Asymmetric)
NOTES: 1. Regular interpolation FIRs are successive runs of a FIR with no data address increment, but with coefficient start address increments. 2. Decimating HBFs are even symmetric, odd number of taps but with different data step sizes. 3. U/C FIR is a normal FIR with the U/C bit enabled. 4. Other codes may be added in the future. 17:15 Steps per FIR Specifies the number of steps per FIR instruction sequence (load with value minus 1) (set to 0 for all FIR types except complex which is set to 1) HSP50216
28:18 Destination Destination Field Bit Mapping 28 27 26 25 24 23 22 21 20 19 18 AGCLFGN AGCLF Path1 Path0 OS FB F4 F3 F2 F1 F0 AGCLFGNAGC loop gain select. Only applies to Path 1. Loop gain 0 or 1 if AGCLF bit is set. Set to 0 (1 is a test mode for future chips). AGCLF AGC loop filter enable. Only applies to Path 1.The AGC loop is updated with the magnitude of this sample (Path(1:0) = 01). Path(1:0) Back End Data Routing Path Selection 00 Route output back to filter compute engine input to another FIR in the filter chain.
01 Route output thru the FIFO and AGC forward path to the cartesian-to-polar coordi-
nate converter conversion and output (I1, Q1, magnitude, phase, gain) and also to route to a discriminator (i.e., dφ/dt FIR). 10 Route output directly to the output, bypassing the FIFO and AGC (I2, Q2). This path also routes to next channel FIR input. OS Enable output strobe. Setting this bit generates a data ready signal when the data reaches the output section and starts the serial output sequence (paths 1, 2, 3). If OS is not set, there will be no output to the outside world from this channel, for that output calculation, but the data will be loaded into its output holding register (OS would not be set when routing the data to another back end when cascading channels). FB Feedback data path. When set, the magnitude and phase from the cartesian-to-polar coor- dinate converter block are routed to the filter compute engine input. Provided for discrimina- tor filtering. F(4:0) Filter select. For data recirculated to the input of the FIR processor by path 0 or from the cartesian to polar coordinate converter output, these bits tell which filter sequencer step gets it as an input. 31:29 Round Select 31:29 Round Select (Add rounding bit at specified location) 000 2 -24, use this code when downshifting is not used. 001 2 -23 010 2 -22 011 2 -21 100 2 -20 101 2 -19 110 2 -18 111 no rounding Provided for use with the coefficient down-shift bits. 41:32 Data Memory Block Start Memory block base address, 0-1023, 0-383 are valid for the HSP50216. 44:42 Data Memory Block Size 44:42 Block Size 11 6 23 2 36 4 4 128 5 256 6 512 7 1024 (modulo addressing is used) 52:45 Data Memory Block-to-Block Step 0-255, usually equal to the decimation factor for the FIR in this instruction. INSTRUCTION BIT FIELDS (Continued) BIT POSITIONS FUNCTION DESCRIPTION HSP50216
62:53 Coefficient Memory Block Start Memory base address of coefficients, 0-1023, 0-511 are valid on the HSP50216.
63 Reserved Set to 0
66:64 Coefficient Memory Block Size 66:64 Memory Block Size 11 6 23 2 36 4 4 128 5 256 6 512 7 1024 (Modulo addressing can be used, but is usually not needed. If not needed this bit field can always be set to 7). 75:67 Number of FIR Outputs Number of FIR outputs (range is 1 to 512, load w/ desired value minus 1). This is usually equal to the total decimation that follows the filter. 84:76 Read Address Pointer Step Read address pointer step (for next run). This is usually equal to the filter decimation times the number of outputs from the instruction. 93:85 Initial Address Offset Initial address offset (to ADDRB). This is the offset from the start address to other end of filter. For symmetric filters, usually equal to -1 x (number of taps -1). 95:94 Reserved Set to 0 104:96 Memory Reads Per FIR Output This is based on the number of taps (load with value below minus 1). Type Value Symmetric, even number of taps (taps/2) or floor((taps+1)/2) Symmetric, odd number of taps (taps+1)/2 or floor((taps+1)/2) Decimating HBF (taps+5)/4 Asymmetric taps Complex taps Resampling taps/phase (six taps per phase for the ROM’d coefficients provided) Interpolating HBF (taps+5)/4-1 106:105 Clocks Per Memory Read Set to 0 for all but complex FIR, which is set to 1. 115:107 Data Memory Step Size 1 (ADDRA) Step size for all but the last tap computation of the FIR. Set to -2 for HBF, -1 otherwise. 117:116 Data Memory Step Size 2 (ADDRA) Step size for last tap computation. Set to -1. 117:116 Step size 1- 1 2- 2 3 step size value 119:118 Data Memory Address Offset Step (ADDRB) Step size for opposite end of symmetric filter. Set to +2 for Decimating HBF, to +1 for others (the B data is not used for asymmetric, resampling, and complex filters). INSTRUCTION BIT FIELDS (Continued) BIT POSITIONS FUNCTION DESCRIPTION HSP50216
122:120 Coefficient Memory Step Size (ADDRC) Usually set to 1. 122:120 Step size 51 6 63 2 76 4 125:123 Coefficient Memory Block-to-Block Step (ADDRC) Usually set to 0. 125:123 Step size 51 6 63 2 76 4 127:126 Reserved Set to 0 INSTRUCTION BIT FIELDS (Continued) BIT POSITIONS FUNCTION DESCRIPTION HSP50216
- Wait for number of input samples> threshold 127:9 = 0 8:0 = 001 0000,0000,0000,0001h 2. Jump unconditional 127:9 = 0 8:0 = 1JJJJJ111b example: jump to step 0= 0000,0000,0000,0107h 3. Jump RSCO (jump on resampler NCO carry output) 127:9 = 0 8:0 = 1JJJJJ101b example: jump RSCO, step 0= 0000,0000,0000,0105h 4. Jump RSCO (jump on no resampler NCO carry output) 127:9 = 0 8:0 = 1JJJJJ100b example: jump RSCO, step 0 = 0000,0000,0000,0104h 5. NOP single clock 127:9 = 0 8:0 = 010000000b NOP1 = 0000,0000,0000,0080h 6. Load Loop Counter 127:21 = 0 20:9 = Loop counter preload (tested against 0) 8:0 = 010000100b example: LdLpCntr 14 = 0000,0000,0000,1C84h 7. NOPs more than 1 clock period NOP 8. FIR examples even#taps, odd#taps, even/odd symmetry, asymmetric, complex, hbf, interpolation, interpolation hbf, resampler, u/c Single FIR Basic Program This is the basic program for a single FIR. This program applies to decimation filters (including DECx1) that are symmetric or asymmetric (but not complex). The FIR output is routed through path A with the AGC enabled. 0 - WAIT FOR ENOUGH SAMPLES 0000 0000 0000 0000 0000 0000 0000 0000 127:96 00000000h 0000 0000 0000 0000 0000 0000 0000 0000 95:64 00000000h 0000 0000 0000 0000 0000 0000 0000 0000 64:32 00000000h 0000 0000 0000 0000 0000 0000 0000 0001 31:0 00000001h 1 - FIR 0000 0001 0101 1111 1111 100R RRRR RRRR 127:96 015FF---h 00TT TTTT TTTD DDDD DDDD 0000 0000 0111 95:64 -----007h 0000 1000 0000 0000 0000 1010 0000 0000 63:32 08000A00h 0000 1011 0000 0000 0FFF FFF0 1100 1000 31:0 0B00--C8h 2 - JUMP TO STEP 0 0000 0000 0000 0000 0000 0000 0000 0000 127:96 00000000h 0000 0000 0000 0000 0000 0000 0000 0000 95:64 00000000h 0000 0000 0000 0000 0000 0000 0000 0000 64:32 00000000h 0000 0000 0000 0000 0000 0001 0000 0111 31:0 00000107h Four bit fields must be filled in: F - filter type (this example applies to types 1-5) D - decimation (also loaded into wait threshold) T - number of taps minus 1 R - clocks/calculation (=floor((taps+1)/2) for symmetric, = taps for asymmetric) The rest of the instruction RAM would typically be filled with NOP instructions: 0000 0000 0000 0000 0000 0000 0000 0000 127:96 00000000h 0000 0000 0000 0000 0000 0000 0000 0000 95:64 00000000h 0000 0000 0000 0000 0000 0000 0000 0000 64:32 00000000h 0000 0000 0000 0000 0000 0000 1000 0000 31:0 00000080h HSP50216
This register holds the wait counter threshold and two wait counter decrement values. Each is 10 bits. The wait counter counts filter input samples until the count is greater than or equal to the threshold. The wait counter then asserts a flag to the filter compute engine. The wait counter threshold is typically set to the total number of input samples needed to generate a filter output. A "WAIT" instruction in the filter compute engine waits for the wait counter flag signal before proceeding. The filter compute engine would then compute all the filters needed to produce an output and then would jump back to the "WAIT" instruction. The wait counter is implemented with an accumulator. This allows the count to go beyond the threshold without losing the sample count. Two bits in the FIR instruction decrement the wait counter (subtract a value) and select the decrement value. The decrement value is typically the number of samples needed for an output (total decimation), though it can be a different value to ignore inputs and shift the timing. (The read pointer increment must be adjusted as well.) The filter compute engine sequencer does not count each input sample or track whether each filter is ready to run. Instead, the wait counter is used to determine whether there are enough input samples to compute all the filters in the chain and get an output sample from the entire filter chain. This adds some additional delay since intermediate results are not precalculated, but it simplifies the filter control. The number of samples needed is equal to the total decimation of the filter chain. For example, with two decimate-by-2 halfband filters and a decimate-by-2 shaping FIR, the total decimation would be 8 so 8 samples are needed to compute an output. HBF1 would compute four times to generate four inputs to HBF2. HBF2 would compute twice to generate the two samples that the shaping FIR needs to compute an output. Resampler NCO The NCO is incremented by the filter compute engine. A bit in the filter instruction selects whether the NCO is incremented for that filter output. The center frequency control is double buffered, i.e., the control word is written to one register via theµP interface and then transferred to another (active) register on a write to the TNCF update strobe location or on a SYNCI (if enabled). As it is not possible to represent some frequencies exactly with an NCO and therefore, phase error accumulates eventually causing a bit slip, the phase accumulator length has been sized to where the error is insignificant. At an update rate of 1MHz, half an LSB of error in loading the 56-bit accumulator is 7e-12. After 1 year, the accumulated phase error is only 0.2e-3 of a bit (<1/10 of a degree). The NCO update by the filter compute engine is typically at the resampler's input rate. The NCO then rolls over at a fraction of the resampler input rate. The output frequency is: IN/256)*N. N should be between 40000000000000h and FFFFFFFFFFFFFFh (decimation from 1 to 4). The resampler changes the sample rate by computing an output or not at each input. If an output is computed, its phase is shifted based on the NCO phase to slowly slide the timing of the output relative to the input. The output of the part will be at the input sample boundaries (except for any FIFOing following the filter compute engine). If D/A converted directly, there would be artifacts from the uneven sample spacing, but if the samples are stored and reconstructed at the proper rate (the NCO rollover rate), the signal would have only the distortion produced by interpolation image leakage and the time quantization due to the limited number of interpolation filter phases (32). HSP50216
time of the AGC loop. There are four values in two sets. signal turns off (in anticipation of it turning back on shortly). disables the AGC (sets it as programmable gain stage). † Controlled via microprocessor interface. FIGURE 1. AGC FUNCTIONAL BLOCK DIAGRAM
4 EXPONENT)
The forward gain consists of a 4-bit exponent and 14-bit mantissa and an implied 1 for an overall gain of: 0 1.M M M M M M M M M M M M M M * 2EEEE . The gain weighting in dB is approximately: For a full scale error, the minimum non-zero AGC slew rate would be approximately 0.0002dB/output or 20dB/sec at 100ksps. The maximum gain would be 6dB/output. This much gain would probably result in significant AM on the output. For median mode, the maximum gain step is approximately. 3dB/output. The step is fixed (it does not decrease as the error decreases) so a large gain will cause AM on the output at least that large. The gain should be lowered after the settling. The AGC gain limits register sets the minimum and maximum limits on the AGC gain. The total AGC gain range is 96dB, but only a portion of the range should be needed for most applications. For example, with a 16-bit output to a processor, the 16 bits may be sufficient for all but 24dB of the total input range possible. The AGC would only need to have a range of 24dB. This allows faster settling and the AGC would be at its maximum gain limit except when a high power signal was received. The AGC may be disabled by setting both limits to the same value. The limits are on the forward gain are mapped as: The AGC loop adjusts its gain to maintain the output signal magnitude at a level proportional to this set point. There is a gain of 1.64676 in the I/Q to magnitude computation, so the threshold should be set to 0.82338 times the desired I/Q magnitude at the output of the part. 3 322222222221111111111 2 ^ 1 0987654321098765432109876543210 3 2101234567890123 Gain Error S SXXXXXXXXXXXXXXX (threshold - magnitude) S = 0 if mag < or = to thresh S = 1 if mag > thresh in median mode, the error is set to SS10000000000000 (±2.0) 1 110000000000000 0 010000000000000 Mant mult out S SXXXXXXXXXXXXXXXXXXX -17 S SSSSSSSSSSSSSSSSSSSXXXXXXXXXXXX EXP = 0 S SSSSSSSSSSSSSSSSSSSXXXXXXXXXXXX EXP = 1 S SSSSSSSSSSSSSSSSSSXXXXXXXXXXXX0 EXP = 2 S SSSSSSSSSSSSSSSSSXXXXXXXXXXXX00 EXP = 4 S SSSSSSSSSSSSSSSXXXXXXXXXXXX 0000 EXP = 8 S SSSSSSSSSSSXXXXXXXXXXXX 00000000 EXP = 15 S SSSSXXXXXXXXXXXX 000000000000000 UL, LL (0) EEEE MMMMMMMMMMMM LOAD (0) EEEE MMMMMMMMMMMM READ (µP ) 0 EEEE MMMMMMMMMMM OUTPUT 0 EEEE MMMMMMMMMMMMMM T B D FORWARD GAIN EEEE MMMMMMMMMMMMMM E E E EMMMMMMMMMMMMMM 421 5731000000000 578942100000 57363152100 5894799574 E E E EMMMMMMMMMMMM (0 1 .MMMMMMMMMMMM *2 EEEE ) Output (I or Q) 0. 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 -1.0 to <1.0 Magnitude Z 0. 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 to 1.414 Computed Mag Z 1 0. 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 to 2.329 Threshold 2 1 0. 1 2 3 4 5 6 7 8 9 0 1 2 3 0 to 2.329* Gain Error S 2 1 0. 1 2 3 4 5 6 7 8 9 0 1 2 ±2.329 * set MSB to zero. HSP50216
Serial Data Output Formatter Section Serial Data Output Control Register The serial data output control register contains sync position and polarity (SYNCA, B, C or D), channel multiplexing, and scaling controls for the SD1x and SD2x (x = A, B, C or D) serial outputs (see Microprocessor Interface Section, Table 21, IWA *014h). Channel Routing Mask The multiplexing mask bits for each channel (see Microprocessor Interface Section Table 21, IWA *014h bits 19:16 for SD1x or bits 15:12 for SD2x) can be used to enable that channel’s output to any of the four serial outputs. These bits control the AND gates that mask off the channels, so a zero disables the channel’s connection to that output. To configure more than one channel's output onto a serial data output, the SD1 serial outputs and syncs from each channel (0,1, 2 and 3) are brought to each of the SD1 serial output sections and the SD2 serial outputs are brought to each of the SD2 serial output sections (the syncs are only associated with the SD1 serial ouputs). There, the four outputs are AND-ed with the multiplexing mask programmed in the serial data output control registers of channels 0 thru 3 and OR-ed together. By gating off the channels that are not wanted and delaying the data from each desired channel appropriately, the channels can be multiplexed into a common serial output stream. It should be noted that in order to multiplex multiple channels onto a single serial data stream the channels to be multplexed must be synchronous. Serial Data Output Time Slot Content/Format Registers These four registers are used to program the content and format of the serial data output sequence time slots (see Microprocessor Interface Section, Tables 22 - 25, IWA *015h - *018h). There are seven data time slots that make up a serial data output stream. The number of data bits and data format of each slot is programmable as well as whether there will be a sync generated with the time slot (the syncs are only associated with the SD1 serial ouputs). Any of seven types of data or zeros can be chosen for each time slot. Eight bits are used to specify the content and format of each slot. As an example, suppose we wanted to output 32-bit I and Q values from channels 0 and 1 into the SD1A serial data output stream, we would program the following settings in the channel’s serial data output control and content/format registers: Channel 0: delay = 0 (IWA = 0014h, bits 11:0); HSP50216
first data time slot = I, 32-bit (IWA = 0015h, bits 7:0); second data time slot = Q, 32-bit (IWA = 0015h, bits 15:8); third through seventh data time slot = zero and no sync,(IWA = 0015h, bits 31:16 and IWA = 0016h, bits 31:0); enable the serial output for this channel in the serial routing mask (IWA = 0014h, bit 16). Channel 1: delay = 64(IWA = 1014h, bits 11:0); first data time slot = I, 32-bit (IWA = 1015h, bits 7:0); second data time slot = Q, 32-bit (IWA = 1015h, bits 15:8); third through seventh data time slot = zero and no sync, (IWA = 1015h, bits 31:16 and IWA = 1016h, bits 31:0); enable the serial output for this channel in the serial routing mask (IWA = 1014h, bit 16). The syncs for the I and Q data are programmed as desired. The resulting order is CH0I first, then CH0Q, CH2I, and CH2Q. As an example when no multiplexing of channel data is desired: IWA = 0014h, bit 12 for channel 0 would be set; IWA = 1014h, bit 13 in channel 1 would be set; IWA = 2014h, bit 14 in channel 2 would be set, and IWA = 3014h, bit 15 in channel 3 would be set allowing four serial data streams to be output on SD2A, SD2B, SD2C, and SD2D. The other bits in each channel’s mask would be cleared (programmed to 0). Microprocessor Interface The HSP50216 Microprocessor (µP) interface consists of a 16-bit bidirectional data bus, P(15:0), three address pins, ADD(2:0), a write strobe ( WR), a read strobe (RD) and a chip enable (CE). Indirect addressing is used for control and configuration of the HSP50216. The control and configuration data to be loaded is first written to a 32-bit holding register at direct (external) addresses ADD(2:0) = 0 and 1, 16 bits at a time. The data is then transferred to the target register, synchronous to the clock, by writing the indirect (internal) address of the target register to direct (external) address 2, ADD(2:0) = 2. The interface generates a synchronous one clock cycle wide strobe to transfer the data contained in the holding register to the target register. The synchronization and write process requires 4 clock periods. New datashould not be written to the holding register until after the synchronization period is over. Data reads can be direct, indirect or FIFO-like depending on the data that is being read. The status register is read directly at direct (external) address 3, ADD(2:0) = 3. Readback of internal registers and memories is indirect. The 16-bit indirect (internal) address of the desired read source is first written to direct (external) address 3, ADD(2:0) = 3, to select the data. The data can then be read at direct HSP50216
(external) addresses ADD(2:0) = 0 and 1 (bits 15:0 at address 0 and 31:16 at address 1). The data types available via the indirect read are listed in the Tables of Indirect Read Address (IRA) Registers. (Note that theµPHold bit contained in the target register at Indirect Write Address (IWA) = *00Ah must be set to suspend the filter compute engine before the memories can be written to or read from.) The HSP50216 output data from the four channels is available through the microprocessor interface as well as from the serial data outputs. A FIFO-like interface is used to read the output data through the microprocessor interface. When new output data is available, it is loaded into a FIFO in a user programmed order (for details on the programming order see Global Write Address (GWA) = F820h - F83Fh). It can then be read, 16 bits at a time, at direct address 2, ADD(2:0) = 2. At the end of each read, the FIFO counter is advanced to the next location. This allows a DMA controller to read all of the data with successive reads to a single direct address. No writes or other interaction is required. The FIFO counter is reset and reloaded by each interrupt signal, see GWA F802h. New data in the FIFO is also indicated in the status register located at direct address ADD(2:0) = 3 if a polled mode is preferred. The eight data types available, for each of the four channels, via this interface are: I(23:8), I(7:0)+8 Zeroes, Q(23:8), Q(7:0)+8 Zeroes, Mag(23:8), Mag(7:0)+8 Zeroes, Phase (15:0), and AGC (15:0). The upper bits of I, i.e., I(23:8), and Q, i.e., Q(23:8), are not rounded to 16 bits. This interface can read the data from all the channels that are synchronized. However, because a common FIFO is used and the FIFO is reset and reloaded by each interrupt, it cannot be used for asynchronous channels. The direct address map for the microprocessor interface is shown in the Table of Microprocessor Direct Read/Write Addresses and the procedures for reading and writing to this interface are provided below. The bit field details for each indirect read and write address is provided in the Table of Indirect Read Address (IRA) Registers, Tables of Indirect Write Address (IWA) Registers (Tables 1 - 32) and Tables of Global Write Address (GWA) Registers (Tables 33 - 43). µP Read/Write Procedures To Write to the Internal Registers: 1. Load the indirect write holding registers at direct address ADD(2:0) = 0 and 1 with the data for the internal register (16 or 32 bits depending on the internal register being addressed). 2. Write the Indirect Write Address of the internal register being addressed to direct address ADD(2:0) = 2 (Note: A write strobe to transfer the contents of the Indirect Write Holding Register into the Target Register specified by the Indirect Address will be generated internally). 3. Wait 4 clock cycles before performing the next write to the indirect write holding registers. To Write to the Internal Instruction/Coefficient RAMs: 1. Put the filter compute engine of the desired channel into the hold mode by setting bit 31 of the Filter Compute Engine / Resampler Control register located at IWA = *00Ah (Note: The * is equal to 0, 1, 2 or 3 depending on the channel being addressed). By setting bit 31 all FIR processing for the channel addressed will be stopped. 2. Load the indirect write holding registers at direct address ADD(2:0) = 0 and 1 with the data for the internal RAM location. 3. Write the Indirect Write Address of the internal RAM location being addressed to direct address ADD(2:0) = 2 (Note: A write strobe to transfer the contents of the Indirect Write Holding Register into the RAM location specified by the Indirect Address will be generated internally). 4. Wait 4 clock cycles before performing the next write to the indirect write holding registers. 5. After all data has been loaded, set theµPHold bit back low. To Read Internal Registers: 1. Write the Indirect Read Address of the internal register being addressed to direct address ADD(2:0) = 3. 2. Perform a read of the Indirect Read Holding Registers at direct address ADD(2:0) = 0 and 1. To Read Data Outputs: 1. Set up theµP FIFO Read Order Control Register (located at Global Write Address (GWA) = F820h - F83Fh). 2. Wait for interrupt or check flag. 3. Data can then be read, 16 bits at a time, at direct address 2, ADD(2:0) = 2. 4. Repeat step 3 for desired number of words. 5. Go to step 2. To Read Instruction/Coefficient Values: 1. Put the filter compute engine of the desired channel into the hold mode by setting bit 31 of the Filter Compute Engine / Resampler Control register located at IWA = *00Ah (Note: The * is equal to 0, 1, 2 or 3 depending on the channel being addressed). 2. Write the Indirect Read Address (IRA) of the internal RAM/ROM location being addressed to direct address ADD(2:0) = 3. 3. Wait 4 clock cycles. 4. Read the data at direct address ADD(2:0) = 0 and 1. 5. After all the data has been read, set theµPHold bit back low. HSP50216
TABLE OF MICROPROCESSOR DIRECT READ/WRITE ADDRESSES ADD(2:0) PINS REGISTER DESCRIPTION
0 WR Indirect Write Holding Register, Bits 15:0
1 WR Indirect Write Holding Register, Bits 31:16
2 WR Indirect Write Address Register for Internal Target Register (Generates a write strobe to transfer contents of the Write Holding Register into the Target Register specified by the Indirect Address, see also Tables of Indirect Address Registers) 3 WR Indirect Read Address Register (Used to select the Read source of data - uses the same register as Direct Address 2 but generates a read strobe (for RAMs and AGC) as needed instead of a write strobe).
0 RD Indirect Read, Bits 15:0
1 RD Indirect Read, Bits 31:0
2 RD Read Register (FIFO) - Reads FIFO data from output section (This location reads output data in the order loaded in Global Control Indirect Address Registers F820-F83F. The FIFO is automatically incremented to the next data location at the end of each read.)
3 RD Status Register
P(15:0) BIT DESCRIPTION 15:12 Unused 11:6 Read non-bus input pins (ENIx,RESET, SYNCI)
11 RESET (Note: This bit is inverted with respect to the RESET input pin)
9 ENIB
8 ENIC
7 ENID
6 SYNCI
5:2 Mask revision number 1 Level detector integration done. Active high.
0 New FIFO output data available (used for polling mode vs interrupt mode) Active low
**TABLE 1. CHANNEL INPUT SELECT/FORMAT REGISTER (IWA = *000h)** C(15:0), D(15:0) or theµP Test Input register as shown below.
000 A(15:0)
001 B(15:0)
010 C(15:0)
011 D(15:0)
bal Write Address register for theµP Test input register is F807h. 1 Bit 11 of this register is used as the input enable. 0 A one clock wide pulse generated on each write to lGWA F808h is used as the input enable. Select 0 to write test data into the part. Select 1 to input a constant or to disable the input for minimum power dissipation when an NCO/mixer/CIC section is unused. 11 µP input enable. When bit 12 is set, this bit is the input enable for theµP Test Register input. Active low.
0 Enabled
10 Parallel Data Input Format
0 Two’s complement
1 Offset binary
9 Fixed/Floating point
0 Fixed point
select the mantissa/exponent grouping, add an offset to the exponent and set the shift control saturation level. See the exponent tables contained in the Input Select/Format Block Section. NCO/Mixer/CIC stage at the nextENIx.
000 Zero delay
111 7 clock periods of delay. All values from 0 through 7 are valid.
3 Interpolated/Gated Mode Select
0 Gated. The carrier NCO and CIC are updated once per clock whenENIx is asserted. input is zeroed whenENIx is high. 0 Enable PN. When set, A PN code, weighted by the gain in location *001, is added to the input samples at the output of the mixer. **TABLE 1. CHANNEL INPUT SELECT/FORMAT REGISTER (IWA = *000h)** **TABLE 2. PN GAIN REGISTER (IWA = *001h)** 31:16 Reserved, set to all 0’s. done on all channels simultaneously. **TABLE 3. CIC DECIMATION FACTOR REGISTER (IWA = *002h)** 15:0 Load with the desired CIC decimation factor minus 1. **TABLE 4. CIC DESTINATION FIR AND OUTPUT ENABLE/ DISABLE REGISTER (IWA = *003h)** 5:1 CIC output destination (FIR # in FIR processor). Usually set to 00001. 0 CIC output enable. Active high. When low, the data writes from the CIC to the filter compute engine are inhibited. **TABLE 5. CARRIER NCO/CIC CONTROL REGISTER (IWA = *004h)** 31:19 Reserved, set to zero. 18:14 CIC barrel shift control. starting with stage 1 for maximum decimation range. 8:6 Carrier phase shift. Phase shifts of N*(π/4), N = 0 to 7. 5 Clear feedback (test signal or for mixer bypass). 4 NCO clear feedback on load. 3 Update frequency on SYNCI. Redundant. Set to1. See GWA register F802h.
2:1 Number of Carrier Offset Frequency (COF) serial input bits. **TABLE 5. CARRIER NCO/CIC CONTROL REGISTER (IWA = *004h) (Continued)** **TABLE 6. CARRIER NCO CENTER FREQUENCY REGISTER (IWA = *005h)** mode and the clock rate for interpolated mode. **TABLE 7. CARRIER NCO CENTER FREQUENCY UPDATE STROBE REGISTER (IWA = *006h)** register can also be done using the SYNCI pin to synchronize the transfer in multiple parts or to synchronize to an external event. 00 and 01 after writing to this address and before writing a new address to either A(1:0) = 10 or 11. **TABLE 8. TIMING NCO FREQUENCY CONTROL REGISTER, MSW (IWA = *007h)** 31:0 These are the upper 32 bits of the 56-bit timing (resampler) NCO center frequency control. **TABLE 9. TIMING NCO FREQUENCY CONTROL REGISTER, LSW (IWA = *008h)** 31:8 These are the lower 24 bits of the 56-bit timing (resampler) NCO center frequency control. **TABLE 10. TIMING NCO CENTER FREQUENCY LOAD STROBE REGISTER (IWA = *009h)** **TABLE 11. FILTER COMPUTE ENGINE/RESAMPLER CONTROL REGISTER (IWA = *00Ah)** instruction at location 31 is fetched). 30 µPShiftZeroB. This bit, when set to zero, disables the coefficient shift bits (bits 9:8 of the master register when coefficient loading). controlled limiting (ANDed with normal signal).
22 TCNO ENsync. If this bit is set, the center frequency is updated on a SYNCI. Redundant. Set to 1.
19 Beginning/
1 Once at the beginning of the FIR instruction. 0 At the last tap of each of the instruction’s FIR computations (once per output). 18 RSModeSelect. This bit selects whether the resampler is a phase shifter or a frequency shifter. use the resampler for phase instead of frequency shifting. zeroed. To disable the shifting, see IWA register *000h. **TABLE 11. FILTER COMPUTE ENGINE/RESAMPLER CONTROL REGISTER (IWA = *00Ah) (Continued)** **TABLE 12. FILTER START OFFSET REGISTER (IWA = *00Bh)** 13:9 RAM Instruction number to which the offset is applied. 0-31. Aliasing applies. Used for polyphase filters. 100 taps where a single channel would only be capable of around 24 taps at a 4MHz output. EXCEPT IN VERY RARE CIRCUMSTANCES, THIS VALUE SHOULD BE A NEGATIVE NUMBER.
**TABLE 13. WAIT THRESHOLD/DECREMENT VALUE REGISTER (IWA = *00Ch)** or synchronous startup. Active high. 29:20 Decrement value 1. Positive number. 19:10 Decrement value 0. Positive number. Usually set equal to the Threshold (bits 9:0). 9:0 Threshold. Number of samples needed to run a filter set and produce an output. **TABLE 14. RESET WRITE POINTER OFFSET REGISTER (IWA = *00Dh)** filter and two for a multi-filter chain. **TABLE 15. AGC GAIN LOAD REGISTER (IWA = *00Eh)** AGC will hold this value. If not, the AGC will be set to this gain (or to a limit) and then start to settle. **TABLE 16. AGC GAIN READ STROBE REGISTER (IWA = *00Fh)** this location after waiting the 4 clocks required for read synchronization. 31:16 AGC Gain for Channel 1. 15:0 AGC Gain for Channel 0. **TABLE 17. AGC LOOP ATTACK/DECAY GAIN VALUES REGISTER (IWA = *010h)** **TABLE 18. AGC GAIN LIMITS REGISTER (IWA = *011h)** 31:16 Upper gain limit. See AGC section. 15:0 Lower gain limit. See AGC section. **TABLE 19. AGC THRESHOLD REGISTER (IWA = *012h)** 15:0 AGC threshold. Equals 1.64676 times the desired magnitude of the I1/Q1 output.
**TABLE 20. AGC/DISCRIMINATOR CONTROL REGISTER (IWA = *013h)** which loop gain to use with that filter output’s gain error. Setting bit 10 overrides this bit and forces a loop gain 1.
00 Loop Gain 0 ( µP controlled)
10 Loop gain 1 ( µP controlled)
01 Loop Gain controlled by filter compute engine
11 Loop 1 ( µP override of filter compute engine)
but will have more AM after settling.
1 Mean mode
0 Median mode
5 PhaseOutputSel
0 Phase
180, 90, or 45 degrees to remove PSK modulation. The resulting phase is 18 bits. 2:0 DiscDelay(2:0). Sets the delay, in sample times, for the dφ/dt calculation. **TABLE 21. SERIAL DATA OUTPUT CONTROL REGISTER (IWA = *014h)**
28 Sync polarity
1 Active low (low for one serial clock per word with a sync). 27:26 Reserved, set to zero. 00 Sync is asserted during the clock period following the last data bit of the word (early sync). 01 Sync is asserted during the serial clock period prior to the first data bit of the serial word (late sync). 1X Sync is asserted during the serial clock period of the first data bit of the serial word (coincident sync). 23:22 Reserved, set to zero.
The upper limits on codes 00 and 01 are the same, but 01 has no leading zero. 19:16 Serial data output SD1 routing mask. 0 disables. 1 enables. 16 Enables the serial output for this channel to pin SD1A. 17 Enables the serial output for this channel to pin SD1B. 18 Enables the serial output for this channel to pin SD1C. 19 Enables the serial output for this channel to pin SD1D. 15:12 Serial data output SD2 routing mask. 0 disables. 1 enables. 12 Enables the serial output for this channel to pin SD2A. 13 Enables the serial output for this channel to pin SD2B. 14 Enables the serial output for this channel to pin SD2C. 15 Enables the serial output for this channel to pin SD2D. stream for multiplexing channels. Load with the desired delay (0 = zero, 1 = one, 2 = two, etc.). **TABLE 21. SERIAL DATA OUTPUT CONTROL REGISTER (IWA = *014h) (Continued)** **TABLE 22. SERIAL DATA OUTPUT 1 CONTENT/FORMAT REGISTER 1 (IWA = *015h)** 31:24 Fourth serial slot in Serial Data Output 1 (SD1x). x = A, B, C or D. See bits 7:0 for functional description of bits 31:24. 23:16 Third serial slot in Serial Data Output 1 (SD1x). x = A, B, C or D. See bits 7:0 for functional description of bits 23:16. 15:8 Second serial slot in Serial Data Output 1 (SD1x). x = A, B, C or D. See bits 7:0 for functional description of bits 15:8.
7:0 First serial slot in Serial Data Output 1 (SD1x). x = A, B, C or D. associated with Output 1). Set to zero for Output 2, SD2x. All other codes are invalid. Note: Floating point format is only available on the Serial Data Output 1. Code 1010 is invalid on Serial Data Output 2.
000 Zeros
001 I1 (data routed from FIFO and AGC path)
010 Q1 (data routed from FIFO and AGC path)
011 Magnitude of I1/Q1
100 Phase (or d φ/dt) of I1/Q1
101 I2 (data routed directly from the filter processor)
110 Q2 (data routed directly from the filter processor)
111 AGC gain of I1/Q1 path
The filter processor must be programmed appropriately to route the data to I1/Q1 or I2/Q2. programmed to 16-bit, disabled, 16-bit, there would a one clock idle period between the two 16-bit data words. the new data will begin immediately. If a late sync was programmed, it will not occur. **TABLE 22. SERIAL DATA OUTPUT 1 CONTENT/FORMAT REGISTER 1 (IWA = *015h) (Continued)** **TABLE 23. SERIAL DATA OUTPUT 1 CONTENT/FORMAT REGISTER 2 (IWA = *016h)** 23:16 Seventh serial slot in Serial Data Output 1 (SD1x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 23:16. 15:8 Sixth serial slot in Serial Data Output 1 (SD1x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 15:8. 7:0 Fifth serial slot in Serial Data Output 1 (SD1x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 7:0.
**TABLE 24. SERIAL DATA OUTPUT 2 CONTENT/FORMAT REGISTER 1 (IWA = *017h)** 31:24 Fourth serial slot in Serial Data Output 2 (SD2x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 23:16. 23:16 Third serial slot in Serial Data Output 2 (SD2x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 23:16. 15:8 Second serial slot in Serial Data Output 2 (SD2x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 15:8. 7:0 First serial slot in Serial Data Output 2 (SD2x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 7:0. **TABLE 25. SERIAL DATA OUTPUT 2 CONTENT/FORMAT REGISTER 2 (IWA = *018h)** 23:16 Seventh serial slot in Serial Data Output 2 (SD2x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 23:16. 15:8 Sixth serial slot in Serial Data Output 2 (SD2x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 15:8. 7:0 Fifth serial slot in Serial Data Output 2 (SD2x). x = A, B, C or D. See bits 7:0 of Table 22 for functional description of bits 7:0. **TABLE 26. SOFTWARE RESET REGISTER (IWA = *019h)** N/A Writing to this location resets the following activities of the functional block indicated. processing in the data path, but does not clear the data path registers). Resets the Read/Write pointers, fetch instruction 31 and start the filter program execution. Resets the compute blocks in both the forward and loop filter blocks (any calculations in progress are lost). Resets the compute blocks (any calculations in progress are lost). Resets counter (clears the FIFO, all data is lost). Clears the slave (active) frequency registers and clears the phase accumulator. Resets the serial output section (clears all registers, counters, and flags but does not clear the configuration registers). Engine, AGC, and Cartesian-to-Polar Coordinate Converter). **TABLE 27. CHANNEL TIMING ADVANCE STROBE REGISTER (IWA = *01Ah)** **TABLE 28. CHANNEL TIMING RETARD STROBE Register (IWA = *01Bh)** N/A Writing to this location deletes one data sample in the CIC to FIR path. Used for shifting the FIR filter compute engine timing.
**TABLE 29. FILTER COMPUTE ENGINE INSTRUCTION RAMS (IWA = *100h THRU *17Fh)** of the data sheet for more details. **TABLE 30. FILTER COMPUTE ENGINE INSTRUCTION POINTER RAMS (IWA = *180h THRU *1FCh)** **TABLE 31. FILTER COMPUTE ENGINE COEFFICIENT RAM1 (IWA = *440h THRU *47Fh)** filter coefficient storage locations. See the Filter Compute Engine and Filter Sequencer sections of the data sheet for more details. **TABLE 32. FILTER COMPUTE ENGINE COEFFICIENT RAM2 (IWA = *480h THRU *4FFh)** filter coefficient storage locations. See the Filter Compute Engine and Filter Sequencer sections of the data sheet for more details.
bits select this set of registers (F8XXh). TABLE 33. TEST CONTROL REGISTER (GWA = F800h) serial clock control register (GWA = F803h). 3 Offset I PN by XORing bit 10 of the PN generator with the output PN.
2 Enable (2
23 - 1) sequence on the I channel to decorrelate it from the Q channel. Otherwise, the same sequence will be used on both I and Q. 1 Enable (2 15 - 1) PN generator. 0 Test mode. When asserted, this bit puts the chip into internal (self) test mode. TABLE 34. BUS ROUTING CONTROL REGISTER (GWA = F801h) 19:17 DataRdy delay (CH1 only). Test. From 1-8. gain input of CH0. 0=CH3, 1=CH1. 15:14 CH3 ext source mux sel. These bits select whether the CH2 source mux, CIC2, or FIR2out is routed to the external input of FIR3. 0=CH2srcmux, 1=FIR2, 2=CIC2. 13 CH2 ext source mux sel. This bit selects whether the CH1 external source mux or FIR1out is routed to the external input of FIR2. 11 CH0 backend input sel. 0=CIC0, 1=CIC1 (test). 10 CH1 backend input sel 0=CIC1, 1=CH1 ext src mux. 9 CH2 backend input sel 0=CIC2, 1=CH2 ext src mux. 8 CH3 backend input sel 0=CIC3, 1=CH3 ext source mux.
7 CH0 Ext AGC input enable. 0=CH0 loop filt, 1=external input. 6 CH1 Ext AGC input enable 0=CH1 loop filt, 1=external input. 5 CH2 Ext AGC input enable 0=CH2 loop filt, 1=external input. 4 CH3 Ext AGC input enable Set to 0. 3 CH0 enable serial output 1=FIR0 out enabled to serial outputs. 2 CH1 enable serial output 1=FIR1 out enabled to serial outputs. 1 CH2 enable serial output 1=FIR2 out enabled to serial outputs. 0 CH3 enable serial output 1=FIR3 out enabled to serial outputs. TABLE 34. BUS ROUTING CONTROL REGISTER (GWA = F801h) (Continued) TABLE 35. RESET/SYNC/INTERRUPT SOURCE SELECTION REGISTER (GWA = F802h) to initialize the read and write pointers. 27 When this bit is set, the AGC is reset on SYNCI. 25 When this bit is set, the CIC decimation counter is reset on SYNCI. 24 When this bit is set, the serial output block is reset on SYNCI. If bit 4 in location GWA F803h is set, the serial clock divider is also reset. 23:16 Same functions as 31:24 for channel 1. 15:8 Same functions as 31:24 for channel 2. 7:0 Same functions as 31:24 for channel 3. TABLE 36. SERIAL CLOCK CONTROL REGISTER (GWA = F803h) register will reset the serial clock divider. 1 Clock low to high transition occurs at the center of the data bit. 0 Clock high to low transition at the center of the data bit.
001 Serial clock rate is Input CLK Rate. 010 Serial clock rate is Input CLK Rate/2. 011 Serial clock rate is Input CLK Rate/4. 100 Serial clock rate is Input CLK Rate/8. 101 Serial clock rate is Input CLK Rate/16. TABLE 36. SERIAL CLOCK CONTROL REGISTER (GWA = F803h) (Continued) TABLE 37. INPUT LEVEL DETECTOR SOURCE SELECT/FORMAT REGISTER (GWA = F804h) Test Input register as shown below. This is provided for testing and to zero the input data bus when a channel is not in use. The Top Level Control register address for theµP Test input register is F807h. constant or to disable the input for minimum power dissipation when an NCO/mixer/CIC section is unused. 11 µP input enable. When bit 12 is set, this bit is the input enable for theµP register input. Active low. 0=enabled, 1=disabled. select the mantissa/exponent grouping, add an offset to the exponent and set the shift control saturation level. the input of the NCO/Mixer/CIC stage at the nextENIx. 111 7 clock periods of delay.
0 Gated. The carrier NCO and CIC are updated once per clock whenENIx is asserted. TABLE 37. INPUT LEVEL DETECTOR SOURCE SELECT/FORMAT REGISTER (GWA = F804h) (Continued) TABLE 38. INPUT LEVEL DETECTOR CONFIGURATION REGISTER (GWA = F805h) 21 1 Ones complement of 16-bit data after formatting. 20 1 Free run (ignore interval counter). 0 Stop when interval counter times out. This bit may also be set low temporarily when free running to stabilize the accumulator data for reading. 19:18 Input Level Detector Leak factor, A. 00 Leaky integrator (Yn = A*Xn + (1-A)*Yn-1, where A is the gain selected in bits 19:18). 10 Integrator (bit 20 should be set to 0). Load with two less than the desired number of input samples. The interval range is 2 to 65537 input samples. TABLE 39. INPUT LEVEL DETECTOR START STROBE REGISTER (GWA = F806h) bit 1 of the status word is set. TABLE 40. µP/TEST INPUT BUS REGISTER (GWA = F807h) minimize power when the channel is not in use. F808h (selected via bit 12 of the channel register at IWA *000h). TABLE 41. µP/TEST INPUT BUS ENI REGISTER (GWA = F808h) N/A A write to this location, generates andENI strobe for theµP driven input port (when selected via bit 12 of IWA *000h). TABLE 42. SYNCO STROBE REGISTER (GWA = F809h) inserted in the SYNCO to SYNCI path.
address 3 (ADD(2:0) = 3) to select and/or fetch the data. A strobe is generated, if needed, to fetch or stabilize the data for reading. the Tables of Indirect Write Address Registers). This allows the AGC gain of all the channels to be sampled simultaneously. of the Indirect Address select the target channel register for the data being read. Values of 0 through 3 and F are valid. TABLE 43. µP FIFO READ ORDER CONTROL REGISTER (GWA = F820h thru F83Fh) where CC is the channel number and DDD is the data type. 000 I(23:8) The upper 16 bits of the I data path via the FIFO/AGC. 001 I(7:0),8*zeros The lower 8 bits of the I data path. 010 Q(23:8) The upper 16 bits of the Q data path via the FIFO/AGC. 011 Q(7:0),8*zero The lower 8 bits of the Q data path.
100 Mag(23:8) The upper 16 bits of magnitude (after the gain adjust described in channel register)
101 Mag(7:0),8*zero The lower 8 bits of magnitude. 110 Phase(15:0) The upper 16 bits of phase. 111 AGC gain (15:0) The upper 16 bits of the AGC gain. TABLE 44. TABLE OF INDIRECT READ ADDRESS (IRA) REGISTERS *400h - *43Fh Coefficient ROM -HBF, const.
Absolute Maximum Ratings Thermal Information Operating Conditions Temperature Range oC to 85oC CC Thermal Resistance (Typical) θJA (oC/W) oC CAUTION: Stresses above those listed in “Absolute Maximum Ratings” may cause permanent damage to the device. This is a stress only rating and operation of the device at these or any other conditions above those indicated in the operational sections of this specification is not implied. NOTE: 5. θJA is measured with the component mounted on an evaluation PC board in free air. Electrical SpecificationsVCC = 3.3V ±0.15V, TA = -40oC to 85oC, Industrial PARAMETER SYMBOL TEST CONDITIONS MIN MAX UNITS Logical One Input Voltage V IH VCC = 3.45V 2.0 - V Logical Zero Input Voltage V IL VCC = 3.15V - 0.8 V Output High Voltage V OH IOH = -2mA, VCC = 3.15V 2.6 - V Output Low Voltage V OL IOL = 2mA, VCC = 3.15V - 0.4 V Input Leakage Current I I VIN = VCC or GND, VCC = 3.45V -10 10 µA Output Leakage Current I O VIN = VCC or GND, VCC = 3.45V -10 10 µA Standby Power Supply Current I CCSB VCC = 3.45V, Outputs Not Loaded, No CLK - 500 µA Operating Power Supply Current I CCOP f = 70MHz, VIN = VCC or GND, VCC = 3.45V, Outputs Not Loaded - 850 mA (Note 6) Input Capacitance C IN Freq = 1MHz, VCC open, all measurements are referenced to device ground -7 p F (Note 7) Output Capacitance C OUT -7 p F (Note 7) NOTES: 6. Power Supply current is proportional to frequency of operation and programmed configuration of the part. Typical rating for ICCOP is 11mA/MHz. 7. Capacitance: TA =2 5oC, controlled via design or process parameters and not directly tested. Characterized upon initial design and at major process or design changes. PARAMETER SYMBOL MIN MAX UNITS INPUT AND CONTROL TIMING CLK Frequency f CLK - 70 MHz CLK High tCH 5- n s CLK Low tCL 5- n s Setup Time - Data Inputs, Input Enables, SYNCI to CLK High t DS 6- n s Hold Time - Data Inputs, Input Enables, SYNCI to CLK High t DH 0- n s CLK to Output Valid - SYNCO,INTRPT t PDC - 6.5 ns RESET Pulse Width Low tRW 5- n s RESET Setup Time to CLK High (Note 8) t RS 6- n s Output Rise, Fall Time (Note 9) t RF -3 n s HSP50216
MICROPROCESSOR WRITE TIMING P(15:0) Setup Time to Rising Edge ofWR t DSW 10 - ns P(15:0) Hold Time from Rising Edge ofWR t DHW -2 - ns A(1:0) Setup Time to Rising Edge ofWR t ASW 10 - ns A(1:0) Hold Time from Rising Edge ofWR t AHW -2 - ns CE Setup Time to Rising Edge ofWR t CSW 10 - ns CE Hold Time from Rising Edge ofWR t CHW -2 - ns WR Low Time tWL 5- n s MICROPROCESSOR READ TIMING A(1:0) Setup Time to FALLING Edge of RD t ASR 8- n s A(1:0) Hold Time from RISING Edge ofRD t AHR -2 - ns RD Enable Time tRE - 11.5 ns RD Disable Time (Note 9) tRD -8 n s RD to P(15:0) Data Valid Time t DV -1 2 n s CE Setup Time to Falling Edge ofRD t CSR 8- n s CE Hold Time from Rising Edge ofRD t CHR -2 - ns SERIAL CLOCK OUTPUT TIMING CLK to Serial Data, Sync and SCLK (Divide-by 2 thru 16 Modes) t PD - 6.5 ns CLK Low to SCLK Low (Divide-by 1 Mode, Note 9) t PDL - 6.5 ns CLK High to SCLK High (Divide-by 1 Mode, Note 9) t PDH -3 n s Time Skew Between SCLK and Serial Data or Serial Sync (Divide-by 2 thru 16 Modes, Note 9) tSKEW1 -1 1 ns Time Skew Between SCLK and Serial Data or Serial Sync (Divide-by 1 Mode, Note 9) tSKEW2 0.5 2 ns NOTES: 8. The HSP50216 goes into reset immediately onRESET going low and comes out of reset on the 4th rising edge of CLK afterRESET goes high. 9. Controlled via design or process parameters and not directly tested. Characterized upon initial design and at major process or design changes. PARAMETER SYMBOL MIN MAX UNITS EQUIVALENT CIRCUIT C L (NOTE) IOH 1.5V I OL DUT SWITCH S1 OPEN FOR I CCSB AND ICCOP NOTE - TEST HEAD CAPACITANCE, 40pF (TYP) HSP50216
TABLE 45. CIC PASSBAND AND ALIAS LEVELS
TABLE 46. DECIMATING HALFBAND FIR FILTER COEFFICIENTS
- Decimating Halfband Filter #4 Coefficients are shown for reference only and if it is desired to implement this FIR filter these coefficients would
have to be loaded into the FIR Coefficient RAM (They are not included in the ROMd Fir Filter Coefficient memory).
- The 22-bit ROMd FIR filter coefficients are located in the upper 22 bits of the Read register when read back from ROM memory (except for
TABLE 47. INTERPOLATING HALFBAND FIR FILTER COEFFICIENTS
- The 22-bit ROMd FIR filter coefficients are located in the upper 22 bits of the Read
bytes (24 bits) with the two LSBs of the lower byte (bits 9:8 of 31:0) being zero.
TABLE 48. RESAMPLER FIR FILTER COEFFICIENTS
- The 22-bit ROMd FIR filter coefficients are located in the upper 22 bits of the Read register when read back from ROM memory. These bits
TABLE 49. BIT WEIGHTING FOR AGC LOOP FEEDBACK PATH
All Intersil semiconductor products are manufactured, assembled and tested underISO9000 quality systems certification. Intersil semiconductor products are sold by description only. Intersil Corporation reserves the right to make changes in circuit design and/or specifications at any time with- out notice. Accordingly, the reader is cautioned to verify that data sheets are current before placing orders. Information furnished by Intersil is believed to be accurate and reliable. However, no responsibility is assumed by Intersil or its subsidiaries for its use; nor for any infringements of patents or other rights of third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of Intersil or its subsidiaries. For information regarding Intersil Corporation and its products, see web sitewww.intersil.com Sales Office Headquarters NORTH AMERICA Intersil Corporation P. O. Box 883, Mail Stop 53-204 Melbourne, FL 32902 TEL: (321) 724-7000 FAX: (321) 724-7240 EUROPE Intersil SA Mercure Center 100, Rue de la Fusee
1130 Brussels, Belgium
TEL: (32) 2.724.2111 ASIA Intersil (Taiwan) Ltd. 7F-6, No. 101 Fu Hsing North Road Taipei, Taiwan Republic of China TEL: (886) 2 2716 9310 FAX: (886) 2 2715 3029 HSP50216 Plastic Ball Grid Array Packages (BGA) o TOP VIEW DA1 CORNER BOTTOM VIEW P N L M J K G H F E 81314 12 11 10 9 CORNER 765 3 42 C D A B SIDE VIEW SEATING PLANE C A bbb Caaa A1 CORNER I.D. E A B b S ALL ROWS AND COLUMNS S M A BC C 0.15 0.08 M 0.006 0.003 CORNER I.D. e A A C V196.12x12
196 BALL PLASTIC BALL GRID ARRAY PACKAGE
A - 0.059 - 1.50 - A1 0.012 0.016 0.31 0.41 - A2 0.038 0.044 0.96 1.11 - b 0.016 0.020 0.41 0.51 7 D/E 0.468 0.476 11.90 12.10 - D1/E1 0.405 0.413 10.30 10.50 - N 196 196 - e 0.032 BSC 0.80 BSC - MD/ME 14 x 14 14 x 14 3 bbb 0.004 0.10 - aaa 0.005 0.12 - Rev. 1 10/99 NOTES: 1. Controlling dimension: MILLIMETER. Converted inch dimensions are not necessarily exact. 2. Dimensioning and tolerancing conform to ASME Y14.5M-1994. 3. “MD” and “ME” are the maximum ball matrix size for the “D” and “E” dimensions, respectively. 4. “N” is the maximum number of balls for the specific array size. 5. Primary datum C and seating plane are defined by the spher- ical crowns of the contact balls. 6. Dimension “A” includes standoff height “A1”, package body thickness and lid or cap height “A2”. 7. Dimension “b” is measured at the maximum ball diameter, parallel to the primary datum C. 8. Pin “A1” is marked on the top and bottom sides adjacent to A1. 9. “S” is measured with respect to datum’s A and B and defines the position of the solder balls nearest to package center- lines. When there is an even number of balls in the outer row the value is “S” = e/2.