Академический Документы
Профессиональный Документы
Культура Документы
REV 1.13
Page 1 of 89
Confidential
REV 1.13
Page 2 of 89
Confidential
Table of Contents
1
2
3
5
6
Purpose........................................................................................................................ 7
Overview..................................................................................................................... 7
Programming Model ................................................................................................. 10
3.1
Transmitter........................................................................................................ 11
3.2
Receiver ............................................................................................................ 11
Top Level Interface Description ............................................................................... 12
4.1
Port Definitions................................................................................................. 12
4.2
802.16 SOC System Block Diagram ................................................................ 13
4.3
Register Description.......................................................................................... 15
Reset Logic ............................................................................................................... 18
ARC/PHY Interface ................................................................................................. 19
6.1
ARC/PHY Interface and Timing ...................................................................... 19
6.2
FIFO Control/Status.......................................................................................... 21
6.3
Miscellaneous (RF,AFE,etc) Control Registers................................................ 23
6.4
Interrupts ........................................................................................................... 27
6.5
Frame Timer: .................................................................................................... 33
6.6
Preamble and AGC Memory Interface ............................................................. 36
Transmitter................................................................................................................ 39
7.1
Overview........................................................................................................... 39
7.2
Transmitter Control Word and Register Description........................................ 40
7.3
Transmitter Timing ........................................................................................... 42
7.4
Transmit Channel Encoder ............................................................................... 43
7.5
IFFT .................................................................................................................. 47
7.6
Transmit Front End ........................................................................................... 49
7.7
Transmit Test Circuitry..................................................................................... 50
Receiver .................................................................................................................... 52
8.1
Overview........................................................................................................... 52
8.2
Receiver Control Word & Register Description............................................... 54
8.3
AFE Rx Interface, Rx FIFO, AGC & Decimation Filters ................................ 58
8.4
Frequency Correction........................................................................................ 67
8.5
Timing Recovery, Synchronization & AFC ..................................................... 69
8.6
FFT.................................................................................................................... 76
8.7
Timing Correction............................................................................................. 76
8.8
Channel Estimator............................................................................................. 77
8.9
Channel Decoder............................................................................................... 78
8.10 Receive Test Circuitry ...................................................................................... 82
REV 1.13
Page 3 of 89
Confidential
List of Figures
Figure 1: WMAN_PHY System Block Diagram............................................................... 7
Figure 3: 802.16 SOC System Block Diagram................................................................. 14
Figure 5: PHY Reset Circuitry......................................................................................... 18
Figure 7: ARC/PHY Interface Block Diagram ................................................................ 19
Figure 9: ARC/PHY Write Cycle Timing..................................................................... 20
Figure 11: ARC/PHY Read Cycle Timing ....................................................................... 20
Figure 13: rx_en, tx_en & tr_sw timing: TDD Mode....................................................... 25
Figure 15: rx_en/tx_en timing: FDD Mode ...................................................................... 25
Figure 17: rx_en, tx_en & tr_sw control logic.................................................................. 26
Figure 19: Transmitter Block Diagram............................................................................ 39
Figure 21: Transmit Burst Timing no Offset ................................................................. 42
Figure 23: Transmit Burst Timing with Offset .............................................................. 42
Figure 25: Scrambler LFSR .............................................................................................. 43
Figure 27: Convolutional Encoder.................................................................................... 44
Figure 29: Pilot LFSR..................................................................................................... 46
Figure 31: Frequency Response of 39-tap Halfband Tx Interpolation Filter.................... 49
Figure 33: Receiver Block Diagram ................................................................................ 53
Figure 35: ADC Interface & Rx FIFO.............................................................................. 58
Figure 36: AGC System Level Block Diagram ................................................................ 60
Figure 38: AGC Timing.................................................................................................... 61
Figure 21: AGC External Timing Diagram ...................................................................... 65
Figure 22: Frequency Response of 39-tap Halfband Rx Decimation Filter ..................... 66
Figure 24: Freq_Corr Block Diagram............................................................................... 68
Figure 26: SYNC Block Diagram..................................................................................... 70
Figure 28: Sequencing of Timing Recovery Operations in SYNC block......................... 71
Figure 30: Timing Correction Block Diagram.................................................................. 76
Figure 32: Channel Decoder Sub-blocks .......................................................................... 78
Figure 34: Demapper Sub-Block ...................................................................................... 78
Figure 36: De-Interleaver / De-Puncturer Sub-block........................................................ 79
Figure 37: Viterbi Sub-block ............................................................................................ 80
Figure 38: Descrambler Sub-block ................................................................................... 81
Figure 39: SED Register (SEDR) .................................................................................... 84
Figure 52: SED Timing Diagram...................................................................................... 84
Figure 41: SED Channel Estimate Magnitude & Phase Timing Diagram........................ 85
REV 1.13
Page 4 of 89
Confidential
List of Tables
Table 1: IEEE 802.16 Modulation Modes .......................................................................... 8
Table 3: Max Data Rates for Supported Channel Bandwidths ........................................... 9
Table 5: WMAN_PHY Top Level Interface .................................................................... 12
Table 6: WMAN_PHY Register Description: 0x00 - 0x1F............................................. 15
Table 7: WMAN_PHY Register Description: 0x20 0x49 ............................................. 16
Table 8: WMAN_PHY Register Description: 0x4B 0x4D............................................ 17
Table 9: FIFO Register (FCR & FSR) Description .......................................................... 22
Table 11: Miscellaneous Control Register (MCR) Description ....................................... 23
Table 12: Delay Timer Control Register (DTCR) Description ........................................ 24
Table 13: Interrupt Enable Register (IER) Description .................................................... 27
Table 14: Interrupt Register (ISR) Description ................................................................ 29
Table 15: Interrupt Register (IR) Description................................................................... 30
Table 16: Interrupt Information Register (IIR) Description ............................................. 31
Table 17: Interrupt Clear Register (ICR) Description ...................................................... 32
Table 18: Cyclic Prefix Lengths ....................................................................................... 33
Table 19: Frame Timer Register (FTR) Description ........................................................ 35
Table 20: Preamble Memory Control (PMCR) and Data Register (PMDR) Description 38
Table 21: Transmit Control Word Description................................................................. 40
Table 22: Transmit Control Register (TCR0,1) Description ............................................ 41
Table 23: Transmit Status Register (TSR) Description .................................................... 41
Table 24: Block Sizes per Modulation Format ................................................................. 44
Table 26: Puncture Patterns .............................................................................................. 45
Table 27: Interleaver Block Sizes ..................................................................................... 45
Table 29: Transmit Modulation Register (TMR0-2) description ..................................... 47
Table 31: Typical Transmit Modulation Scale Values ..................................................... 47
Table 33: IFFT Scaling Example...................................................................................... 48
Table 35: Transmit Test Register (TTR) Description....................................................... 50
Table 36: Transmit DAC Register(TDR) Description...................................................... 51
Table 37: Transmit Test Tone Selection Table................................................................ 51
Table 38: Receive Control Word Description .................................................................. 54
Table 39: Receive Control Registers (RCR0-3) Description............................................ 55
Table 40: Receive Control Registers (RCR4-6) Description............................................ 56
Table 41: Receive Status Registers (RSR0-8) Description............................................... 57
Table 42: AGC Power Compare (APCR0-4) and AGC Attenuatior (AAR0-2) Register
Descriptions .............................................................................................................. 64
Table 44: Preamble 64 Coefficient Registers (P64CR0-3) Description ........................... 72
Table 36: Preamble 64 Coefficient Registers (P64CR4-7) Description ........................... 73
Table 37: Preamble 128 Coefficient Registers (P128CR0-3) Description ....................... 74
Table 48: Preamble 128 Coefficient Registers (P128CR4-7) Description ....................... 75
Table 39: Typical Demap Scale Values............................................................................ 79
Table 40: Receive AveragingControl Register (RACR) Description............................... 83
Table 42: Receive I&Q Averaging Register (RAVGR) Description................................ 83
REV 1.13
Page 5 of 89
Confidential
Definitions
CC Convolutional Coding
DDS Direct Digital Synthsis
FEC Forward Error Correction
FCH Frame Control Header
PDU Protocol Data Unit
PHY Physical Layer
RS Reed- Solomon
RS-CC Concatenated Reed-Solomon/Convolutional Coding FEC
- An 8-bit signed number with 4 integer bits (including sign) and four binal
bits. Eg. 0x77 = 7.875, 0x82 = -7.875.
- An 8-bit unsigned number with 4 integer bits and four binal bits Eg. 0x82 =
8.125
- An 8-bit signed integer number Eg. 0x82 = -126
- An 8bit unsigned integer number Eg. 0x82 = 130
REV 1.13
Page 6 of 89
Confidential
1 Purpose
The purpose of this document is to provide a technical description of the WirelessMan
OFDM Phy, herein described as the WMAN_PHY.
2 Overview
The WMAN_PHY implements the Wireless MAN OFDM Phy layer as described in the
802.16revD_D3, of the 802.16 specifications. The WMAN_PHY operates in
conjunction with an ARC-Tangent processor subsystem which implements the Transmit
Convergence Sublayer (TC_Sublayer), performs initial set-up of the Phy and also
performs Frame Control Header (FCH) decode of incoming packets. A system level
block diagram of the WMAN_PHY is shown in Figure 1.
WMAN_PHY
ARC
AFE
Tx Front End
Tx Data
Tx
FIFO
Tx Channel
Encoder
256-pt
IFFT
CP
Insert
Int.
Filter
AFE Tx
Interface
Control
Status
Rx Data
Rx Channel
Decoder:
Channel
Estimator
256-pt
FFT
AFC,
AGC
&
Timing
Dec.
Filter
AFE Rx
Interface
REV 1.13
Page 7 of 89
Confidential
Channel coding including implementation of the mandatory concatenated ReedSolomon/Convolution Code (RS-CC) FEC
Support for the modulation and code rates as shown in Table 1. The optional 64QAM modulation mode is included.
When subchannelization is applied in the uplink, the FEC shall bypass the RS
Decoder and use the Overall Coding Rate as the CC Code Rate as indicated in
Table 1.
Support for up to 16 subchannels
Ability to generate long, short and custom preambles
Modulation
BPSK
BPSK
QPSK
QPSK
16-QAM
16-QAM
64-QAM
64-QAM
Overall Coding
Rate
2/3
RS Code
CC Coding Rate
(12,12,0)
(12,12,0)
(32,24,4)
(40,36,2)
(64,48,8)
(80,72,4)
(108,96,6)
(120,108,6)
1/2
3/4
2/3
5/6
2/3
5/6
5/6
REV 1.13
Page 8 of 89
Confidential
Channel
Bandwidth
(MHz)
Fs/Bw
1.5
3
5.5
1.75
3.5
7
10
14
20
7/6
7/6
7/6
8/7
8/7
8/7
8/7
8/7
8/7
Max
Uncoded Data
Rate for
QAM-64
(Mbps)
7.6
15.3
27.4
8.7
17.5
34.9
49.9
69.8
96.8
Max
Coded Data
Rate for
QAM-641
(Mbps)
5.7
11.5
20.6
6.6
13.1
26.2
37.4
52.4
72.6
Front End
(FECLK)
Clock Rate
2xFs
(MHz)
3.5
7
12.83
4
8
16
22.86
32
45.71
The receiver will interface to dual 10-bit ADCs running at a maximum sample
rate of 45.71 MHz (assuming a 20 MHz channel bandwidth)
The transmitter will interface to dual 10-bit DACs running at a nominal sample
rate of 45.71 MHz (assuming a 20 MHz channel bandwidth).
REV 1.13
Page 9 of 89
Confidential
3 Programming Model
The 802.16 OFDM Phy specification requires support for frame based transmission
where a frame2 consists of a downlink subframe and an uplink subframe. Downlink
subframes consist of a single downlink Protocol Data Unit (PDU) while uplink subframes
consist of contention slots for initial ranging and bandwidth requests followed by one or
multiple uplink PDUs..
A Downlink PDU consists of the following elements:
Preamble
Frame Control Header
Downlink burst 1,, m
Preamble
Uplink Burst
Note that one or multiple Uplink PDUs can be concatenated together in an Uplink
Subframe.
The interface to the Phy has been designed to enable burst based transmission and
reception of 802.16 compliant frames. For Subscriber Station operation, frame timing is
acquired by the Phy during initial synchronization to the Base Station. For BS operation,
frame timing is initialized in the Phy by the external processor. The Phy maintains the
frame time and allows the external processor to synchronize itself to the Phy frame timer
via programmable interrupts.
In the following sections the interface and partitioning between the MAC and the Phy for
the transmitter and receiver are described.
REV 1.13
Page 10 of 89
Confidential
3.1 Transmitter
The Phy assumes that the variable length PDUs from the MAC are transformed into
fixed length FEC blocks before they are input to the Phy. This requires that
concatenation of short PDUs or segmentation of long PDUs is accomplished externally.
In addition, encryption and Cyclic Redundancy Check (CRC) calculations are assumed to
be external to the Phy.
Transmit bursts in Uplink or Downlink format are provided to the Phy by the external
processor. A Transmit Control Word (TCW) is associated with each transmit data burst
and is applied to the Phy by the external processor in conjunction with the transmit data
through separate control and data FIFOs. The transmit control word is a multi-element
control signal which describes the format and timing for an associated burst of data
contained in the Tx data FIFO. All elements of the transmit burst from start time,
modulation type and burst size to scrambler seed, midamble type and number of data
bytes can be specified through the Tx Control Word. In cases where the number of data
bytes to be transmitted is not equal to an integer number of OFDM symbols, the phy will
pad the data with 0xFF as required.
3.2 Receiver
Receive bursts in Uplink or Downlink format are decoded by the Phy and provided to the
external processor. A Receive Control Word (RCW) is applied to the Phy by the external
processor. The RCW is a multi-element control word which is used to control the
synchronization, decoding and descrambling operations of the receiver. The receiver in
the WMAN_Phy has been designed to have extremely low latency allowing functions
such as Frame Control Header (FCH) decode to be provided by the external processor.
Upon completion of synchronization, AGC and timing/frequency recovery the receiver is
programmed by the external processor to decode the incoming bursts on a burst by burst
basis. For Subscriber Station operation, the reception of the FCH is performed during the
initial receiver synchronization phase and the receiver must be programmed to receive the
proper QPSK rate 1/2 modulation rate. The received FCH is then read and processed by
the external processor. The processor decodes the rate for the next burst from the FCH,
generates a new RCW and applies it to the Phy. The available time between FCH being
available and the MAC writing the control word for burst #1 is currently 600 phy clock
cycles.
In addition, the external processor must decode the DL and UL MAP and the UCD &
DCD messages. The incoming burst profiles are decoded from the messages and the
receiver programmed accordingly.
Receiver Base Station operation is more straightforward as the BS has specified to the SS
the format of the uplink data transmission and when it should occur.
REV 1.13
Page 11 of 89
Confidential
Direction
Type
arc_clk
fe_clk
phy_clk
reset_n
addr
bs_sync_in
in
in
in
in
in
in
std_logic
std_logic
std_logic
std_logic
std_logic_vector(6 downto 0)
std_logic
cs_n
datai
in
in
std_logic
std_logic_vector(31 downto 0)
Description
Domain
lock_det
in
std_logic
lock_det_n
in
std_logic
arc_clk
arc_clk
arc_clk
rd_n
in
std_logic
Read enable
arc_clk
rf_enable
rx_i
in
in
std_logic
std_logic_vector(9 downto 0)
RF enable
ADC I data
fe_clk
rx_q
in
std_logic_vector(9 downto 0)
ADC Q data
fe_clk
wr_n
adc_2s_cmp_sel
in
out
std_logic
std_logic
arc_clk
fe_clk
adc_dac_clk_en_n
out
std_logic
adc_out_en_n
adc_pd
agc
agc_stb
out
out
out
out
std_logic
std_logic
std_logic_vector(9downto 0)
std_logic
bandgap_pd
out
std_logic
bs_sync_out
out
std_logic
dac_pd
data_valid
datao
ft_int
int0_n
rx_en
sed_clk
out
out
out
out
out
out
out
std_logic
std_logic
std_logic_vector(31 downto 0)
std_logic
std_logic
std_logic
std_logic
sed_data
out
std_logic
sed_fs
out
std_logic
tr_sw
tx_en
tx_i
tx_q
vref_pd
out
out
out
out
out
std_logic
std_logic
std_logic_vector(9 downto 0)
std_logic_vector(9 downto 0)
std_logic
Write enable
Selects 2's complement otherwise
offset binary
Enables fe_clk to be driven to the
ADCs and DACs
Enables ADC output
Puts ADC in power down
AGC value
Pulses when the AGC value
changes
Powers down the bandgap
reference
Pulses high for 100 ms each time
the frame timer is reset.
Puts DAC in power down
datao is valid
output data
Output from frame timer interrupt 0
Interrupt 0
receive enable
serial interface clock for the symbol
error display
serial interface data for the symbol
error display
serial interface frame
synchronization signal
transmit switch
transmit enable
DAC I data
DAC Q data
Powers down the voltage reference
arc_clk
fe_clk
fe_clk
fe_clk
phy_clk
fe_clk
arc_clk
arc_clk
arc_clk
arc_clk
fe_clk
fe_clk
fe_clk
REV 1.13
Page 12 of 89
Confidential
REV 1.13
Page 13 of 89
Confidential
SAMP_CLK?
fe_clk
PHY_CLK(100 MHz)
phy_clk
ARC_CLK(160 MHz)
arc_clk
ARC
rd_n
WMAN_PHY
adc_dac_clk_en_n
IADC
rx_i(9:0)
DO(9:0)
adc_2s_cmp_sel
adc_out_en_n
OMODE
OUTDIS
adc_pd
bandgap_pd
vref_pd
PDADC
PDBGR
PDVR
wr_n
cs_n
addr(6:0)
datai
datai(31:0)
datao(31:0)
QADC
PDVR
PDBGR
PDADC
data_valid
int0_n
OUTDIS
OMODE
rx_q(9:0)
RESET_PHY_n
reset_n
DO(9:0)
IDAC
dac_pd
tx_i(9:0)
PD
D(9:0)
QDAC
PD
tx_q(9:0)
LDB
lock_det
lock_det_n
RF_ENABLE
rf_enable
LD
agc(9:0)
agc_stb
AGC(9:0)
STROBE
rx_en
tx_en
RX_EN
TX_EN
tr_sw
TR_SW
sed_clk
sed_data
sed_stb_n
BS_SYNC_IN
bs_sync_in
D(9:0)
bs_sync_out
ft_int
SED_CLK?
SED_DATA?
SED_STROBE_N?
BS_SYNC_OUT
FT_INT
REV 1.13
Page 14 of 89
Confidential
Address
Name
(hex)
Initial
R/W
Description
Reference
Value
(hex)
FCR
00
R/W
FSR
01
RXDF
02
TXDF
03
Tx FIFO Data
RXCF
04
Rx Control FIFO
TXCF
05
Tx Control FIFO
IER
06
R/W
IR
07
Interrupt Register
00000000
00000000
ISR
08
IIR
09
ICR
0A
00000000
FTCR
0B
R/W
00000000
FTSR
0C
FTINTR0
0D
R/W
00000000
FTINTR1
0E
R/W
00000000
FTINTR2
0F
R/W
00000000
FTINTR3
10
R/W
00000000
FTINTR4
11
R/W
00000000
FTINTR5
12
R/W
00000000
MCR
13
R/W
00000000
DTCR0
14
R/W
00000000
DTCR1
15
R/W
00000000
PMCR
16
R/W
00000000
PMDR
17
PMSR
18
TCR0
19
R/W
00000000
TCR1
1A
R/W
00000000
TSR
1B
TMR0
1C
R/W
TMR1
1D
R/W
00000000
TMR2
1E
R/W
00000000
TTR
1F
R/W
00000000
00000000
REV 1.13
Page 15 of 89
Confidential
Register
Address
Name
(hex)
Initial
R/W
Description
Reference
Value
(hex)
TDR
20
R/W
00000000
RCR0
21
R/W
00000000
RCR1
22
R/W
00000000
RCR2
23
R/W
00000000
RCR3
24
R/W
00000000
RCR4
25
R/W
00000000
RCR5
26
R/W
00000000
RCR6
27
R/W
00000000
RSR0
28
RSR1
29
RSR2
2A
RSR3
2B
RSR4
2C
RSR5
2D
RSR6
2E
RSR7
2F
RSR8
30
RSR9
31
P64CR0
32
R/W
00000000
P64CR1
33
R/W
00000000
P64CR2
34
R/W
00000000
P64CR3
35
R/W
00000000
P64CR4
36
R/W
00000000
P64CR5
37
R/W
00000000
P64CR6
38
R/W
00000000
P64CR7
39
R/W
00000000
P128CR0
3A
R/W
00000000
P128CR1
3B
R/W
00000000
P128CR2
3C
R/W
00000000
P128CR3
3D
R/W
00000000
P128CR4
3E
R/W
00000000
P128CR5
3F
R/W
00000000
P128CR6
40
R/W
00000000
P128CR7
41
R/W
00000000
APCR0
42
R/W
00000000
APCR1
43
R/W
00000000
APCR2
44
R/W
00000000
APCR3
45
R/W
00000000
APCR4
46
R/W
00000000
APCR5
47
R/W
00000000
AAR0
48
R/W
00000000
AAR1
49
R/W
00000000
AAR2
4A
R/W
00000000
AAR3
4B
R/W
00000000
Page 16 of 89
Confidential
Register
Address
Name
(hex)
Initial
R/W
Description
Reference
Value
(hex)
RACR
4C
R/W
00000000
RAVGR
4D
00000000
SEDR
4E
00000000
REV 1.13
Page 17 of 89
Confidential
5 Reset Logic
A block diagram of the WMAN_PHY reset logic is shown in Figure 3. A single active
low reset signal, reset_n, is provide to the phy. It is assumed that the reset_n signal is
asynchronously asserted and synchronously removed based on the arcclk and lasts at
leasts one arcclk clock cycle. Inside the PHY Module, reset_n is used to generate two
more reset signals re-timed based on phyclk and feclk to reset the PHY Core and the
PHY/AFE interface respectively. The circuit has been designed so that the proper resets
will be generated independently of the power-up state of the flip flops.
reset_n
arc_clk
arc_reset
CLK
phy_reset
D
CLK
CLK
CLK
phy_clk
fe_reset
D
CLK
CLK
CLK
fe_clk
REV 1.13
Page 18 of 89
Confidential
6 ARC/PHY Interface
A description of the ARC/PHY interface, the interface timing and descriptions of the
FIFO, control, status and interrupt registers are given in the following sections.
rd_n
wr_n
cs_n
WMAN_PHY
ARC/PHY
Interface
Tx
Data
FIFO
Transmitter
Tx
Control
FIFO
datai
datao
data_valid
int0_n
Rx
Data
FIFO
Receiver
Rx
Control
FIFO
REV 1.13
Page 19 of 89
Confidential
arc_clk
addr(6:0)
cs_n
wr_n
datao(6:0)
arc_clk
addr(6:0)
cs_n
rd_n
datao(6:0)
data_valid
0-? cycles
REV 1.13
Page 20 of 89
Confidential
Tx Control FIFO:
Rx Data FIFO:
Rx Control FIFO:
Contains payload data for the Phy transmitter and is written from
the ARC. This FIFO is of size 127x32 bits or approximately four
OFDM symbols.
Contains the Transmit control frame which is written from the
ARC to the Phy. The FIFO is of size 12x32 bits. Each transmit
control frame contains three words so the FIFO can contain 4
control frames.
Contains payload data from Phy receiver and is read by the ARC.
This FIFO is of size 127x32 bits.
Contains the Rx control frame which is written from the ARC to
the Phy. The FIFO is of size 12x32 bits. Each receive control
frame consists of 3 words so the FIFO can contain 4 control
frames.
The FIFO Control and Status Register are used to set up the FIFOs and are described in
Table 7.
REV 1.13
Page 21 of 89
Confidential
Register
Name
Addr
Field
# of
(hex) R/W
Name
Bits Slice
Description
FCR
00
R/W
txdfTl
6:0
Tx Data FIFO trigger level sets the number of words below which
causes the Tx Data FIFO watermark interrupt.
FCR
00
R/W
txdfRst
Tx Data FIFO reset resets all status flags, indices, etc. when set to
1. Does not clear contents of FIFO
FCR
00
R/W
txcfRst
Tx Control FIFO reset resets all status flags, indices, etc. when set
to 1. Does not clear contents of FIFO
FCR
00
R/W
rxdfTl
FCR
00
R/W
rxdfRst
16
Rx Data FIFO reset resets all status flags, indices, etc. when set to
1. Does not clear contents of FIFO
FCR
00
R/W
rxcfRst
17
Rx Control FIFO reset resets all status flags, indices, etc. Does not
clear contents of FIFO
FCR
00
R/W rxdfLpbkEn
18
FCR
00
txdfOverClr
19
FCR
00
txcfOverClr
20
FCR
00
rxdfUnderClr
21
FCR
00
rxcfOverClr
22
Tx/Rx Data FIFO Loop Back Register when this bit is set to 1,
data from the Tx Data Fifo is written to the Rx Data FIFO
Tx Data FIFO overrun clear when this bit is 1, the txdfOverrun flag
is cleared in the FSR. The bit is automatically cleared.
Tx Control FIFO overrun clear when this bit is 1, the txcfOverrun
flag is cleared in the FSR. The bit is automatically cleared.
Rx Data FIFO underrun clear when this bit is 1, the rxdfUnderrun
flag is cleared in the FSR. The bit is automatically cleared.
Rx Control FIFO overrun clear when this bit is 1, the rxcfOverrun
flag is cleared in the FSR. The bit is automatically cleared.
FSR
01
txdfLevel
6:0
FSR
01
txcfLevel
FSR
01
rxdfLevel
FSR
01
rxcfLevel
FSR
01
txdfOverrun
22
FSR
01
txcfOverrun
23
FSR
01
rxdfUnderrun
24
FSR
01
rxcfOverrun
25
15:9 Rx Data FIFO trigger level sets the number of words above which
causes the Rx Data FIFO interrupt and flag
Too many words were written to the Tx Data FIFO - the bit can be
cleared using txdfOverClr in the FCR.
Too many words were written to the Tx Control FIFO - the bit can be
cleared using txcfOverClr in the FCR.
Too many words were read from the Rx Data FIFO - the bit can be
cleared using rxdfUnderClr in the FCR.
Too many words were written to the Rx Control FIFO - the bit can be
cleared using rxcfOverClr in the FCR.
REV 1.13
Page 22 of 89
Confidential
(hex) R/W
Field
# of
Name
Bits Slice
dacPd_n
MCR
13
R/W
MCR
13
R/W
0 DAC powered-down
MCR
13
R/W
1 DAC enabled
MCR
13
R/W
MCR
13
R/W dac2sCmpSel
MCR
13
R/W
MCR
13
R/W
MCR
13
R/W
MCR
13
R/W
0 ADC powered-down
MCR
13
R/W
1 ADC enabled
MCR
13
R/W adc2sCmpSel
MCR
13
R/W
0 Offset binary
MCR
13
R/W
1 Twos complement
MCR
MCR
MCR
MCR
13
13
13
13
R/W
R/W
R/W
R/W
adcOutEn_n
overrideEn
MCR
13
R/W
txEn
If OverrideEn = 1, the tx_en output will follow the state of this bit
MCR
MCR
13
13
R/W
R/W
rxEn
trSwEn
1
1
7
8
If OverrideEn = 1, the rx_en output will follow the state of this bit
If OverrideEn = 1, the tr_sw output will follow the state of this bit
MCR
13
R/W
fddSel
MCR
MCR
MCR
13
13
13
R/W
R/W
R/W
reserved
MCR
13
R/W bandgapPd_n
MCR
13
R/W
MCR
13
R/W
MCR
13
R/W
MCR
13
R/W
MCR
13
R/W
MCR
13
R/W adcDacClkEn_n
MCR
13
R/W
MCR
13
R/W
Description
0 Offset binary
1 Twos complement
adcPd_n
10
11
This bits select the numeric format for the ADC output
vrefPd_n
12
13
REV 1.13
Page 23 of 89
Confidential
The Delay Timer Control Register (DTCR) allows programmable delays to be specified
for controlling the relative timing of the rx_en, tx_en and tr_sw outputs. The exact
operation of rx_en and tx_en depends on whether the modem is in TDD mode or FDD
mode and the status of the override signals from the registers and external logic.
FDD/TDD Mode selection is accomplished through the tddSel bit in the MCR. The
operation of tr_sw is independent of TDD/FDD mode.
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
9:0
Description
DTCR0
14
R/W
txStartDelay
10
DTCR0
14
R/W
txStopDelay
10
19:10 time in samples from end of data being sent to the interpolating filter
until tx_enable active
DTCR0
14
R/W
txRxDelay
10
DTCR1
15
R/W
rxStartDelay
10
DTCR1
15
R/W
trSWDelay
10
9:0
A diagram of the relative timing of rx_en, tx_en and tr_sw is shown in Figure 7 for TDD
operation. It is assume that the override and any external gating signals are not active.
Note that the timing of rx_en is fixed relative to tx_en in this mode. The delay from
tx_en going high to data output is specified by txStartDelay. During this time zeros are
transmitted. It is assumed that the Tx Control Word is written to the FIFO at least
txStartDelay before the data is actually required to be transmitted. The delay from Tx_en
going low to Rx_en high is specified by txRxDelay. In addition, the delay from the end
of Transmit Data to tx_en low is specified by txStopDelay. This allows a programmable
number of zeros to be output by the transmitter before it is shut off.
REV 1.13
Page 24 of 89
Confidential
rx_en
tx_en
txRxDelay
Tx Data from Phy
txStartDelay
txStopDelay
tx_en
tr_sw
trSwDelay
rx_en
rxStartDelay
tx_en
txStartDelay
txStopDelay
REV 1.13
Page 25 of 89
Confidential
The delays are specified in terms of the number of samples (1 OFDM Symbol = 319
samples) through a 10-bit register in the DTCR. Note that the delay times are dependent
on the channel bandwidth of the modem and should be calculated accordingly. A 10-bit
delay timer range provide up to 38 us delay with 0.037 us resolution at 20 MHz channel
bandwidth and 484 us delay with 0.47 us resolution at 1.5 MHz channel bandwidth.
Internal signals, rx_enable and tx_enable are gated by external control logic according to
the diagram in Figure 9 in order to produce the rx_en and tx_en outputs. The internal
signals rx_enable and tx_enable have the same timing and functionality as described in
above for rx_en and tx_en. Three input signals; Lock Detect (Active High) lock_det,
Lock Detect (Active Low) lock_det_n and RF Enable rf_enable are used to gate the
enable signals. In addition the override logic is also shown.
MCR.overridEn
MCR.txEn
tx_enable (internal)
Sel
In1
Out
In0
tx_en
Sel
In0
Out
In1
rx_en
Sel
In0
Out
In1
tr_sw
lock_det
rf_enable
ld_n
rx_enable (internal)
MCR.rxEn
tr_sw (internal)
MCR.trSw
REV 1.13
Page 26 of 89
Confidential
6.4 Interrupts
The WMAN_PHY generates an active low interrupt, INTB, to the ARC. The PHY
interrupt sources are enabled through the Interrupt Enable Register or IER. The Interrupt
Register (IR) provides the status of the interrupt after it has been sampled. The Interrupt
Information Register (IIR) provides the status of the interrupt before it has been sampled
and can be used to monitor the states of level-sensitive interrupts. The Interrupt Clear
Register (ICR) is used to clear the sampled interrupts.
Register Addr
Name
(hex) R/W
IER
06
R/W
IER
06
IER
Field
# of
Name
Bits Slice
txdfTrigEn
Description
R/W txdfUnderrunEn
06
R/W
txcfEmptyEn
IER
06
R/W
rxdfTrigEn
IER
06
R/W rxdfOverrunEn
Setting this bit to 1 enables the Rx Data FIFO Overrun interrupt Phy
has attempted to write data to FIFO but FIFO was full
IER
06
R/W
IER
06
R/W txBurstDoneEn
IER
06
R/W
scramErrorEn
IER
06
R/W rxBurstDoneEn
IER
06
R/W
IER
06
R/W pilotUpdateEn
10
IER
06
R/W
rsUpdateEn
11
Setting this bit to 1 enables the receiver Reed Solomon error update
interrupt
IER
06
R/W
berUpdateEn
12
Setting this bit to 1 enables the receiver Viterbi bit error rate update
interrupt
IER
06
R/W
fti0En
13
IER
06
R/W
fti1En
14
IER
06
R/W
fti2En
15
IER
06
R/W
fti3En
16
IER
06
R/W
fti4En
17
IER
06
R/W
fti5En
18
IER
06
R/W illegalAccessEn
19
IER
06
R/W
20
rxcfEmptyEn
syncDoneEn
ftIntEn
REV 1.13
Page 27 of 89
Confidential
The Interrupt Status Register or ISR provides the status of all interrupts, enabled or not.
Register Addr
Name (hex) R/W
Field
Name
# of
Bits
Slice
Description
ISR
08
txdfTrigInt
ISR
08
txdfUnderrunInt
ISR
08
txcfEmptyInt
ISR
08
rxdfTrigInt
ISR
08
rxdfOverrunInt
ISR
08
rxcfEmptyInt
ISR
08
txBurstDoneInt
ISR
08
scramErrorInt
ISR
08
rxBurstDoneInt
ISR
08
syncDoneInt
ISR
08
pilotUpdateInt
10
ISR
08
rsUpdateInt
11
REV 1.13
Page 28 of 89
Confidential
ISR
08
berUpdateInt
12
Recieve Bit Error Rate Update Interrupt Status this interrupt is set
to 1 when the soft bit error rate from the Viterbi decoder is updated.
The results can be read from RSR7. This interrupt can be cleared
by writing a 1 to the ICR at this bit location.
ISR
08
ISR
08
fti0Int
13
fti1Int
14
ISR
08
ISR
08
fti2Int
15
fti3Int
16
ISR
ISR
08
fti4Int
17
08
fti5Int
18
ISR
08
illegalAccessInt
19
REV 1.13
Page 29 of 89
Confidential
The Interrupt Register or IR provides the status of all enabled interrupt sources.
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
IR
07
txdfTrigSt
IR
07
txdfUnderrunSt
IR
07
txcfEmptySt
IR
07
rxdfTrigSt
IR
07
rxdfOverrunSt
IR
07
rxcfEmptySt
IR
07
txBurstDoneSt
IR
07
scramErrorSt
IR
07
rxBurstDoneSt
IR
07
syncDoneSt
IR
07
pilotUpdateSt
10
IR
07
rsUpdateSt
11
IR
07
berUpdateSt
12
IR
07
fti0St
13
IR
07
fti1St
14
IR
07
fti2St
15
IR
07
fti3St
16
IR
07
fti4St
17
IR
07
fti5St
18
IR
07
illegalAccessSt
19
R
R
Description
Status of the signal that generates the txdfTrigInt if the interrupt is
enabled.
Status of the signal that generates the txdfUnderrunInt if the
interrupt is enabled.
Status of the signal that generates the txcfEmptyInt if the interrupt is
enabled.
Status of the signal that generates the rxdfTrigInt if the interrupt is
enabled.
Status of the signal that generates the txdfUnderrunInt if the
interrupt is enabled.
Status of the signal that generates the rxcfEmptyInt if the interrupt is
enabled.
Status of the signal that generates the txBurstDoneInt if the interrupt
is enabled.
Status of the signal that generates the txdfUnderrunInt if the
interrupt is enabled.
Status of the signal that generates the rxBurstDoneInt if the interrupt
is enabled.
Status of the signal that generates the syncDoneInt if the interrupt is
enabled.
Status of the signal that generates the pilotUpdateInt if the interrupt
is enabled.
Status of the signal that generates the rsUpdateInt if the interrupt is
enabled.
Status of the signal that generates the berUpdateInt if the interrupt is
enabled.
Status of the signal that generates the fti0Int if the interrupt is
enabled.
Status of the signal that generates the fti1Int if the interrupt is
enabled.
Status of the signal that generates the fti2Int if the interrupt is
enabled.
Status of the signal that generates the fti3Int if the interrupt is
enabled.
Status of the signal that generates the fti4Int if the interrupt is
enabled.
Status of the signal that generates the fti5Int if the interrupt is
enabled.
Status of the signal that generates the illegalAccessInt if the
interrupt is enabled.
REV 1.13
Page 30 of 89
Confidential
The Interrupt Information Register provides information on level based interrupts at the
point before the interrupt is sampled and fed to the ISR. This allows level based interrupt
sources to be monitored directly.
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
txdfTrigInf
Description
IIR
09
IIR
09
reserved
Reserved
IIR
09
txcfEmptyInf
IIR
09
rxdfTrigInf
IIR
09
reserved
Reserved
IIR
09
rxcfEmptyInf
REV 1.13
Page 31 of 89
Confidential
The Interrupt Clear Register allows interrupts and interrupt status flags in the Interrupt
Status Register to be cleared. The interrupts are cleared by writing a 1 to the specified bit
location. The ICR is self-clearing so if a bit is set high it will automatically be cleared
after it has been written.
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
ICR
0A
txdfTrigClr
ICR
0A
txdfUnderrunClr
Setting this bit to 1 clears the Tx Data FIFO Underrun interrupt Phy
has attempted to read data but no data was present
ICR
0A
txcfEmptyClr
ICR
0A
rxdfTrigClr
ICR
0A
rxdfOverrunClr
Setting this bit to 1 clears the Rx Data FIFO Overrun interrupt Phy
has attempted to write data to FIFO but FIFO was full
ICR
0A
rxcfEmptyClr
ICR
0A
txBurstDoneClr
ICR
0A
scramErrorClr
ICR
0A
rxBurstDoneClr
ICR
0A
syncDoneClr
ICR
0A
pilotUpdateClr
10
ICR
0A
rsUpdateClr
11
Setting this bit to 1 clears the receiver Reed Solomon error update
interrupt
ICR
0A
berUpdateClr
12
Setting this bit to 1 clears the receiver Viterbi bit error rate update
interrupt
ICR
0A
fti0Clr
13
ICR
0A
fti1Clr
14
ICR
0A
fti2Clr
15
ICR
0A
fti3Clr
16
ICR
0A
fti4Clr
17
ICR
0A
fti5Clr
18
ICR
0A
illegalAccessClr
19
R
R
REV 1.13
Page 32 of 89
Confidential
REV 1.13
Page 33 of 89
Confidential
The status of the frame timer can be read through the ftSample and ftSymbol fields in the
Frame Timer Status Register.
Six internal interrupts are provided to allow programmable frame-timing based interrupts
to the micro controller. The symbol and sample values for each of the frame timer
interrupts are specified through the FTINTR0-5 registers. Operation of these interrupts is
controlled through the interrupt registers.
The frame timer also has an external interrupt, ft_int. This signal uses the timer value
specified for frame timer interrupt 0 in order to generate a periodic pulse based external
interrupt. ft_int is enabled by setting the IER.ftIntEn bit high. . When enabled ft_int will
provide a 160 ns pulse (10 phy_clock cycles @ 100 MHz) whose period is equal to the
frame timer duration. Note that ft_int is not enabled, disabled or affected by the frame
timer 0 interrupt registers.
The frame timer can either be initialized to start at an arbitrary time (BS Mode) or can be
initialized during the Rx synchronization process (SS Mode). The frame timer can be
cleared and reset by setting the ftClr bit in theFTCR. The current value of the frame timer
can be read in the Frame Timer Status Register.
REV 1.13
Page 34 of 89
Confidential
It is also possible to synchronize or reset the frame timer using the BS_SYNC_IN
external signal. The rising edge of the BS_SYNC_IN signal is detected and used to
provide the reset to the frame timer. An additional output signal, BS_SYNC_OUT, is
also available which gives a 160 ns (10 phy_clock cycles @ 100 MHz) pulse whenever
the frame timer is reset, whether through external or internal means.
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
FTCR
0B
R/W ftFrameLength
11
FTCR
0B
R/W
ftCpLength
18:11 cyclic prefix length 8-bit number that specifies the CP length i.e 0,
8, 16, 32, 64
FTCR
0B
ftClr
FTCR
0B
R/W
frameFinal
10
FTSR
0C
ftSample
8:0
FTSR
0C
ftSymbol
11
19:9 Current value of the symbol field of the frame timer. The maximum
value of symbol field is set using ftFrameLength
FTINTR0
0D
R/W
sampInt0
8:0
FTINTR0
0D
R/W
symInt0
11
FTINTR1
0E
R/W
sampInt1
8:0
FTINTR1
0E
R/W
symInt1
11
FTINTR2
0F
R/W
sampInt2
8:0
FTINTR2
0F
R/W
symInt2
11
FTINTR3
10
R/W
sampInt3
8:0
FTINTR3
10
R/W
symInt3
11
FTINTR4
11
R/W
sampInt4
8:0
FTINTR4
11
R/W
symInt4
11
FTINTR5
12
R/W
sampInt5
8:0
FTINTR5
12
R/W
symInt5
11
19
Clear frame timer by setting this bit high - this bit is self-clearing
28:20 Number of samples in the final symbol of the frame. <9.0> unsigned
Current value of the sample field of the frame timer. The maximum
value of the sample field is (255 + ftCpLength) before it wraps to
zero.
REV 1.13
Page 35 of 89
Confidential
Tx Preamble memory
Size:
Bit Definition:
256 x 8 bits
[7:4] Subchannel Preamble
[3:0] Preamble 128
256 x 12 bits
[11:8] - Preamble 64
[7:4] - Subchannel Preamble
[3:0] - Preamble 128
Each 4-bit memory field consists of two, two-bit fields in signed integer format which
represent the real and imaginary components of the frequency domain represenation of
the preamble. Typical values are +1, -1 and 0 for each of the fields. The default values of
Preamble 64, Preamble 128 and Subchannel Preamble are shown in Appendix A.
The AGC translation memory is defined as follows:
Tx Preamble memory
Size:
256 x 10 bits
Bit Definition:
[21:12] - AGC Value(9:0)
Each field corresponds to a 10-bit mapping a particular 8-bit agc input.
The memories are written via a simple register interface. The Preamble Memory Control
Register (PMCR) is used to set up and initiate the filling of the preamble memory. In
order to write to either the Rx or Tx preamble memory, an enable bit (rxMemEn or
txMemEn) is set in the PMCR. In order to write to the AGC translation memory the
agcMemEn bit must be set in the PMCR. Note that it is possible to write to all three
preamble memories in parallel by simultaneously setting the all the enable bits high. In
this case the lower 8 bits (Subchannel Preamble and Preamble 128) of the Rx and Tx
preamble memories would have to be the same since the fields are shared in the PMDR.
REV 1.13
Page 36 of 89
Confidential
An address counter is used to drive the address of the preamble and agc translation
memories. The address counter is reset to 0 by setting the addCntRst bit in the PMCR
high then low. Subsequent writes will cause the address counter to automatically
increment. The data for the memories is written to from the Preamble Memory Data
Register (PMDR).
REV 1.13
Page 37 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
rxMemEn
PMCR
16
R/W
PMCR
16
R/W
PMCR
16
R/W
PMCR
16
R/W
PMCR
16
R/W
PMCR
16
R/W
PMCR
16
PMCR
16
PMCR
16
R/W
PMCR
16
R/W
PMCR
16
R/W
PMDR
17
wrMemVal
12
PMSR
18
addrStatus
7:0
txMemEn
addCntRst
Description
agcMemEn
Address Counter Status Read only value which reflects the value
of the address counter
Table 17: Preamble Memory Control (PMCR) and Data Register (PMDR) Description
REV 1.13
Page 38 of 89
Confidential
7 Transmitter
7.1 Overview
The WMANY_Phy transmitter takes uncoded blocks of data and then scrambles, encodes
and modulates the data according to the 802.16 specification. The main blocks in the
transmitter are:
Transmit Channel Encoder consisting of:
Scrambler
Encoder: Reed Solomon Encoder
Serial Buffer
Convolutional Encoder
Puncturer
Interleaver
Modulator
IFFT
Transmit Front End consisting of:
Tx Buffer
Tx Interpolation Filter
Tx Test Tone Generator
Tx Analog Front End Interface
A block diagram of the transmitter is shown in Figure 10.
WMAN_PHY Transmitter
Tx Channel
Encoder:
Tx Data
Tx Front End
Scrambler
Puncturer
Modulator
Tx Control
256-pt
IFFT
Tx
Buffer
Int.
Filter
AFE Tx
Interface
Tx Status
Registers
Test
Circuitry
Tx Control
Registers
Encoder
Interleaver
REV 1.13
Page 39 of 89
Confidential
# of
Name
Word
Word
Name
Bits Slice
tx_cntl0
start
11
10:0
rate
13:11
Description
length
18
31:14
seqNum
3:0
preType
5:4
midType
7:6
subChan
12:8
scramEn
13
scramInit
14
scramSeed
15
29:15
intEn
30
REV 1.13
Page 40 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
txBsSel
Description
TCR0
19
R/W
TCR0
19
R/W
TCR0
19
R/W
TCR0
19
R/W
txRst
TCR0
19
R/W
ifftScale
5:2
TCR0
19
R/W
ifftScalePre
9:6
TCR0
19
R/W
ifftScaleSub
TCR1
1A
R/W
offsetSample
TCR1
1A
R/W
offsetSymbol
11
TCR1
1A
R/W
pilotSeed
11
0 Subscriber Station
1 - Base Station
Transmitter is held in reset when set to 1
8:0
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
TSR
1B
BurstSeqNum
3:0
TSR
1B
ScramSeqNum
7:4
REV 1.13
Page 41 of 89
Confidential
2.5 ms Frame
Frame Timer
218
Pre
217
Data
Frame Timer
218
Pre
217
Data
REV 1.13
Page 42 of 89
Confidential
Scrambler
The scrambler performs data randomization on each uplink and downlink burst. The
scrambler consists of a 15-bit Linear Feedback Shift Register (LFSR) with feedback
polynomial 1 + x14 + x15. A diagram of the LFSR is shown in Figure 13. The state of the
LFSR is initialized at the start of every allocation. This is accomplished through the
scramInit and seed values of the Tx Control Word. In addition, the Scrambler performs
padding in cases where the amount of data to be transmitted does not make up a complete
OFDM symbol. In theses cases where RS-CC and CC coding is employed, the scrambler
will pad 0xFF to the end of the transmission block allocated with the exception of the last
byte which is reserved for the 0x00 Viterbi tail byte.
3 4
8 9
10 11 12 13 14 15
data out
data in
7.4.2
Encoder
Modulation
0000
0001
0010
0011
BPSK
BPSK
QPSK
QPSK
REV 1.13
Uncoded
Block
Size
12
12
24
48
Coded
Block
Size
24
24
48
48
Overall
Coding
Rate
1/2
3/4
1/2
3/4
RS Code
(12,12,0)
(12,12,0)
(32,24,4)
(40,36,2)
CC
Code
Rate
1/2
3/4
2/3
5/6
Comment
standard compliant
proprietary
standard compliant
standard compliant
Page 43 of 89
Confidential
0100
0101
0110
0111
16-QAM
16-QAM
64-QAM
64-QAM
36
72
96
108
96
96
144
144
1/2
3/4
2/3
3/4
(64,48,8)
(80,72,4)
(108,96,6)
(120,108,6)
2/3
5/6
3/4
5/6
standard compliant
standard compliant
standard compliant
standard compliant
data in
+
Y
REV 1.13
Page 44 of 89
Confidential
7.4.3
In order to achieve different code rates, data from the convolutional encoder is punctured.
The puncture patterns used to provide the different rates are shown in . A 1 indicates the
bit is transmitted and a 0 indicates the bit is removed.
Rate
X
Y
1/2
1
1
2/3
10
11
3/4
101
110
5/6
10101
11010
16
subchannels
192
384
768
1152
8 subchannel
4 subchannels
2 subchannels
1 subchannel
96
192
384
576
48
96
192
288
24
48
96
144
12
24
48
73
REV 1.13
Page 45 of 89
Confidential
3 4
8 9
10 11
wk
c-88 = c-38 = c63 = c88 = 1- 2wk and c-63 = c-13 = c13 = c38 = 1- 2wk
c-88 = c-38 = c13 = c38 = c63 = c88 =1- 2wk and c-63 = c-13 = 1- 2wk
Modulator
Data bits from the interleaver are mapped according to constellation diagrams provided in
the 802.16 specification. BPSK, QPSK, 16-QAM and 64-QAM are supported. The
constellation-mapped data is then modulated onto the allocated data subcarriers and
provided to the IFFT.
The Transmit Modulation Register, shown in Table 24, provides programmable scaling
control for the absolute value of a particular modulation constellation. Each 10 bit
register provides a signed <1.9> scale value relative to a +1 transmitted value. In the
case of BPSK, the preamble and pilot modulation constellations, and QPSK the scale
value is applied to the +/-1 output values. In the case of 16-QAM the scale value is
applied to the +/-3 and +/-1 output values. In the case of 64-QAM the scale value is
applied to the +/-7, +/-5, +/-3 and +/-1 output values.
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
TMR0
1C
R/W
moduQAM64
10
TMR0
1C
R/W
moduQAM16
10
TMR0
1C
R/W
moduQPSK
10
TMR1
1D
R/W
moduP64
10
TMR1
1D
R/W
moduP128
10
TMR1
1D
R/W
moduPSub
10
29:20 Modulation constellation scale value for preamble subchannel <1.9> signed
REV 1.13
9:0
Description
9:0
Page 46 of 89
Confidential
TMR2
1E
R/W
moduPilot
10
TMR2
1E
R/W
moduBPSK
10
9:0
bkoff
Quantized Value
moduQAM64
moduQAM16
moduQPSK
moduP64
moduP128
moduPSub
moduPilot
moduBPSK
1/sqrt(42)
1/sqrt(10)
1/sqrt(2)
1
1/sqrt(2)
1/sqrt(2)
1
1
0.92
0.92
0.92
0.92
0.92
0.92
0.92
0.92
0.142578125
0.291015625
0.650390625
0.919921875
0.650390625
0.650390625
0.919921875
0.919921875
7.5 IFFT
The IFFT block is a radix-2 256-point pipelined FFT processor. It performs a 256-point
complex Inverse Fast Fourier Transform on the modulated subcarriers provided by
Modulator. The input and output precision of the IFFT is 10-bits. Note that the IFFT
block is not resource shared with the receiver
Two scaling parameters are provided in the IFFT. They are ifftScale which scales the
transmitted data and ifftScalePre which scales the preamble. Both values are
programmed through the TCR and are 4-bits with the maximum scale value being limited
to 8. The scale value basically controls a right shift on the decimal point of the IFFT
output and allows the range of the IFFT output to be increased. An example is shown in
Table 26 for a signal with <1.9> input precision. The default scale values were
determined through simulations of various typical 802.16 transmit bursts with the
REV 1.13
Page 47 of 89
Confidential
intention of achieving less than ?? saturation/clipping events in ??. The default values for
ifftScale and ifftScalePre has been set to 6 and 5 respectively.
Scale
Value
0
1
2
3
4
5
6
7
8
Input
Precision
1.9
Output
Precision
<1.9>
<2.8>
<3.7>
<4.6>
<5.5>
<6.4>
<7.3>
<8.2>
<9.1>
REV 1.13
Page 48 of 89
Confidential
Tx Buffer
The Tx Buffer is performs Cyclic Prefix insertion on the data output by IFFT in order to
form a proper OFDM symbol.. Cyclic prefix lengths of 1/64, 1/32, 1/16 and 1/8 are
supported.
7.6.2
Interpolation Filter
-20
-40
-60
)
B
d(
e
d
uti
n
g
a
M
-80
-100
-120
-140
-160
-180
0.1
0.2
0.3
0.4
0.5
0.6
Normalized Frequency ( rad/sample)
0.7
0.8
0.9
Tx FIFO
The Tx FIFO resolves the asynchronous clock domain boundary between the fixed 100
MHz Phy clock (phy_clk) and the variable rate AFE clock (fe_clk). The transmitter has
been designed such that the Tx FIFO pulls data as required to meet the ADC clock rate.
REV 1.13
Page 49 of 89
Confidential
(hex) R/W
Field
# of
Name
Bits Slice
sbSel
TTR
1F
R/W
TTR
1F
R/W
00 - Reserved
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W step500kHzSel
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
ttfSel
9:4
Selects the frequency of the test tones - see Table 21 for tfSel
selection table
TTR
1F
R/W
adLpbkEn
10
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
R/W
TTR
1F
TTR
1F
testToneEn
1:0
Description
Selects between 250 kHz and 500 kHz step size for the tone
generator
0 f=250 kHz to 5 Mhz in 250 kHz steps
1 f=500 kHz to 10 Mhz in 500 kHz steps
0 Loopback disabled
1 - Loopback enabled
digLpbkEn
11
txTdrRegsSel
12
REV 1.13
Page 50 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
TDR
20
R/W
Idac
10
9:0
TDR
20
R/W
Reserved
15:10
TDR
20
R/W
Qdac
10
Test Tone
Frequency
Selection
(ttfsel(5:0) Hex)
0x1
0x2
0x3
0x4
0x5
0x6
0x7
0x8
0x9
0xa
0xb
0xc
0xd
0xe
0xf
0x10
0x11
0x12
0x13
0x14
Output Frequency,
250 kHz step
Output Frequency
500 kHz step
250 kHz
500 kHz
750 kHz
1000 kHz
1250 kHz
1500 kHz
1750 kHz
2000 kHz
2250 kHz
2500 kHz
2750 kHz
3000 kHz
3250 kHz
3500 kHz
3750 kHz
4000 kHz
4250 kHz
4500 kHz
4750 kHz
5000 kHz
500 kHz
1000 kHz
1500 kHz
2000 kHz
2500 kHz
3000 kHz
3500 kHz
4000 kHz
4500 kHz
5000 kHz
5500 kHz
6000 kHz
6500 kHz
7000 kHz
7500 kHz
8000 kHz
8500 kHz
9000 kHz
9500 kHz
10000 kHz
REV 1.13
Page 51 of 89
Confidential
8 Receiver
8.1 Overview
The WMANY_Phy receiver takes sampled data from the AFE and then filters,
synchronizes, demodulates, decodes and descrambles the data according to the 802.16
specification. The main blocks in the transmitter are:
Receive Front End
Rx Analog Front End Interface
Automatic Gain Control (AGC) Wi-Lan Specific
Rx Decimation Filter
Frequency Correction
CP Removal
Synchronization and Automatic Frequency Control (AFC) Wi-Lan Specific
FFT
Timing Correction
Channel Decoder consisting of:
Channel Estimator
Deinterleaver
Depuncturer
Decoder: Viterbi Decoder
Reed-Solomon Decoder
Descrambler
A block diagram of the receiver is shown in Figure 17
REV 1.13
Page 52 of 89
Confidential
WMAN_PHY Receiver
Rx Channel
Decoder:
Rx Data
Rx Front End
Descrambler Depuncturer
Sync &
AFC
Chanel Est.
Rx Control
Decimation
Filter
AFE Rx
Interface
256-pt
FFT
Rx Status
Registers
Rx Control
Registers
Encoder
Deinterleaver
Timing
Corr.
Frequency
Corr.
AGC
REV 1.13
Page 53 of 89
Confidential
# of
Name
Word
Word
Name
Bits Slice
rx_cntl0
seqNum
3:0
start
11
14:4
rate
17:15
Description
11
28:18
preType
30:29
rx_cntl1
subChan
4:0
scramEn
scramInit
scramSeed
midType
15
2
21:7
23:22
rx_cntl2
clearTrack
24
Clears the timing and frequency tracking loops at the end of the burst.
intEn
25
searchWin
11
10:0
unlockAGC
11
adjustTime
12
Length of time in symbols from the start of the search before searchFailed
is asserted. Needed for contention slots
AGC is locked during a successful search. This bit will unlock the AGC at
the end of the burst
This bit enables adjustment of the frame timer during synchronization
REV 1.13
Page 54 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
RCR0
21
R/W
fftScale
3:0
RCR0
21
R/W
fftScalePre
7:4
RCR0
21
R/W
chnInterpEn
RCR0
RCR0
RCR0
21
21
21
R/W
R/W
R/W
feedFwdEn
RCR0
RCR0
RCR0
21
21
21
R/W
R/W
R/W
rxRst
10
RCR1
22
R/W
demapScale
5:0
RCR1
RCR1
22
22
R/W
R/W
demapK64
demapK16
10
10
RCR2
23
R/W
syncThresh
RCR2
23
R/W
syncMinPwr
15
RCR2
23
R/W
guard
RCR3
RCR3
RCR3
RCR3
RCR3
RCR3
24
24
24
24
24
24
R/W
R/W
R/W
R/W
R/W
R/W
timeEn
timeLoopA
timeLoopB
timeFactor
8
8
12
Description
REV 1.13
Page 55 of 89
Confidential
Register Addr
Name (hex) R/W
Field
Name
freqEn
# of
Bits Slice Description
RCR4
RCR4
RCR4
RCR4
25
25
25
25
R/W
R/W
R/W
R/W
P64FreqEn
RCR4
RCR4
RCR4
25
25
25
R/W
R/W
R/W
P128FreqEn
RCR4
RCR4
RCR4
25
25
25
R/W
R/W
R/W
freqFactor
RCR4
25
R/W
pilotAmplitude
RCR5
26
R/W
agcLockTime
RCR5
RCR5
RCR5
26
26
26
R/W
R/W
R/W
agcDelay
agcVal
agcOverrideEn
6
8
1
RCR5
26
R/W
agc6BitSel
RCR5
RCR5
RCR5
RCR5
RCR5
RCR5
RCR5
RCR5
26
26
26
26
26
26
26
26
R/W
agcAvgSel
R/W
R/W
R/W
R/W
R/W agcTableTestEn
R/W
R/W
RCR6
27
R/W
agcOffset
8:0 Value of the sync counter at which AGC is locked during a long
preamble search - <9.0> unsigned
14:9 Number of samples between AGC updates - <6.0> unsigned
22:15 AGC value to apply to AGC output - <8.0> unsigned
23 Overrides internally generated AGC output value and outputs
agcVal above
24 Selects 6-bit mode for AGC operation, otherwise 8-bit mode. The
attenuation is incremented in 1 dB steps for 6-bit mode and 1/2 dB
steps for 8-bit mode. The most significant bit of the AGC value is
not used in 6-bit mode so the range is reduced.
26:25 Sets the number of samples to average final agc value.
00 = no averaging
01 = average 2 samples
10 = average 4 samples
11 = reserved
27 Enables test mode where agc outputs attenuation table value.
0 = disabled
1 = enabled
7:0 AGC attenuation offset to apply after AGC lock - <8.0> signed.
REV 1.13
Page 56 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
RSR0
28
burstSeqNum
3:0
RSR0
28
attenuation
RSR0
28
syncFifoEmpty
12
Synchronization FIFO has not received any data from the ADC
RSR1
29
syncSeqNum
3:0
Sequence number of the last command that updated the sync status
registers (RSR1 - RSR4) and caused rxSyncDone interrupt
RSR1
29
searchFailed
RSR1
29
p128Time
13:5 Sync counter value of matched filter p128 hit <9.0> unsigned
RSR2
2A
power
29
RSR3
2B
phi64
15
RSR3
2B
mag64
15
RSR4
2C
phi128
15
RSR4
2C
mag128
15
RSR5
2D
pilotSeqNum
3:0
RSR5
2D
phiPilot
15
18:4 Angle of the weighted averages of the received pilots after channel
correction <3.12> signed
RSR6
2E
pilotError
20
RSR6
2E
maxCarrier
RSR6
2E
pilotShift
27:20 Index of the subcarrier with the maximum power for the symbol
directly following a long preamble
31:28 Shift value used in calculating pilot error. <4.0> unsigned
RSR7
2F
pilotPower
20
RSR8
30
berSeqNum
3:0
RSR8
30
ber
16
19:4 Bit Error Rate Indicates number of bit errors in the received packet
RSR8
30
rsSeqNum
RSR8
30
rsError
RSR9
31
p64Sample
8:0
RSR9
31
p64Symbol
11
19:9 Symbol in frame time when first P64 was detected. <11.0>
unsigned
Sequence number of the last command that updated the pilot status
registers (RSR5,RSR6) and caused rxPilotUpdate interrupt
Sample in frame time when first P64 was detected. <9.0> unsigned
REV 1.13
Page 57 of 89
Confidential
The AFE Rx interface provides the interface between the 10-bit I&Q data from the
ADCs and the AGC, Rx FIFO and Decimation filters. The control signals for the
ADCs i.e. adc_2s_cmp_sel, adc_out_en_n, adc_pd, bandgap_pd & vref_pd are set
through the MCR. The 10-bit in-phase and quadrature data, rx_I and rx_q, is fed directly
to the Rx FIFO where it is resynchronized to the phy_clk domain. After
resynchronization the I&Q data is sent directly to the AGC and then the decimation
filters.
fe_clk
Decimation
Filter
AGC
IADC
Rx FIFO
rx_i(9:0)
DO(9:0)
OMODE
OUTDIS
MCR
adc_2s_cmp_sel
adc_out_en_n
adc_pd
bandgap_pd
vref_pd
PDADC
PDBGR
PDVR
QADC
PDVR
PDBGR
PDADC
OUTDIS
OMODE
rx_q(9:0)
DO(9:0)
REV 1.13
Page 58 of 89
Confidential
8.3.2
AGC
8.3.2.1 Overview
Relevant Control Words
Rx_cntl0
unlockAGC
AGC is locked during a successful search. This bit will unlock the AGC at
the end of the burst Note, this function actually provided by the SYNC
circuit
agcLockTime
agcDelay
agcVal
agcOverrideEn
agc6BitSel
agcAvgSel
agcTableTestEn
agcOffset
Relevant Status Registers
RSR
attenuation
Value of the sync counter at which AGC is locked during a long preamble
search - <9.0> unsigned
Number of samples between AGC updates - <6.0> unsigned
AGC value to apply to AGC output - <8.0> unsigned
Overrides internally generated AGC output value and outputs agcVal above
Selects 6-bit mode for AGC operation, otherwise 8-bit mode. The
attenuation is incremented in 1 dB steps for 6-bit mode and 1/2 dB steps
for 8-bit mode. The msb and lsb of the AGC value are not used in 6-bit
mode so the range is reduced.
Sets the number of samples to average final agc value
00 no averaging
10 average2 samples
10 average 4 samples
11 reserved
Enables test mode where agc outputs attenuation table value.
AGC attenuation offset to apply after AGC lock - <8.0> signed.
Value of sync attenuation output
The AGC is implemented as a table based look up table and is designed to lock in on the
optimum gain during the long preamble sequence of the OFDM transmission. A system
level block diagram of the AGC is shown in Figure 19.
The AGC generates an internal 8/6-bit output, currentAtten which selects an attenuation
level for the I&Q input signals before the ADCs. The AGC output represents a range of
0 to 127 dB attenuation in dB steps in 8-bit mode and a range of 0 to 64 dB in 1 dB
steps in 6-bit mode. Note that in 6-bit mode, the msb and lsb of the 8-bit AGC output
word are set to 0 and should not be used. If the AGC value is less than zero, then it is set
to zero. If the internal AGC value is greater than 2^AGC_BITS-1 then the AGC value is set
to 2^AGC_BITS-1.
The internal 8-bit agc value is used to address an 256x10-bit agc translation RAM. This
RAM is used to translate the monotonic 8-bt agc value to a programmable 10-bit output
field. Each 8-bit AGC value is used address an individual memory location whose 10-bit
value is then read and place in a register to provide a 10-bit agc output. The use of a 10bit programmable output field allows the agc circuit to interface to different chipsets
which may have their gains distributed over several chips. Note that the agc translation
RAM is loaded through the preamble memory interface using the PMDR and PMCR
registers.
REV 1.13
Page 59 of 89
Confidential
fe_clk
AGC
IADC
Rx FIFO
rx_i(9:0)
MCR
DO(9:0)
rx_i
Attenuator
+ Filter
ADC
control
QADC
rx_q
rx_q(9:0)
Attenuator
+ Filter
DO(9:0)
agc_stb
currentAtten (7:0)
agcDelay
agcVal(7:0) RCR5
agcOverrideEn
agc6bitSel
AGC
Translation
Memory
agc(9:0)
SOC
AGC is unlocked at reset and at the end of a rx burst when an Rx control word
command has the unlock bit set.
AGC is locked agcLockTime samples after the first successful synchronization
(P64_Hit) to to a the P64 preamble. The maximum value of agcLockTime is 128
with the typical value being 64 samples.
While the AGC is unlocked the average power, P32, over 32 fe_clk samples is
compared to the 10 attenuation compare values. The index of the maximum
compare value of which the P32 is greater is used to adjust the AGC value from a
list of 11 values of attenuation.
Each AGC iteration requires agcDelay fe_clk clock cycles. This consists of 32
fixed cycles for performing the average power calculation and an additional
number of cycles to account for additional delays in the system. . The additional
delay is used to account for the following:
o Attenuator setting time, att_time
o ADC pipeline delay, adc_delay
o Internal pipeline delays, int_delay
The total number of fe_clk clock cycles available for AGC updates (agc_cycles)
is dictated by the shortest possible OFDM symbol and is:
agc_cycles = 2((G)*256 + *(64 + agcLockTime ) + 19
REV 1.13
Page 60 of 89
Confidential
Note that G is the cyclic prefix ratio and the 19 additional clock cycles in the
equation is due to the delay through the decimation filter as the SYNC block
which controls the AGC circuit resides after the decimation filter. For a worst
case situation where agcLockTime = 64 and G= 1/32, agc_cycles = 291.
The total number of agc iterations, agc_iter, is dependent on agcDelay and on agc_cycles
which is the total number of cycles available as follows:
agc_iter = round(agc_cycles/agcDelay);
A reference calculation is given below for the current ASIC implementation under the
wrost case scenario i.e. minimum cyclic prefix ratio:
att_time = 4 clock cycles
adc_delay = 7 clock cycles
int_delay = 5 clock cycles
agcDelay = 32 + 4 + 7 + 5 = 48
agc_iter = round(291/48) = 6
Therefore in the worst case a maximum of 6 agc iterations are possible.
A symbol timing diagram is provided in Figure 20 which shows the approximate timing
of the AGC estimation during the short preamble. In this case agcLockTime was set to
64.
AGC Locked
AGC Unlocked
CP
P64
P64_Hit
P64
P64
P64
CP
P128
P128
CP
Data 0
agcLockTime
Page 61 of 89
Confidential
Finally, it is also possible to provide an extra agc iteration which is the average of the last
0, 2 or 4 AGC outputs . This is controlled through the agcAvgSel bit in RCR5. For
instance if in normal operation (agcAvgSel =0) the agc operates with 7 iterations, in
averaging mode with agcAvgSel =1 (2 samples averaged) an 8th iteration is produced
whose value is the average of the last 2 outputs. This potentially provides a means of
smoothing the agc output in situations where variability in agc estimates is encountered.
8.3.2.2 AGC Algorithm Description
The algorithm utilized in the AGC circuit compares the power estimationvalue to a table
of power compare values. The power compare values in the phy are specified by writing
a series of registers as outlined in Table 34. Depending on the magnitude of the P16 value
compared to the power compare value (powerCompareVect), an attenuation estimate is
derived based on the previous attenuation estimate and the current power comparison
threshold . Note that the table of attenuation values (attenVect) is specified by writing
the AAR registers as described in Table 34 .
The basic AGC algorithm is outlined below:minAtten_ = 0;
maxAtten_ = (1<<AGC_BITS)-1;
if (AGC_LOCKED=0) {
if (P32 > powerCompareVect[0]) currentAtten_ += attenVect_[0];
else if (P32 > powerCompareVect [1]) currentAtten_ += attenVect_[1];
else if (P32 > powerCompareVect [2]) currentAtten_ += attenVect_[2];
else if (P32 > powerCompareVect [3]) currentAtten_ += attenVect_[3];
else if (P32 > powerCompareVect [4]) currentAtten_ += attenVect_[4];
else if (P32 > powerCompareVect [5]) currentAtten_ += attenVect_[5];
else if (P32 > powerCompareVect [6]) currentAtten_ += attenVect_[6];
else if (P32 > powerCompareVect [7]) currentAtten_ += attenVect_[7];
else if (P32 > powerCompareVect [8]) currentAtten_ += attenVect_[8];
else if (P32 > powerCompareVect [9]) currentAtten_ += attenVect_[9];
else currentAtten_ += attenVect_[10];
if (currentAtten_ < minAtten_)
currentAtten_ = minAtten_;
if (currentAtten_ > maxAtten_)
currentAtten_ = maxAtten_;
}
REV 1.13
Page 62 of 89
Confidential
REV 1.13
Page 63 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
APCR0
42
R/W
apc0
16
APCR0
42
R/W
apc1
16
APCR1
43
R/W
apc2
16
APCR1
43
R/W
apc3
16
APCR2
44
R/W
apc4
16
APCR2
44
R/W
apc5
16
APCR3
45
R/W
apc6
16
APCR3
45
R/W
apc7
16
APCR4
46
R/W
apc8
16
APCR4
46
R/W
apc9
16
APCR5
47
R/W
apc10
16
APCR5
47
R/W
apc11
16
AAR0
48
R/W
aac0
7:0
AAR0
48
R/W
aac1
AAR0
48
R/W
aac2
AAR0
48
R/W
aac3
AAR1
49
R/W
aac4
7:0
AAR1
49
R/W
aac5
AAR1
49
R/W
aac6
AAR1
49
R/W
aac7
AAR2
4A
R/W
aac8
AAR2
4A
R/W
aac9
AAR2
4A
R/W
aac10
AAR2
4A
R/W
aac11
AAR3
4B
R/W
aac12
7:0
7:0
Table 34: AGC Power Compare (APCR0-4) and AGC Attenuatior (AAR0-2) Register
Descriptions
8.3.2.3 AGC External Timing
The agc block provides an external 8/6-bit output which is used to control external
attenuators or variable gain amplifiers. An additional strobe signal, agc_stb is provided
REV 1.13
Page 64 of 89
Confidential
which allows the agc value to be clocked into an external device. A timing diagram is
shown in Figure 33. The strobe signal is active high, comes one phy_clock cycle after
the agc output is valid and has a duration of 3 phy_clock cycles.
phy_clk
agc(7:0)
agc_stb
REV 1.13
Page 65 of 89
Confidential
8.3.3
Decimation Filter
-20
-40
-60
)
B
d(
e
d
uti
n
g
a
M
-80
-100
-120
-140
-160
-180
0.1
0.2
0.3
0.4
0.5
0.6
Normalized Frequency ( rad/sample)
0.7
0.8
0.9
REV 1.13
Page 66 of 89
Confidential
clearTrack
Clears the timing and frequency tracking loops at the end of the burst. This
is needed for base station operation
timeEn
RCR3
RCR3
RCR4
timeLoopA
timeLoopB
freqEn
RCR4
freqFactor
RCR4
pilotAmplitude
8.4.1
phi64
mag64
phi128
mag128
Overview
The frequency correction block compensates for the remaining frequency offset error
after AFC correction using the external VCTCXO. A system block diagram of the
frequency correction block is shown in Figure 23. The pilot data from the demapper is
used to provide a phase error estimate to a timing loop filter by subtracting the actual
pilot amplitude from the expected pilot amplitude as specified by RCR4.pilotAmplitude.
The timing loop filter is a phase lock loop whose loop bandwidth is controlled by the
RCR3.timeLoopA,B parameters.
The timeLoopA,B parameters are calculated as
follows:
REV 1.13
Page 67 of 89
Confidential
Freq_Corr
ADC data
from AGC
Sync
Freq.
Correction
FFT
Tim_Corr
Ch_Est
Demapper
Coarse/fine
Freq. estimates
freqFactor
freqEn
phi64,
mag64
phi128,
mag128
Frequency Loop
Filter
Timing Loop
Filter
Phase Error
Estimation
Pilot data
pilotAmplitude
Cordic ATAN
timeEn
timeLoopA
timeLoopB
REV 1.13
Page 68 of 89
Confidential
preType
Rx_cntl2
searchWin
Rx_cntl0
unlockAGC
syncThresh
syncMinPwr
guard
Specifies the percentage of power that the matched filter has to achieve in
order to signal a synchronization hit <2.4> unsigned
Specifies the minimum power that the matched filter has to achieve in order
to signal a synchronization hit - <3.12> unsigned
Guard time inside of the cyclic prefix - <8.0> unsigned. Guard is the
number of samples of the CP which is included in the OFDM symbol sent
to the FFT
syncSeqNum
RSR1
RSR1
RSR2
RSR9
RSR9
searchFailed
p128Time
power
p64Sample
p64Symbol
8.5.1
Sequence number of the last command that updated the sync status
registers (RSR1 - RSR4) and caused rxSyncDone interrupt
Synchronization search failed
Sync counter value of matched filter p128 hit <9.0> unsigned
Average power over 256 samples of Preamble 128. <3.26> unsigned
Sample in frame time when first P64 was detected. <9.0> unsigned
Symbol in frame time when first P64 was detected. <11.0> unsigned
Overview
Timing Recovery, synchronization and AFC are performed in the SYNC block.
Synchronization and timing recovery establishes the symbol timing in the phy. AFC
involves estimation of the frequency offset which is used to modify the frequency of an
external VCTCXO for coarse frequency adjustment and is used internally for frequency
correction.
The SYNC block consists of the following subblocks:
Timing Recovery State Machine
Matched Filter
Correlator
Power Calculator
A block diagram of the SYNC block is shown in Figure 24.
REV 1.13
Page 69 of 89
Confidential
Timing
Recovery
State
Machine
Data In
Compute
Correlations
Freq. Estimates
(to Freq. Corr.)
Data Out
FFT Control
AGC Control
Status Registers
Compute
Power
P64CR0-7
Matched
Filter
P128CR0-7
Control Registers
Control Word
REV 1.13
Page 70 of 89
Confidential
The timing recovery state machine processes the information from the Compute Power
and Matched Filter blocks and provides timing and synchronization control for the rest of
the receiver. Specifically, the control of the upstream AGC and downstream FFT blocks
is provided by this block. In addition, various status registers and interrupts are updated
under the control of this state machine. The approximate sequencing for the various
timing recovery and control functions provided by the SYNC block is shown in Figure 25
for a typical OFDM symbol.
Unlock
AGC
Start of
Sync. Acq.
P64
P64
P64
P64
Coarse
Freq. Est.
CP
P128
P128
CP
Data0
Fine
Freq. Est.
8.5.2
A programmable matched filter is used in the detection of the P64 and P128 preamble
sequences. The coefficients of the filter are loaded through P64CR0-7 and P128CR0-7.
REV 1.13
Page 71 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
p64Coeff0
3:0
Description
P64CR0
32
R/W
P64CR0
32
R/W
P64CR0
32
R/W
P64CR0
32
R/W
p64Coeff1
P64CR0
32
R/W
P64Coeff2
P64CR0
32
R/W
P64Coeff3
P64CR0
32
R/W
P64Coeff4
P64CR0
32
R/W
P64Coeff5
P64CR0
32
R/W
P64Coeff6
P64CR0
32
R/W
P64Coeff7
P64CR1
33
R/W
p64Coeff8
3:0
P64CR1
33
R/W
p64Coeff9
7:4
P64CR1
33
R/W
p64Coeff10
P64CR1
33
R/W
p64Coeff11
P64CR1
33
R/W
p64Coeff12
P64CR1
33
R/W
p64Coeff13
P64CR1
33
R/W
p64Coeff14
P64CR1
33
R/W
P64Coeff15
P64CR2
34
R/W
p64Coeff16
3:0
P64CR2
34
R/W
p64Coeff17
7:4
P64CR2
34
R/W
p64Coeff18
P64CR2
34
R/W
p64Coeff19
P64CR2
34
R/W
p64Coeff20
P64CR2
34
R/W
p64Coeff21
P64CR2
34
R/W
p64Coeff22
P64CR2
34
R/W
P64Coeff23
P64CR3
35
R/W
p64Coeff24
3:0
P64CR3
35
R/W
p64Coeff25
7:4
P64CR3
35
R/W
p64Coeff26
P64CR3
35
R/W
p64Coeff27
P64CR3
35
R/W
p64Coeff28
P64CR3
35
R/W
p64Coeff29
P64CR3
35
R/W
p64Coeff30
P64CR3
35
R/W
P64Coeff31
REV 1.13
Page 72 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
P64CR4
36
R/W
p64Coeff32
3:0
P64CR4
36
R/W
p64Coeff33
P64CR4
36
R/W
p64Coeff34
7:4
P64CR4
36
R/W
p64Coeff35
P64CR4
36
P64CR4
36
R/W
p64Coeff36
R/W
p64Coeff37
P64CR4
36
R/W
p64Coeff38
P64CR4
36
R/W
P64Coeff39
P64CR5
37
R/W
p64Coeff40
3:0
P64CR5
37
R/W
p64Coeff41
7:4
P64CR5
37
R/W
p64Coeff42
11:8
P64CR5
37
R/W
p64Coeff43
P64CR5
37
R/W
p64Coeff44
P64CR5
37
R/W
p64Coeff45
P64CR5
37
R/W
p64Coeff46
P64CR5
37
R/W
P64Coeff47
P64CR6
38
R/W
p64Coeff48
3:0
P64CR6
38
R/W
p64Coeff49
7:4
P64CR6
38
R/W
p64Coeff50
11:8
P64CR6
38
R/W
p64Coeff51
P64CR6
38
R/W
p64Coeff52
P64CR6
38
R/W
p64Coeff53
P64CR6
38
R/W
p64Coeff54
P64CR6
38
R/W
P64Coeff55
P64CR7
39
R/W
p64Coeff56
3:0
P64CR7
39
R/W
p64Coeff57
7:4
P64CR7
39
R/W
p64Coeff58
11:8
P64CR7
39
R/W
p64Coeff59
P64CR7
39
R/W
p64Coeff60
P64CR7
39
R/W
p64Coeff61
P64CR7
39
R/W
p64Coeff62
P64CR7
39
R/W
p64Coeff63
REV 1.13
Page 73 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
p128Coeff0
3:0
Description
P128CR0
3A
R/W
P128CR0
3A
R/W
P128CR0
3A
R/W
P128CR0
3A
R/W
p128Coeff1
7:4
P128CR0
3A
R/W
P128Coeff2
P128CR0
3A
R/W
P128Coeff3
P128CR0
3A
R/W
P128Coeff4
P128CR0
3A
R/W
P128Coeff5
P128CR0
3A
R/W
P128Coeff6
P128CR0
3A
R/W
P128Coeff7
P128CR1
3B
R/W
p128Coeff8
P128CR1
3B
R/W
p128Coeff9
P128CR1
3B
R/W
p128Coeff10
P128CR1
3B
R/W
p128Coeff11
P128CR1
3B
R/W
p128Coeff12
P128CR1
3B
R/W
p128Coeff13
P128CR1
3B
R/W
p128Coeff14
P128CR1
3B
R/W
P128Coeff15
P128CR2
3C
R/W
p128Coeff16
P128CR2
3C
R/W
p128Coeff17
P128CR2
3C
R/W
p128Coeff18
P128CR2
3C
R/W
P128CR2
3C
P128CR2
3C
P128CR2
3C
R/W
p128Coeff22
P128CR2
3C
R/W
P128Coeff23
P128CR3
3D
R/W
p128Coeff24
3:0
P128CR3
3D
R/W
p128Coeff25
7:4
P128CR3
3D
R/W
p128Coeff26
P128CR3
3D
R/W
p128Coeff27
P128CR3
3D
R/W
p128Coeff28
P128CR3
3D
R/W
p128Coeff29
P128CR3
3D
R/W
p128Coeff30
P128CR3
3D
R/W
P128Coeff31
3:0
7:4
3:0
7:4
p128Coeff19
R/W
p128Coeff20
R/W
p128Coeff21
REV 1.13
Page 74 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
P128CR4
3E
R/W
p128Coeff32
3:0
P128CR4
3E
R/W
p128Coeff33
P128CR4
3E
R/W
p128Coeff34
7:4
P128CR4
3E
R/W
p128Coeff35
P128CR4
3E
P128CR4
3E
R/W
p128Coeff36
R/W
p128Coeff37
P128CR4
3E
R/W
p128Coeff38
P128CR4
3E
R/W
P128Coeff39
P128CR5
3F
R/W
p128Coeff40
3:0
P128CR5
3F
R/W
p128Coeff41
7:4
P128CR5
3F
R/W
p128Coeff42
11:8
P128CR5
3F
R/W
p128Coeff43
P128CR5
3F
R/W
p128Coeff44
P128CR5
3F
R/W
p128Coeff45
P128CR5
3F
R/W
p128Coeff46
P128CR5
3F
R/W
P128Coeff47
P128CR6
40
R/W
p128Coeff48
3:0
P128CR6
40
R/W
p128Coeff49
7:4
P128CR6
40
R/W
p128Coeff50
11:8
P128CR6
40
R/W
p128Coeff51
P128CR6
40
R/W
p128Coeff52
P128CR6
40
R/W
p128Coeff53
P128CR6
40
R/W
p128Coeff54
P128CR6
40
R/W
p128Coeff55
P128CR7
41
R/W
p128Coeff56
3:0
P128CR7
41
R/W
p128Coeff57
7:4
P128CR7
41
R/W
p128Coeff58
11:8
P128CR7
41
R/W
p128Coeff59
P128CR7
41
R/W
p128Coeff60
P128CR7
41
R/W
p128Coeff61
P128CR7
41
R/W
p128Coeff62
P128CR7
41
R/W
p128Coeff63
REV 1.13
Page 75 of 89
Confidential
8.6 FFT
Relevant Control Registers
RCR0
fftScale
fftScalePre
timeFactor
Timing correction compensates for the remaining timing offset error after AFC
correction. The algorithm operates on a per-sample basis, using freq as a reference base.
The incoming samples are rotated based on the received OFDM symbol count and the
subcarrier index. The block diagram of the timing correction block is shown in Figure
26.
FFT data
R(k)
Cordic
Rotator
freq
Ktime factor
Timing Offset
Compensated Data
REV 1.13
Page 76 of 89
Confidential
chnInterpEn
The channel estimator uses apriori knowledge of what the transmitted preamble is to
create an estimate of the channel. The channel estimator algorithm consists of two parts,
an initial estimation based on the received preamble, and a filtering (interpolation)
computation to fill in subcarriers that do not have any transmitted power. The channel
estimate is only performed for transmitted subcarriers, these are the subcarriers in the
range 100 to 100.
REV 1.13
Page 77 of 89
Confidential
8.9
Channel Decoder
8.9.1
Block Description
The main sub-blocks of the channel decoder are shown below in Figure 27.
De-Interleaver /
De-Puncturer
Demapper
Viterbi
Decoder
RS
Decoder
Descrambler
demapScale
demapK64
demapK16
Demapper soft bit scaling factor - <3.3> unsigned value which is used for
prescaling the soft bits.
Demapper slicing point for QAM64 - <1.9> signed
Demapper slicing point for QAM16 - <1.9> signed
The demapper block is responsible for channel compensation and soft data generation.
The soft data are generated using a Log Likelihood Ratio (LLR) algorithm. The
functional block diagram of the demapper sub-block is show in Figure 28. Note that the
actual implementation of the demapper integrates several functional blocks into one
algorithm which optimizes hardware usage.
Input Data
Channel Estimate
Channel Power
Rotation
Compensated
Scaling
Data
Slicer
Quantizer
<<
demapScale
demapK64,K16
REV 1.13
Page 78 of 89
Confidential
3) The compensated data is sliced using the constellation selected by the modulation
rate. The channel power is used in the slicing operation to produce log likelihood
ratio soft value data.
4) A left shift based on the scale input using saturation is performed.
5) A bit-reduction quantization using rounding is performed to reduce the soft values
from the shifter to the specified softbit precision.
6) The soft data values of softbit width are passed to the de-interleaver for further
processing.
Field Name
Register Value
(Decimal quantized)
demapScale
demapK64
demapK16
1.5
0.1640625
0.16796875
Bit X
De-Interleaver
De-Puncturer
Bit Y
REV 1.13
Page 79 of 89
Confidential
Bit A
Bit B
Bit Output
Viterbi
Decoder
BER
REV 1.13
Page 80 of 89
Confidential
BIT_IN
BIT_OUT
Descrambler
BIT_VALID
BIT_OUT_VALID
REV 1.13
Page 81 of 89
Confidential
REV 1.13
Page 82 of 89
Confidential
(hex) R/W
Field
# of
Name
Bits Slice
rxAvgEn
Description
RACR
4C
R/W
RACR
4C
R/W
RACR
4C
R/W
RACR
4C
rxAvgClr
Clears the I&Q averages when set to 1. The bit is automatically set
to 0 after the clear operation
RACR
4C
R/W
rxSamples
4:2
RACR
4C
R/W
0 Disable
1 - Enable
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
Description
RAVGR
4D
rxAvgQ
16
RAVGR
4D
rxAvgI
16
REV 1.13
Page 83 of 89
Confidential
Register Addr
Name
(hex) R/W
Field
# of
Name
Bits Slice
sedEn
SEDR
4E
R/W
SEDR
4E
R/W
0 = disabled
SEDR
4E
R/W
1 = enabled
SEDR
4E
R/W
SEDR
4E
R/W
00 = phy_clk/2
SEDR
4E
R/W
01 = phy_clk/4
SEDR
4E
R/W
10 = phy_clk/6
SEDR
4E
R/W
11 = phy_clk/8
SEDR
4E
R/W
ctrlField
6:3
SEDR
4E
R/W
overrideEn
SEDR
4E
R/W
SEDR
4E
R/W
SEDR
4E
R/W
clkSel
Description
2:1
overrideData
12
phy_clk/2,4, 6 or 8
Serial data, 16-bits per sample consisting of 4 control bits and 12
data bits
Frame synchronization signal for serial data
sed_fs
The 4-bit control field is provided by SEDR.ctrlField and this corresponds to the 4 msbs
(D15:12) of the serial output. Depending on the mode of operation the 12-bit data field is
provided either by the magnitude/phase estimate output circuitry or through
SEDR.overrideData The SED output is enabled through SEDR.sedEn and the override
mode is controlled by SEDR.overrideEn.
sed_clk
sed_data
D15
D14
D13,..,D2
D1
D0
XX
D0
D1
D13,..,D2
D1
D0
XX
D15
D14
sed_fs
REV 1.13
Page 84 of 89
Confidential
The format of the magnitude and phase output is shown in Figure 34. When the SED
function is enabled by setting SEDR.sedEn = 1 a repeating output of the magnitude and
phase estimate for the current burst is generated. The magnitude and phase fields are
comprised of 201 samples which corresponds to the 201 frequency carriers. The most
negative frequency carrier is sent out first in time. Each pair of magnitude and phase
fields is delineated by a maximum positive full-scale then a maximum negative full-scale
pulse. Magnitude information is normalized to a 40 dB range with 0 dB being set to midrail and 20 dB being set to the half negative full-scale rail. The magnitude/phase output
boundary is delineated by half-scale negative pulse followed by a half-scale negative
pulse. Phase information is normalized to a +/- 180 degree range over half the full-scale
range with 0 degrees corresponding to the mid-rail.
half positive
full-scale
180 deg,
20 dB
max positive
full-scale
Channel Magnitude
0 deg,
0 dB
-20 dB
max negative
full-scal
Channel Phase
-180 deg,
half negative
full-scale
Figure 34: SED Channel Estimate Magnitude & Phase Timing Diagram
REV 1.13
Page 85 of 89
Confidential
REV 1.13
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0, 1, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, 1, 0, 0, 0,
0, -1, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, -1, 0, 0, 0,
0, -1, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, -1, 0, 0, 0,
0, 1, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, 1, 0, 0, 0,
0, 1, 0, 0, 0, -1, 0, 0, 0,
0, 1, 0, 0, 0, -1, 0, 0, 0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0, -1,
0, -1,
0, -1,
0, 1,
0, 1,
0, -1,
0, 0,
0, 0,
0, 0,
0, 0,
0, -1,
0, 1,
0, 1,
0, -1,
0, 1,
0, 1,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0, 1, 0, 0, 0,
0, 1, 0, 0, 0,
0, 1, 0, 0, 0,
0, -1, 0, 0, 0,
0, -1, 0, 0, 0,
0, -1, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 1, 0, 0, 0,
0, 1, 0, 0, 0,
0, -1, 0, 0, 0,
0, 1, 0, 0, 0,
0, -1, 0, 0, 0,
0, 1, 0, 0, 0,
0, -1, 0, 0, 0,
Page 86 of 89
Confidential
REV 1.13
Page 87 of 89
Confidential
REV 1.13
Normalized
Integer
0.5
0.316376
0
16384
10367
0
Page 88 of 89
Confidential
C16,C22
C15,C23
C14,C24
C13,C25
C12,C26
C11,C27
C10,C28
C9,C29
C8,C30
C7,C31
C6,C32
C5,C33
C4,C34
C3,C35
C2,C36
C1,C37
C0,C38
REV 1.13
-0.1001
0
0.054199
0
-0.03296
0
0.020538
0
-0.0127
0
0.008324
0
-0.00391
0
0.001831
0
-0.00061
-3280
0
1776
0
-1080
0
673
0
-416
0
240
0
-128
0
60
0
-20
Page 89 of 89