TEXAS INSTRUMENTS GC5018 Technical data

www.ti.com
查询GC5018供应商
1 Introduction
1.1 FEATURES
Four 16-Bit CMOS ADC Input Ports
Programmable Closed Loop VGA Control With
6-Bit Outputs for Each ADC Input Port
Provide Received Total Wide Band Power
(RTWP) Measurement for the Composite Power Across Carriers With Programmable Time Window for Measurement
8 UMTS Digital Down Converter (DDC)
Channels or 16 CDMA or 16 TD-SCDMA DDC Channels With Programmable 18 Bit Filter Coefficients
Each DDC channel includes
Real or Complex DDC Inputs
GC5018
SLWS169 – MAY 2005
115 dB SFDR NCO – UMTS Mode Rx Filtering: 6 Stage CIC (m=1
or 2), Up to 40 Tap CFIR, Up to 64 Tap PFIR
CDMA Mode Rx Filtering: 6 Stage CIC (m=1
or 2), Up to 64 Tap CFIR, Up to 64 Tap PFIR – Power Measurements – Final AGC
1.5V Digital Core Supply, 3.3V Digital I/O
Supply
305 Ball Plastic BGA (19 mm x 19 mm) With
1,0 mm Pitch
Power Dissipation: ~2W
1.2 APPLICATIONS
Wireless Base Station Receiver
Multi-Carrier Digital Receiver
UMTS (4 Carriers-1 Sector With Diversity)
CDMA (8 Carriers-1 Sector With Diversity)
TD-SCDMA (16 Carriers-1 Sector Without
Diversity, 8 Carriers-1-Sector With Diversity)
Digital Radio Receivers
Wide Band Receivers
Software Radios
Wireless Local Loop
Intelligent Antenna Systems
Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of Texas Instruments semiconductor products and disclaimers thereto appears at the end of this document.
PRODUCT PREVIEW information concerns products in the forma­tive or design phase of development. Characteristic data and other specifications are design goals. Texas Instruments reserves the right to change or discontinue these products without notice.
Copyright © 2005, Texas Instruments Incorporated
www.ti.com
PRODUCT PREVIEW
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
Contents
1 Introduction ............................................... 1 5.1 Digital Receive Section Signals .................... 105
1.1 FEATURES ........................................... 1 5.2 Microprocessor Signals ............................ 108
1.2 APPLICATIONS ...................................... 1 5.3 JTAG Signals ...................................... 109
2 General Description ..................................... 2 5.4 Factory Test and No Connect Signals ............. 109
3 RECEIVE DIGITAL SIGNAL PROCESSING ......... 3 5.5 Power and Ground Signals ........................ 110
3.1 Receive Input Interface ............................... 4 5.6 Digital Supply Monitoring .......................... 110
3.2 DDC Organization ................................... 15 5.7 JTAG ............................................... 110
4 GC5018 GENERAL CONTROL ....................... 42 6 SPECIFICATIONS ..................................... 111
4.1 Microprocessor Interface Control Data, Address,
and Strobes ......................................... 43
4.2 Synchronization Signals ............................. 45
4.3 Interrupt Handling ................................... 46
4.4 GC5018 Programming .............................. 47
5 GC5018 PINS ........................................... 105
2 General Description
The GC5018 is a multi-channel communications signal processor that provides digital downconversion optimized for cellular base transceiver systems. The device supports UMTS, CDMA-1X and TD-SCDMA air interface cellular standards.
6.1 ABSOLUTE MAXIMUM RATINGS ................. 111
6.2 RECOMMENDED OPERATING CONDITIONS ... 111
6.3 THERMAL CHARACTERISTICS .................. 111
6.4 DC CHARACTERISTICS .......................... 112
6.5 AC TIMING CHARACTERISTICS ................. 112
The chip provides up to 8 UMTS digital downconverter channels (DDC), 16 CDMA DDCs or 16 TD-SCDMA DDCs. The DDC channels are independent and operate simultaneously.
The GC5018 has four 16-bit inputs. Each DDC channel can be programmed to accept data from any one (or two for complex input mode) of the four input ports.
2 Contents
www.ti.com
I
sync
DDC0
2 CDMA2000−1X,
2 TD−SCDMA or 1 UMTS
Q
16
rxin_a adcclk_a
16
rxin_b adcclk_b
Digital receive
data ports
JTAG
tdo
trst_n
tck
tdi
tms
Control and Sync
d(15:0)16a(5:0)6rd_n wr_n ce_n
rx_sync a−d
4
reset_n
interrupt rx_sync_out
rxclk
6 6 6 6
dvga_a
dvga_b
dvga_c
dvga_d
Receive Input
Interface
Power
Measurements and
WidebandAGC
DDC1
2 CDMA2000−1X,
2 TD−SCDMA or 1 UMTS
DDC2
2 CDMA2000−1X,
2 TD−SCDMA or 1 UMTS
DDC3
2 CDMA2000−1X,
2 TD−SCDMA or 1 UMTS
DDC5
2 CDMA2000−1X,
2 TD−SCDMA or 1 UMTS
DDC4
2 CDMA2000−1X,
2 TD−SCDMA or 1 UMTS
16
rxin_c adcclk_c
16
rxin_d adcclk_d
DDC7
2 CDMA2000−1X,
2 TD−SCDMA or 1 UMTS
DDC6
2 CDMA2000−1X,
2 TD−SCDMA or 1 UMTS
I
sync
Q
I
sync
Q
I
sync
Q
I
sync
Q
I
sync
Q
I
sync
Q
I
sync
Q
Output Format
Parallel
or Serial
rxout_X_X
rx_sync_out_X
32
8
rxclk_out
GC5018
SLWS169 – MAY 2005
3 RECEIVE DIGITAL SIGNAL PROCESSING
The down conversion section of the GC5018 consists of the receive input interface, the rx_distribution bus, and 8 digital downconverter blocks.
The purpose of the receive input interface is to accept signal data from four 16 bit input ports, measure the input signal power, control the digital VGA and to distribute the data to the DDC blocks. The input interface also has a user-controlled test generator and noise source.
The rx_distribution bus distributes the four channels of signal data to each of the 8 DDC blocks. Each DDC block selects one of the four channels (or 2 for complex input data) from the rx_distribution bus
and then performs downconversion tuning, programmable delay, channel filtering with decimation, power measurement, fixed gain adjust and/or automatic gain control. Each DDC block can support 1 UMTS channel, 2 CDMA channels or 2 TD-SCDMA channels. An optional mode permits stacking two DDC blocks in UMTS mode to provide double-length final pulse shaping filtering.
Tuned, filtered, and decimated signal data is output in bit serial or parallel format.
RECEIVE DIGITAL SIGNAL PROCESSING 3
www.ti.com
PRODUCT PREVIEW
FIFO
16rxin_a 16
dual real or
single complex
Power Meter
FIFO
16rxin_b 16
FIFO
16rxin_c 16
FIFO
16rxin_d 16
dual real or
single complex
Power Meter
dual real or
single complex
AGC
dual real or
single complex
AGC
dvga_c
dvga_d
dvga_a
dvga_b
6
6
6
6
18
rx_distribution
bus to DDC
channels
test & noise
signal
generator
16
16
16
16
test & noise
signal
generator
test & noise
signal
generator
test & noise
signal
generator
to testbus
test bus select
and decimation
testbus
sources
1 to 64 sample
delay
line
delay_a
18
1 to 64 sample
delay
line
delay_b
18
1 to 64
sample
delay
line
delay_c
18
1 to 64
sample
delay
line
delay_d
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
3.1 Receive Input Interface
The GC5018’s receive input data interface accepts data from two sources:
Signal data presented at the four 16-bit digital data input ports.
A LFSR test signal generator allows the GC5018 to be tested using a known repetitive data sequence.
Signal data can be provided in binary or 2’s complement form. The location of the ADC’s MSB can be programmed to allow for additional AGC headroom if desired. For example, a 14-bit ADC may be connected with the MSBs aligned, or shifted down to allow the AGC additional gain range before clipping the signal.
Signal data can be accepted at rates up to rxclk in UMTS mode for either 8 normal channels or 4 double length final pulse shaping filter channels. In CDMA mode the maximum input rate is rxclk for real inputs, or rxclk/2 for complex inputs. For maximum filter performance, higher clock rates generally allow longer filters.
Complex signal data is input with I data driving one input port and Q data driving another. This means that there are only two signal data ports available when using complex input mode. The mapping of I and Q data onto the four input ports is programmable.
Signal input data is clocked into 8-stage FIFOs using a matching external clock signal adcclk_a/b/c/d. Signal data is clocked out of the FIFO from a gated rxclk (the GC5018 receive section clock). The FIFO allows arbitrary phase relationship between adcclk_a/b/c/d and rxclk. The frequency relationship is mandated by the programmed configuration.
The test and noise generator can supply test sequences or add noise to the input signal data. The test sequences, when combined with the checksum generators, are useful for initial board debug or power-on self-test.
For applications that require receiver desensitization, the noise generator can add noise to input data streams.
Many internal chip signals can be routed to the testbus for evaluation and debug purposes. When the testbus is enabled, the rxin_c and rxin_d ports are driven as digital outputs.
4 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
GC5018
SLWS169 – MAY 2005
Each of the four outputs to the DDC channels includes a 1 to 64 sample delay line.
PROGRAMMING
VARIABLE DESCRIPTION
ssel_ddc(2:0) Selects the sync source for the DDC data input mux and mixer. This sets the sync source for DDC input clock
offset_bin_X Selects offset binary input when set, 2’s complement input when cleared. X={a,b,c,d} msb_pos_X(2:0) Identifies the connection location of the ADC’s MSB. Programmed values of {0..7} corresponds to msb at {rxin_x_15..
3.1.1 Receive FIFO
The receive FIFO consists of an 8 stage memory and 2 counters generating the input write pointer and output read pointer. When the FIFO receives a sync signal, the input and output pointers are initialized with a write to read pointer offset of four samples. Input samples from rxin_X (writes) are clocked with the adcclk_X input clock rising edges, and the input pointer advances on each clock rising edge. Output samples (reads) and the output pointer are clocked with the rxclk input signal rising edges, divided by the programmed sample rate loaded into the rate_sel(1:0) control register.
VARIABLE DESCRIPTION
adc_fifo_bypass When set, bypasses the input FIFOs and input data is latched directly using the rxclk. When cleared, input data is
ssel_adc_fifo(2:0) Selects the sync source for the FIFO state machines. This sync signal initializes the FIFO input and output
rate_sel(1:0) This selects the FIFO input and output rate; {rxclk, rxclk/2, rxclk/4 or rxclk/8 }. For example, with rxclk at
adc_fifo_strap_ab When set, the rxin_a and rxin_b FIFO input and output pointers are synchronized to support complex input
adc_fifo_strap_cd When set, the rxin_c and rxin_d FIFO input and output pointers are synchronized to support complex input
generation and synchronization for all DDC channels.
rxin_x_8}. X={a,b,c,d}
PROGRAMMING
latched using the adcclk_a/b/c/d inputs.
pointers.
153.6MHz, set rate_sel to 0, 1, 2 or 3 respectively for adcclk_a/b/c/d 153.6, 76.8, 38.4 or 19.2MHz.
signals.
signals.
RECEIVE DIGITAL SIGNAL PROCESSING 5
www.ti.com
PRODUCT PREVIEW
from rxin_a FIFO output
from rxin_b FIFO output
pmeter_iq0
pmeter_iq1
from rxin_c FIFO output
from rxin_d FIFO output
pmeter_iq2
pmeter_iq3
I
I
Q
Q
from rxin_a
from rxin_b
power meter 0 results
power meter 1 results
power meter 0
power meter 1
I
I
Q
Q
from rxin_c
from rxin_d
power meter 2 results
power meter 3 results
power meter 2
power meter 3
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
3.1.2 Receive Input Power Meters
Four Receive Input RMS power meters are provided. For real inputs, the four power meters can be used to measure the RMS power of the combined carriers in each of the four input signals (the Q input is held at zero). For complex inputs, two power meters can be use to measure the combined complex power and two can be disabled.
6 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
21−bit
integration
counter
clear
sync
delay
sync
event
58−bit
Integrator
58−bit
Register
9−bit
sync delay
counter
21−bit
interval
counter
transfer
sync
delay
(in 8 sample
increments)
integration
(in 8 sample
increments)
21219
RMS power
I
Q
33
32
16
integration time
interval time
integration
start
integration
start
integration
start
interval
(in 8 sample
increments)
16
32
integration time integration time
GC5018
SLWS169 – MAY 2005
Power is calculated by squaring each 18 bit I (I and Q for complex inputs) sample, summing, and then integrating the summed-squared results into a 58 bit accumulator over a programmable integration period. The integration period is programmed into the 21 bit counter, in 8 sample increments. The power read is:
power = [ (I2) x (Xx8 + 1) ] for real inputs where X is the integration count. power = [ (I2+ Q2)x (Xx8 + 1) ] for complex inputs where X is the integration count.
A programmable 21 bit interval counter sets the power measurement interval (how often power will be measured) in 8 sample increments. A measurement integration period is started at the beginning of each interval period.
The process begins with a sync event starting the 9 bit delay counter. After (8xsync_delay + 2) samples, the integration interval is started. Integration continues until the integration count is met, at which point the 58 bit integrator results are transferred to the read only register and an interrupt is generated. A new measurement period will start at the end of the interval period.
Each of the four composite RMS power meter blocks has its own delay sync, interval, and integration period counters, as well as separate sync source registers.
The 21-bit counters in 8 sample increments allow up to 104.8mS interval times at 160MHz clock.
NOTE
RECEIVE DIGITAL SIGNAL PROCESSING 7
www.ti.com
PRODUCT PREVIEW
freeze control register bit
freeze from sync source
clear control register bit
clear sync source
Map
Table
MSBs
Gain
Map
Table
16
Filter
update
Map
Table
7
1
0
16
8
clip_hi_thresh
clip_low_thresh
clip detect controls
delay adjust
sd_thresh
signal detect
mode controls
128w x 8b ram
update
sync
sync
delay
Samples
from
ADC FIFO
integrate and dump signal power measurement
5
enable corner
no_signal
err_shift
5
32
55
acc_shift
limit
6
31
16
7
{127..0}
+
DVGA
Map
Table
6
Gain
Map
Table
6
Highpass
Filter
X
2
Error
Map
Table
7
0
Mag
Clip
Detect
clip_error
16
Signal
64w x 22b RAM
update interval
loop accumulator
to DVGA
pins
to DDC
channels
acc_shift
5
shift
&
limit
16
Delay
acc_offset
7
limit
{127..0}
+
16
16
Level
Detect
error shift
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
PROGRAMMING
VARIABLE DESCRIPTION
recv_pmeterX (57:0) 58 bit power measurement result. X= {0,1,2,3}. recv_pmeterX_sqr_sum(20:0) 21 bit integration (square and sum) period. X= {0,1,2,3}. recv_pmeterX_sync_delay(8:0) Power meter delay sync period. X= {0,1,2,3}. recv_pmeterX_strt_intrvl(20:0) 21 bit measurement interval. X= {0,1,2,3}. The strt_intrvl value must be greater than the sqr_sum value. ssel_recv_pmeter_X(2:0) Sync source. X= {0,1,2,3}. pmeterX_iq Selects complex power measurement input mode when set. X= {0,1,2,3}. recv_pmeterX_ena Enables power meter when set. X= {0,1,2,3}.
3.1.3 Receive Input AGC (RAGC)
Input signals from the ADCs can be used to create a front end composite AGC loop when combined with a digitally controlled variable gain amplifier (DVGA) connected before the ADCs. The AGC system operates by integrating the square of the ADC samples over a programmable interval and applying a table driven error signal to a loop integrator based on the squared integration output. The error table maps the signal power to a user programmed error value. The loop integrator output is used to drive map tables to control the DVGA output pins and a gain adjustment multiplier. Fast updates can be enabled if desired, to cause the loop integrator to quickly adjust to interfering signals. The ADC input signals can also be passed through a high pass filter to remove DC offset before squaring the input.
The programmable error table, integrator mapping tables, and clip thresholds, when combined with the user programmable interval timers provide a highly flexible AGC function.
8 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
GC5018
SLWS169 – MAY 2005
The AGC measurement interval timer is a 24-bit timer initialized by a sync after a programmable 8-bit delay. During the integration interval, the squared input signal is shifted by the programmed value and accumulated. At the end of the interval time, an update pulse is generated, and the selected 7 bits of the 55-bit accumulated power is upper limit checked and transferred to the power holding register. A programmable offset is applied, and the following limit check produces a 7 bit address value for the error map table RAM. The user programmable error map table and following gain shift setting are used to determine the loop error signal to be added to the 32-bit AGC loop accumulator. The error value is only added to the loop accumulator once per update. The loop accumulator upper 6 MSBs are used as the address for the programmable DVGA map table and gain map table. The gain map table address can be delayed from 0 to 31 clock cycles to align DVGA changes to signal level changes at the output of the AGC.
The AGC includes four sources for freezing the loop and holding the loop accumulator constant. A general sync source can be used to directly control the freeze; when the selected sync source is high, the AGC will be held, and when low, the AGC will operate. A control register bit freezes the AGC in the same fashion; when the bit is set, the AGC is held, and when cleared, the AGC will operate. A signal level detector is provided that can be used to automatically freeze the AGC loop in the event of input signal loss. A programmable signal detection threshold value, number of samples below the signal detection threshold, and window timer are used to determine when no signal is present. Finally, a programmable number of AGC updates after sync can be programmed, and the AGC will he held until the next sync event. Freeze holds the loop accumulator constant, the integrate and dump accumulator constant and the interval timer constant. When freeze is released, the interval timer will resume counting.
A sync event will always reinitialize the integrate and dump interval timer, and terminate the pending update to the loop accumulator from the current integrate and dump measurement interval. For example, if a sync event occurs during an integrate and dump interval, that interval will be terminated without updating the loop, and the integrate and dump accumulator will be cleared. After the programmed sync delay, a new interval will start.
The AGC includes a dual threshold clip detect function, using two programmable 16-bit thresholds and programmable counters. The clip detector will cause immediate loop accumulator updates while the clip event is active. The 16-bit clip error value is aligned at the MSBs of the loop accumulator. Clip events are qualified when a programmed number of samples are above the high clip threshold during the programmable clip window time. For example, a clip event can be defined as 8 samples above the clip high threshold in a 256 sample window; the clip high threshold, the number of samples above the high clip threshold and the sample window time are programmable. Once the clip event has occurred, the clip duration is controlled by the clip low threshold value, clip low samples value and clip low timer. The clip event is cleared when the number of samples below the low clip threshold exceeds the programmed value within the clip low timer window. The clip low threshold, number of clip low samples and the clip low window timer are programmable.
The AGC blocks can be paired together, rxin_a with rxin_b, and rxin_c with rxin_d, to produce a complex input AGC mode. The clip detector output from the rxin_b/d AGCs is logically OR’ed with the rxin_a/c clip detect outputs. The squared input function before the integrate and dump and signal level detector is replaced with a I2+ Q
2
power calculation. The accumulator MSBs from the rxin_a/c AGCs are connected to the rxin_c/d DVGA map table and gain map table inputs. This arrangement allows the AGCs to operate in a direct conversion receiver system by controlling the I2+ Q
2
complex signal level.
The highpass filter is a 32 bit accumulator followed by an adjustable shift to control the corner frequency, a subtractor to remove the accumulated offset and a final limiter to produce a 16 bit result. The highpass filter function is enabled by setting hp_ena; clearing hp_ena holds the accumulator reset.
RECEIVE DIGITAL SIGNAL PROCESSING 9
www.ti.com
PRODUCT PREVIEW
17
32
hp_corner
3
shift
&
limit
16 16
limit
+
16
17
Samples
from
ADC FIFO
Samples to
X2 block
hp_ena
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
VARIABLE DESCRIPTION
ragc_bypass_X Bypasses the entire receive AGC circuit when set. X = {0,1,2,3} hp_ena_X Enables high pass filter when set hp_corner_X(2:0) Adjusts the corner frequency of the high pass filter integ_interval_X(23:0) Integrate and dump signal power measurement interval in samples. acc_shift_X(4:0) Shift down amount following the integrate and dump accumulator. acc_offset_X(5:0) Offset value applied to the shifted integrate and dump output. ragc_sync_delay_X(7:0) AGC sync delay interval, from 1 to 256 samples. ssel_ragc_interval_X(2:0) Sync source selection for the interval timer. ssel_ragc_freeze_X(2:0) Sync source selection for AGC freeze ssel_ragc_clear_X(2:0) Sync source selection for the AGC loop accumulator clear ragc_freeze_X Register bit to freeze the AGC when set ragc_clear_X Register bit to clear the AGC accumulator when set ragc_update_X(7:0) Sets the number of updates per sync event, after which no further updates will occur until the next sync
sd_ena_X Enables freezing the AGC with the signal detector when set sd_thresh_X(15:0) Signal detection threshold for AGC channel X. This 16 bit word is lined up with bits 23 down to 8 of the
sd_samples_X(15:0) The number of samples below the signal detect threshold within the signal detect sample timer window
sd _timer_X(15:0) Window timer to qualify signal detection. clip_hi_thresh_X(15:0) Clip detector high threshold clip_lo_thresh_X(15:0) Clip detector low threshold clip_hi_samples_X(7:0) A clip event is detected when this number of samples above the clip high threshold within the clip high
clip_lo_samples_X(7:0) A clip event ends when this number of samples below the clip low threshold within the clip low sample
clip_hi_timer_X(15:0) Window timer to qualify clip events. clip_lo_timer_X(15:0) Window timer to determine when the clip event ends. clip_error_X(15:0) Error signal applied to the AGC accumulator when a clip event is active. This data is MSB aligned, and
ragc_error_map_X 128w x 8b memory holding the log to error look up table. dvga_map_X 64w x 6b memory holding the accumulator to DVGA look up table gain_map_X 64w x 16b memory holding the accumulator to GAIN look up table (256 decibels is unity gain). delay_adj_X(4:0) Delay between DVGA output updates and gain map updates to compensate for ADC pipeline delays,
err_shift_X(4:0) Error map table output shift up before adding to loop accumulator complex_01 Enables complex AGC mode on inputs rxin_a and rxin_b when set complex_23 Enables complex AGC mode on inputs rxin_c and rxin_d when set
10 RECEIVE DIGITAL SIGNAL PROCESSING
PROGRAMMING
event. Program to 0x00 to continually update.
square output. The smallest signal level is that can be programmed is therefor 16 LSBs on the ADC input, and the largest is 4095 LSBs at the ADC input.
required to freeze on the AGC.
sample timer window exceeds this value.
timer window exceeds this value.
therefor can cause immediate changes to the accumulator.
etc.
www.ti.com
LFSR
0522
initialized on sync event − each of the four generators has a different seed
adcclk_X
sync lfsr(22:0)
PROGRAMMING
VARIABLE DESCRIPTION
ragc_accum_X(31:0) 32-bit read only register holding the current contents of the loop accumulator. tristate(10:7) 3-state controls for the dvga_d/c/b/a output pins; pins are in tristate when the 3-state bits are set. ragc_mpu_ram_read What set, the receive AGC map rams are readable via the MPU control interface. The GC5018 signal
path is not operational when this bit is set, it is intended for debug purposes only.
3.1.4 Test and Noise Signal Generator
The test and noise generator can generate test signals to replace the rxin_a/b/c/d inputs as a tool for debug, evaluation and self test. Checksum generators included in the individual DDC channels at the outputs can be used in conjunction with the noise generator and the internal sync timer block to create the built in self test function.
The test and noise signal source included in this block is a 23-bit linear feedback shift register (LFSR) with a fixed polynomial and fixed initialization state. A sync input is required to initialize the LFSR, and the sync source is connected to the ddc_counter output signal.
GC5018
SLWS169 – MAY 2005
Receive Input Port LFSR Seed Value, MSB to LSB
rxin_a 100 0000 0000 0000 0001 0000 (0x400010) rxin_b 010 0110 1110 0110 1100 1110 (0x26E6CE) rxin_c 110 1110 1010 0010 1001 1000 (0x6EA298) rxin_d 000 1011 0001 1110 1011 0111 (0x0B1EB7)
11RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
PRODUCT PREVIEW
lfsr(22) lfsr(20)
lfsr(22) lfsr(16)
lfsr(22) lfsr(15)
lfsr(22) lfsr(14)
lfsr(22) lfsr(13)
lfsr(22) lfsr(12)
lfsr(22) lfsr(11)
dout(15)
dout(14)
dout(13)
dout(12)
dout(11)
dout(10)
lfsr(19)
lfsr(18)
lfsr(17)
lfsr(16)
lfsr(15)
lfsr(14)
lfsr(13)
lfsr(12)
lfsr(11)
lfsr(10)
dout(9)
dout(8)
dout(7)
dout(6)
dout(5)
dout(4)
dout(3)
dout(2)
dout(1)
dout(0)
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
The 23-bit LFSR output signal if used to create a 16-bit “dout(15:0)” test signal using XOR combinations of the LFSR bits.
To enable the test signal generator, the slf_tst_ena control bit is set. The rxin_a/b/c/d signals will be then replaced by the four generator output streams. To use this test signal generator as a signal source for self test, the user must also set the adc_fifo_bypass control bit. Setting the adc_fifo_bypass control bit causes the adcclk_a/b/c/d input clocks to be internally replaced with rxclk/N, where N is as programmed with the rate_sel(1:0) control bits to {1,2,4 or 8}.
The test signal generators can also output a programmable constant value. All four test signal generators output the same programmable constant value.
12 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
data to FIFO for rxin_a
data to FIFO for rxin_b
data to FIFO for rxin_c
data to FIFO for rxin_d
16
16
16
16
16
16
16
16
16
16
16
16
rxin_a
Test and
Noise
Generator
sync
rxin_b
rxin_c
rxin_d
slf_tst_ena
rduz_sens_ena
Test and
Noise
Generator
Test and
Noise
Generator
Test and
Noise
Generator
lfsr(17) lfsr(16)
rxin_X(15:0)
lfsr(15:0)
to FIFO for rxin_X
nz_pwr_mask(15:0)
16
16
16
16 XORs
16 ANDs
16
16
rduz_sens_ena
GC5018
SLWS169 – MAY 2005
slf_tst_ena When set, the test signal generators replace the rxin_a/b/c/d input signals with internally generated
rduz_sens_ena Enables the LFSR, adding noise to the ADC input data when set. nz_pwr_mask(15:0) Selects the power of the noise added to the ADC input data. adc_fifo_bypass When set, the FIFO is essentially bypassed, and the adcclk_a/b/c/d clock input ports are ignored. ddc_counter(31:0) 32 bit general purpose counter interval ddc_counter_width(7:0) 8 bit general purpose counter timeout width pulse ssel_ddc_counter(2:0) Sync source selection for the general purpose counter self_test_constant(17:0) 18-bit self test constant value applied to all 4 rxin_a/b/c/d inputs when self_test_const_ena is set. self_test_const_ena Enables the self test constant value for rxin_a/b/c/d
The LFSR circuits can also be used to add noise to the rxin_a/b/c/d input signals by setting the rduz_sens_ena control register bit. The magnitude of the noise added can be adjusted by programming the nz_pwr_mask(15:0) control register. In the figure below, X = {a,b,c or d}.
VARIABLE DESCRIPTION
psuedo random sequences. The fifo_bypass bit must be set when this bit is set.
PROGRAMMING
13RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
PRODUCT PREVIEW
DDC0
MUX
Receive Interface
rxin_a& rxin_bFIFO outputs
DDC1
DECIMATE
tst_decim17
tst_decim_delay
(35:20) (19:18) (17:2) (1:0) tst_clk tst_aflag tst_sync
rxin_d(15:0)
rxin_c(15:0)
dvga_c(3:2)
dvga_c(5:4)
dvga_d(5) dvga_c(0)
dvga_c(1)
sync
pfiroutput
cfiroutput
zeros
tadjchannel A
tadjchannel B
ncosin
ncocos
cicoutput
mixer i*cos& i*sin
mixer q*cos& q*sin
ddcmuxchannel A
ddcmuxchannel B
ddc_tst_sel(5:0)
&
DDC2
DDC3
DDC4
DDC5
DDC6
DDC7
MUX
tst_select(3:0)
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
3.1.5 Sample Delay Lines
The four sample delay line blocks each consist of a 64 register memory and a state machine. The state machine uses a counter to control the write (input) pointer, and the programmed read offset register data to create the read (output) pointer. Programming larger read offset register values increases the effective delay at a resolution equal to the sample rate.
The read offset registers, delay_line_X, are double buffered. Writes to these registers may occur anytime, but the actual values used by the circuit will not be updated until a delay line sync event occurs.
PROGRAMMING
VARIABLE DESCRIPTION
delay_line_X(5:0) Read offset into the 64 element memory for each delay line. X= {0,1,2,3}. ssel_delay_line_X(2:0) Selects the sync source used to update the double buffered delay line register.
3.1.6 Test Bus
When the test bus is enabled, the rxin_c(15:0) and rxin_d(15:0) ports become outputs, and the dvga_c and dvga_d pins are combined with these pins to allow 36 bit wide signals from the DDC channels and the receive input interface to be multiplexed to this test output port. Many of these sources can be decimated to reduce the output sample rates.
RECEIVE DIGITAL SIGNAL PROCESSING14
www.ti.com
DDC5
DDC4
DDC3
DDC2
DDC1
4 to 2 (complex) or
4 to 1 (real) switch
4 to 2 (complex) or
4 to 1 (real) switch
CDMA DDC A
CDMA DDC B
Output
Interface
or 1 UMTS DDC
DDC0
18 18 18 18
DDC6
DDC7
SLWS169 – MAY 2005
PROGRAMMING
VARIABLE DESCRIPTION
ssel_tst_decim(2:0) Selects the sync source for the testbus decimator tst_decim_delay(3:0) Sets the testbus decimator delay from sync tst_decim17 When set the decimation factor of the test bus output block is 17X. When cleared, the decimation factor
is 16X if the fuse is blown, 1X (no decimation) with the fuse intact.
tst_on Enables the test bus; rxin_c(15:0) and rxin_d(15:0) are changed from inputs to outputs, dvga_c(5:0) and
dvga_d(5) are used as part of the test bus. tst_select(3:0) Selects the source block for the testbus output; DDC0-7 or Receive Interface. ddc_tst_sel(5:0) Selects the signal to be output from the DDC block tst_rate_sel(4:0) Sets the testbus output clock tst_clk period to (tst_rate_sel + 1) rxclk cycles.
3.2 DDC Organization
GC5018
The GC5018 provides downconversion for up to 8 UMTS receive channels, 16 CDMA2000 receive channels or 16 TD-SCDMA receive channels. Downconversion channels are organized into 8 DDC blocks. Each individual DDC block provides 2 CDMA2000 or 2 TD-SCDMA DDC channels, A and B, or 1 UMTS channel.
Both CDMA DDC channels in a DDC block can be independently tuned, though they would likely be used as diversity pairs and tuned to the same frequency. Filter coefficients are shared between the two CDMA DDC channels within a block.
Two adjacent DDC blocks (for example, DDC0 and DDC1) can be strapped together to form a single UMTS DDC channel with double-length final pulse shaping filtering. The GC5018 can therefore provide 4 UMTS DDC channels with double-length final PFIR filtering as shown in the following diagram.
RECEIVE DIGITAL SIGNAL PROCESSING 15
www.ti.com
PRODUCT PREVIEW
DDC6 plus DDC7
DDC4 plus DDC5
4 to 2 (complex) or
4 to 1 (real) switch
4 to 2 (complex) or
4 to 1 (real) switch
CDMA DDC A
CDMA DDC B
Output
Interface
4 UMTSDDCs with up to 128 tap PFIR
DDC0
18 18 18 18
4 to 2 (complex) or
4 to 1 (real) switch
4 to 2 (complex) or
4 to 1 (real) switch
CDMA DDC A
CDMA DDC B
Output
Interface
or 1 UMTS DDC
DDC1
DDC2 plus DDC3
DDC0 plus DDC1
4 to 2 Select
18 18 18 18
32 16
Frequency
Phase
NCO
Delay
Adjust
Zero
Pad
Six Stage
CIC Filter
Dec 4 to 32
CFIR Filter
Dec by 2
PFIR Filter
Dec by 1
AGC
Serial
Interface
RMS Power
Measure
serial I, Q up to 18 (25−bits with
AGC disabled)
from
rx_distribution
bus
Checksum Generator
parallel I, Q
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
VARIABLE DESCRIPTION
ddc_ena When set, turns on the DDC. cdma_mode When set, puts the DDC block in dual channel CDMA mode. gbl_ddc_write When set, all subsequent programming (writes only) for DDC0 and DDC1 is also written to DDC2/4/6 and DDC3/5/7.
3.2.1 Downconverter Function Blocks
Each GC5018 downconversion block can process two CDMA carriers or a single UMTS carrier. Signal data is selected from one of four ports for real inputs, or two of four ports for complex inputs. Data from the selected port(s) is multiplied with a complex, programmable numerically controlled oscillator (NCO)
PROGRAMMING
16 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
3.2.2 DDC Mixer
4 to 2
Select
18 18 18 18
Demux
and
Round
from
rx_distribution
bus
18 18
20
20
sin
cos
from NCO
18 18 18 18
I
A
I
B
Q
A
Q
B
to
channel
delay
mixer_gain
GC5018
SLWS169 – MAY 2005
which tunes the signal of interest to baseband. The delay adjust and zero pad blocks permits adjustment of the delay in the end-to-end channel. Zero padding interpolates the signal to the rxclk rate. Filtering consists of a six stage CIC filter which decimates the tuned data by a factor from 4 to 32, a compensating FIR filter (CFIR) which decimates by a factor of two, followed by a programmable FIR filter (PFIR) which does not decimate. The output interface block can be programmed to decimate by 2 if desired.
The RMS power meter measures the power within the channel’s bandwidth. The AGC automatically drives the gain and keeps the magnitude of the signal at a user-specified level. This allows fewer bits to represent the signal. The serial output interface formats and rounds the output data. Each of the above blocks is described in greater detail in the following sections.
The receive mixer translates the input (from one of the input signal sources) to baseband where subsequent filtering is performed to isolate the signal of interest. The mixer is a complex multiplier that accepts 18 bit I and 18 bit Q signal data from the receive input interface and 20 bit Sine and Cosine sequences from the NCO. The NCO generates a mixing frequency (sometimes referred to as a local oscillator, or LO) specified by the user so that the desired signal of interest is tuned to 0 Hertz.
A DDC channel can support one UMTS signal directly, or two CDMA channels at half the input rate. When in CDMA mode each channel may set independently; the path selection and the mixer tuning and phase. The mixer output produces two complex streams; one representing the signal path for the A-side DDC, the other the B-side. Each of these streams drives a channel delay and zero pad block.
The maximum input rate for UMTS is rxclk for either real or complex input data. The maximum input rate in CDMA mode with real inputs is rxclk (remix_only is set, see below). The maximum input rate in CDMA mode with complex inputs is rxclk/2 due to sharing of multiplier
resources.
PROGRAMMING
VARIABLE DESCRIPTION
ddcmux_sel_a(3:0) Programs the I and Q complex input data routing onto two of the four input ports for stream A of CDMA DDC ddcmux_sel_b(3:0) Programs the I and Q complex input data routing onto two of the four input ports for stream B of CDMA DDC remix_only For CDMA mode only, set this bit for real input data at the rxclk rate.
For complex inputs in CDMA mode, the maximum input data rate is rxclk/2, and this bit must be cleared. For CDMA mode with real inputs at the rxclk/2 rate or lower, this bit must be cleared
zero_qsample When set, the Q samples used by the mixer are always zero. This bit should be set for real only inputs in UMTS
ch_rate_sel(1:0) Specifies the input channel data rate (rxclk, rxclk/2, rxclk/4, or rxclk/8 MSPS). mixer_gain When asserted, adds 6dB of gain in the mixer. This gain is highly recommended.
mode, or real only inputs in CDMA mode when the input sample rate is rxclk/2 or lower.
RECEIVE DIGITAL SIGNAL PROCESSING 17
www.ti.com
PRODUCT PREVIEW
Reg
32
Frequency Word
32
Frequency Sync
Reg
32
Zero Phase Sync
Clear
23
Reg
16
Phase Offset
16
Phase Offset Sync
Aligned
to top
32 bits
23
sin/cos
table
20
20
Dither
Generator
Dither Sync
5
Aligned
to bottom
5 bits
cos
sin
a) Worst Case Spectrum Without Dither
b) Spectrum With Dither (Tuned to Same Frequency
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
3.2.3 DDC Number Controlled Oscillator (NCO)
The NCO is a digital complex oscillator that is used to translate (or downconvert) an input signal of interest to baseband. The block produces programmable complex digital sinusoids by accumulating a frequency word which is programmed by the user. The output of the accumulator is a phase argument that indexes into a sin/cos ROM table which produces the complex sinusoid. A phase offset can be added prior to indexing if desired for channel calibration purposes. This will change the sin/cos phase with respect to other channels’ NCOs.
A 5-bit dither generator is provided and generates a small level of digital pseudo-noise that is added to the phase argument below the bottom bits and is useful for reducing NCO spurious outputs. This dither generation is enabled by setting the dither_ena bit; the magnitude of the dither can be reduced by setting one or both of the dither_mask bits
VARIABLE DESCRIPTION
dither_ena When set turns dither on. Clearing turns dither off. dither_mask(1:0) Masks the MSB and MSB-1 dither bits, respectively, when set.
The NCO spurious levels are better than –115 dBC. Added phase dither randomizes the periodic nature of the phase accumulation process and reduces low-level spurious energy. For some frequencies (KxFs/24) dither is ineffective in these cases an initial phase of 4 reduces NCO spurs. The figures below show the spur level performance of the NCO without dither, with dither, and with a phase offset value.
DITHER PROGRAMMING
18 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
a) Plot Without Dither or Phase Initialization
b) Plot With Dither or Phase Initialization
GC5018
SLWS169 – MAY 2005
The tuning frequency is specified as a 32 bit Frequency Word and is programmed as two sequential 16 bit words over the control port. The NCO frequency resolution is Fclk/ 232. As an example, at an input clock rate of 61.44 MHz, the frequency step size would be approximately 14 milli-Hertz. The Frequency Word is determined by the formula:
Frequency Word (in decimal)= 2
Note that frequency tuning words can be positive or negative valued. Specifying a positive frequency value translates complex negative frequencies upwards towards 0 Hertz. Specifying a negative tuning frequency translates complex positive frequencies downwards towards 0 Hertz.
32
x Tuning Frequency / F
clk
FREQUENCY PROGRAMMING
VARIABLE DESCRIPTION
phase_add_a(31:0) 32 bit tuning frequency word for the A-side DDC when in CDMA mode. Also for UMTS mode. phase_add_b(31:0) 32 bit tuning frequency word for the B-side DDC when in CDMA mode. Not used in UMTS mode.
Each of the 16 CDMA DDC channels can be loaded with unique frequency words. The phase of the NCO’s Sin/Cos output can be adjusted relative to the phase of other channel NCOs by
specifying a Phase Offset. The Phase Offset is programmed as a 16 bit word, yielding a step size of about
5.5 m°. The Phase Offset Word is determined by the formula: Phase Offset Word = 2 Phase Offset Word = 2
VARIABLE DESCRIPTION
phase_offset_a(15:0) 16 bit phase offset word for the A-side DDC when in CDMA mode. Also for UMTS mode. phase_offset_b(15:0) 16 bit phase offset word for the B-side DDC when in CDMA mode. Not used in UMTS mode.
16
x Offset_in_Degrees / 360 or,
16
x Offset_in_Radians / 2 π
PHASE PROGRAMMING
Each of the 16 CDMA DDC channels can be loaded with unique phase offset words. Various synchronization signals are available which are used to synchronize the NCOs of all channels
with respect to each other. Frequency Sync and Phase Offset Sync determine when frequency and phase offset changes occur. For example, generating a Frequency Sync after programming the two frequency words will cause the NCO (or multiple NCOs) to change frequency at that time, rather than after each of the three frequency words is programmed over the control bus. The Zero Phase Sync signal is used to force the sine and cosine oscillators to their zero phase state. Dither Sync can be used to synchronize the dither generators of multiple NCOs. The NCOs used in the transmit section are identical to what is described for the receive section. Note that there is one set of sync’s provided for each DDC. When one DDC is used to process two CDMA signals, the syncs are shared between them.
RECEIVE DIGITAL SIGNAL PROCESSING 19
www.ti.com
PRODUCT PREVIEW
Delay Adjust
Zero Pad
Interp by {1,2,4,8}
Six Stage
CIC Filter
Dec by {4 −32}
CFIR Filter
Dec by 2
PFIR Filter
no decimation
Output Interface
Dec by {1,2}
Delay Adjust
Zero Pad
Interp by {1,2,4,8}
Six Stage
CIC Filter
Dec by {4 −32}
CFIR Filter
Dec by 2
PFIR Filter
no decimation
From
Mixer
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
SYNC PROGRAMMING
VARIABLE DESCRIPTION
ssel_nco(2:0) Sync source for NCO accumulator reset ssel_dither(2:0) Sync source for NCO dither reset ssel_freq(2:0) Sync source for NCO frequency register loading ssel_phase(2:0) Sync source for NCO phase register loading
3.2.4 DDC Filtering and Decimation
The purpose of the receive filter chain is to isolate the signal of interest (and reject all other others) that has been previously translated to baseband via the mixer and NCO. The overall decimation through the chain needs to be considered. The goal, generally, is to output the isolated signal at a rate that is twice (2X) the signal’s chip rate. For UMTS this would be 7.68 MSPS and for CDMA the output rate should be
2.4576 MSPS. TD-SCDMA systems require the output rate be the chip rate of 1.28 MSPS. The output
interface is programmed to decimate by 2 for the TD-SCDMA case. Receive filtering and decimation is performed in several stages:
Zero padding to interpolate the input sample rate (if needed) up to the rxclk rate
High rate decimation (4 to 32) using a six stage cascade-integrate-comb filter (CIC)
Decimate by two compensation filtering using the programmable compensating FIR filter (CFIR)
Pulse-shape filtering via the programmable FIR filter (PFIR) with no decimation
Output interface, serial or parallel format, with no decimation or decimate by 2
The table below contains some examples of decimation and sample rates at the output of each block for UMTS, CDMA and TD-SCDMA standards at various supported input samples. For each example, the differential ADC clocks are provided to the GC5018 at the input sample rate and the rxclk is provided at the zero pad output rate.
20 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
18
input rate
samples from
Mixer
read offset
3
insert offset
sync (zero stuff moment)
Zero
Pad
18
I
Q
Delay Memory
I:8 slots x 18−bits
Q:8 slots x 18−bits
18 18
18 18
I
Q
3
full rxclk rate
samples to
CIC Filter
sync (offset registers)
interpolation
(number of zeros stuffed between samples)
3
GC5018
SLWS169 – MAY 2005
Table 3-1. Examples of Decimation and Sample Rates
Input Zeros rxclk(MHz) and CIC CIC Out- CFIR CFIR PFIR PFIR Out- Output
Sample Added Zero Pad Decimation put Rate Decimation Output Decimation put Rate Decimation
Rate Output Rate (MSPS) Rate (MSPS)
(MSPS) (MSPS) (MSPS)
UMTS 122.88 0 122.88 8 15.36 2 7.68 1 7.68 1 UMTS 92.16 0 92.16 6 15.36 2 7.68 1 7.68 1 UMTS 76.80 1 153.6 10 15.36 2 7.68 1 7.68 1 UMTS 61.44 1 122.88 8 15.36 2 7.68 1 7.68 1
CDMA 122.88 0 122.88 25 4.9152 2 2.4576 1 2.4576 1 CDMA 78.6432 0 78.6432 16 4.9152 2 2.4576 1 2.4576 1 CDMA 78.6432 1 157.2864 32 4.9152 2 2.4576 1 2.4576 1 CDMA 61.44 1 122.88 25 4.9152 2 2.4576 1 2.4576 1
TD-SCDMA 92.16 0 92.16 18 5.12 2 2.56 1 2.56 2 TD-SCDMA 81.92 0 81.92 16 5.12 2 2.56 1 2.56 2 TD-SCDMA 76.80 0 76.80 15 5.12 2 2.56 1 2.56 2 TD-SCDMA 76.80 1 153.6 30 5.12 2 2.56 1 2.56 2 TD-SCDMA 1 122.88 24 5.12 2 2.56 1 2.56 2
(1)
(1) The DDC output interfaces, both serial and parallel formats, can be programmed to decimate by 2. For the TD-SCDMA examples listed
above, the DDC output rate is 1.28Msps (1x chip rate).
3.2.5 DDC Channel Delay Adjust and Zero Insertion
The Receive Channel Delay Adjust function is used to add programmable delays in the channel downconvert path. Adjusting channel delay can be used to compensate for analog elements external to the GC5018 digital downconversion such as cables, splitters, analog downconverters, filters, etc.
The Delay Memory block consists of an 8 register memory and a state machine. The state machine uses a counter to control the write (input) pointer, and the programmed read offset register data to create a read (output) pointer. Programming larger read offset register values increases the effective delay at a resolution equal to the input sample rate.
The Zero Pad block is used in conjunction with the Delay Memory for delay adjustments. For example, with input rates of rxclk/8, the Zero Pad block interpolates the input data to rxclk by inserting 7 zeros. The Zero Pad’s sync insert offset 3-bit control specifies when the zeros are inserted relative to the Sync signal. This permits a fine adjustment at the rxclk resolution.
RECEIVE DIGITAL SIGNAL PROCESSING 21
www.ti.com
PRODUCT PREVIEW
Z
1
Z
1
Z
1
Z
1
Z
1
Z
m1
Z
1
Z
m2
Z
m 3
Z
m 4
Z
m5
Z
m 6
Shift
m1, m2,m3, m4, m5, m6 = 1 or 2
Decimate
by 4−32
N
Round
&
Limit
24
18
Shift 0−31
18
54
24
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
The read offset register, tadf_offset_course_a/b, and the insert offset register, tadj_offset_fine_a/b, are double buffered. Writes to these registers may occur anytime, but the actual values used by the circuit will not be updated until a register sync
PROGRAMMING
VARIABLE DESCRIPTION
tadj_offset_coarse_a(2:0) Read offset into the 8 element memory for the UMTS or CDMA mode A channel DDC. tadj_offset_coarse_b(2:0) Read offset into the 8 element memory for the CDMA mode B channel DDC when in CDMA mode. tadj_offset_fine_a(2:0) Controls the zero pad (or stuff) insert offset (fine adjust) for the UMTS or CDMA mode A channel of the
tadj_offset_fine_b(2:0) Controls the zero pad (or stuff) insert offset (fine adjust) for the CDMA mode B channel of the DDC
tadj_interp(2:0) The interpolation value (1, 2, 4, or 8). Same used for both the A and B channels when in CDMA mode.
ssel_tadj_fine(2:0) Selects the sync source for the fine time adjust zero stuff moment. Same for A and B channels when in
ssel_tadj_reg(2:0) Selects the sync source used to update the double buffer course and fine delay selection registers.
3.2.6 DDC CIC Filter
DDC.
when in CDMA mode.
Selects the number of zeros to be inserted.
CDMA mode.
Same for A and B channels when in CDMA mode.
The CIC filter provides the first stage of filtering and large-value decimation. The filter consists of six stages and decimates over a range from 4 to 32.
I data and Q data are handled separately with two CIC filters. In addition, when in CDMA mode (two CDMA channels processed within a single DDC), another pair of CIC filters handles the B-side channel.
The filter response is 6x(Sin(x)/x) in character where the key attribute is that the resulting response nulls reject signal aliases from decimation. A consequence of this desirable behavior is that only a small portion of the passband can be used, less than 25% generally. This means that the CIC decimation value should be chosen so that the signal exiting the CIC filter is oversampled by at least a factor of four.
The filter is equivalent to 6 stages of a FIR filter with uniform coefficients (6 combined boxcar filter stages). Each filter would be of length N if m=1, or 2N if m=2.
The filter is made up of six banks of 54 bit accumulator sections followed by six banks of 24 bit subtractor sections. Each of the subtractor sections can be independently programmed with a differential delay of either one or two. A shift block follows the last integration stage and can shift the 54 bit accumulated data down by 36-rcic_shift (a programmable factor from 0 to 31 bits).
22 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
GC5018
SLWS169 – MAY 2005
The CIC filter exhibits a droop across its frequency response. The following CFIR filter compensates for the CIC droop with a gradually rising frequency response. It is also possible to compensate for CIC droop in the PFIR filter.
The gain of the receive CIC filter is:
6
Ncic
(number of stages where M=2)
x 2
There is no rollover protection internal to the CIC or at the final round so the user must guarantee no sample exceeds full scale prior to rounding. For practical purposes this means the CIC gain can only compensate for peak gain less than one or must be less than or equal to one. A fixed gain of +12 dB at the output of the CIC can also be programmed.
VARIABLE DESCRIPTION
cic_decim(4:0) The CIC decimation ratio (4 to 32). The ratio is cic_decim + 1. This ratio applies to both A and B channels of
cic_scale_a(4:0) The shift value for the A channel. A value of 0 is no shift, each increment in value increases the amplitude of
cic_scale_b(4:0) The shift value for the B channel. A value of 0 is no shift, each increment in value increases the amplitude of
cic_gain_ddc When asserted, adds a gain of 12 dB at the CIC output. cic_m2_ena_a(5:0) Sets the differential delay value M for each of the CIC subtractor stages for the UMTS or CDMA mode A
cic_m2_ena_b (5:0) Sets the differential delay value M for each of the CIC subtractor stages for the CDMA mode B channel. cic_bypass Bypasses the CIC filter when set, for factory testing. ssel_cic(2:0) Sets syncing (1 of 8 sources) for the CIC decimation moment.
the DDC block in CDMA mode.
the shifter output by a factor of 2.
the shifter output by a factor of 2.
channel.
(–36+RCIC_SHIFT)
x 2
PROGRAMMING
where RCIC_SHIFT is 0 to 31.
3.2.7 DDC Compensating FIR Filter (CFIR)
The receive compensating FIR filter (CFIR) decimates the output of the CIC filter by a fixed factor of two. Filter coefficient size, input data size, and output data size are 18 bits. The CFIR length can be programmed. This permits “turning off” taps and saving power if shorter filters are appropriate (the CFIR power dissipation is proportional to its length).
The filter is organized in two partial filter blocks, each containing a data RAM, a coefficient RAM and a dual multiplier, a common state machine and output accumulator.
RECEIVE DIGITAL SIGNAL PROCESSING 23
www.ti.com
PRODUCT PREVIEW
MPU control
interface
complex
input
samples
COEF RAM 32x18
DATA
RAM 64x36
reg
complex
output
samples
crastarttap
State Machine
output
sample
valid
read pointer
write
pointer
write pointer
MUX
read pointer
mpu
ram_read
read data
write data
COEF
RAM
32x18
DATA
RAM
64x36
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
The maximum CFIR filter length is a function of GC5018 clock rate, output sample rate and the number of coefficient memory registers. The maximum number of taps is 64 and the minimum number is 14. Lengths between these limits can be specified in increments of 2.
Subject to the above minimum and maximum values, in the general case, the number of taps available is:
UMTS Mode: 2 x (rxclk ÷ output sample rate)
Mode rxclk CIC CFIR CFIR COMMENTS
UMTS 153.60 10 40 14 UMTS UMTS 122.88 8 32 14 UMTS CDMA 157.2864 32 64 14 CDMA2000 CDMA 122.88 25 48 14 CDMA2000 CDMA 78.6432 16 32 14 CDMA2000 low power configuration CDMA 153.60 30 60 14 TD-SCDMA CDMA 81.92 16 32 14 TD-SCDMA CDMA 76.80 15 28 14 TD-SCDMA low power configuration
CDMA Mode if cic_decim is even (decimating by an odd number): 2 x (cic_decim) CDMA Mode if cic_decim is odd (decimating by an even number): 2 x (cic_decim + 1)
Example CFIR filter lengths available based on mode and rxclk frequency:
(MHz) DECIMATION MAX LENGTH MIN LENGTH
24 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
GC5018
SLWS169 – MAY 2005
A single set of programmed tap values are used for both the A-side and B-side DDC channels (two CDMA channels) within a single DDC block when in CDMA mode.
After the CFIR filter performs the convolution, gain is applied at full precision, the signal is rounded, and then hard limited. A shifter at the output of the filter then scales the data by either 2e-19 or 2e-18. The gain through the filter is therefore:
Sum(CFIR coefficients) x 2
Coefficients are organized in two groups of 32 words, each 18 bits wide. For fully utilized filters, the 64 coefficients are loaded 0 through 31 into the first RAM, and 32 through 63 into the second RAM. The 16 bit MSBs and 2 bit LSBs are written into the RAMs using different page register values. Shorter filters require the coefficients be loaded into the 2 rams equally, starting from address 0.
For example, a CFIR coefficient set for a symmetric 58 tap TD-SCDMA CFIR is:
Taps Coefficient Taps Coefficient
0 = 57 –13 15 = 42 –4975 1 = 56 –20 16 = 41 –4649 2 = 55 14 17 = 40 –232 3 = 54 101 18 = 39 6581 4 = 53 184 19 = 38 11266 5 = 52 133 20 = 37 8917 6 = 51 –147 21 = 36 –1957 7 = 50 –562 22 = 35 –16736 8 = 49 –768 23 = 34 –25469
9 = 48 –364 24 = 33 17599 10 = 47 719 25 = 32 11560 11 = 46 1905 26 = 31 56455 12 = 45 2126 27 = 30 102215 13 = 44 567 28 = 29 131071 14 = 43 –2416
–(18 or 19)
The first 29 coefficients are loaded into addresses 0 through 28 in the first coefficient RAM, and the remaining 29 are loaded into addresses 0 through 28 in the second coefficient RAM. Loading the 18 bit coefficients requires 2 writes per coefficient, one for the upper 16 bits and another for the lower 2 bits.
To program this coefficient set for the DDC2 CFIR, the following control microprocessor interface sequence would be used.
Step Address Data Description
1 0x21 0x0480 Page register for DDC2 CFIR Coefficient RAM 0-31, LSBs. 2 0x00 0x0003 2 lower bits of coefficient 0 3 0x01 0x0000 2 lower bits of coefficient 1 4 0x02 0x0002 2 lower bits of coefficient 2 5 0x03 0x0001 2 lower bits of coefficient 3 6 0x04 0x0000 2 lower bits of coefficient 4 7 0x05 0x0001 2 lower bits of coefficient 5 8 0x06 0x0001 2 lower bits of coefficient 6
9 0x07 0x0002 2 lower bits of coefficient 7 10 0x08 0x0000 2 lower bits of coefficient 8 11 0x09 0x0000 2 lower bits of coefficient 9 12 0x0A 0x0003 2 lower bits of coefficient 10
a[5:0] d[15:0]
RECEIVE DIGITAL SIGNAL PROCESSING 25
www.ti.com
PRODUCT PREVIEW
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
Step Address Data Description
13 0x0B 0x0001 2 lower bits of coefficient 11 14 0x0C 0x0002 2 lower bits of coefficient 12 15 0x0D 0x0003 2 lower bits of coefficient 13 16 0x0E 0x0000 2 lower bits of coefficient 14 17 0x0F 0x0001 2 lower bits of coefficient 15 18 0x10 0x0003 2 lower bits of coefficient 16 19 0x11 0x0000 2 lower bits of coefficient 17 20 0x12 0x0001 2 lower bits of coefficient 18 21 0x13 0x0002 2 lower bits of coefficient 19 22 0x14 0x0001 2 lower bits of coefficient 20 23 0x15 0x0003 2 lower bits of coefficient 21 24 0x16 0x0000 2 lower bits of coefficient 22 25 0x17 0x0003 2 lower bits of coefficient 23 26 0x18 0x0001 2 lower bits of coefficient 24 27 0x19 0x0000 2 lower bits of coefficient 25 28 0x1A 0x0003 2 lower bits of coefficient 26 29 0x1B 0x0003 2 lower bits of coefficient 27 30 0x1C 0x0003 2 lower bits of coefficient 28 31 0x1D 0x0000 2 lower bits of unused coefficient RAM location 32 0x1E 0x0000 2 lower bits of unused coefficient RAM location 33 0x1F 0x0000 2 lower bits of unused coefficient RAM location 34 0x21 0x04A0 Page register for DDC2 CFIR Coefficient RAM 32-63, LSBs. 35 0x00 0x0003 2 lower bits of coefficient 29 36 0x01 0x0003 2 lower bits of coefficient 30 37 0x02 0x0003 2 lower bits of coefficient 31 38 0x03 0x0000 2 lower bits of coefficient 32 39 0x04 0x0001 2 lower bits of coefficient 33 40 0x05 0x0003 2 lower bits of coefficient 34 41 0x06 0x0000 2 lower bits of coefficient 35 42 0x07 0x0003 2 lower bits of coefficient 36 43 0x08 0x0001 2 lower bits of coefficient 37 44 0x09 0x0002 2 lower bits of coefficient 38 45 0x0A 0x0001 2 lower bits of coefficient 39 46 0x0B 0x0000 2 lower bits of coefficient 40 47 0x0C 0x0003 2 lower bits of coefficient 41 48 0x0D 0x0001 2 lower bits of coefficient 42 49 0x0E 0x0000 2 lower bits of coefficient 43 50 0x0F 0x0003 2 lower bits of coefficient 44 51 0x10 0x0002 2 lower bits of coefficient 45 52 0x11 0x0001 2 lower bits of coefficient 46 53 0x12 0x0003 2 lower bits of coefficient 47 54 0x13 0x0000 2 lower bits of coefficient 48 55 0x14 0x0000 2 lower bits of coefficient 49 56 0x15 0x0002 2 lower bits of coefficient 50 57 0x16 0x0001 2 lower bits of coefficient 51 58 0x17 0x0001 2 lower bits of coefficient 52 59 0x18 0x0000 2 lower bits of coefficient 53 60 0x19 0x0001 2 lower bits of coefficient 54
a[5:0] d[15:0]
26 RECEIVE DIGITAL SIGNAL PROCESSING
www.ti.com
GC5018
SLWS169 – MAY 2005
Step Address Data Description
61 0x1A 0x0002 2 lower bits of coefficient 55 62 0x1B 0x0000 2 lower bits of coefficient 56 63 0x1C 0x0003 2 lower bits of coefficient 57 64 0x1D 0x0000 2 lower bits of unused coefficient RAM location 65 0x1E 0x0000 2 lower bits of unused coefficient RAM location 66 0x1F 0x0000 2 lower bits of unused coefficient RAM location 67 0x21 0x04C0 Page register for DDC2 CFIR Coefficient RAM 0-31, MSBs. 68 0x00 0xFFFC Upper 16 bits of coefficient 0 69 0x01 0xFFFB Upper 16 bits of coefficient 1 70 0x02 0x0003 Upper 16 bits of coefficient 2 71 0x03 0x0019 Upper 16 bits of coefficient 3 72 0x04 0x002E Upper 16 bits of coefficient 4 73 0x05 0x0021 Upper 16 bits of coefficient 5 74 0x06 0xFFDB Upper 16 bits of coefficient 6 75 0x07 0xFF73 Upper 16 bits of coefficient 7 76 0x08 0xFF40 Upper 16 bits of coefficient 8 77 0x09 0xFFA5 Upper 16 bits of coefficient 9 78 0x0A 0x00B3 Upper 16 bits of coefficient 10 79 0x0B 0x01DC Upper 16 bits of coefficient 11 80 0x0C 0x0213 Upper 16 bits of coefficient 12 81 0x0D 0x008D Upper 16 bits of coefficient 13 82 0x0E 0xFDA4 Upper 16 bits of coefficient 14 83 0x0F 0xFB24 Upper 16 bits of coefficient 15 84 0x10 0xFB75 Upper 16 bits of coefficient 16 85 0x11 0xFFC6 Upper 16 bits of coefficient 17 86 0x12 0x066D Upper 16 bits of coefficient 18 87 0x13 0x0B00 Upper 16 bits of coefficient 19 88 0x14 0x08B5 Upper 16 bits of coefficient 20 89 0x15 0xFE16 Upper 16 bits of coefficient 21 90 0x16 0xEFA8 Upper 16 bits of coefficient 22 91 0x17 0xE720 Upper 16 bits of coefficient 23 92 0x18 0xEED0 Upper 16 bits of coefficient 24 93 0x19 0x0B4A Upper 16 bits of coefficient 25 94 0x1A 0x3721 Upper 16 bits of coefficient 26 95 0x1B 0x63D1 Upper 16 bits of coefficient 27 96 0x1C 0x7FFF Upper 16 bits of coefficient 28 97 0x1D 0x0000 Upper 16 bits of unused coefficient RAM location 98 0x1E 0x0000 Upper 16 bits of unused coefficient RAM location 99 0x1F 0x0000 Upper 16 bits of unused coefficient RAM location
100 0x21 0x04E0 Page register for DDC2 CFIR Coefficient RAM 32-63, MSBs. 101 0x00 0x7FFF Upper 16 bits of coefficient 29 102 0x01 0x63D1 Upper 16 bits of coefficient 30 103 0x02 0x3721 Upper 16 bits of coefficient 31 104 0x03 0x0B4A Upper 16 bits of coefficient 32 105 0x04 0xEED0 Upper 16 bits of coefficient 33 106 0x05 0xE720 Upper 16 bits of coefficient 34 107 0x06 0xEFA8 Upper 16 bits of coefficient 35 108 0x07 0xFE16 Upper 16 bits of coefficient 36
a[5:0] d[15:0]
RECEIVE DIGITAL SIGNAL PROCESSING 27
www.ti.com
PRODUCT PREVIEW
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
Step Address Data Description
109 0x08 0x08B5 Upper 16 bits of coefficient 37 110 0x09 0x0B00 Upper 16 bits of coefficient 38 111 0x0A 0x066D Upper 16 bits of coefficient 39 112 0x0B 0xFFC6 Upper 16 bits of coefficient 40 113 0x0C 0xFB75 Upper 16 bits of coefficient 41 114 0x0D 0xFB24 Upper 16 bits of coefficient 42 115 0x0E 0xFDA4 Upper 16 bits of coefficient 43 116 0x0F 0x008D Upper 16 bits of coefficient 44 117 0x10 0x0213 Upper 16 bits of coefficient 45 118 0x11 0x01DC Upper 16 bits of coefficient 46 119 0x12 0x00B3 Upper 16 bits of coefficient 47 120 0x13 0xFFA5 Upper 16 bits of coefficient 48 121 0x14 0xFF40 Upper 16 bits of coefficient 49 122 0x15 0xFF73 Upper 16 bits of coefficient 50 123 0x16 0xFFDB Upper 16 bits of coefficient 51 124 0x17 0x0021 Upper 16 bits of coefficient 52 125 0x18 0x002E Upper 16 bits of coefficient 53 126 0x19 0x0019 Upper 16 bits of coefficient 54 127 0x1A 0x0003 Upper 16 bits of coefficient 55 128 0x1B 0xFFFB Upper 16 bits of coefficient 56 129 0x1C 0xFFFC Upper 16 bits of coefficient 57 130 0x1D 0x0000 Upper 16 bits of unused coefficient RAM location 131 0x1E 0x0000 Upper 16 bits of unused coefficient RAM location 132 0x1F 0x0000 Upper 16 bits of unused coefficient RAM location 133 0x21 0x0500 Page register for DDC2 control registers 0-31 134 0x00 0x8EE0 DDC2 FIR_MODE register; cdma_mode enabled, 60 tap PFIR, 58 tap CFIR 135 0x01 0x2000 DDC2 PFIR gain = sum(taps)x2^–18 and CFIR gain = sum(taps)x2^–19
a[5:0] d[15:0]
VARIABLE DESCRIPTION
crastarttap_cfir(4:0) Number of DDC CFIR filter taps is 2x(crastarttap + 1) mpu_ram_read What set, the PFIR and CFIR coefficient rams are readable via the MPU control interface. The GC5018 signal
cfir_gain 0 = 2e The CFIR filter’s 18 bit coefficients are loaded in two 32 word memories. Note: CFIR filter coefficients are shared between A and B channels of a DDC block in CDMA mode.
3.2.8 DDC Programmable FIR Filter (PFIR)
path is not operational when this bit is set, it is intended for debug purposes only.
The receive programmable FIR filter (PFIR) provides final pulse shaping of the baseband signal data. It does not perform any decimation. Filter coefficient size, input, and output data size is 18 bits. A special strapped mode can be employed for UMTS where two adjacent DDCs (2k & 2k+1, k=0 to 7) can be combined to yield a filter with twice the number of coefficients. This means the GC5018 can support 4 UMTS DDC channels with double-length filter coefficients (up to 128 taps).
The filter is organized in four partial filter blocks, each containing a data RAM, a coefficient RAM and a dual multiplier, a common state machine and output accumulator.
28 RECEIVE DIGITAL SIGNAL PROCESSING
PROGRAMMING
–19
, 1 = 2e
–18
www.ti.com
reg
complex
output
samples
output
sample
valid
read pointer
write
pointer
read pointer
to adjacent DDC (if double_tap=“10”)
MPU control
interface
complex input
samples from cfir
(or adjacent DDC if
double_tap=”01”
COEF
RAM
16x18
DATA
RAM
32x36
complex
output
samples
crastarttap State Machine
output
sample
valid
write pointer
MUX
mpu
ram_read
read data
write data
to adjacent DDC (if double_tap=“10”)
from adjacent DDC
(if double_tap=”10”)
Filter cell 1
cell 2 cell 3 cell 4
GC5018
SLWS169 – MAY 2005
Mode rxclk CIC PFIR PFIR COMMENTS
UMTS 153.60 10 64 32 UMTS, 1 to 6 DDC channels UMTS 122.88 8 64 32 UMTS, 1 to 6 DDC channels UMTS 153.60 10 128 64 Strapped UMTS double length PFIR configuration; 1, 2 or 3 DDC
UMTS 122.88 8 128 64 Strapped UMTS double length PFIR configuration; 1, 2 or 3 DDC
The PFIR length is programmable. This permits turning off taps and saving power if short filters are appropriate. The filter’s output data can be shifted over a range of 0 to 7 bits where it is then rounded and hard limited to 18 bits. The shift range results in a gain that ranges from 2e
–19
–12
to 2e
. The gain of the PFIR block is: sum(coefficients) x 2-shift, where shift ranges from 12 to 19. The maximum PFIR filter length is a function of GC5018 clock rate and output sample rate and is limited
by the number of coefficient memory registers. The maximum number of taps is 64 and the minimum number is 32 (for both CDMA and UMTS). Lengths between these limits can be specified in increments of
4. For strapped UMTS with double length filters, the range of taps available is 64 to 128 in increments of
8. Subject to the above minimum and maximum values, the number of maximum taps available is:
UMTS Mode: 4 x (rxclk ÷ output sample rate) Strapped UMTS Mode: 8 x (rxclk ÷ output sample rate)
CDMA Mode: 2 x (rxclk ÷ output sample rate) PFIR coefficients and gain shift values are shared between both A and B CDMA channels in a DDC block. Example PFIR filter lengths available based on mode and rxclk frequency:
(MHz) DECI- MAX LENGTH MIN LENGTH
MATION
channels.
channels
RECEIVE DIGITAL SIGNAL PROCESSING 29
www.ti.com
PRODUCT PREVIEW
GC5018 8-CHANNEL WIDEBAND RECEIVER
SLWS169 – MAY 2005
Mode rxclk CIC PFIR PFIR COMMENTS
CDMA 157.2864 32 64 32 CDMA2000 CDMA 122.88 25 64 32 CDMA2000 CDMA 78.6432 16 64 32 CDMA2000 low power configuration CDMA 153.60 30 64 32 TD-SCDMA CDMA 81.92 16 64 32 TD-SCDMA CDMA 76.80 15 60 32 TD-SCDMA low power configuration
(MHz) DECI- MAX LENGTH MIN LENGTH
MATION
Coefficients are organized in four groups of 16 words, each 18 bits wide. For fully utilized filters, the 64 coefficients are loaded 0 through 31 into the first and second RAMs, and 32 through 63 into the third and fourth RAMs. The 16 bit MSBs and 2 bit LSBs are written into the RAMs using different page register values. Shorter filters require the coefficients be loaded into the 4 rams equally, starting from address 0 and address 16.
For example, a CFIR coefficient set for a symmetric 60 tap TD-SCDMA PFIR is:
Taps Coefficient Taps Coefficient
0 = 59 –2 15 = 44 420 1 = 58 1 16 = 43 –331 2 = 57 4 17 = 42 –319 3 = 56 –8 18 = 41 744 4 = 55 –2 19 = 40 –440 5 = 54 21 20 = 39 –1005 6 = 53 –13 21 = 38 2389 7 = 52 –28 22 = 37 514 8 = 51 46 23 = 36 –6182
9 = 50 1 24 = 35 1845 10 = 49 –85 25 = 34 12959 11 = 48 96 26 = 33 –8691 12 = 47 82 27 = 32 –27246 13 = 46 –266 28 = 31 34166 14 = 45 38 29 = 30 131071
The first 15 coefficients are loaded into addresses 0 through 14 in the first coefficient RAM, the second group of 15 are loaded into addresses 16 through 30 corresponding to the second coefficient RAM, the third group of 15 are loaded into the third coefficient ram at addresses 0 through 14, and the fourth group of 15 are loaded into addresses 16 through 30 in the fourth coefficient RAM. Loading the 18 bit coefficients requires 2 writes per coefficient, one for the upper 16 bits and another for the lower 2 bits.
To program this coefficient set for the DDC2 PFIR, the following control microprocessor interface sequence would be used.
Step Address Data Description
a[5:0] d[15:0]
1 0x21 0x0400 Page register for DDC2 CFIR Coefficient RAMs 0-15 and 16-31, LSBs. 2 0x00 0x0002 2 lower bits of coefficient 0 3 0x01 0x0001 2 lower bits of coefficient 1 4 0x02 0x0000 2 lower bits of coefficient 2 5 0x03 0x0000 2 lower bits of coefficient 3 6 0x04 0x0002 2 lower bits of coefficient 4
30 RECEIVE DIGITAL SIGNAL PROCESSING
Loading...
+ 85 hidden pages