www.qualcomm.com/qct Radio Reciever Mixer Model for Event Driven Simulators to support Functional Verification of RF-SOC Wireless Links Jonathan David, SMIEEE, Sr Staff Engr, Qualcomm IEEE BMAS 2010 PAGE 1
Agenda Background and Motivation Mixer theory Ugly Math Pretty result Model code Test code Results PAGE 2
Drivers for Consumer Device IC’s Wires – Weight – Wallet Consumers like Simplicity, – Convenience, Affordability Cables Power Outlet Batteries Wireless connectivity is improvement. If LOW power and LOW cost. Lower Power -> more digital & simpler analog[Horowitz] -> smaller process nodes Lower Cost -> more integration More Digital More Integration -> More risk of respin for functional failure RF functional verification is key enabler to success. PAGE 3
Block Diagram of Generic Wireless tranciever I,Q I, Q, Fc DAC PA FILT DAC F LO To/From T/R SW BB RF SYNTH & Ant. PROC F LO I, Q, Fc LNA DAC FILT ADC I,Q Using real number modeling – models for all blocks are fairly straightforward except the RX mixer. RF I & Q values must be rotated to BB I & Q values based on phase difference between Carrier and Local Oscillator. Digital RF Analog PAGE 4
Representing RF signals ω = + j t {[ ( ) ( )] } S re I t jQ t e RF = ω − ω ( ) cos( ) ( ) sin( ) S I t t Q t t RF I, Q, f [ = ω /2 π ] are sufficient to represent most RF signals. FM: I = signal Ampl Q = 0, variation in f carries signal information AM: I = signal, Q = 0, f is carrier frequency QAM: I & Q carry Baseband signal, f is channel frequency. System Level simulations (Matlab) assume fixed frequency, use complex number for I & Q. Assumption doesn’t hold for functional verification. PAGE 5
Mixer Theory “At the core of all mixers presently in use is a multiplication of two signals in the time domain. The fundamental usefulness of multiplication may be understood from examination of the following trigonometric identity: ω ω ( cos )( cos ) A t B t 1 2 AB = ω − ω + ω + ω [cos( ) cos( ) ] t t 1 2 1 2 2 ” Tom Lee [15] PAGE 6
The Ugly Math – Quadrature mixer 1: Get an instantaneous value for frequency(phase) t t 3: define a few other terms ∫ ∫ ω = ω = ω ∆ φ = φ − φ Σ φ = φ + φ t dt dt & RF LO RF LO I Q φ φ φ ′ ′ − = − 0 0 ( cos sin )(cos ) I Q M M 11 12 RF RF LO 2 2 t t ∫ ∫ φ = ω = 2 π I Q φ − φ − φ = − ′ + ′ dt Fdt ( cos sin )( sin ) I Q M M 21 22 RF RF LO 2 2 ′ = ∆ φ + Σ φ 0 0 cos( ) cos( ) M 11 ′ = ∆ φ + Σ φ M sin( ) sin( ) 12 2: This makes our Mixer Equation: ′ = − ∆ φ + Σ φ sin( ) sin( ) M 21 ′ = ∆ φ − Σ φ cos( ) cos( ) M 22 A φ φ = φ − φ + φ + φ ( cos )(cos ) [cos( ) cos( )] A RF LO RF 1 LO RF LO 2 4: Dropping the summing terms due to filtering Our Quadrature receiver gives us two output signals: I Q = ∆ φ − ∆ φ [cos( )] [sin( )] I REC 2 2 I Q = ∆ φ + ∆ φ Q [sin( )] [cos( )] REC 2 2 PAGE 7
The Pretty Result The mixer model only needs to know the [ ] Difference in the phase between the RF = ∆ φ − ∆ φ ( ) cos( ) ( ) sin( ) R G I t Q t Frequecy and LO frequency to calculate I I [ ] = ∆ φ − − ∆ φ − π π the Baseband output of the mixer. ( ) cos( ) ( ) sin( ) R G I t Q t 2 2 Q Q Since integration is linear, the difference Φ rf in phase can be calculated by integrating Flo<Frf the difference in frequency. Φ i ΔΦ Flo>Frf Φ q PAGE 8
Model Code – Integration to get deltaPhi a l wa ys a l wa ys @ ( LOi n_Fr e q_i nph, RXi n_f r e q, RXi n_I i nph, RFi n_I qua d) be gi n / / upda t e e ve nt s #0 dt = ( $r e a l t i m r e a l t i m e - e t i m e _l a s t ) *1e 1e - 9; / / t i m es c a l e i s i n ns i f i f ( dt > 0. 0) be g be gi n i n / / upda t e onl y i f t i m e has m ove d / / - i nt e gr a t e De l t a F t o ge t De l t a Pha s e De l t aPhi = De l t a Phi + ( RXi n_f r e q_l a s t - LOi n_Fr e q_i nph_l a s t ) *dt *t wo_pi ; / / us e Pr i or val ue s unt i l ne xt de l t a t i m e Nde l t = De l t aPhi / t wo_pi ; / / ge t 2*pi uni t s De l t aPhi = De l t a Phi - Nde l t *t wo_pi ; / / s ubt r a ct t he m e nd e nd RXi n_f r e q_l a s t = RXi n_f r e q; / / upda t e t he hi s t or y va r s LOi n_Fr e q_i nph_l as t = LOi n_Fr e q_i nph; t i m e _l as t = $r e a l t r e a l t i m i m e ; e PAGE 12
Model Code – core equations / / m a t r i x f a c t or s M 11 = $qc _c os qc _c os ( De l t aPhi ) *Ef f _ga i n; M 12 = - 1. 0 * $qc _s i qc _s i n( De l t a Phi ) *Ef f _ga i n; M 21 = s i gnQ * $qc _ qc _s i s i n( De l t aPhi ) *Ef f _ga i n; M 22 = s i gnQ * $qc _ qc _c o c os ( De l t aPhi ) *Ef f _ga i n; BB_I _I out = M 11 * RXi n_I i nph + M 12 * RFi n_I qua d; BB_Q_I out = M 21 * RXi n_I i nph + M 22 * RFi n_I qua d; e nd e nd e ndm e ndm odul e odul PAGE 13
Testing the model – 10 cases TestID Description Frf Flo Fbb LO IleadsQ Gain 1 "Frf = Flo" 2.4G 2.4G 2M T 3dB 2 "Frf < Flo" 2.4G 2.4005G 2M T 3dB 3 "Frf << Flo" 2.4G 2.404G 2M T 3dB 4 "Frf > Flo" 2.4005G 2.4G 2M T 3dB 5 "Frf >> Flo" 2.402G 2.4G 2M T 3dB 6 "Frf = -Flo" 2.4G 2.4G 2M F 3dB 7 "Frf < -Flo" 2.4G 2.4005G 2M F 3dB 8 "Frf << -Flo" 2.4G 2.404G 2M F 3dB 9 "Frf > -Flo" 2.4005G 2.4G 2M F 3dB 10 "Frf >> -Flo" 2.402G 2.4G 2M F 3dB PAGE 14
Testing the model - expected results Fe xpe c t = $qc _a bs ( Fr f + Fbb - Fl o) ; I l e a ds Qe xpe c t = LO_I l e a ds Q ~^ ( Fr f + Fbb > Fl o) ; BB_I f r e q = RX_BBM on. xI Fr e q; BB_Qf r e q = RX_BBM on. xQFr e q; I QPha s i ng = RX_BBM on. I _l e a ds _Q; Fr om BBm onI = RX_BBM on. xI Pe a kAc ; Fr om BBm onQ = RX_BBM on. xQPe a kAc ; Pe a kI nput = RXs r c . pe a k; Ra di us = $qc _s qr t ( Fr om BBm onI *Fr om BBm onI + Fr om BBm onQ*Fr om BBm onQ) ; i f ( Pe a kI nput >0. 0) be gi n Ac t ua l Ga i n = ( 20. 0) *$qc _l og10( Ra di us / Pe a kI nput ) ; / / Ga i n i n dB. Ga i nOK = ( $qc _a bs ( Ac t ua l Ga i n - RxGa i n[ Te s t I D] ) <2. 0) ; e nd PAGE 15
Testing the model – Did we pass (Verilog) t e s t pa s s e d = ( I l e a ds Qe xpe c t === RX_BBM on. I _l e a ds _Q) & & ( $qc _a bs ( BB_I f r e q - Fe xpe c t ) <2e 3) & & ( $qc _a bs ( BB_Qf r e q - Fe xpe c t ) <2e 3) & & Ga i nOK; $s t r obe ( " % s @ % t : RXTEST% 02d % s Ga i n: % g dB, Fr f : % g Hz , Fl o: % g LO: % s Hz , Fbb: % g Hz , BB: % s " , t e s t pa s s e d? " SPECI NFO" : " SPECFAI L" , $r e a l t i m e , Te s t I D, t e s t pa s s e d? " Pa s s e d : " : " Fa i l e d : " , Ac t ua l Ga i n, $qc _a bs ( Fr f ) , $qc _a bs ( Fl o) , LO_I l e a ds Q? " I l e a ds Q" : " Q l e a ds I " , $qc _a bs ( Fe xpe c t ) , I QPha s i ng? " I l e a ds Q" : " Q l e a ds I " ) ; i f ( ! t e s t pa s s e d) Qc As s e r t Fa i l I nc r e m e nt ; PAGE 16
Automated Test Results SPECINFO @ 15388.000 ns: RXTEST01 Passed : Gain:3.00487 dB, Frf: 2.4e+09 Hz, Flo: 2.4e+09 LO:I leads Q Hz, Fbb: 2e+06 Hz, BB:I leads Q SPECINFO @ 33228.000 ns: RXTEST02 Passed : Gain:3.00867 dB, Frf: 2.4e+09 Hz, Flo: 2.4005e+09 LO:I leads Q Hz, Fbb: 1.5e+06 Hz, BB:I leads Q SPECINFO @ 47898.000 ns: RXTEST03 Passed : Gain:3.00355 dB, Frf: 2.4e+09 Hz, Flo: 2.404e+09 LO:I leads Q Hz, Fbb: 2e+06 Hz, BB:Q leads I SPECINFO @ 60648.000 ns: RXTEST04 Passed : Gain:2.99961 dB, Frf: 2.4005e+09 Hz, Flo: 2.4e+09 LO:I leads Q Hz, Fbb: 2.5e+06 Hz, BB:I leads Q SPECINFO @ 70528.000 ns: RXTEST05 Passed : Gain:2.98611 dB, Frf: 2.402e+09 Hz, Flo: 2.4e+09 LO:I leads Q Hz, Fbb: 4e+06 Hz, BB:I leads Q SPECINFO @ 85398.000 ns: RXTEST06 Passed : Gain:3.00598 dB, Frf: 2.4e+09 Hz, Flo: 2.4e+09 LO:Q leads I Hz, Fbb: 2e+06 Hz, BB:Q leads I SPECINFO @ 103228.00 ns: RXTEST07 Passed : Gain:3.00735 dB, Frf: 2.4e+09 Hz, Flo: 2.4005e+09 LO:Q leads I Hz, Fbb: 1.5e+06 Hz, BB:Q leads I SPECINFO @ 117908.00 ns: RXTEST08 Passed : Gain:3.00546 dB, Frf: 2.4e+09 Hz, Flo: 2.404e+09 LO:Q leads I Hz, Fbb: 2e+06 Hz, BB:I leads Q SPECINFO @ 130668.00 ns: RXTEST09 Passed : Gain:3.0074 dB, Frf: 2.4005e+09 Hz, Flo: 2.4e+09 LO:Q leads I Hz, Fbb: 2.5e+06 Hz, BB:Q leads I SPECINFO @ 140548.00 ns: RXTEST10 Passed : Gain:2.98868 dB, Frf: 2.402e+09 Hz, Flo: 2.4e+09 LO:Q leads I Hz, Fbb: 4e+06 Hz, BB:Q leads I * * * ******** * ******* * ****** ** Si m ul a t i on PASSED PAGE 17
Example Waveforms Flo > Frf PAGE 18
Lissajou plot Flo < Frf PAGE 19
Recommend
More recommend