2.4.4. Test Case—Design Example with the IEEE 1588v2 Feature
Note: For 10G/25G Ethernet single-channel design example with IEEE 1588v2 feature simulation testbench, refer to Functional Description.
The simulation test case performs the following actions:
- Instantiates 25G Ethernet Intel® FPGA IP, ATX PLL, and IO PLL (sampling PLL).
- Starts up the design example with an operating speed of 25G.
- Waits for RX clock and PHY status signal to settle.
- Prints PHY status.
- Checks for 10 valid data on 25G speed.
- Switches to 10G speed.
- Waits for RX clock and PHY status signal to settle.
- Prints PHY status.
- Checks for another 10 valid data on 10G speed.
- Switches to 25G speed once all 10 valid data passes.
- Waits for RX clock and PHY status signal to settle.
- Prints PHY status.
- Checks for another 10 valid data on 25G speed.
- Analyzes the results. The successful testbench displays "Simulation PASSED." when the PTP delay and offset data is within the threshold value.
The following sample output illustrates a successful simulation test run:
# Running at 25G mode... # # # Waiting for RX alignment... # iatpg_pipeline_global_en is set # iatpg_pipeline_global_en is set # RX deskew locked. # RX lane aligmnent locked. # # Sending packets... # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000064457 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000064bb4 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000fffffffff8a2 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000643b5 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000520 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000634fb # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000063f3b # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000063a1a # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x00000000000000000006445a # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000063e95 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000648d5 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000643b5 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000520 # Offset within tolerence range. # # # # Finished sending packets. # # # # Switching to 10G mode: 10G Reconfig starts... # Switching to 10G mode: 10G Reconfig End. # # Waiting for RX alignment... # RX deskew locked. # RX lane aligmnent locked. # # Configuring 1588 period... # Configuring 1588 period done. # # Sending packets... # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000e5a7d # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000002013 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000e0764 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000ffffffff99a0 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000e0764 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000ffffffffa66d # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000dfa97 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000006660 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000e1431 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000005993 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000e2db7 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000ffffffffccc0 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000e1431 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000ffffffff8006 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000e60e4 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000fffffffff320 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000dfa97 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000005993 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x0000000000000000000e874b # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000ce0 # Offset within tolerence range. # # # # Finished sending packets. # # # # Switching to 25G mode: 25G Reconfig start... # Switching to 25G mode: 25G Reconfig end. # # Waiting for RX alignment... # RX deskew locked. # RX lane aligmnent locked. # # Configuring 1588 period... # Configuring 1588 period done. # # Sending packets... # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000063c58 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000063c58 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x00000000000000000006502f # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x00000000000000000006502f # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x00000000000000000006554d # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000064b10 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000064b10 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000064bb4 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000064bb4 # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # Delay (sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000065a6c # Offset(sec[95:48],ns[47:16],fns[15:0]): 0x000000000000000000000000 # Offset within tolerence range. # # # # Finished sending packets. # # ** # ** Testbench complete. # **