Saturday May 25 , 2013

SGMII eVC

SGMII  e Verification Component

IP Part Number: DR924-SGMII-eVC

Features

  • SGMII compatible PHY or MAC interface

  • Modular, synchronous design

  • Compliant to the Cisco SGMII specification

  • Standalone mode for testing without simulator or RTL.

  • Integrated 8b/10b ENDECs

  • Full duplex

  • Compatible to Intrinsix SGMII to GMII Conversion Module

Applications

Ethernet switch, router and transceiver designs

  

Overview

The SGMII e Verification Component is part of a verification environment where a frame comprised of control and data code groups are input from a test or programming application and driven onto the Serial Gigabit Media Independent Interface (SGMII). The SGMII eVC is designed to support full state machine testing for transmit, receive, synchronization and auto-negotiation. The SGMII eVC will support operation in both half and full duplex, and at interface speeds of 10, 100 and 1000 Mb/s.

 

Interfaces

SGMII Interface

Signal Name

Direction

Description

RX+/-

Input

Received serial data at 1.25 GBaud synchronous to RXCLK.

RXCLK+/-

Input

Receive clock , 625 MHz (DDR interface)

TX+/-

Output

Transmit serial data at 1.25 Gbaud synchronous to TXCLK.

TXCLK+/-

Input

Transmit clock, 625 MHz (DDR interface)

 

Verification Environment Interface

Structure Name

Description

DR924_sgmii_stream()

Models a �frame�

DR924_sgmii_tx()

Responsible for driving frames into the DUT

DR924_sgmii_rx()

Processes serial data received from the DUT

DR924_sgmiiRegisterSet()

Contains control/configuration registers

DR924_sgmii_config()

Contains configuration information for using the ITRX_GMII_eVC

DR924_sgmii_cover()

Fields to generate Coverage information

DR924_sgmii_error(

The sgmii_error struct is used to inject errors

DR924_sgmii_gen()

Contains structs to control packet generation by SGMII_TX

DR924_sgmii_signal_map()

Defines the interface to the signals in the device under test ( DUT). 

DR924_sgmii_frames()

Maintains a list of frames received

DR924_sgmii_clocks()

Clocks for standalone mode ONLY

DR924_8B_10B()

8b/10b encoder/decoder. Struct

 

Method Name

Description

Post_generate()

Generates frame for SGMII_TX

TxReset()

Resets SGMII TX

drive_stream()

Main TCM to drive data onto the SGMII interface (TX)

SpeedSelect()

Selects the link operation speed

send_idle()

Encodes/driver for Idle code groups

send_config_idle()

Encodes/driver for configuration ( autonegotiation ) code groups

RxReset()

Resets SGMII RX

push_data()

Collects received data bytes into a list

receive_stream ()

Main TCM to receive data from the SGMII interface (RX)

SerialTo10b()

Converts serial data to 10b format

log_message()

Controls type of log messages to be displayed and/or included in log file

 

Event Name

Description

tx_start

Start of frame transmission

tx_end

End of frame transmission

txResetDone

Tx reset done

AutoNegDone

Auto Negotiation completed

sgmii_TX_clk

Transmit clock

rx_start

Start of frame receive

rx_end

End of frame receive

rxResetDone

Rx reset done

AutoNegAck

Speed Capability Autonegotiation complete

AutoNegAckComplete

Operational Speed acknowledge (ack)

sa_sgmii_clk_toggle

Generates TX/RX clocks for standalone mode ONLY

 

Architectural Description

The SGMII eVC is made up of a stream generator, an SGMII driver, a stream monitor, an SGMII receiver, and coverage groups.

 

The stream generator creates streams of code groups (special and data) based on the input from a test or from a software application. It also outputs the generated streams for use by an external prediction function for the purposes of data scoreboarding.

 

The SGMII Driver generates 10-bit encoded data from the input stream of 8-bit code groups from the Stream Generator, serializes it and sends it out to the DUT SGMII port RX.

 

The SMGII Receiver deserializes SGMII data from the DUT SGMII port TX, does the 8-bit decoding and assembles the data into code group stream objects.

 

The Stream Monitor takes the data from the SGMII Receiver and passes it on as output to the check routine. It keeps track of important data statistics.

 

The Coverage block tracks the logic of the Physical Coding Sublayer (PCS) Transmit, Synchronization, PCS Receive, and Auto-Negotiation state machines as described in the SGMII to/from GMII Conversion Module Design Specification.

 

The SGMII eVC can serve as the interface to a PHY device or a MAC device. Both RX and TX clocks are as inputs, driven from the RTL and handled in e as events. For the configuration where the eVC acts as a PHY, this means that the testbench must supply a clock generator to control the clocks.

 

Simulation Core

Intrinsix has developed an GMII to SGMII Conversion Core which used the SGMII eVC for complete module level testing. The GMII to SGMII Conversion core is a Verilog component.