Visible to Intel only — GUID: jly1520309236754
Ixiasoft
Visible to Intel only — GUID: jly1520309236754
Ixiasoft
2.3. Simulating the IP Core
You can simulate your 25G Ethernet Intel FPGA IP core variation with the functional simulation model and the testbench generated with the IP core. The functional simulation model is a cycle-accurate model that allows for fast functional simulation of your IP core instance using industry-standard Verilog HDL simulators. You can simulate the Intel-provided testbench or create your own testbench to exercise the IP core functional simulation model.
The functional simulation model and testbench files are generated in project subdirectories. These directories also include scripts to compile and run the design example.
In the top-level wrapper file for your simulation project, you can set the following RTL parameters to enable simulation optimization. These optimizations significantly decrease the time to reach link initialization.
- SIM_SHORT_RST: Shortens the reset times to speed up simulation.
- SIM_SHORT_AM: Shortens the interval between alignment markers to accelerate alignment marker lock. Alignment markers are used when Reed-Solomon FEC is enabled.
- SIM_SHORT_AM = 1'b1: The TX RS-FEC inserts alignment marker at every 1280 64b/66b blocks or 320 257-bit transcoded blocks. The RX RS-FEC expects alignment marker at every 1280 64b/66b blocks or 320 257-bit transcoded blocks.
- SIM_SHORT_AM = 1'b0: The TX RS-FEC inserts alignment marker at every 81920 64b/66b blocks or 20480 257-bit transcoded blocks. The RX RS-FEC expects alignment marker at every 81920 64b/66b blocks or 20480 257-bit transcoded blocks.
- SIM_SIMPLE_RATE: Sets the PLL reference clock (clk_ref) to 625 MHz instead of 644.53125 MHz to optimize PLL simulation model behavior.
In general, parameters are set through the IP core parameter editor and you should not change them manually. The only exceptions are these simulation optimization parameters.
To set these parameters on the PHY blocks, add the following lines to the top-level wrapper file:
defparam <dut instance>.SIM_SHORT_RST = 1'b1;
defparam <dut instance>.SIM_SHORT_AM = 1'b1;
defparam <dut instance>.SIM_SIMPLE_RATE = 1'b1;