3. O-RAN Intel® FPGA IP Design Example Functional Description
Signal | Direction | Comments |
---|---|---|
clk100 | Input | Input clock for reconfiguration. For Intel® Arria® 10 designs, a 156.25 MHz oscillator on the board drives this clock. For Intel® Agilex™ and Intel® Stratix® 10 designs, a 100 MHz oscillator on the board drives this clock. |
mgmt_reset_n | Input | Input reset for the Nios® II system. |
clk_ref | Input | For Intel® Arria® 10 designs, a 322.265625 MHz clock input for the Transceiver ATX PLL and 1G/10GbE and 10GBase-KR PHY IP . Connect to pll_refclk0[0]in the Transceiver ATX PLL and rx_cdr_ref_clk_10g[0] in the 1G/10GbE and 10GBase-KR PHY IP. For Intel® Agilex™ F-tile, Intel® Agilex™ E-tile, and Intel® Stratix® 10 E-tile designs, 156.25 MHz clock input for the E-tile Ethernet Hard IP core. Connect to i_clk_ref[0] in the Ethernet Hard IP. For Intel® Stratix® 10 H-tile designs, a 322.265625 MHz clock input for the Transceiver ATX PLL and 25G Ethernet IP. Connect to pll_refclk0[0]in the Transceiver ATX PLL and clk_ref[0] in 25G Ethernet IP. |
tod_sync_sampling_clk | Input | For Intel® Arria® 10 designs, a 250 MHz clock input for TOD subsystem. |
tx_serial | Output | Transmitter serial data. Supports up to four channels. |
rx_serial | Input | Receiver serial data. Supports up to four channels. |
O-RAN IP
The O-RAN IP receives and transmits data at the transmitter and receiver application interfaces (the traffic components instantiated within the test wrapper).
eCPRI IP
The eCPRI IP receives and transmits data at the Avalon® streaming source and sink interfaces (from the O-RAN transmitter, and receiver transport interfaces) and the external source and sink interfaces (the external traffic components instantiated within the test wrapper). The eCPRI IP prioritizes the data for transmission to the Ethernet IP.
eCPRI IOPLL
For design examples targetting Intel® Stratix® 10 and Intel® Agilex™ devices only, the eCPRI IOPLL generates the clock output of 390.625 MHz to feed into the transmitter and receiver data path of the eCPRI IP, the O-RAN IP, and the traffic generator and checker components.
PTP IOPLL
For Intel® Arria® 10 devices the PTP IOPLL generates the 312.5 MHz and 156.25 MHz clock inputs for the Low Latency Ethernet 10G MAC, eCPRI, O-RAN, 1G/10GbE and 10GBase-KR PHY IPs.
For Intel® Stratix® 10 devices, the PTP IOPLL generates the latency measurement input reference clock for the 25G Ethernet Intel FPGA IP and the sampling clock for TOD subsystem. For the 25G Ethernet Intel FPGA IP with the IEEE 1588v2 feature, Intel recommends that you set the frequency of this clock to 156.25 MHz.
For more information, refer to the 25G Ethernet Intel Stratix 10 FPGA IP Design Example User Guide and the Intel Stratix 10 H-Tile Transceiver PHY User Guide.
Nios II subsystem
The Nios II subsystem consists of the:
- Avalon memory-mapped bridge, which allows Avalon memory-mapped data arbitration between traffic from the Nios II processor and the test wrapper
- A Nios II processor
- An Avalon memory-mapped address decoder
For design examples targetting Intel® Stratix® 10 and Intel® Agilex™ E-tile devices only, the Nios II processor performs the data rate switching based on the output from the test wrapper's rate_switch register value. The Nios II processor programs the necessary register after the command from the test wrapper. Design examples targetting Intel® Arria® 10 devices do not support data rate switching.
Ethernet IP
The design example instantiates one of the following Ethernet IP to interface with the eCPRI IP:
- Low Latency Ethernet 10G MAC IP and 1G/10GbE and 10GBase-KR PHY IP ( Intel® Arria® 10 designs)
- Ethernet Hard IP ( Intel® Stratix® 10 E-tile and Intel® Agilex™ designs)
- 25G Ethernet Stratix 10 IP ( Intel® Stratix® 10 H-tile designs)
TOD Subsystem
The time of day (TOD) subsystem consists of two IEEE 1588 TOD modules for both transmitter and receiver, and one IEEE 1588 TOD synchronizer module.
System Console Access through JTAG Interface
The system console provides an interface for you to debug and monitor the status of the IP and the traffic generators and checkers.
Test Wrapper
The test wrapper consists of numerous traffic generators and checkers that generate different types of data packets to the O-RAN IP and the eCPRI IP.
Test Wrapper O-RAN IP Data Packets
The traffic generator supports O-RAN packets to the Avalon streaming source and sink interfaces of the O-RAN IP with configurations for C-plane, C-plane extension, and U-plane.
Parameter | Description |
---|---|
rtcid seqid |
Transport header fixed parameter value. |
dataDirection Filterindex |
Common Header fixed parameter value. |
frameId | Fixed initial value (configured with parameter). |
subframeId | Fixed initial value (configured with parameter). |
slotId | Fixed initial value (configured with parameter). |
symbolId | Fixed initial value (configured with parameter). |
NumberofSections |
6 for Sectiontype. 1, 2 for Sectiontype 3. |
Sectiontype |
1, 3. |
Timeoffset |
Fixed parameter value. |
frameStructure |
Fixed parameter value. |
cpLength |
Fixed parameter value. |
udCompHdr |
Applicable only when compression is enabled: udCompMeth = 0001 or 0011, and udIqWidth = 1000 or 1100 |
sectionId | Section header fixed parameter value. |
Sectiontype |
Section extension. |
ExtType | 3 (DL precoding). |
Rb | Fixed parameter value. |
StartPrb | Fixed parameter value. |
numPrb | Fixed parameter value. |
reMask
|
Fixed parameter value. |
numSymbol |
Fixed parameter value. |
Ef |
0 for Sectiontype 1, 1 for Sectiontype 3. |
frequencyOffset |
Fixed parameter value. |
Parameter | Description |
---|---|
NumberofSections | 2. |
ExtType | 3 (DL Precoding). |
Payload Size | 32 bytes (16 bytes for each section). |
Parameter | Description |
---|---|
dataDirection Filterindex |
Common header fixed parameter value. |
frameId | Fixed initial counter value (configured from parameter). |
subframeId | Fixed initial counter value (configured from parameter). |
slotId | Fixed initial counter value (configured from parameter). |
symbolId | Fixed initial counter value (configured from parameter). |
udCompHdr | Applicable only when compression is enabled. udCompMeth = 0001 or 0011 and udIqWidth = 1000 or 1100 |
sectionId | Section header fixed parameter value. |
Rb | Fixed parameter value. |
StartPrb | Fixed parameter value. |
numPrb | Fixed parameter value. |
ENABLE_COMPRESSION1 3 | ENABLE_CPLANE2 | ENABLE_UPLANE | udCompMeth 3 | udIqWidth3 | C_Sectiontype4 |
---|---|---|---|---|---|
1 | 1 | 0 | 0,1,3 | 8,12,16 | 1,3 |
1 | 1 | 1 | 1,3 | 8,12 | 1,3 |
0 | 0 | 1 | 0 | 16 | 1,3 |
0 | 1 | 1 | 0 | 16 | 1,3 |
0 | 1 | 0 | 0 | 16 | 1,3 |
Test Wrapper ECPRI IP IP Data Packets
For PTP synchronization packets and non-PTP miscellaneous packets to the external source and sink interfaces:
- External PTP packets:
- Static Ethernet header generation with predefined parameters: EtherType = 0x88F7, or Message Type = Opcode 0 (sync), or PTP version = 0
- Predefined pattern mode generation with interpacket gap of two cycles and payload size of 57 bytes for each packet.
- 128 packets generate every second.
- CSR configurable to run either non-continuous or continuous.
- Transmitter or receiver packet statistic status available via CSR.
- External non-PTP miscellaneous packets:
- Static Ethernet header generation with predefined parameters: EtherType = 0x8100 (non-PTP)
- PRBS pattern mode generation with interpacket gap of two cycles and payload size of 128 bytes for each packet.
- CSR configurable to run either non-continuous or continuous.
- Transmitter or receiver packet statistic status available via CSR.
Design Example Address Mapping
Address | Target |
---|---|
0x20100000 – 0x201fffff 5 | IOPLL reconfiguration Avalon memory-mapped register. |
0x20200000 – 0x203fffff | Ethernet MAC Avalon memory-mapped register. |
0x20400000 – 0x205fffff | Ethernet MAC Native PHY Avalon memory-mapped register.. |
0x20600000 – 0x207fffff 5 | Native PHY RSFEC Avalon memory-mapped register. |
0x40000000 – 0x5fffffff | eCPRI IP Avalon memory-mapped register. |
0x80000000 – 0x9fffffff | Design example test generator and verifier Avalon memory-mapped register. |
Address | Target |
---|---|
0x00100000 – 0x001fffff | IOPLL Re-configuration Avalon memory-mapped register |
0x00200000 – 0x003fffff | Ethernet MAC Avalon memory-mapped register |
0x00400000 – 0x005fffff | Ethernet MAC Native PHY Avalon memory-mapped register. |
0x00600000 – 0x007fffff | Native PHY Reed-Solomon FEC Avalon memory-mapped register. |
Access the Ethernet MAC and the Ethernet MAC Native PHY Avalon memory-mapped register using word offset instead of byte offset.
For more information on the Ethernet MAC, Ethernet MAC Native PHY Avalon memory-mapped, and eCPRI IP Avalon memory-mapped registers, refer to the respective user guides.
Word Offset | Description | Default | Attribute |
---|---|---|---|
0x0 | Start send data
|
0x0 | RW |
0x1 | Continuous packet enable | 0x0 | RW |
0x2 | Clear error | 0x0 | RW |
0x3 6 | Rate switch
You must set bit 0 and poll until bit 0 is clear for rate switching |
E-tile: 0x80
Non E-tile: 0x0 |
RW |
0x4 6 | Rate switch done
|
0x0 | RO |
0x5 | System configuration status
|
0x0 | RO |
0x6 - 0x1F | Reserved | 0x0 | RO |
0x20 | eCPRI error interrupt | 0x0 | RO |
0x21 | External packets error | 0x0 | RO |
0x22 | External PTP packets transmitter SOP count | 0x0 | RO |
0x23 | External PTP packets transmitter EOP count | 0x0 | RO |
0x24 | External misc packets transmitter SOP count | 0x0 | RO |
0x25 | External misc packets transmitter EOP count | 0x0 | RO |
0x26 | External receiver packets SOP count | 0x0 | RO |
0x27 | External receiver packets EOP count | 0x0 | RO |
0x28 | External error count | 0x0 | RO |
0x29 – 0x2C | Reserved | 0x0 | RO |
0x2D | External PTP timestamp fingerprint error Count | 0x0 | RO |
0x2E | External PTP timestamp fingerprint error | 0x0 | RO |
0x2F | External receiver error status | 0x0 | RO |
0x30 – 0x53 | Reserved | 0x0 | RO |
0x54 | O-RAN error interrupt | 0x0 | RO |
0x55 | Avalon streaming receiver U-plane error status
|
0x0 | RO |
0x56 | Avalon streaming receiver C-plane error status
|
0x0 | RO |
0x57 | Avalon streaming receiver C-plane extension error status Bit 0: Avalon streaming receiverx C-plane extension error status |
0x0 | RO |
0x58 | C-plane Checker Errors | 0x0 | RO |
0x59 | C-plane Checker Errors | 0x0 | RO |
0x60 | Transmitter C-plane SOP Count | 0x0 | RO |
0x61 | Transmitter C-plane EOP Count | 0x0 | RO |
0x62 | Receiver C-plane SOP Count | 0x0 | RO |
0x63 | Receiver C-plane EOP Count | 0x0 | RO |
0x64 | Total C-plane Error Count | 0x0 | RO |
0x65 | C-plane Extension Checker Errors | 0x0 | RO |
0x66 | Transmitter C-plane extension SOP count | 0x0 | RO |
0x67 | Transmitter C-plane extension EOP Count | 0x0 | RO |
0x68 | Receiver C-plane extension SOP Count | 0x0 | RO |
0x69 | Receiver C-plane extension EOP count | 0x0 | RO |
0x70 | Transmitter C-plane extension error count | 0x0 | RO |
0x71 | Transmitter U-plane SOP count | 0x0 | RO |
0x72 | Transmitter U-plane EOP count | 0x0 | RO |
0x73 | U-plane checker errors | 0x0 | RO |
0x74 | Receiver U-plane SOP count | 0x0 | RO |
0x75 | Receiver U-plane EOP count | 0x0 | RO |
0x76 | Total U-plane error count | 0x0 | RO |
- ENABLE_CPLANE = 0
- ENABLE_COMPRESSION = 0
- udCompMeth = 0
- udIqWidth = 16
- For C_Sectiontype = 1, the example design only supports C_NumberofSections = 6.
- For C_Sectiontype = 3, the example design only supports C_NumberofSections = 2.