Visible to Intel only — GUID: mde1641429534970
Ixiasoft
Visible to Intel only — GUID: mde1641429534970
Ixiasoft
5.1.1. PMA/FEC Direct PHY Multirate Design Example: Simulation Testbench
The testbech pogam cotols the testbech compoets via Avalo® memoy-mapped iteface access, status ad cotol sigals. The Avalo® memoy-mapped iteface abite decodes the Avalo® memoy-mapped iteface access fom the testbech pogam ito multiple Avalo® memoy-mapped iteface slaves.
- PMA testwap – used i PMA diect cofiguatios.
- FEC testwap – used i FEC diect cofiguatio.
- Refeece clock of 156.25MHz is used fo Etheet potocol data ate (i.e. 53.125G (PAM4) PMA Diect, 53.125G (PAM4) FEC Diect, 25.7812G (NRZ) PMA Diect ad 10.3125G (NRZ) PMA Diect).
- Refeece clock of 153.6MHz is used fo 9.8304G (NRZ) PMA Diect, 4.9152G (NRZ) PMA Diect ad 2.4576G (NRZ) PMA Diect CPRI potocol data ates,
- Refeece clock of 184.32MHz is used fo 24.3302G (NRZ) PMA Diect ad 10.1376G (NRZ) PMA Diect CPRI potocol data ates.
Fo 400G-8 base vaiat desig, oe efeece clock (156.25MHz) is fed ito the system clock.
Simulatio Flow:
- The PMA/FEC Diect PHY Multiate IP is powe-up based o base pofile.
- Iitialize the testbech vaiables based o powe-up pofile. The paamete settigs, located i the top_tst.sv file, ae:
- DR_NUM: To idicate the umbe of dyamic ecofiguatio tasitios.
- DR_SEQ: To idicate the dyamic ecofiguatio sequece.
- Pefom dyamic ecofiguatio based o the sequece i the paamete settigs.
- Check the testbech eo flag ad detemie whethe testbech passed o failed. The eo flag is set to 1 if thee is ay eo afte dyamic ecofiguatio taffic tests.
Fo customizatio, you ca modify the DR_NUM ad DR_SEQ localpaam, located i the top_tst.sv file to cofigue the test flow. The pofile ID is passed to the IP to cofigue the iteded dyamic ecofiguatio task.
// Available Modes localpaam DR_MODE_50G_1 = 4'b0000; // ETH localpaam DR_MODE_25G_1 = 4'b0001; // ETH localpaam DR_MODE_24G_1 = 4'b0010; // CPRI localpaam DR_MODE_10p1G_1 = 4'b0011; // CPRI localpaam DR_MODE_9p8G_1 = 4'b0100; // CPRI localpaam DR_MODE_4p9G_1 = 4'b0101; // CPRI localpaam DR_MODE_2p4G_1 = 4'b0110; // CPRI localpaam DR_MODE_10G_1 = 4'b0111; // ETH localpaam DR_MODE_50GKP_1 = 4'b1000; // ETH // DR fom base vaiat (DR_MODE_50G_1) to othe vaiats i the followig ode, statig fom left. localpaam DR_NUM = 4; localpaam [3:0] DR_SEQ [0 : DR_NUM-1] = {DR_MODE_25G_1,DR_MODE_50GKP_1,DR_MODE_24G_1,DR_MODE_50G_1};
// Available Modes localpaam DR_MODE_50G_1 = 4'b0000; // ETH localpaam DR_MODE_25G_1 = 4'b0001; // ETH localpaam DR_MODE_24G_1 = 4'b0010; // CPRI localpaam DR_MODE_10p1G_1 = 4'b0011; // CPRI localpaam DR_MODE_9p8G_1 = 4'b0100; // CPRI localpaam DR_MODE_4p9G_1 = 4'b0101; // CPRI localpaam DR_MODE_2p4G_1 = 4'b0110; // CPRI localpaam DR_MODE_10G_1 = 4'b0111; // ETH localpaam DR_MODE_50GKP_1 = 4'b1000; // ETH // DR fom base vaiat (DR_MODE_50G_1) to othe vaiats i the followig ode, statig fom left. localpaam DR_NUM = 2; localpaam [3:0] DR_SEQ [0 : DR_NUM-1] = {DR_MODE_9p8G_1,DR_MODE_4p9G_1};
// Available Modes localpaam DR_MODE_400G_8 = 4'b0000; localpaam DR_MODE_200G_4 = 4'b0001; localpaam DR_MODE_100G_4 = 4'b0010; // DR fom base vaiat (DR_MODE_400G_8) to othe vaiats i the followig ode, statig fom left. localpaam DR_NUM = 3; localpaam [3:0] DR_SEQ [0 : DR_NUM-1] = {DR_MODE_100G_4,DR_MODE_400G_8,DR_MODE_200G_4};