O-RAN IP User Guide

ID 683238
Date 5/15/2025
Public

3. O-RAN IP Functional Description

The O-RAN IP comprises compression and decompression, mapper and demapper.
Figure 6. O-RAN IP Block Diagram

Mapper

The mapper includes section and common header mapping blocks. The common header consists of a time reference for each packet. The common header format is the same for C-plane and U-plane messages.

Figure 7. Scheduling control and user data transfer procedure The IP transmits C-plane and U-plane messages at different times.

C-plane and U-plane messages have the same header format and different transmission time. The IP multiplexes one common header mapper instantiation for mapping both C-plane and U-plane messages. The IP stores information elements (IEs) related to common header and Rtcid ID in a FIFO buffer to bypass section mapper.

Section Mapper

The section format is different for each section type in C-plane and U-plane messages. The IP instantiates a separate control and user mapper to interface with the client. A simple arbiter multiplexes the control and user mapper output for transmission window monitoring and common header mapping.

Dynamic and Static Numerology

You can select Static or Dynamic Numerology. The parameter Enable 30 kHz subcarrier spacing is deprecated, but not removed to ensure compatibility with previous IP versions. For static numerology, set the SCS value before data transfer and do not change the SCS frequency during run time.

For dynamic numerology, set ext_scs_sel to specify the SCS for TX. The C-plane Section Type 3 message specifies the SCS for RX extracted from the framestructure field. The IP processes any SCS value less than 15 kHz as 15kHz SCS according to O-RAN specification 7.2.2.

Table 8.   framestructure bit
0 (MSB) 1 2 3 4 5 6 7 (LSB)
FFT Size

SCS:

  • 0000b 15 kHz
  • 0001b 30 kHz
  • 0010b 60 kHz
  • 0011b 120 kHz
  • 0100b 240 kHz
  • 0101b to 1111b defaults to 15 kHz

The symbol duration is based on the subcarrier spacing of the packet. The IP adds cyclic prefix duration to the symbol duration calculation to ensure the 14 symbols duration rolls back to 0 every 500 us (non 15 kHz SCS) and 1ms (15kHz SCS). This cyclic prefix duration avoids introducing error rates in each symbol accumulated over the time.

Table 9.  Symbol Duration
Numerology (µ) SCS (kHz) Symbol Duration (µs) Slot Duration (µs)
0 15 66.67 1000
1 30 33.33 500
2 60 16.67 250
3 120 8.33 125
4 240 4.17 62.5

The IP bases the numerology for slotId on the highest possible numerology that the IP supports.

For each channel (based on PC_ID), the IP stores the specified SCS value from section type 3 message. Subsequent U-Plane messages to the same channel (PC_ID) use the stored SCS value. The default SCS value is 15k Hz for a channel.

The maximum number of channels for dynamic numerology is 64. Configure the 64 channels by setting the upper six bits of PC_ID

The maximum number of eAxC ID (channels) supported for Dynamic Numerology is 64. You derive these eAxC IDs from sink_rtc_id[15:10] signal through the transport interface for C-plane messages.

For U-plane message, derive the eAxC ID from the sink_pc_id[15:10] signal throgh transport interface for U plane Message

For more information, refer to the O-RAN specification section 7.2.3.3 Slot indexing with mixed numerologies.

RX Path

To set the SCS for a particular eAxC ID, send the type 3 C-plane message. The framestructure field in type3 message contains the information for the SCS.

All the other C-plane message or U-plane message with same eAxC ID follows the SCS set up type3 C-plane message with same eAxC ID

For eAxC ID with no type 3 C-plane message . The SCS defaults to 15 kHz

For invalid SCS values. the SCS defaults to 15 kHz

TX Path

Drive the ext_scs_sel signal tothe following values between SOP and EOP to select the SCS for Dynamic Numerology.

  • 4'b0000 for 15 kHz
  • 4'b0001 for 30 kHz
  • 4'b0010 for 60 kHz
  • 4'b0011 for 120 kHz
  • 4'b0100 for 240 kHz

