Visible to Intel only — GUID: qwy1526460242758
Ixiasoft
Visible to Intel only — GUID: qwy1526460242758
Ixiasoft
2.2.1.2. PTP 10GE/25GE MAC+PCS with Optional RS-FEC Simulation Design Example
- Under the IP tab:
- 100GE or 1 to 4 channel 10GE/25GE with optional RSFEC and PTP as the core variant.
- 10G/25GE channels as Active channel(s) at startup.
- Enable IEEE 1588 PTP.
- Enable RSFEC to use the RS-FEC feature.
- Under the 10GE/25GE tab:
- 10G or 25G as the Ethernet rate.
In this design example, the testbench sends traffic through the IP core, exercising the transmit side and receive side of the IP core.
To speed up simulation, the IP core simulation model sends alignment marker tags at shorter intervals than required by the IEEE Ethernet standard. The standard specifies an alignment marker interval of 16,384 words in each virtual lane. The simulation model with the testbench implements an alignment marker interval of 512 words.
The successful test run displays output confirming the following behavior:
- Waiting for PLL to lock.
- Waiting for RX transceiver reset to complete.
- Waiting for RX alignment.
- Sending 10 packets.
- Receiving those packets.
- Displaying Testbench complete.
The following sample output illustrates a successful simulation test run for a 25GE, MAC+PCS, RS-FEC, PTP IP core variation.
# Channel 0 - EHIP Ready is high
# Channel 0 - Waiting for RX Block Lock
# Channel 0 - RX Block Lock is high
# Channel 0 - Waiting for RX alignment
# Channel 0 - RX lane aligmnent locked
# Channel 0 - Waiting for TX PTP Ready
# Channel 0 - TX PTP ready
# Channel 0 - Training RX PTP AIB deskew and waiting for RX PTP ready
# Channel 0 - Sending Packet 1
# Channel 0 - Received Packet 1
# Channel 0 - Sending Packet 2
# Channel 0 - Received Packet 2
# Channel 0 - Sending Packet 3
# Channel 0 - Received Packet 3
# Channel 0 - Sending Packet 4
# Channel 0 - Received Packet 4
# Channel 0 - RX PTP ready
.
.
(Repeat tests for Channel 1, Channel 2, and Channel 3)
.
.
# ====> writedata = 00000000
#
# Channel 0 - Configure TX extra latency
# ====> writedata = 0004267a
#
# Channel 0 - Configure RX extra latency
# ====> writedata = 8002d4de
#
# Channel 0 - TX enabled
# Channel 0 - Sending Packet 1
# Channel 0 - Sending Packet 2
# Channel 0 - Sending Packet 3
# Channel 0 - Sending Packet 4
# Channel 0 - Sending Packet 5
# Channel 0 - Sending Packet 6
# Channel 0 - Sending Packet 7
# Channel 0 - Sending Packet 8
# Channel 0 - Sending Packet 9
# Channel 0 - Sending Packet 10
# Channel 0 - Received Packet 1
# Channel 0 - Received Packet 2
# Channel 0 - Received Packet 3
# Channel 0 - Received Packet 4
# Channel 0 - Received Packet 5
# Channel 0 - Received Packet 6
# Channel 0 - Received Packet 7
# Channel 0 - Received Packet 8
# Channel 0 - Received Packet 9
# Channel 0 - Received Packet 10
# ====> writedata = 00000000
.
.
(Send and receive packets for Channel 1 and Channel 2)
.
.
# ====> writedata = 00000000
#
# Channel 3 - Configure TX extra latency
# ====> writedata = 0004267a
#
# Channel 3 - Configure RX extra latency
# ====> writedata = 800369d0
#
# Channel 3 - TX enabled
# Channel 3 - Sending Packet 1
# Channel 3 - Sending Packet 2
# Channel 3 - Sending Packet 3
# Channel 3 - Sending Packet 4
# Channel 3 - Sending Packet 5
# Channel 3 - Sending Packet 6
# Channel 3 - Sending Packet 7
# Channel 3 - Sending Packet 8
# Channel 3 - Sending Packet 9
# Channel 3 - Sending Packet 10
# Channel 3 - Received Packet 1
# Channel 3 - Received Packet 2
# Channel 3 - Received Packet 3
# Channel 3 - Received Packet 4
# Channel 3 - Received Packet 5
# Channel 3 - Received Packet 6
# Channel 3 - Received Packet 7
# Channel 3 - Received Packet 8
# Channel 3 - Received Packet 9
# Channel 3 - Received Packet 10
# *****************************************
# ** Testbench complete.
# *****************************************
# ** Note: $finish : ./basic_avl_tb_top.sv(484)
# Time: 473545955 ps Iteration: 0 Instance: /basic_avl_tb_top