Showing results for 
Search instead for 
Did you mean: 
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.

100Gbps Ethernet CAUI-4 CFP2 Reference Design

100Gbps Ethernet CAUI-4 CFP2 Reference Design

Last Update

May 06, 2013

Downloadable Reference Design File


Reference Documents

Altera 40- and 100-Gbps Ethernet MAC and PHY MegaCore Function User Guide (PDF) 


This reference design demonstrates the operation of Altera® 100-Gbps Ethernet MAC and CAUI-4 (4 x 25.7Gbps) PHY IP solution on a Stratix V GT device (5SGTMC7K3F40C2N). It is configured to demonstrate on a Stratix V GT 100G CFP2 Evaluation Board using Altera development tool Quartus II release 13.0. 

This design provides a flexible test and demonstration platform which effectively control, test, and monitor 100Gbps Ethernet packets using internal serial PMA loopback and external optical loopback through CFP2 module with 4 x 25.7Gbps full-duplex channels. 

Note: The StratixV GT 100G CFP2 Evaluation board is only available for demonstration. If you want to see the demonstration please contact your local Altera sales.

This hardware demonstration reference design offers the following features:

• Stand-alone and easy-to-use reference design example with random packet types and random packet size traffic profile.

• Uses a standard 512-bit Avalon-ST interface to connect to the Ethernet Traffic Generator. Compare packet statistics at Transmit and receive MACs.

Check for Hardware errors in the MAC & PHY

Check for CRC error in the Rx MAC

• System console and TCL based flexible, reusable, and extendable user interface allows users to dynamically configure various registers provided by this demo design.

System Overview and Functional Description

The hardware platform consists of three sub-systems: 

• The 100G Ethernet MAC and CAUI-4 PHY IP 

• Traffic Generator 

• TCL based System Controller for configuration and control of the system 

This system can be represented by the following diagram:

100-Gbps Ethernet MAC and CAUI-4 PHY IP

The Altera 100G Ethernet MAC and CAUI-4 PHY IP core is implemented in compliance with the IEEE 803.3ba 2010 Higher Speed Ethernet Standard. This module handles the frame encapsulation and flow of data between a client logic and Ethernet network via a 100GbE Ethernet PCS and PMA (CAUI-4 PHY). In the TX direction, the MAC accepts client frames, inserts inter-packet gap (IPG), preamble, start of frame delimiter (SFD), header, padding, and checksum before passing them to the PHY. The PHY encodes the MAC frame as required for reliable transmission over the media to the remote end. Similarly, in the RX direction, the MAC accepts frames from the PHY, performs checks, updates statistics counters, strips out the CRC, preamble, and SFD, and passes the rest of the frame to the client. 

Packet Generator (Gen)

The traffic controller includes a Packet Generator. These modules have 512-bit Avalon-ST interface for the data-path and connect to the 100G Ethernet MAC. There is also a 32-bit Avalon-MM configuration and status interface associated with the Generator. The generator can generate packets with random size from 64 Bytes to 1500 Bytes.

Pass and Fail Check

Pass condition in the loopback test: number of Ethernet frames or total data transmitted should equal to number of frames or total data received and all error Ethernet frame counters should equal to 0. See “Example of internal PMA loop back test” below. 

Fail condition in the loopback test: Any of error Ethernet frame counter is NOT equal to 0, total data transmitted not equal to received, or number of frames transmitted not equal to received are consider fail case. 

TCL Based System Console

The system controller uses TCL based Altera SYSTEM-CONSOLE which can run on a PC with either a Linux or windows based operating system. The details on system-console can be found in: System Console User Guide. User must provide byte addresses in order to access registers on chip using this interface. 

100Gbps Ethernet MAC and CAUI-4 PHY IP Overview

As mentioned in previous sections, the 40G Ethernet sub-system consists of 40G MAC and PHY sub-modules. The MAC client side data path interface has two options: Avalon ST interface and Custom ST interface. This reference design uses an Avalon-ST interface which includes interface adapter. This adapter then provides a standard Avalon-ST interface for the MAC client. The MAC connects to the PHY core over XLGMII interface. The 40G Ethernet IP core can be demonstrated as the following simplified diagram:


Additional Functional Details of 100GE Ethernet IP Core

The additional details of the IP core can be found in the User guide. The IP core evaluation package and the user guide can be downloaded from Altera website.

Quick Start Guide

The reference design setup essentially consists two parts:

  • Stratix V GT Transceiver SI Evaluation Board hardware setup (Use default setting)
  • Quartus II 13.0 and System Console Terminal setup

The relevant setups for each of these components are provided in detail as shown below:

Stratix V GX Transceiver SI Evaluation Board Hardware Setup

