Low Latency 40G for ASIC Proto Ethernet Intel® FPGA IP Design Example User Guide

ID 683599
Date 10/05/2020
Public

2.4. Simulation

The testbench sends traffic through the IP core, exercising the transmit side and receive side of the IP core.

The following figures depict the Low Latency 40G for ASIC Proto Ethernet IP block diagram configuration. Note that the simulation is not affected by the IP's configuration.

Figure 5.  Low Latency 40G for ASIC Proto Ethernet IP Design Example Block Diagram with MAC and PCS
Figure 6.  Low Latency 40G for ASIC Proto Ethernet IP Design Example Block Diagram with PCS Only

In both configuration, the simulation design example top-level test file is basic_avl_tb_top.sv. This file instantiates and connects an ATX PLL. It includes a task to send and receive 10 packets.

Table 5.   Low Latency 40G for ASIC Proto Ethernet Core Testbench File Descriptions

File Names

Description

Testbench and Simulation Files
basic_avl_tb_top.sv Top-level testbench file. The testbench instantiates the DUT and runs Verilog HDL tasks to generate and accept packets.
basic_avl_tb_top_nc.sv Top-level testbench file compatible with the NCSim simulator.
basic_avl_tb_top_msim.sv Top-level testbench file compatible with the ModelSim* simulator.
Testbench Scripts
run_vsim.do

The Mentor Graphics* ModelSim* script to run the testbench.

run_vcs.sh

The Synopsys* VCS* script to run the testbench.

run_vcsmx.sh

The Synopsys* VCS* MX script (combined Verilog HDL and System Verilog with VHDL) to run the testbench.

run_ncsim.sh

The Cadence NCSim script to run the testbench.

run_xcelium.sh The Cadence Xcelium* script to run the testbench.
The successful test run displays output confirming the following behavior:
  1. Waiting for RX clock to settle
  2. Printing PHY status
  3. Sending 10 packets
  4. Receiving 10 packets
  5. Displaying "Testbench complete."

The following sample output illustrates a successful simulation test run:


#Waiting for RX alignment
#RX deskew locked
#RX lane alignment locked
#TX enabled
#**Sending Packet    1...
#**Sending Packet    2...
#**Sending Packet    3...
#**Sending Packet    4...
#**Sending Packet    5...
#**Sending Packet    6...
#**Sending Packet    7...
#**Received Packet   1...
#**Sending Packet    8...
#**Received Packet   2...
#**Sending Packet    9...
#**Received Packet   3...
#**Sending Packet    10...
#**Received Packet   4...
#**Received Packet   5...
#**Received Packet   6...
#**Received Packet   7...
#**Received Packet   8...
#**Received Packet   9...
#**Received Packet   10... 
#**
#** Testbench complete.
#**
#*****************************************