AN 705: Scalable 10G Ethernet MAC using 1G/10G PHY

ID 683066
Date 5/13/2016
Public
Document Table of Contents

1.7.4.1. Test Scenario for Design Example without IEEE 1588v2

This test case uses the following configuration:

  • 2 channels
  • Circular loopback
  1. The channel is configured to 10G mode by default during start-up.
  2. Perform basic MAC configuration, PHY speed configuration and FIFO configuration for all 2 channels.
  3. Wait for the design example to assert the channel_ready signals for all 2 channels.
  4. Send the following packets:
    • Normal data frame, 64Bytes
    • VLAN data frame, multicast, 1500Bytes
    • Normal data frame, 1500Bytes
    • SVLAN data frame, broadcast, 64Bytes
    • VLAN data frame, unicast, 500Bytes
    • SVLAN data frame, 1500Bytes
  5. Repeat Step 2 to Step 4 for 1G, 100M and 10M speed mode.
    Note: The Avalon_st_rxstatus_valid and Avalon_st_txstatus_valid signals are not aligned to the Avalon_st_rx_endofpacket and Avalon_st_tx_endofpacket signals as stated in the 10Gbps Ethernet MAC MegaCore Function User Guide. This is due to the Avalon_st_rx_endofpacket and Avalon_st_tx_endofpacket signals are coming from an internal SC FIFO which creates a certain delay. You should observe the Avalon_st_rxstatus_valid and Avalon_st_txstatus_valid signals that correspond to the Avalon_st_rx_endofpacket and Avalon_st_tx_endofpacket signals directly from the MAC.
  6. When the simulation ends, refer to the transcript window for channel 0 MAC TX and RX statistic counter results.
    Figure 6. MAC TX and RX Statistic Counter Results
    # ------------------------
    # Channel 0: TX Statistics
    # ------------------------
    # 	framesOK                          = 24
    # 	framesErr                         = 0
    # 	framesCRCErr                      = 0
    # 	octetsOK                          = 20080
    # 	pauseMACCtrlFrames                = 0
    # 	ifErrors                          = 0
    # 	unicastFramesOK                   = 16
    # 	unicastFramesErr                  = 0
    # 	multicastFramesOK                 = 4
    # 	multicastFramesErr                = 0
    # 	broadcastFramesOK                 = 4
    # 	broadcastFramesErr                = 0
    # 	etherStatsOctets                  = 20608
    # 	etherStatsPkts                    = 24
    # 	etherStatsUndersizePkts           = 0
    # 	etherStatsOversizePkts            = 0
    # 	etherStatsPkts64Octets            = 0
    # 	etherStatsPkts65to127Octets       = 8
    # 	etherStatsPkts128to255Octets      = 0
    # 	etherStatsPkts256to511Octet       = 4
    # 	etherStatsPkts512to1023Octets     = 0
    # 	etherStatsPkts1024to1518Octets    = 12
    # 	etherStatsPkts1519OtoXOctets      = 0
    # 	etherStatsFragments               = 0
    # 	etherStatsJabbers                 = 0
    # 	etherStatsCRCErr                  = 0
    # 	unicastMACCtrlFrames              = 0
    # 	multicastMACCtrlFrames            = 0
    # 	broadcastMACCtrlFrames            = 0
    # 
    # ------------------------
    # Channel 0: RX Statistics
    # ------------------------
    # 	framesOK                          = 24
    # 	framesErr                         = 0
    # 	framesCRCErr                      = 0
    # 	octetsOK                          = 20080
    # 	pauseMACCtrlFrames                = 0
    # 	ifErrors                          = 0
    # 	unicastFramesOK                   = 16
    # 	unicastFramesErr                  = 0
    # 	multicastFramesOK                 = 4
    # 	multicastFramesErr                = 0
    # 	broadcastFramesOK                 = 4
    # 	broadcastFramesErr                = 0
    # 	etherStatsOctets                  = 20608
    # 	etherStatsPkts                    = 24
    # 	etherStatsUndersizePkts           = 0
    # 	etherStatsOversizePkts            = 0
    # 	etherStatsPkts64Octets            = 0
    # 	etherStatsPkts65to127Octets       = 8
    # 	etherStatsPkts128to255Octets      = 0
    # 	etherStatsPkts256to511Octet       = 4
    # 	etherStatsPkts512to1023Octets     = 0
    # 	etherStatsPkts1024to1518Octets    = 12
    # 	etherStatsPkts1519OtoXOctets      = 0
    # 	etherStatsFragments               = 0
    # 	etherStatsJabbers                 = 0
    # 	etherStatsCRCErr                  = 0
    # 	unicastMACCtrlFrames              = 0
    # 	multicastMACCtrlFrames            = 0
    # 	broadcastMACCtrlFrames            = 0
    # 
    # 
    # Simulation PASSED
If all the total 24 packets have been received successfully to channel 0 Avalon_st RX interface, the transcript will display Simulation PASSED.