The Stratix V GT Transceiver SI Evaluation Board requires minimum hardware setup. A one time setting is required to ensure the following: 

1. The CFP2 is connected to an optical loopback cable, or use PMA internal loopback.

2. The DIP switches should not change. Use the default setting.

Before turning on power switch at the upper left corner of the development board, three cables need to be connected into development kit:

1. Power supply cable with adaptor to provide 15V - 20V DC voltage.

2. USB blaster cable connected between PC and evaluation board.

3. An optical loopback cable is installed tightly into the CFP2 module.

Windows or Linux based System Console Terminal Setup

To run Windows or Linux based system console; Quartus II rev13.0 software must be installed to execute system-console utility. 

Turn on power supply after connecting the development kit using a USB blaster cable to PC and follow below steps to run test: 

1. Download the “alt_e100_avalon_top_sv_caui4.qar”. 

2. Open alt_e100_avalon_top_sv_caui4.qar file with Quartus II rev13.0 software. Select your work directory.

3. Use Quartus II rev13.0 software Programmer to download alt_e100_avalon_top_sv_caui4.sof file into FPGA.

4. Go to the “Tools” –> “Transceiver Toolkit” menus in Quartus II rev13.0 software. It will open up the System Console tool.

5. Maximize the bottom right (sub) window and minimize all other windows. The TCL console window looks like a command shell window with a “%” command prompt.


6. Type “source demo.tcl” or Type the full path of the tickle script file is located, “source C:/alt_e100_avalon_top_sv_caui4/demo.tcl” at the command prompt "%". Note: use “/” instead of “\”.

7. Now the system is ready to run test. Type “help” to list available command in the script file.

8. Press the S6 (CPURSTn) bottom. Now the platform is ready to run.

System Console available commands


Test and information command

run: Start generate random size packets

stop: Stop generate packets and display Tx and Rx counters

loop_off : PMA TX to RX internal loop back off

loop_on : PMA TX to RX internal loop back on

stats: Display Tx and Rx packet counters

clear_stats : Clear Tx and Rx packet counters

checkrx: Check Rx setting

checktx: Check Tx setting

PMA Tx setting command

setvod <lane 0-3> <strength 0-5> // Tx strength setting

setvodall <strength 0-5> // All lanes Tx strength setting

setpretap <lane 0-3> <value 0-15> // Tx pre-tap setting

setpretapall <value 0-5> // All lanes Tx pre-tap setting

setpretapinvert <lane 0-3> <sign 0-1> // Tx pre-tap sign 0 = + & 1 = -

setposttap <lane 0-3> <value 0-31> // Tx pos-tap setting

setposttapall <value 0-31> // All lanes Tx pos-tap setting

PMA Rx setting command

setdc <lane 0-3> <value 0-19> // Rx DC gain setting

setdcall <value 0-19> // All lanes Rx DC gain setting

setac <lane 0-3> <value 0-8> // Rx AC gain (equalization) setting

setacall <value 0-8> // All lanes Rx AC gain (equalization) setting

Note: Please see Transceiver handbook for detail information of all the PMA setting.

PMA Setting information


Example of internal PMA loop back test

Step1: loop_on //Set tx to rx loopback mode

Step2: run // Start generate random size packets

Step3: stop // Stop the traffic and display TX and RX status

Pass Case: TX and RX packet counters should be exactly the same and all error counters should be equal to 0. A quick pass or fail check is the “Tx Frame Starts” number should equal to RX “Frame Starts (all)” number 

See TX and RX Statistics result below. 


Tx Frame Starts: Number of total frame transmitted. 

8 byte data blocks: Number of total data transmitted.

Unicast data OK Frame: Number of total data frame transmitted.

Unicast Control Frames: Number of total control frame transmitted.

Frame with FCS error: Number of total frame with FCS error received. 

Frame starts (all): Number of total frame received.

8 byte data blocks (all): Number of total data received.

Unicast data Err Frame: Number of total data frame with error received.

Unicast data OK Frame: Number of total data frame received.

Unicast Control Frames: Number of total control frame received.

Hardware demo design Package

Reproducing the hardware demo design can be done at various levels of the development flow. A quick regeneration of SOF file needs compilation and regeneration of the files provided with the download. The downloaded archive file consists of the following sub-directories under top level directory: alt_e100_avalon_top_sv_caui4.

1. gen_100 – it contains RTL files for Ethernet and other logic blocks 

2. common – includes the top level and related include files

3. demo.tcl –TCL scripts file

Known Issue

Please note that the system console and TCL based scripting provides a flexible testing platform. We have done a limited number of testing with an intention to demonstrate the inter-op of the two sub-systems. Additional test cases can be created by creating various kind of difference setting to the sub-system. 

Version history
Last update:
‎06-26-2019 02:48 PM
Updated by: