2.3. Simulation
The following figure depicts the Low Latency 100G Ethernet Intel® Agilex™ FPGA IP block diagram configuration. Note that the IP configuration doesn't affect the simulation.
The simulation design example top-level test file is basic_avl_tb_top.v. The file instantiates and connects an ATX PLL. It also includes a task to send and receive 10 packets.
File Names |
Description |
---|---|
Testbench and Simulation Files | |
basic_avl_tb_top.v | Top-level testbench file. The testbench instantiates the DUT and runs Verilog HDL tasks to generate and accept packets. |
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. |
- Waiting for the ATX PLLs to lock.
- Waiting for RX transceiver reset to complete.
- Waiting for RX alignment.
- Sending ten packets.
- Receiving ten packets.
- Displaying Testbench complete.
The following sample output illustrates a successful simulation test run:
ATX PLLs Locked
***************************************************
*************** Transmit Ready *****************
***************************************************
Waiting for the receiver to be ready
Receive transceivers are out of reset
Waiting for RX alignment
Rx Alignment Status Update 1/4: Word/Block lock is acquired over all virtual lanes
Rx Alignment Status Update 2/4: Virtual lanes Ordered
Rx Alignment Status Update 3/4: RX deskew lock acquired
Rx Alignment Status Update 4/4: RX alignment lock acquired
Rx is fully aligned with Tx
***************************************************
************** Receive Ready ******************
***************************************************
Transmitting test data
** Sending Packet 1...
** Sending Packet 2...
** Sending Packet 3...
** Sending Packet 4...
** Sending Packet 5...
** Sending Packet 6...
** Sending Packet 7...
** Sending Packet 8...
** Sending Packet 9...
** Sending Packet 10...
** Received Packet 1...
** Received Packet 2...
** Received Packet 3...
** Received Packet 4...
** Received Packet 5...
** Received Packet 6...
** Received Packet 7...
** Received Packet 8...
** Received Packet 9...
** Received Packet 10...
**
** Testbench complete.
**
*****************************************