For sending Long Prach packets with 1.25 kHz set ext_scs_sel = 4'b1100 and 5 kHz set ext_scs_sel = 4'b1110.

For bypass SRS packets set ext_scs_sel = 4'b1011

By default, the TX SCS for dynamic numerology is set to 15 kHz.

For Invalid values SCS defaults to 15 kHz

Transmission Window

The O-RAN IP transmission window supports the processing of Long PRACH, Short PRACH, SRS, and PUSCH U-plane data packets using the ext_scs_sel application interface input signal.

You should send long PRACH data packets using the SCS channel for 1.25 kHz or 5 kHz frequencies. You should send short PRACH and PUSCH data packets using the standard SCS channel. To bypass the SRS packets from transmission window monitoring, drive the ext_scs_sel signal with the value 4'b1011.

Table 10.  SCS Channels
ext_scs_sel[3:0] SCS Channel Window Monitor Registers

4'b0000

Short PRACH or PUSCH (15 kHz dynamic numerology) csr_ta3_min_up_ta3_min_up csr_ta3_max_up_ta3_max_up

4'b0001

Short PRACH or PUSCH (30 kHz dynamic numerology) csr_ta3_min_up_ta3_min_up csr_ta3_max_up_ta3_max_up

4'b0010

Short PRACH or PUSCH (60 kHz dynamic numerology)

csr_ta3_min_up_ta3_min_upcsr_ta3_max_up_ta3_max_up

4'b0011

Short PRACH or PUSCH (120 kHz dynamic numerology)

csr_ta3_min_up_ta3_min_upcsr_ta3_max_up_ta3_max_up
4'b0100

Short PRACH or PUSCH (240 kHz dynamic numerology)

csr_ta3_min_up_ta3_min_upcsr_ta3_max_up_ta3_max_up
4'b1100 Long PRACH (1.25 kHz dynamic and static) csr_ta3_min_up_1p25khz_ta3_min_up_1p25khz, csr_ta3_max_up_1p25khz_ta3_max_up_1p25khz
4'b1110 Long PRACH (5 kHz dynamic and static) csr_ta3_min_up_5khz_ta3_min_up_5khz, csr_ta3_max_up_5khz_ta3_max_up_5khz
Other Short PRACH or PUSCH csr_ta3_min_up_ta3_min_up, csr_ta3_max_up_ta3_max_up
4'b1011 SRS The O-RAN IP bypasses SRS packets from transmission window monitor.

You must perform C-plane and U-plane coupling at the system level outside of O-RAN IP and provide the desired value of ext_scs_sel to apply the SCS frequency accordingly. The IP uses corresponding window monitor registers for each SCS channel transmission window processing.

When sending long PRACH data packets, you must ensure tx_u_symbolid value is 0 for correct air time calculation.

Figure 8. Transmission Window Monitoring ensures the incoming packets fall under current time of day (TOD), if not the IP drops the current packet. Transmission and reception window checking starts when you assert packet's SOP and VALID. The O-RAN Design Example does not support window monitoring.

Common Header Mapper

The common header mapper appends the following fields to the start of every packet from the section mapper:

  • dataDirection
  • payloadVersion
  • filterIndex
  • frameId
  • subframeId
  • slotId
  • symbolId

This block includes a dispatcher FSM to apply backpressure during insertion of header fields. The block also includes an output FIFO buffer to stream output data with zero or three cycle readyLatency.

Common Header Demapper

The common header demapper demaps the radio application headers from the incoming eCPRI packet and forwards the O-RAN payloads to reception window monitor. This demapper is common for both U-plane and C-plane packets. For every SOP, the IP takes out the MSB nibble and decodes it as a common header. The IP appends the remaining LSB nibble with next clock cycle data and passes it to the next module.

Reception Window Monitoring

The window monitor monitors that the incoming packets fall under current time of day (TOD), if not it drops the current packet. The reception window monitoring shares the same module with the transmission window monitoring. They use different window thresholds, which you program through t2a registers.

Figure 9. Reception Window The O-RAN Design Example does not support window monitoring.

Compression and Decompression

A preprocessing block-based bit shift block generates the optimum bit-shifts for a resource block of 12 resource elements (REs). The block reduces the quantization noise, especially for low-amplitude samples. Hence, it reduces the error vector magnitude (EVM) that compression introduces. The compression algorithm is almost independent of the power value. Assuming the complex input samples is x = x1 + jxQ, the maximum absolute value of the real and imaginary components for the resource block is:

The maximum value of the resource block n is:

Having the maximum absolute value for the resource block, the following equation determines the left shift value assigned to that resource block:

Where bitWidth is the input bit width.

The IP supports compression ratios of 8, 9, 10, 11, 12, 13, 14, 15, 16.

For a compression ratio of 16 (udCompParam field = 0, according to the O-RAN WG specification), the IP does not perform compression or decompression.

Mu-Law Compression and Decompression

The algorithm uses Mu-law companding technique, which speech compression widely uses. This technique passes the input uncompressed signal, x, through a compressor with function, f(x), before rounding and bit-truncation. The technique sends compressed data, y, over the interface. The received data passes through an expanding function (which is the inverse of the compressor, F-1(y). The technique reproduces the uncompressed data with minimal quantization error.

Equation 1. Compressor and decompressor functions

The Mu-law IQ compression algorithm follows the O-RAN specification.

Digital Power Scaling

IQ power level in dB full scale (dBFS) is a logarithmic representation of the power level for an IQ sample carried over the digital interface. IQ power level in dBFS is proportional to logarithm of I²+Q²:

IQ power level [dBFS] = 10·log10( I²+Q² ) - 10·log10(FS)

= 10∙log10 (I²+Q² ) - 10∙log10(FS 0 × 2-FS_Offset )

where:

  • I is the in-phase portion of a received constellation point;
  • Q is the quadrature portion of a received constellation point;
  • FS is the full scale (maximum) permitted value of I or Q based on their digital representations;
  • FS_Offset is an M-plane parameter (value 0 if this parameter is not supported by O-RU or not set by O-DU);
  • FS 0 = max(I²) = max(Q²) = max(I²+Q²) with max over all IQ values that can be represented by IQ data format in U-plane message.

The actual IQ values that may occur in a U-plane message are restricted by

I²+Q² ≤ FS = FS 0 ×∙ 2(-FS_Offset)

For frequency domain IQ data, 0 dBFS is the maximum power level that one subcarrier can carry over. The smallest non-zero IQ power level is defined by the interface resolution.

O-RU normalizes any received DL value to its internal representation of full scale so that a 0 dBFS can be properly processed.

Example 1:

FS_Offset = 0

I = min I, Q = 0

With 9-bit mantissa 2's complement + 4-bit exponent compression: min I = -256 × 215 = -223

FS 0 = 246, FS = FS 0 2-FS_Offset = 246

0 dBFS is equivalnet to the average(I²+Q²) = 246

Interface resolution is the equivalent to 1/(246), which is the equivalent to -138.47 dBFS

Example 2:

FS_Offset=10

I=min I, Q=0

With 14-bit mantissa 2's complement + 4-bit exponent compression: min I = -213 × 215 = -228, which is the erquivalent to

FS 0 = 256, FS = FS 0 × 2-FS_Offset = 256-10 = 246

0 dBFS is the erquivalent to average(I²+Q²) = 246

Interface resolution is the erquivalent to 1/(246) is the erquivalent to -138.47 dBFS

Digital power scaling is supported for block floating point compression and decompression. You can set the FS Offset values through the IP registers. The FS Offset values can be from 0 to 15. The decompression and compression values are scaled value of square root FS Offset for decompression and compression.

Table 11.  Decompression and Compression Values for different FS OFFSET
FS OFFSET Decompression value Compression value
0 128 32,768
1 181 23,170
2 256 16,384
3 362 11,585
4 512 8,192
5 724 5,792
6 1,024 4,096
7 1,448 2,896
8 2,048 2,048
9 2,896 1,448
10 4,096 1,024
11 ,5793 724
12 8,192 512
13 11,585 362
14 16,384 256
15 23,170 181