From ed9e8ffab3c2d058835da1852f71559cb2ad212b Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Fri, 7 Mar 2025 11:05:58 -0800 Subject: [PATCH] eth: Use unpacked arrays for multidimensional ports Signed-off-by: Alex Forencich --- example/ADM_PCIE_9V3/fpga/rtl/fpga_core.sv | 11 +- example/Alveo/fpga/rtl/fpga_core.sv | 11 +- example/KCU105/fpga/rtl/fpga_core.sv | 11 +- example/KR260/fpga/rtl/fpga_core.sv | 11 +- example/Nexus_K3P_Q/fpga/rtl/fpga_core.sv | 11 +- example/Nexus_K3P_S/fpga/rtl/fpga_core.sv | 11 +- example/VCU108/fpga/rtl/fpga_core.sv | 11 +- example/VCU118/fpga/rtl/fpga_core.sv | 11 +- example/ZCU102/fpga/rtl/fpga_core.sv | 11 +- example/ZCU106/fpga/rtl/fpga_core.sv | 11 +- example/ZCU111/fpga/rtl/fpga_core.sv | 11 +- example/fb2CG/fpga/rtl/fpga_core.sv | 11 +- rtl/eth/taxi_eth_mac_10g.sv | 4 +- rtl/eth/taxi_eth_mac_10g_fifo.sv | 62 +++--- rtl/eth/taxi_eth_mac_1g.sv | 4 +- rtl/eth/taxi_eth_mac_1g_fifo.sv | 62 +++--- rtl/eth/taxi_eth_mac_1g_gmii.sv | 4 +- rtl/eth/taxi_eth_mac_1g_gmii_fifo.sv | 62 +++--- rtl/eth/taxi_eth_mac_1g_rgmii.sv | 4 +- rtl/eth/taxi_eth_mac_1g_rgmii_fifo.sv | 62 +++--- rtl/eth/taxi_eth_mac_mii.sv | 4 +- rtl/eth/taxi_eth_mac_mii_fifo.sv | 62 +++--- rtl/eth/taxi_eth_mac_phy_10g.sv | 4 +- rtl/eth/taxi_eth_mac_phy_10g_fifo.sv | 62 +++--- rtl/eth/taxi_mac_pause_ctrl_tx.sv | 4 +- rtl/eth/us/taxi_eth_mac_25g_us.sv | 206 +++++++++--------- rtl/eth/us/taxi_eth_mac_25g_us_ch.sv | 4 +- .../taxi_eth_mac_10g/test_taxi_eth_mac_10g.py | 8 +- .../taxi_eth_mac_10g/test_taxi_eth_mac_10g.sv | 4 +- .../taxi_eth_mac_1g/test_taxi_eth_mac_1g.py | 8 +- .../taxi_eth_mac_1g/test_taxi_eth_mac_1g.sv | 4 +- .../test_taxi_eth_mac_1g_gmii.py | 8 +- .../test_taxi_eth_mac_1g_gmii.sv | 4 +- .../test_taxi_eth_mac_1g_rgmii.py | 8 +- .../test_taxi_eth_mac_1g_rgmii.sv | 4 +- .../taxi_eth_mac_mii/test_taxi_eth_mac_mii.py | 8 +- .../taxi_eth_mac_mii/test_taxi_eth_mac_mii.sv | 4 +- .../test_taxi_eth_mac_phy_10g.py | 8 +- .../test_taxi_eth_mac_phy_10g.sv | 4 +- .../test_taxi_mac_pause_ctrl_tx.py | 34 +-- 40 files changed, 408 insertions(+), 440 deletions(-) diff --git a/example/ADM_PCIE_9V3/fpga/rtl/fpga_core.sv b/example/ADM_PCIE_9V3/fpga/rtl/fpga_core.sv index ad11ea8..4e82683 100644 --- a/example/ADM_PCIE_9V3/fpga/rtl/fpga_core.sv +++ b/example/ADM_PCIE_9V3/fpga/rtl/fpga_core.sv @@ -205,12 +205,11 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{CNT{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{CNT{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -223,11 +222,11 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{CNT{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{CNT{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{CNT{'0}}), /* * Pause interface diff --git a/example/Alveo/fpga/rtl/fpga_core.sv b/example/Alveo/fpga/rtl/fpga_core.sv index d2155ca..f9433f1 100644 --- a/example/Alveo/fpga/rtl/fpga_core.sv +++ b/example/Alveo/fpga/rtl/fpga_core.sv @@ -255,12 +255,11 @@ for (genvar n = 0; n < GTY_QUAD_CNT; n = n + 1) begin : gty_quad /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{CNT{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{CNT{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -273,11 +272,11 @@ for (genvar n = 0; n < GTY_QUAD_CNT; n = n + 1) begin : gty_quad /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{CNT{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{CNT{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{CNT{'0}}), /* * Pause interface diff --git a/example/KCU105/fpga/rtl/fpga_core.sv b/example/KCU105/fpga/rtl/fpga_core.sv index b3c5e32..251a77e 100644 --- a/example/KCU105/fpga/rtl/fpga_core.sv +++ b/example/KCU105/fpga/rtl/fpga_core.sv @@ -484,12 +484,11 @@ end else begin : sfp_mac /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{2{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{2{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -502,11 +501,11 @@ end else begin : sfp_mac /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{2{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{2{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{2{'0}}), /* * Pause interface diff --git a/example/KR260/fpga/rtl/fpga_core.sv b/example/KR260/fpga/rtl/fpga_core.sv index 4011581..4008de1 100644 --- a/example/KR260/fpga/rtl/fpga_core.sv +++ b/example/KR260/fpga/rtl/fpga_core.sv @@ -429,12 +429,11 @@ end else begin : sfp_mac /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{1{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{1{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -447,11 +446,11 @@ end else begin : sfp_mac /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{1{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{1{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{1{'0}}), /* * Pause interface diff --git a/example/Nexus_K3P_Q/fpga/rtl/fpga_core.sv b/example/Nexus_K3P_Q/fpga/rtl/fpga_core.sv index 126c386..335f967 100644 --- a/example/Nexus_K3P_Q/fpga/rtl/fpga_core.sv +++ b/example/Nexus_K3P_Q/fpga/rtl/fpga_core.sv @@ -224,12 +224,11 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{CNT{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{CNT{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -242,11 +241,11 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{CNT{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{CNT{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{CNT{'0}}), /* * Pause interface diff --git a/example/Nexus_K3P_S/fpga/rtl/fpga_core.sv b/example/Nexus_K3P_S/fpga/rtl/fpga_core.sv index 545c3af..89d3b48 100644 --- a/example/Nexus_K3P_S/fpga/rtl/fpga_core.sv +++ b/example/Nexus_K3P_S/fpga/rtl/fpga_core.sv @@ -205,12 +205,11 @@ sfp_mac_inst ( /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{2{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{2{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -223,11 +222,11 @@ sfp_mac_inst ( /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{2{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{2{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{2{'0}}), /* * Pause interface diff --git a/example/VCU108/fpga/rtl/fpga_core.sv b/example/VCU108/fpga/rtl/fpga_core.sv index 331819f..39ac37e 100644 --- a/example/VCU108/fpga/rtl/fpga_core.sv +++ b/example/VCU108/fpga/rtl/fpga_core.sv @@ -328,12 +328,11 @@ qsfp_mac_inst ( /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{4{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{4{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -346,11 +345,11 @@ qsfp_mac_inst ( /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{4{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{4{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{4{'0}}), /* * Pause interface diff --git a/example/VCU118/fpga/rtl/fpga_core.sv b/example/VCU118/fpga/rtl/fpga_core.sv index 8b427ed..8d3854d 100644 --- a/example/VCU118/fpga/rtl/fpga_core.sv +++ b/example/VCU118/fpga/rtl/fpga_core.sv @@ -523,12 +523,11 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{CNT{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{CNT{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -541,11 +540,11 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{CNT{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{CNT{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{CNT{'0}}), /* * Pause interface diff --git a/example/ZCU102/fpga/rtl/fpga_core.sv b/example/ZCU102/fpga/rtl/fpga_core.sv index eda75db..3fefda1 100644 --- a/example/ZCU102/fpga/rtl/fpga_core.sv +++ b/example/ZCU102/fpga/rtl/fpga_core.sv @@ -555,12 +555,11 @@ end else begin : sfp_mac /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{4{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{4{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -573,11 +572,11 @@ end else begin : sfp_mac /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{4{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{4{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{4{'0}}), /* * Pause interface diff --git a/example/ZCU106/fpga/rtl/fpga_core.sv b/example/ZCU106/fpga/rtl/fpga_core.sv index 58fe4d7..4158e2a 100644 --- a/example/ZCU106/fpga/rtl/fpga_core.sv +++ b/example/ZCU106/fpga/rtl/fpga_core.sv @@ -397,12 +397,11 @@ end else begin : sfp_mac /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{2{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{2{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -415,11 +414,11 @@ end else begin : sfp_mac /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{2{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{2{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{2{'0}}), /* * Pause interface diff --git a/example/ZCU111/fpga/rtl/fpga_core.sv b/example/ZCU111/fpga/rtl/fpga_core.sv index 33b5557..76a340c 100644 --- a/example/ZCU111/fpga/rtl/fpga_core.sv +++ b/example/ZCU111/fpga/rtl/fpga_core.sv @@ -233,12 +233,11 @@ sfp_mac_inst ( /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{4{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{4{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -251,11 +250,11 @@ sfp_mac_inst ( /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{4{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{4{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{4{'0}}), /* * Pause interface diff --git a/example/fb2CG/fpga/rtl/fpga_core.sv b/example/fb2CG/fpga/rtl/fpga_core.sv index b6ee488..a314923 100644 --- a/example/fb2CG/fpga/rtl/fpga_core.sv +++ b/example/fb2CG/fpga/rtl/fpga_core.sv @@ -245,12 +245,11 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad /* * PTP clock */ - .tx_ptp_ts('0), + .tx_ptp_ts('{CNT{'0}}), .tx_ptp_ts_step('0), - .rx_ptp_ts('0), + .rx_ptp_ts('{CNT{'0}}), .rx_ptp_ts_step('0), - /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ @@ -263,11 +262,11 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - .tx_pfc_req('0), + .tx_pfc_req('{CNT{'0}}), .tx_pfc_resend('0), - .rx_pfc_en('0), + .rx_pfc_en('{CNT{'0}}), .rx_pfc_req(), - .rx_pfc_ack('0), + .rx_pfc_ack('{CNT{'0}}), /* * Pause interface diff --git a/rtl/eth/taxi_eth_mac_10g.sv b/rtl/eth/taxi_eth_mac_10g.sv index dac583b..768e3b1 100644 --- a/rtl/eth/taxi_eth_mac_10g.sv +++ b/rtl/eth/taxi_eth_mac_10g.sv @@ -142,8 +142,8 @@ module taxi_eth_mac_10g # input wire logic [15:0] cfg_tx_pfc_eth_type = 16'h8808, input wire logic [15:0] cfg_tx_pfc_opcode = 16'h0101, input wire logic cfg_tx_pfc_en = 1'b0, - input wire logic [7:0][15:0] cfg_tx_pfc_quanta = '{8{16'hffff}}, - input wire logic [7:0][15:0] cfg_tx_pfc_refresh = '{8{16'h7fff}}, + input wire logic [15:0] cfg_tx_pfc_quanta[8] = '{8{16'hffff}}, + input wire logic [15:0] cfg_tx_pfc_refresh[8] = '{8{16'h7fff}}, input wire logic [15:0] cfg_rx_lfc_opcode = 16'h0001, input wire logic cfg_rx_lfc_en = 1'b0, input wire logic [15:0] cfg_rx_pfc_opcode = 16'h0101, diff --git a/rtl/eth/taxi_eth_mac_10g_fifo.sv b/rtl/eth/taxi_eth_mac_10g_fifo.sv index a16c1fa..2aa7ee6 100644 --- a/rtl/eth/taxi_eth_mac_10g_fifo.sv +++ b/rtl/eth/taxi_eth_mac_10g_fifo.sv @@ -326,37 +326,37 @@ eth_mac_10g_inst ( .cfg_ifg(cfg_ifg), .cfg_tx_enable(cfg_tx_enable), .cfg_rx_enable(cfg_rx_enable), - .cfg_mcf_rx_eth_dst_mcast(0), - .cfg_mcf_rx_check_eth_dst_mcast(0), - .cfg_mcf_rx_eth_dst_ucast(0), - .cfg_mcf_rx_check_eth_dst_ucast(0), - .cfg_mcf_rx_eth_src(0), - .cfg_mcf_rx_check_eth_src(0), - .cfg_mcf_rx_eth_type(0), - .cfg_mcf_rx_opcode_lfc(0), - .cfg_mcf_rx_check_opcode_lfc(0), - .cfg_mcf_rx_opcode_pfc(0), - .cfg_mcf_rx_check_opcode_pfc(0), - .cfg_mcf_rx_forward(0), - .cfg_mcf_rx_enable(0), - .cfg_tx_lfc_eth_dst(0), - .cfg_tx_lfc_eth_src(0), - .cfg_tx_lfc_eth_type(0), - .cfg_tx_lfc_opcode(0), - .cfg_tx_lfc_en(0), - .cfg_tx_lfc_quanta(0), - .cfg_tx_lfc_refresh(0), - .cfg_tx_pfc_eth_dst(0), - .cfg_tx_pfc_eth_src(0), - .cfg_tx_pfc_eth_type(0), - .cfg_tx_pfc_opcode(0), - .cfg_tx_pfc_en(0), - .cfg_tx_pfc_quanta(0), - .cfg_tx_pfc_refresh(0), - .cfg_rx_lfc_opcode(0), - .cfg_rx_lfc_en(0), - .cfg_rx_pfc_opcode(0), - .cfg_rx_pfc_en(0) + .cfg_mcf_rx_eth_dst_mcast('0), + .cfg_mcf_rx_check_eth_dst_mcast('0), + .cfg_mcf_rx_eth_dst_ucast('0), + .cfg_mcf_rx_check_eth_dst_ucast('0), + .cfg_mcf_rx_eth_src('0), + .cfg_mcf_rx_check_eth_src('0), + .cfg_mcf_rx_eth_type('0), + .cfg_mcf_rx_opcode_lfc('0), + .cfg_mcf_rx_check_opcode_lfc('0), + .cfg_mcf_rx_opcode_pfc('0), + .cfg_mcf_rx_check_opcode_pfc('0), + .cfg_mcf_rx_forward('0), + .cfg_mcf_rx_enable('0), + .cfg_tx_lfc_eth_dst('0), + .cfg_tx_lfc_eth_src('0), + .cfg_tx_lfc_eth_type('0), + .cfg_tx_lfc_opcode('0), + .cfg_tx_lfc_en('0), + .cfg_tx_lfc_quanta('0), + .cfg_tx_lfc_refresh('0), + .cfg_tx_pfc_eth_dst('0), + .cfg_tx_pfc_eth_src('0), + .cfg_tx_pfc_eth_type('0), + .cfg_tx_pfc_opcode('0), + .cfg_tx_pfc_en('0), + .cfg_tx_pfc_quanta('{8{'0}}), + .cfg_tx_pfc_refresh('{8{'0}}), + .cfg_rx_lfc_opcode('0), + .cfg_rx_lfc_en('0), + .cfg_rx_pfc_opcode('0), + .cfg_rx_pfc_en('0) ); taxi_axis_async_fifo_adapter #( diff --git a/rtl/eth/taxi_eth_mac_1g.sv b/rtl/eth/taxi_eth_mac_1g.sv index 8c949ba..9224dce 100644 --- a/rtl/eth/taxi_eth_mac_1g.sv +++ b/rtl/eth/taxi_eth_mac_1g.sv @@ -149,8 +149,8 @@ module taxi_eth_mac_1g # input wire logic [15:0] cfg_tx_pfc_eth_type = 16'h8808, input wire logic [15:0] cfg_tx_pfc_opcode = 16'h0101, input wire logic cfg_tx_pfc_en = 1'b0, - input wire logic [7:0][15:0] cfg_tx_pfc_quanta = '{8{16'hffff}}, - input wire logic [7:0][15:0] cfg_tx_pfc_refresh = '{8{16'h7fff}}, + input wire logic [15:0] cfg_tx_pfc_quanta[8] = '{8{16'hffff}}, + input wire logic [15:0] cfg_tx_pfc_refresh[8] = '{8{16'h7fff}}, input wire logic [15:0] cfg_rx_lfc_opcode = 16'h0001, input wire logic cfg_rx_lfc_en = 1'b0, input wire logic [15:0] cfg_rx_pfc_opcode = 16'h0101, diff --git a/rtl/eth/taxi_eth_mac_1g_fifo.sv b/rtl/eth/taxi_eth_mac_1g_fifo.sv index f1e4f39..4b9b7de 100644 --- a/rtl/eth/taxi_eth_mac_1g_fifo.sv +++ b/rtl/eth/taxi_eth_mac_1g_fifo.sv @@ -271,37 +271,37 @@ eth_mac_1g_inst ( .cfg_ifg(cfg_ifg), .cfg_tx_enable(cfg_tx_enable), .cfg_rx_enable(cfg_rx_enable), - .cfg_mcf_rx_eth_dst_mcast(0), - .cfg_mcf_rx_check_eth_dst_mcast(0), - .cfg_mcf_rx_eth_dst_ucast(0), - .cfg_mcf_rx_check_eth_dst_ucast(0), - .cfg_mcf_rx_eth_src(0), - .cfg_mcf_rx_check_eth_src(0), - .cfg_mcf_rx_eth_type(0), - .cfg_mcf_rx_opcode_lfc(0), - .cfg_mcf_rx_check_opcode_lfc(0), - .cfg_mcf_rx_opcode_pfc(0), - .cfg_mcf_rx_check_opcode_pfc(0), - .cfg_mcf_rx_forward(0), - .cfg_mcf_rx_enable(0), - .cfg_tx_lfc_eth_dst(0), - .cfg_tx_lfc_eth_src(0), - .cfg_tx_lfc_eth_type(0), - .cfg_tx_lfc_opcode(0), - .cfg_tx_lfc_en(0), - .cfg_tx_lfc_quanta(0), - .cfg_tx_lfc_refresh(0), - .cfg_tx_pfc_eth_dst(0), - .cfg_tx_pfc_eth_src(0), - .cfg_tx_pfc_eth_type(0), - .cfg_tx_pfc_opcode(0), - .cfg_tx_pfc_en(0), - .cfg_tx_pfc_quanta(0), - .cfg_tx_pfc_refresh(0), - .cfg_rx_lfc_opcode(0), - .cfg_rx_lfc_en(0), - .cfg_rx_pfc_opcode(0), - .cfg_rx_pfc_en(0) + .cfg_mcf_rx_eth_dst_mcast('0), + .cfg_mcf_rx_check_eth_dst_mcast('0), + .cfg_mcf_rx_eth_dst_ucast('0), + .cfg_mcf_rx_check_eth_dst_ucast('0), + .cfg_mcf_rx_eth_src('0), + .cfg_mcf_rx_check_eth_src('0), + .cfg_mcf_rx_eth_type('0), + .cfg_mcf_rx_opcode_lfc('0), + .cfg_mcf_rx_check_opcode_lfc('0), + .cfg_mcf_rx_opcode_pfc('0), + .cfg_mcf_rx_check_opcode_pfc('0), + .cfg_mcf_rx_forward('0), + .cfg_mcf_rx_enable('0), + .cfg_tx_lfc_eth_dst('0), + .cfg_tx_lfc_eth_src('0), + .cfg_tx_lfc_eth_type('0), + .cfg_tx_lfc_opcode('0), + .cfg_tx_lfc_en('0), + .cfg_tx_lfc_quanta('0), + .cfg_tx_lfc_refresh('0), + .cfg_tx_pfc_eth_dst('0), + .cfg_tx_pfc_eth_src('0), + .cfg_tx_pfc_eth_type('0), + .cfg_tx_pfc_opcode('0), + .cfg_tx_pfc_en('0), + .cfg_tx_pfc_quanta('{8{'0}}), + .cfg_tx_pfc_refresh('{8{'0}}), + .cfg_rx_lfc_opcode('0), + .cfg_rx_lfc_en('0), + .cfg_rx_pfc_opcode('0), + .cfg_rx_pfc_en('0) ); taxi_axis_async_fifo_adapter #( diff --git a/rtl/eth/taxi_eth_mac_1g_gmii.sv b/rtl/eth/taxi_eth_mac_1g_gmii.sv index 71c0f72..9959b47 100644 --- a/rtl/eth/taxi_eth_mac_1g_gmii.sv +++ b/rtl/eth/taxi_eth_mac_1g_gmii.sv @@ -149,8 +149,8 @@ module taxi_eth_mac_1g_gmii # input wire logic [15:0] cfg_tx_pfc_eth_type = 16'h8808, input wire logic [15:0] cfg_tx_pfc_opcode = 16'h0101, input wire logic cfg_tx_pfc_en = 1'b0, - input wire logic [7:0][15:0] cfg_tx_pfc_quanta = '{8{16'hffff}}, - input wire logic [7:0][15:0] cfg_tx_pfc_refresh = '{8{16'h7fff}}, + input wire logic [15:0] cfg_tx_pfc_quanta[8] = '{8{16'hffff}}, + input wire logic [15:0] cfg_tx_pfc_refresh[8] = '{8{16'h7fff}}, input wire logic [15:0] cfg_rx_lfc_opcode = 16'h0001, input wire logic cfg_rx_lfc_en = 1'b0, input wire logic [15:0] cfg_rx_pfc_opcode = 16'h0101, diff --git a/rtl/eth/taxi_eth_mac_1g_gmii_fifo.sv b/rtl/eth/taxi_eth_mac_1g_gmii_fifo.sv index 1998524..9384384 100644 --- a/rtl/eth/taxi_eth_mac_1g_gmii_fifo.sv +++ b/rtl/eth/taxi_eth_mac_1g_gmii_fifo.sv @@ -284,37 +284,37 @@ eth_mac_1g_gmii_inst ( .cfg_ifg(cfg_ifg), .cfg_tx_enable(cfg_tx_enable), .cfg_rx_enable(cfg_rx_enable), - .cfg_mcf_rx_eth_dst_mcast(0), - .cfg_mcf_rx_check_eth_dst_mcast(0), - .cfg_mcf_rx_eth_dst_ucast(0), - .cfg_mcf_rx_check_eth_dst_ucast(0), - .cfg_mcf_rx_eth_src(0), - .cfg_mcf_rx_check_eth_src(0), - .cfg_mcf_rx_eth_type(0), - .cfg_mcf_rx_opcode_lfc(0), - .cfg_mcf_rx_check_opcode_lfc(0), - .cfg_mcf_rx_opcode_pfc(0), - .cfg_mcf_rx_check_opcode_pfc(0), - .cfg_mcf_rx_forward(0), - .cfg_mcf_rx_enable(0), - .cfg_tx_lfc_eth_dst(0), - .cfg_tx_lfc_eth_src(0), - .cfg_tx_lfc_eth_type(0), - .cfg_tx_lfc_opcode(0), - .cfg_tx_lfc_en(0), - .cfg_tx_lfc_quanta(0), - .cfg_tx_lfc_refresh(0), - .cfg_tx_pfc_eth_dst(0), - .cfg_tx_pfc_eth_src(0), - .cfg_tx_pfc_eth_type(0), - .cfg_tx_pfc_opcode(0), - .cfg_tx_pfc_en(0), - .cfg_tx_pfc_quanta(0), - .cfg_tx_pfc_refresh(0), - .cfg_rx_lfc_opcode(0), - .cfg_rx_lfc_en(0), - .cfg_rx_pfc_opcode(0), - .cfg_rx_pfc_en(0) + .cfg_mcf_rx_eth_dst_mcast('0), + .cfg_mcf_rx_check_eth_dst_mcast('0), + .cfg_mcf_rx_eth_dst_ucast('0), + .cfg_mcf_rx_check_eth_dst_ucast('0), + .cfg_mcf_rx_eth_src('0), + .cfg_mcf_rx_check_eth_src('0), + .cfg_mcf_rx_eth_type('0), + .cfg_mcf_rx_opcode_lfc('0), + .cfg_mcf_rx_check_opcode_lfc('0), + .cfg_mcf_rx_opcode_pfc('0), + .cfg_mcf_rx_check_opcode_pfc('0), + .cfg_mcf_rx_forward('0), + .cfg_mcf_rx_enable('0), + .cfg_tx_lfc_eth_dst('0), + .cfg_tx_lfc_eth_src('0), + .cfg_tx_lfc_eth_type('0), + .cfg_tx_lfc_opcode('0), + .cfg_tx_lfc_en('0), + .cfg_tx_lfc_quanta('0), + .cfg_tx_lfc_refresh('0), + .cfg_tx_pfc_eth_dst('0), + .cfg_tx_pfc_eth_src('0), + .cfg_tx_pfc_eth_type('0), + .cfg_tx_pfc_opcode('0), + .cfg_tx_pfc_en('0), + .cfg_tx_pfc_quanta('{8{'0}}), + .cfg_tx_pfc_refresh('{8{'0}}), + .cfg_rx_lfc_opcode('0), + .cfg_rx_lfc_en('0), + .cfg_rx_pfc_opcode('0), + .cfg_rx_pfc_en('0) ); taxi_axis_async_fifo_adapter #( diff --git a/rtl/eth/taxi_eth_mac_1g_rgmii.sv b/rtl/eth/taxi_eth_mac_1g_rgmii.sv index 9888270..b13cdad 100644 --- a/rtl/eth/taxi_eth_mac_1g_rgmii.sv +++ b/rtl/eth/taxi_eth_mac_1g_rgmii.sv @@ -148,8 +148,8 @@ module taxi_eth_mac_1g_rgmii # input wire logic [15:0] cfg_tx_pfc_eth_type = 16'h8808, input wire logic [15:0] cfg_tx_pfc_opcode = 16'h0101, input wire logic cfg_tx_pfc_en = 1'b0, - input wire logic [7:0][15:0] cfg_tx_pfc_quanta = '{8{16'hffff}}, - input wire logic [7:0][15:0] cfg_tx_pfc_refresh = '{8{16'h7fff}}, + input wire logic [15:0] cfg_tx_pfc_quanta[8] = '{8{16'hffff}}, + input wire logic [15:0] cfg_tx_pfc_refresh[8] = '{8{16'h7fff}}, input wire logic [15:0] cfg_rx_lfc_opcode = 16'h0001, input wire logic cfg_rx_lfc_en = 1'b0, input wire logic [15:0] cfg_rx_pfc_opcode = 16'h0101, diff --git a/rtl/eth/taxi_eth_mac_1g_rgmii_fifo.sv b/rtl/eth/taxi_eth_mac_1g_rgmii_fifo.sv index 76c7ab7..0553040 100644 --- a/rtl/eth/taxi_eth_mac_1g_rgmii_fifo.sv +++ b/rtl/eth/taxi_eth_mac_1g_rgmii_fifo.sv @@ -282,37 +282,37 @@ eth_mac_1g_rgmii_inst ( .cfg_ifg(cfg_ifg), .cfg_tx_enable(cfg_tx_enable), .cfg_rx_enable(cfg_rx_enable), - .cfg_mcf_rx_eth_dst_mcast(0), - .cfg_mcf_rx_check_eth_dst_mcast(0), - .cfg_mcf_rx_eth_dst_ucast(0), - .cfg_mcf_rx_check_eth_dst_ucast(0), - .cfg_mcf_rx_eth_src(0), - .cfg_mcf_rx_check_eth_src(0), - .cfg_mcf_rx_eth_type(0), - .cfg_mcf_rx_opcode_lfc(0), - .cfg_mcf_rx_check_opcode_lfc(0), - .cfg_mcf_rx_opcode_pfc(0), - .cfg_mcf_rx_check_opcode_pfc(0), - .cfg_mcf_rx_forward(0), - .cfg_mcf_rx_enable(0), - .cfg_tx_lfc_eth_dst(0), - .cfg_tx_lfc_eth_src(0), - .cfg_tx_lfc_eth_type(0), - .cfg_tx_lfc_opcode(0), - .cfg_tx_lfc_en(0), - .cfg_tx_lfc_quanta(0), - .cfg_tx_lfc_refresh(0), - .cfg_tx_pfc_eth_dst(0), - .cfg_tx_pfc_eth_src(0), - .cfg_tx_pfc_eth_type(0), - .cfg_tx_pfc_opcode(0), - .cfg_tx_pfc_en(0), - .cfg_tx_pfc_quanta(0), - .cfg_tx_pfc_refresh(0), - .cfg_rx_lfc_opcode(0), - .cfg_rx_lfc_en(0), - .cfg_rx_pfc_opcode(0), - .cfg_rx_pfc_en(0) + .cfg_mcf_rx_eth_dst_mcast('0), + .cfg_mcf_rx_check_eth_dst_mcast('0), + .cfg_mcf_rx_eth_dst_ucast('0), + .cfg_mcf_rx_check_eth_dst_ucast('0), + .cfg_mcf_rx_eth_src('0), + .cfg_mcf_rx_check_eth_src('0), + .cfg_mcf_rx_eth_type('0), + .cfg_mcf_rx_opcode_lfc('0), + .cfg_mcf_rx_check_opcode_lfc('0), + .cfg_mcf_rx_opcode_pfc('0), + .cfg_mcf_rx_check_opcode_pfc('0), + .cfg_mcf_rx_forward('0), + .cfg_mcf_rx_enable('0), + .cfg_tx_lfc_eth_dst('0), + .cfg_tx_lfc_eth_src('0), + .cfg_tx_lfc_eth_type('0), + .cfg_tx_lfc_opcode('0), + .cfg_tx_lfc_en('0), + .cfg_tx_lfc_quanta('0), + .cfg_tx_lfc_refresh('0), + .cfg_tx_pfc_eth_dst('0), + .cfg_tx_pfc_eth_src('0), + .cfg_tx_pfc_eth_type('0), + .cfg_tx_pfc_opcode('0), + .cfg_tx_pfc_en('0), + .cfg_tx_pfc_quanta('{8{'0}}), + .cfg_tx_pfc_refresh('{8{'0}}), + .cfg_rx_lfc_opcode('0), + .cfg_rx_lfc_en('0), + .cfg_rx_pfc_opcode('0), + .cfg_rx_pfc_en('0) ); taxi_axis_async_fifo_adapter #( diff --git a/rtl/eth/taxi_eth_mac_mii.sv b/rtl/eth/taxi_eth_mac_mii.sv index 48a6599..b50f44c 100644 --- a/rtl/eth/taxi_eth_mac_mii.sv +++ b/rtl/eth/taxi_eth_mac_mii.sv @@ -146,8 +146,8 @@ module taxi_eth_mac_mii # input wire logic [15:0] cfg_tx_pfc_eth_type = 16'h8808, input wire logic [15:0] cfg_tx_pfc_opcode = 16'h0101, input wire logic cfg_tx_pfc_en = 1'b0, - input wire logic [7:0][15:0] cfg_tx_pfc_quanta = '{8{16'hffff}}, - input wire logic [7:0][15:0] cfg_tx_pfc_refresh = '{8{16'h7fff}}, + input wire logic [15:0] cfg_tx_pfc_quanta[8] = '{8{16'hffff}}, + input wire logic [15:0] cfg_tx_pfc_refresh[8] = '{8{16'h7fff}}, input wire logic [15:0] cfg_rx_lfc_opcode = 16'h0001, input wire logic cfg_rx_lfc_en = 1'b0, input wire logic [15:0] cfg_rx_pfc_opcode = 16'h0101, diff --git a/rtl/eth/taxi_eth_mac_mii_fifo.sv b/rtl/eth/taxi_eth_mac_mii_fifo.sv index e7cfd7d..c436fff 100644 --- a/rtl/eth/taxi_eth_mac_mii_fifo.sv +++ b/rtl/eth/taxi_eth_mac_mii_fifo.sv @@ -266,37 +266,37 @@ eth_mac_mii_inst ( .cfg_ifg(cfg_ifg), .cfg_tx_enable(cfg_tx_enable), .cfg_rx_enable(cfg_rx_enable), - .cfg_mcf_rx_eth_dst_mcast(0), - .cfg_mcf_rx_check_eth_dst_mcast(0), - .cfg_mcf_rx_eth_dst_ucast(0), - .cfg_mcf_rx_check_eth_dst_ucast(0), - .cfg_mcf_rx_eth_src(0), - .cfg_mcf_rx_check_eth_src(0), - .cfg_mcf_rx_eth_type(0), - .cfg_mcf_rx_opcode_lfc(0), - .cfg_mcf_rx_check_opcode_lfc(0), - .cfg_mcf_rx_opcode_pfc(0), - .cfg_mcf_rx_check_opcode_pfc(0), - .cfg_mcf_rx_forward(0), - .cfg_mcf_rx_enable(0), - .cfg_tx_lfc_eth_dst(0), - .cfg_tx_lfc_eth_src(0), - .cfg_tx_lfc_eth_type(0), - .cfg_tx_lfc_opcode(0), - .cfg_tx_lfc_en(0), - .cfg_tx_lfc_quanta(0), - .cfg_tx_lfc_refresh(0), - .cfg_tx_pfc_eth_dst(0), - .cfg_tx_pfc_eth_src(0), - .cfg_tx_pfc_eth_type(0), - .cfg_tx_pfc_opcode(0), - .cfg_tx_pfc_en(0), - .cfg_tx_pfc_quanta(0), - .cfg_tx_pfc_refresh(0), - .cfg_rx_lfc_opcode(0), - .cfg_rx_lfc_en(0), - .cfg_rx_pfc_opcode(0), - .cfg_rx_pfc_en(0) + .cfg_mcf_rx_eth_dst_mcast('0), + .cfg_mcf_rx_check_eth_dst_mcast('0), + .cfg_mcf_rx_eth_dst_ucast('0), + .cfg_mcf_rx_check_eth_dst_ucast('0), + .cfg_mcf_rx_eth_src('0), + .cfg_mcf_rx_check_eth_src('0), + .cfg_mcf_rx_eth_type('0), + .cfg_mcf_rx_opcode_lfc('0), + .cfg_mcf_rx_check_opcode_lfc('0), + .cfg_mcf_rx_opcode_pfc('0), + .cfg_mcf_rx_check_opcode_pfc('0), + .cfg_mcf_rx_forward('0), + .cfg_mcf_rx_enable('0), + .cfg_tx_lfc_eth_dst('0), + .cfg_tx_lfc_eth_src('0), + .cfg_tx_lfc_eth_type('0), + .cfg_tx_lfc_opcode('0), + .cfg_tx_lfc_en('0), + .cfg_tx_lfc_quanta('0), + .cfg_tx_lfc_refresh('0), + .cfg_tx_pfc_eth_dst('0), + .cfg_tx_pfc_eth_src('0), + .cfg_tx_pfc_eth_type('0), + .cfg_tx_pfc_opcode('0), + .cfg_tx_pfc_en('0), + .cfg_tx_pfc_quanta('{8{'0}}), + .cfg_tx_pfc_refresh('{8{'0}}), + .cfg_rx_lfc_opcode('0), + .cfg_rx_lfc_en('0), + .cfg_rx_pfc_opcode('0), + .cfg_rx_pfc_en('0) ); taxi_axis_async_fifo_adapter #( diff --git a/rtl/eth/taxi_eth_mac_phy_10g.sv b/rtl/eth/taxi_eth_mac_phy_10g.sv index 348596e..c680733 100644 --- a/rtl/eth/taxi_eth_mac_phy_10g.sv +++ b/rtl/eth/taxi_eth_mac_phy_10g.sv @@ -160,8 +160,8 @@ module taxi_eth_mac_phy_10g # input wire logic [15:0] cfg_tx_pfc_eth_type = 16'h8808, input wire logic [15:0] cfg_tx_pfc_opcode = 16'h0101, input wire logic cfg_tx_pfc_en = 1'b0, - input wire logic [7:0][15:0] cfg_tx_pfc_quanta = '{8{16'hffff}}, - input wire logic [7:0][15:0] cfg_tx_pfc_refresh = '{8{16'h7fff}}, + input wire logic [15:0] cfg_tx_pfc_quanta[8] = '{8{16'hffff}}, + input wire logic [15:0] cfg_tx_pfc_refresh[8] = '{8{16'h7fff}}, input wire logic [15:0] cfg_rx_lfc_opcode = 16'h0001, input wire logic cfg_rx_lfc_en = 1'b0, input wire logic [15:0] cfg_rx_pfc_opcode = 16'h0101, diff --git a/rtl/eth/taxi_eth_mac_phy_10g_fifo.sv b/rtl/eth/taxi_eth_mac_phy_10g_fifo.sv index 64e8afd..1971b0b 100644 --- a/rtl/eth/taxi_eth_mac_phy_10g_fifo.sv +++ b/rtl/eth/taxi_eth_mac_phy_10g_fifo.sv @@ -371,37 +371,37 @@ eth_mac_phy_10g_inst ( .cfg_rx_enable(cfg_rx_enable), .cfg_tx_prbs31_enable(cfg_tx_prbs31_enable), .cfg_rx_prbs31_enable(cfg_rx_prbs31_enable), - .cfg_mcf_rx_eth_dst_mcast(0), - .cfg_mcf_rx_check_eth_dst_mcast(0), - .cfg_mcf_rx_eth_dst_ucast(0), - .cfg_mcf_rx_check_eth_dst_ucast(0), - .cfg_mcf_rx_eth_src(0), - .cfg_mcf_rx_check_eth_src(0), - .cfg_mcf_rx_eth_type(0), - .cfg_mcf_rx_opcode_lfc(0), - .cfg_mcf_rx_check_opcode_lfc(0), - .cfg_mcf_rx_opcode_pfc(0), - .cfg_mcf_rx_check_opcode_pfc(0), - .cfg_mcf_rx_forward(0), - .cfg_mcf_rx_enable(0), - .cfg_tx_lfc_eth_dst(0), - .cfg_tx_lfc_eth_src(0), - .cfg_tx_lfc_eth_type(0), - .cfg_tx_lfc_opcode(0), - .cfg_tx_lfc_en(0), - .cfg_tx_lfc_quanta(0), - .cfg_tx_lfc_refresh(0), - .cfg_tx_pfc_eth_dst(0), - .cfg_tx_pfc_eth_src(0), - .cfg_tx_pfc_eth_type(0), - .cfg_tx_pfc_opcode(0), - .cfg_tx_pfc_en(0), - .cfg_tx_pfc_quanta(0), - .cfg_tx_pfc_refresh(0), - .cfg_rx_lfc_opcode(0), - .cfg_rx_lfc_en(0), - .cfg_rx_pfc_opcode(0), - .cfg_rx_pfc_en(0) + .cfg_mcf_rx_eth_dst_mcast('0), + .cfg_mcf_rx_check_eth_dst_mcast('0), + .cfg_mcf_rx_eth_dst_ucast('0), + .cfg_mcf_rx_check_eth_dst_ucast('0), + .cfg_mcf_rx_eth_src('0), + .cfg_mcf_rx_check_eth_src('0), + .cfg_mcf_rx_eth_type('0), + .cfg_mcf_rx_opcode_lfc('0), + .cfg_mcf_rx_check_opcode_lfc('0), + .cfg_mcf_rx_opcode_pfc('0), + .cfg_mcf_rx_check_opcode_pfc('0), + .cfg_mcf_rx_forward('0), + .cfg_mcf_rx_enable('0), + .cfg_tx_lfc_eth_dst('0), + .cfg_tx_lfc_eth_src('0), + .cfg_tx_lfc_eth_type('0), + .cfg_tx_lfc_opcode('0), + .cfg_tx_lfc_en('0), + .cfg_tx_lfc_quanta('0), + .cfg_tx_lfc_refresh('0), + .cfg_tx_pfc_eth_dst('0), + .cfg_tx_pfc_eth_src('0), + .cfg_tx_pfc_eth_type('0), + .cfg_tx_pfc_opcode('0), + .cfg_tx_pfc_en('0), + .cfg_tx_pfc_quanta('{8{'0}}), + .cfg_tx_pfc_refresh('{8{'0}}), + .cfg_rx_lfc_opcode('0), + .cfg_rx_lfc_en('0), + .cfg_rx_pfc_opcode('0), + .cfg_rx_pfc_en('0) ); taxi_axis_async_fifo_adapter #( diff --git a/rtl/eth/taxi_mac_pause_ctrl_tx.sv b/rtl/eth/taxi_mac_pause_ctrl_tx.sv index c935409..85563e8 100644 --- a/rtl/eth/taxi_mac_pause_ctrl_tx.sv +++ b/rtl/eth/taxi_mac_pause_ctrl_tx.sv @@ -62,8 +62,8 @@ module taxi_mac_pause_ctrl_tx # input wire logic [15:0] cfg_tx_pfc_eth_type = 16'h8808, input wire logic [15:0] cfg_tx_pfc_opcode = 16'h0101, input wire logic cfg_tx_pfc_en = 1'b0, - input wire logic [7:0][15:0] cfg_tx_pfc_quanta = '{8{16'hffff}}, - input wire logic [7:0][15:0] cfg_tx_pfc_refresh = '{8{16'h7fff}}, + input wire logic [15:0] cfg_tx_pfc_quanta[8] = '{8{16'hffff}}, + input wire logic [15:0] cfg_tx_pfc_refresh[8] = '{8{16'h7fff}}, input wire logic [9:0] cfg_quanta_step, input wire logic cfg_quanta_clk_en = 1'b1, diff --git a/rtl/eth/us/taxi_eth_mac_25g_us.sv b/rtl/eth/us/taxi_eth_mac_25g_us.sv index ddcae1c..5157d6d 100644 --- a/rtl/eth/us/taxi_eth_mac_25g_us.sv +++ b/rtl/eth/us/taxi_eth_mac_25g_us.sv @@ -45,153 +45,153 @@ module taxi_eth_mac_25g_us # parameter COUNT_125US = 125000/6.4 ) ( - input wire logic xcvr_ctrl_clk, - input wire logic xcvr_ctrl_rst, + input wire logic xcvr_ctrl_clk, + input wire logic xcvr_ctrl_rst, /* * Common */ - output wire logic xcvr_gtpowergood_out, - input wire logic xcvr_gtrefclk00_in, - output wire logic xcvr_qpll0lock_out, - output wire logic xcvr_qpll0clk_out, - output wire logic xcvr_qpll0refclk_out, + output wire logic xcvr_gtpowergood_out, + input wire logic xcvr_gtrefclk00_in, + output wire logic xcvr_qpll0lock_out, + output wire logic xcvr_qpll0clk_out, + output wire logic xcvr_qpll0refclk_out, /* * Serial data */ - output wire logic [CNT-1:0] xcvr_txp, - output wire logic [CNT-1:0] xcvr_txn, - input wire logic [CNT-1:0] xcvr_rxp, - input wire logic [CNT-1:0] xcvr_rxn, + output wire logic [CNT-1:0] xcvr_txp, + output wire logic [CNT-1:0] xcvr_txn, + input wire logic [CNT-1:0] xcvr_rxp, + input wire logic [CNT-1:0] xcvr_rxn, /* * MAC clocks */ - output wire logic [CNT-1:0] rx_clk, - input wire logic [CNT-1:0] rx_rst_in, - output wire logic [CNT-1:0] rx_rst_out, - output wire logic [CNT-1:0] tx_clk, - input wire logic [CNT-1:0] tx_rst_in, - output wire logic [CNT-1:0] tx_rst_out, - input wire logic [CNT-1:0] ptp_sample_clk, + output wire logic [CNT-1:0] rx_clk, + input wire logic [CNT-1:0] rx_rst_in, + output wire logic [CNT-1:0] rx_rst_out, + output wire logic [CNT-1:0] tx_clk, + input wire logic [CNT-1:0] tx_rst_in, + output wire logic [CNT-1:0] tx_rst_out, + input wire logic [CNT-1:0] ptp_sample_clk, /* * Transmit interface (AXI stream) */ - taxi_axis_if.snk s_axis_tx[CNT-1:0], - taxi_axis_if.src m_axis_tx_cpl[CNT-1:0], + taxi_axis_if.snk s_axis_tx[CNT], + taxi_axis_if.src m_axis_tx_cpl[CNT], /* * Receive interface (AXI stream) */ - taxi_axis_if.src m_axis_rx[CNT-1:0], + taxi_axis_if.src m_axis_rx[CNT], /* * PTP clock */ - input wire logic [CNT-1:0][PTP_TS_W-1:0] tx_ptp_ts = '0, - input wire logic [CNT-1:0] tx_ptp_ts_step = '0, - input wire logic [CNT-1:0][PTP_TS_W-1:0] rx_ptp_ts = '0, - input wire logic [CNT-1:0] rx_ptp_ts_step = '0, + input wire logic [PTP_TS_W-1:0] tx_ptp_ts[CNT] = '{CNT{'0}}, + input wire logic [CNT-1:0] tx_ptp_ts_step = '0, + input wire logic [PTP_TS_W-1:0] rx_ptp_ts[CNT] = '{CNT{'0}}, + input wire logic [CNT-1:0] rx_ptp_ts_step = '0, /* * Link-level Flow Control (LFC) (IEEE 802.3 annex 31B PAUSE) */ - input wire logic [CNT-1:0] tx_lfc_req = '0, - input wire logic [CNT-1:0] tx_lfc_resend = '0, - input wire logic [CNT-1:0] rx_lfc_en = '0, - output wire logic [CNT-1:0] rx_lfc_req, - input wire logic [CNT-1:0] rx_lfc_ack = '0, + input wire logic [CNT-1:0] tx_lfc_req = '0, + input wire logic [CNT-1:0] tx_lfc_resend = '0, + input wire logic [CNT-1:0] rx_lfc_en = '0, + output wire logic [CNT-1:0] rx_lfc_req, + input wire logic [CNT-1:0] rx_lfc_ack = '0, /* * Priority Flow Control (PFC) (IEEE 802.3 annex 31D PFC) */ - input wire logic [CNT-1:0][7:0] tx_pfc_req = '0, - input wire logic [CNT-1:0] tx_pfc_resend = '0, - input wire logic [CNT-1:0][7:0] rx_pfc_en = '0, - output wire logic [CNT-1:0][7:0] rx_pfc_req, - input wire logic [CNT-1:0][7:0] rx_pfc_ack = '0, + input wire logic [7:0] tx_pfc_req[CNT] = '{CNT{'0}}, + input wire logic [CNT-1:0] tx_pfc_resend = '0, + input wire logic [7:0] rx_pfc_en[CNT] = '{CNT{'0}}, + output wire logic [7:0] rx_pfc_req[CNT], + input wire logic [7:0] rx_pfc_ack[CNT] = '{CNT{'0}}, /* * Pause interface */ - input wire logic [CNT-1:0] tx_lfc_pause_en = '0, - input wire logic [CNT-1:0] tx_pause_req = '0, - output wire logic [CNT-1:0] tx_pause_ack, + input wire logic [CNT-1:0] tx_lfc_pause_en = '0, + input wire logic [CNT-1:0] tx_pause_req = '0, + output wire logic [CNT-1:0] tx_pause_ack, /* * Status */ - output wire logic [CNT-1:0][1:0] tx_start_packet, - output wire logic [CNT-1:0] tx_error_underflow, - output wire logic [CNT-1:0][1:0] rx_start_packet, - output wire logic [CNT-1:0][6:0] rx_error_count, - output wire logic [CNT-1:0] rx_error_bad_frame, - output wire logic [CNT-1:0] rx_error_bad_fcs, - output wire logic [CNT-1:0] rx_bad_block, - output wire logic [CNT-1:0] rx_sequence_error, - output wire logic [CNT-1:0] rx_block_lock, - output wire logic [CNT-1:0] rx_high_ber, - output wire logic [CNT-1:0] rx_status, - output wire logic [CNT-1:0] stat_tx_mcf, - output wire logic [CNT-1:0] stat_rx_mcf, - output wire logic [CNT-1:0] stat_tx_lfc_pkt, - output wire logic [CNT-1:0] stat_tx_lfc_xon, - output wire logic [CNT-1:0] stat_tx_lfc_xoff, - output wire logic [CNT-1:0] stat_tx_lfc_paused, - output wire logic [CNT-1:0] stat_tx_pfc_pkt, - output wire logic [CNT-1:0][7:0] stat_tx_pfc_xon, - output wire logic [CNT-1:0][7:0] stat_tx_pfc_xoff, - output wire logic [CNT-1:0][7:0] stat_tx_pfc_paused, - output wire logic [CNT-1:0] stat_rx_lfc_pkt, - output wire logic [CNT-1:0] stat_rx_lfc_xon, - output wire logic [CNT-1:0] stat_rx_lfc_xoff, - output wire logic [CNT-1:0] stat_rx_lfc_paused, - output wire logic [CNT-1:0] stat_rx_pfc_pkt, - output wire logic [CNT-1:0][7:0] stat_rx_pfc_xon, - output wire logic [CNT-1:0][7:0] stat_rx_pfc_xoff, - output wire logic [CNT-1:0][7:0] stat_rx_pfc_paused, + output wire logic [1:0] tx_start_packet[CNT], + output wire logic [CNT-1:0] tx_error_underflow, + output wire logic [1:0] rx_start_packet[CNT], + output wire logic [6:0] rx_error_count[CNT], + output wire logic [CNT-1:0] rx_error_bad_frame, + output wire logic [CNT-1:0] rx_error_bad_fcs, + output wire logic [CNT-1:0] rx_bad_block, + output wire logic [CNT-1:0] rx_sequence_error, + output wire logic [CNT-1:0] rx_block_lock, + output wire logic [CNT-1:0] rx_high_ber, + output wire logic [CNT-1:0] rx_status, + output wire logic [CNT-1:0] stat_tx_mcf, + output wire logic [CNT-1:0] stat_rx_mcf, + output wire logic [CNT-1:0] stat_tx_lfc_pkt, + output wire logic [CNT-1:0] stat_tx_lfc_xon, + output wire logic [CNT-1:0] stat_tx_lfc_xoff, + output wire logic [CNT-1:0] stat_tx_lfc_paused, + output wire logic [CNT-1:0] stat_tx_pfc_pkt, + output wire logic [7:0] stat_tx_pfc_xon[CNT], + output wire logic [7:0] stat_tx_pfc_xoff[CNT], + output wire logic [7:0] stat_tx_pfc_paused[CNT], + output wire logic [CNT-1:0] stat_rx_lfc_pkt, + output wire logic [CNT-1:0] stat_rx_lfc_xon, + output wire logic [CNT-1:0] stat_rx_lfc_xoff, + output wire logic [CNT-1:0] stat_rx_lfc_paused, + output wire logic [CNT-1:0] stat_rx_pfc_pkt, + output wire logic [7:0] stat_rx_pfc_xon[CNT], + output wire logic [7:0] stat_rx_pfc_xoff[CNT], + output wire logic [7:0] stat_rx_pfc_paused[CNT], /* * Configuration */ - input wire logic [CNT-1:0][7:0] cfg_ifg = '{CNT{8'd12}}, - input wire logic [CNT-1:0] cfg_tx_enable = '1, - input wire logic [CNT-1:0] cfg_rx_enable = '1, - input wire logic [CNT-1:0] cfg_tx_prbs31_enable = '0, - input wire logic [CNT-1:0] cfg_rx_prbs31_enable = '0, - input wire logic [CNT-1:0][47:0] cfg_mcf_rx_eth_dst_mcast = '{CNT{48'h01_80_C2_00_00_01}}, - input wire logic [CNT-1:0] cfg_mcf_rx_check_eth_dst_mcast = '1, - input wire logic [CNT-1:0][47:0] cfg_mcf_rx_eth_dst_ucast = '{CNT{48'd0}}, - input wire logic [CNT-1:0] cfg_mcf_rx_check_eth_dst_ucast = '0, - input wire logic [CNT-1:0][47:0] cfg_mcf_rx_eth_src = '{CNT{48'd0}}, - input wire logic [CNT-1:0] cfg_mcf_rx_check_eth_src = '0, - input wire logic [CNT-1:0][15:0] cfg_mcf_rx_eth_type = '{CNT{16'h8808}}, - input wire logic [CNT-1:0][15:0] cfg_mcf_rx_opcode_lfc = '{CNT{16'h0001}}, - input wire logic [CNT-1:0] cfg_mcf_rx_check_opcode_lfc = '1, - input wire logic [CNT-1:0][15:0] cfg_mcf_rx_opcode_pfc = '{CNT{16'h0101}}, - input wire logic [CNT-1:0] cfg_mcf_rx_check_opcode_pfc = '1, - input wire logic [CNT-1:0] cfg_mcf_rx_forward = '0, - input wire logic [CNT-1:0] cfg_mcf_rx_enable = '0, - input wire logic [CNT-1:0][47:0] cfg_tx_lfc_eth_dst = '{CNT{48'h01_80_C2_00_00_01}}, - input wire logic [CNT-1:0][47:0] cfg_tx_lfc_eth_src = '{CNT{48'h80_23_31_43_54_4C}}, - input wire logic [CNT-1:0][15:0] cfg_tx_lfc_eth_type = '{CNT{16'h8808}}, - input wire logic [CNT-1:0][15:0] cfg_tx_lfc_opcode = '{CNT{16'h0001}}, - input wire logic [CNT-1:0] cfg_tx_lfc_en = '0, - input wire logic [CNT-1:0][15:0] cfg_tx_lfc_quanta = '{CNT{16'hffff}}, - input wire logic [CNT-1:0][15:0] cfg_tx_lfc_refresh = '{CNT{16'h7fff}}, - input wire logic [CNT-1:0][47:0] cfg_tx_pfc_eth_dst = '{CNT{48'h01_80_C2_00_00_01}}, - input wire logic [CNT-1:0][47:0] cfg_tx_pfc_eth_src = '{CNT{48'h80_23_31_43_54_4C}}, - input wire logic [CNT-1:0][15:0] cfg_tx_pfc_eth_type = '{CNT{16'h8808}}, - input wire logic [CNT-1:0][15:0] cfg_tx_pfc_opcode = '{CNT{16'h0101}}, - input wire logic [CNT-1:0] cfg_tx_pfc_en = '0, - input wire logic [CNT-1:0][7:0][15:0] cfg_tx_pfc_quanta = '{CNT{'{8{16'hffff}}}}, - input wire logic [CNT-1:0][7:0][15:0] cfg_tx_pfc_refresh = '{CNT{'{8{16'h7fff}}}}, - input wire logic [CNT-1:0][15:0] cfg_rx_lfc_opcode = '{CNT{16'h0001}}, - input wire logic [CNT-1:0] cfg_rx_lfc_en = '0, - input wire logic [CNT-1:0][15:0] cfg_rx_pfc_opcode = '{CNT{16'h0101}}, - input wire logic [CNT-1:0] cfg_rx_pfc_en = '0 + input wire logic [7:0] cfg_ifg[CNT] = '{CNT{8'd12}}, + input wire logic [CNT-1:0] cfg_tx_enable = '1, + input wire logic [CNT-1:0] cfg_rx_enable = '1, + input wire logic [CNT-1:0] cfg_tx_prbs31_enable = '0, + input wire logic [CNT-1:0] cfg_rx_prbs31_enable = '0, + input wire logic [47:0] cfg_mcf_rx_eth_dst_mcast[CNT] = '{CNT{48'h01_80_C2_00_00_01}}, + input wire logic [CNT-1:0] cfg_mcf_rx_check_eth_dst_mcast = '1, + input wire logic [47:0] cfg_mcf_rx_eth_dst_ucast[CNT] = '{CNT{48'd0}}, + input wire logic [CNT-1:0] cfg_mcf_rx_check_eth_dst_ucast = '0, + input wire logic [47:0] cfg_mcf_rx_eth_src[CNT] = '{CNT{48'd0}}, + input wire logic [CNT-1:0] cfg_mcf_rx_check_eth_src = '0, + input wire logic [15:0] cfg_mcf_rx_eth_type[CNT] = '{CNT{16'h8808}}, + input wire logic [15:0] cfg_mcf_rx_opcode_lfc[CNT] = '{CNT{16'h0001}}, + input wire logic [CNT-1:0] cfg_mcf_rx_check_opcode_lfc = '1, + input wire logic [15:0] cfg_mcf_rx_opcode_pfc[CNT] = '{CNT{16'h0101}}, + input wire logic [CNT-1:0] cfg_mcf_rx_check_opcode_pfc = '1, + input wire logic [CNT-1:0] cfg_mcf_rx_forward = '0, + input wire logic [CNT-1:0] cfg_mcf_rx_enable = '0, + input wire logic [47:0] cfg_tx_lfc_eth_dst[CNT] = '{CNT{48'h01_80_C2_00_00_01}}, + input wire logic [47:0] cfg_tx_lfc_eth_src[CNT] = '{CNT{48'h80_23_31_43_54_4C}}, + input wire logic [15:0] cfg_tx_lfc_eth_type[CNT] = '{CNT{16'h8808}}, + input wire logic [15:0] cfg_tx_lfc_opcode[CNT] = '{CNT{16'h0001}}, + input wire logic [CNT-1:0] cfg_tx_lfc_en = '0, + input wire logic [15:0] cfg_tx_lfc_quanta[CNT] = '{CNT{16'hffff}}, + input wire logic [15:0] cfg_tx_lfc_refresh[CNT] = '{CNT{16'h7fff}}, + input wire logic [47:0] cfg_tx_pfc_eth_dst[CNT] = '{CNT{48'h01_80_C2_00_00_01}}, + input wire logic [47:0] cfg_tx_pfc_eth_src[CNT] = '{CNT{48'h80_23_31_43_54_4C}}, + input wire logic [15:0] cfg_tx_pfc_eth_type[CNT] = '{CNT{16'h8808}}, + input wire logic [15:0] cfg_tx_pfc_opcode[CNT] = '{CNT{16'h0101}}, + input wire logic [CNT-1:0] cfg_tx_pfc_en = '0, + input wire logic [15:0] cfg_tx_pfc_quanta[CNT][8] = '{CNT{'{8{16'hffff}}}}, + input wire logic [15:0] cfg_tx_pfc_refresh[CNT][8] = '{CNT{'{8{16'h7fff}}}}, + input wire logic [15:0] cfg_rx_lfc_opcode[CNT] = '{CNT{16'h0001}}, + input wire logic [CNT-1:0] cfg_rx_lfc_en = '0, + input wire logic [15:0] cfg_rx_pfc_opcode[CNT] = '{CNT{16'h0101}}, + input wire logic [CNT-1:0] cfg_rx_pfc_en = '0 ); for (genvar n = 0; n < CNT; n = n + 1) begin : ch diff --git a/rtl/eth/us/taxi_eth_mac_25g_us_ch.sv b/rtl/eth/us/taxi_eth_mac_25g_us_ch.sv index 38522e4..c88c4bb 100644 --- a/rtl/eth/us/taxi_eth_mac_25g_us_ch.sv +++ b/rtl/eth/us/taxi_eth_mac_25g_us_ch.sv @@ -198,8 +198,8 @@ module taxi_eth_mac_25g_us_ch # input wire logic [15:0] cfg_tx_pfc_eth_type = 16'h8808, input wire logic [15:0] cfg_tx_pfc_opcode = 16'h0101, input wire logic cfg_tx_pfc_en = 1'b0, - input wire logic [7:0][15:0] cfg_tx_pfc_quanta = '{8{16'hffff}}, - input wire logic [7:0][15:0] cfg_tx_pfc_refresh = '{8{16'h7fff}}, + input wire logic [15:0] cfg_tx_pfc_quanta[8] = '{8{16'hffff}}, + input wire logic [15:0] cfg_tx_pfc_refresh[8] = '{8{16'h7fff}}, input wire logic [15:0] cfg_rx_lfc_opcode = 16'h0001, input wire logic cfg_rx_lfc_en = 1'b0, input wire logic [15:0] cfg_rx_pfc_opcode = 16'h0101, diff --git a/tb/eth/taxi_eth_mac_10g/test_taxi_eth_mac_10g.py b/tb/eth/taxi_eth_mac_10g/test_taxi_eth_mac_10g.py index 8be54a6..c7fad33 100644 --- a/tb/eth/taxi_eth_mac_10g/test_taxi_eth_mac_10g.py +++ b/tb/eth/taxi_eth_mac_10g/test_taxi_eth_mac_10g.py @@ -95,8 +95,8 @@ class TB: dut.cfg_tx_pfc_eth_type.setimmediatevalue(0) dut.cfg_tx_pfc_opcode.setimmediatevalue(0) dut.cfg_tx_pfc_en.setimmediatevalue(0) - dut.cfg_tx_pfc_quanta.setimmediatevalue(0) - dut.cfg_tx_pfc_refresh.setimmediatevalue(0) + dut.cfg_tx_pfc_quanta.setimmediatevalue([0]*8) + dut.cfg_tx_pfc_refresh.setimmediatevalue([0]*8) dut.cfg_rx_lfc_opcode.setimmediatevalue(0) dut.cfg_rx_lfc_en.setimmediatevalue(0) dut.cfg_rx_pfc_opcode.setimmediatevalue(0) @@ -554,8 +554,8 @@ async def run_test_pfc(dut, ifg=12): dut.cfg_tx_pfc_eth_type.value = 0x8808 dut.cfg_tx_pfc_opcode.value = 0x0101 dut.cfg_tx_pfc_en.value = 1 - dut.cfg_tx_pfc_quanta.value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - dut.cfg_tx_pfc_refresh.value = 0x7F007F007F007F007F007F007F007F00 + dut.cfg_tx_pfc_quanta.value = [0xFFFF]*8 + dut.cfg_tx_pfc_refresh.value = [0x7F00]*8 dut.cfg_rx_pfc_opcode.value = 0x0101 dut.cfg_rx_pfc_en.value = 1 diff --git a/tb/eth/taxi_eth_mac_10g/test_taxi_eth_mac_10g.sv b/tb/eth/taxi_eth_mac_10g/test_taxi_eth_mac_10g.sv index 6e063e2..24f073a 100644 --- a/tb/eth/taxi_eth_mac_10g/test_taxi_eth_mac_10g.sv +++ b/tb/eth/taxi_eth_mac_10g/test_taxi_eth_mac_10g.sv @@ -121,8 +121,8 @@ logic [47:0] cfg_tx_pfc_eth_src; logic [15:0] cfg_tx_pfc_eth_type; logic [15:0] cfg_tx_pfc_opcode; logic cfg_tx_pfc_en; -logic [7:0][15:0] cfg_tx_pfc_quanta; -logic [7:0][15:0] cfg_tx_pfc_refresh; +logic [15:0] cfg_tx_pfc_quanta[8]; +logic [15:0] cfg_tx_pfc_refresh[8]; logic [15:0] cfg_rx_lfc_opcode; logic cfg_rx_lfc_en; logic [15:0] cfg_rx_pfc_opcode; diff --git a/tb/eth/taxi_eth_mac_1g/test_taxi_eth_mac_1g.py b/tb/eth/taxi_eth_mac_1g/test_taxi_eth_mac_1g.py index fea3d36..92b1dc4 100644 --- a/tb/eth/taxi_eth_mac_1g/test_taxi_eth_mac_1g.py +++ b/tb/eth/taxi_eth_mac_1g/test_taxi_eth_mac_1g.py @@ -102,8 +102,8 @@ class TB: dut.cfg_tx_pfc_eth_type.setimmediatevalue(0) dut.cfg_tx_pfc_opcode.setimmediatevalue(0) dut.cfg_tx_pfc_en.setimmediatevalue(0) - dut.cfg_tx_pfc_quanta.setimmediatevalue(0) - dut.cfg_tx_pfc_refresh.setimmediatevalue(0) + dut.cfg_tx_pfc_quanta.setimmediatevalue([0]*8) + dut.cfg_tx_pfc_refresh.setimmediatevalue([0]*8) dut.cfg_rx_lfc_opcode.setimmediatevalue(0) dut.cfg_rx_lfc_en.setimmediatevalue(0) dut.cfg_rx_pfc_opcode.setimmediatevalue(0) @@ -541,8 +541,8 @@ async def run_test_pfc(dut, ifg=12, enable_gen=None, mii_sel=True): dut.cfg_tx_pfc_eth_type.value = 0x8808 dut.cfg_tx_pfc_opcode.value = 0x0101 dut.cfg_tx_pfc_en.value = 1 - dut.cfg_tx_pfc_quanta.value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - dut.cfg_tx_pfc_refresh.value = 0x7F007F007F007F007F007F007F007F00 + dut.cfg_tx_pfc_quanta.value = [0xFFFF]*8 + dut.cfg_tx_pfc_refresh.value = [0x7F00]*8 dut.cfg_rx_pfc_opcode.value = 0x0101 dut.cfg_rx_pfc_en.value = 1 diff --git a/tb/eth/taxi_eth_mac_1g/test_taxi_eth_mac_1g.sv b/tb/eth/taxi_eth_mac_1g/test_taxi_eth_mac_1g.sv index 15f85dc..b8e0d5e 100644 --- a/tb/eth/taxi_eth_mac_1g/test_taxi_eth_mac_1g.sv +++ b/tb/eth/taxi_eth_mac_1g/test_taxi_eth_mac_1g.sv @@ -125,8 +125,8 @@ logic [47:0] cfg_tx_pfc_eth_src; logic [15:0] cfg_tx_pfc_eth_type; logic [15:0] cfg_tx_pfc_opcode; logic cfg_tx_pfc_en; -logic [7:0][15:0] cfg_tx_pfc_quanta; -logic [7:0][15:0] cfg_tx_pfc_refresh; +logic [15:0] cfg_tx_pfc_quanta[8]; +logic [15:0] cfg_tx_pfc_refresh[8]; logic [15:0] cfg_rx_lfc_opcode; logic cfg_rx_lfc_en; logic [15:0] cfg_rx_pfc_opcode; diff --git a/tb/eth/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.py b/tb/eth/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.py index a34ec05..16a202a 100644 --- a/tb/eth/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.py +++ b/tb/eth/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.py @@ -94,8 +94,8 @@ class TB: dut.cfg_tx_pfc_eth_type.setimmediatevalue(0) dut.cfg_tx_pfc_opcode.setimmediatevalue(0) dut.cfg_tx_pfc_en.setimmediatevalue(0) - dut.cfg_tx_pfc_quanta.setimmediatevalue(0) - dut.cfg_tx_pfc_refresh.setimmediatevalue(0) + dut.cfg_tx_pfc_quanta.setimmediatevalue([0]*8) + dut.cfg_tx_pfc_refresh.setimmediatevalue([0]*8) dut.cfg_rx_lfc_opcode.setimmediatevalue(0) dut.cfg_rx_lfc_en.setimmediatevalue(0) dut.cfg_rx_pfc_opcode.setimmediatevalue(0) @@ -494,8 +494,8 @@ async def run_test_pfc(dut, ifg=12, speed=1000e6): dut.cfg_tx_pfc_eth_type.value = 0x8808 dut.cfg_tx_pfc_opcode.value = 0x0101 dut.cfg_tx_pfc_en.value = 1 - dut.cfg_tx_pfc_quanta.value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - dut.cfg_tx_pfc_refresh.value = 0x7F007F007F007F007F007F007F007F00 + dut.cfg_tx_pfc_quanta.value = [0xFFFF]*8 + dut.cfg_tx_pfc_refresh.value = [0x7F00]*8 dut.cfg_rx_pfc_opcode.value = 0x0101 dut.cfg_rx_pfc_en.value = 1 diff --git a/tb/eth/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.sv b/tb/eth/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.sv index 9e03b46..d50f6d9 100644 --- a/tb/eth/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.sv +++ b/tb/eth/taxi_eth_mac_1g_gmii/test_taxi_eth_mac_1g_gmii.sv @@ -129,8 +129,8 @@ logic [47:0] cfg_tx_pfc_eth_src; logic [15:0] cfg_tx_pfc_eth_type; logic [15:0] cfg_tx_pfc_opcode; logic cfg_tx_pfc_en; -logic [7:0][15:0] cfg_tx_pfc_quanta; -logic [7:0][15:0] cfg_tx_pfc_refresh; +logic [15:0] cfg_tx_pfc_quanta[8]; +logic [15:0] cfg_tx_pfc_refresh[8]; logic [15:0] cfg_rx_lfc_opcode; logic cfg_rx_lfc_en; logic [15:0] cfg_rx_pfc_opcode; diff --git a/tb/eth/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.py b/tb/eth/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.py index de5da61..35cb662 100644 --- a/tb/eth/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.py +++ b/tb/eth/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.py @@ -87,8 +87,8 @@ class TB: dut.cfg_tx_pfc_eth_type.setimmediatevalue(0) dut.cfg_tx_pfc_opcode.setimmediatevalue(0) dut.cfg_tx_pfc_en.setimmediatevalue(0) - dut.cfg_tx_pfc_quanta.setimmediatevalue(0) - dut.cfg_tx_pfc_refresh.setimmediatevalue(0) + dut.cfg_tx_pfc_quanta.setimmediatevalue([0]*8) + dut.cfg_tx_pfc_refresh.setimmediatevalue([0]*8) dut.cfg_rx_lfc_opcode.setimmediatevalue(0) dut.cfg_rx_lfc_en.setimmediatevalue(0) dut.cfg_rx_pfc_opcode.setimmediatevalue(0) @@ -495,8 +495,8 @@ async def run_test_pfc(dut, ifg=12, speed=1000e6): dut.cfg_tx_pfc_eth_type.value = 0x8808 dut.cfg_tx_pfc_opcode.value = 0x0101 dut.cfg_tx_pfc_en.value = 1 - dut.cfg_tx_pfc_quanta.value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - dut.cfg_tx_pfc_refresh.value = 0x7F007F007F007F007F007F007F007F00 + dut.cfg_tx_pfc_quanta.value = [0xFFFF]*8 + dut.cfg_tx_pfc_refresh.value = [0x7F00]*8 dut.cfg_rx_pfc_opcode.value = 0x0101 dut.cfg_rx_pfc_en.value = 1 diff --git a/tb/eth/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.sv b/tb/eth/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.sv index 9400463..096f1ec 100644 --- a/tb/eth/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.sv +++ b/tb/eth/taxi_eth_mac_1g_rgmii/test_taxi_eth_mac_1g_rgmii.sv @@ -128,8 +128,8 @@ logic [47:0] cfg_tx_pfc_eth_src; logic [15:0] cfg_tx_pfc_eth_type; logic [15:0] cfg_tx_pfc_opcode; logic cfg_tx_pfc_en; -logic [7:0][15:0] cfg_tx_pfc_quanta; -logic [7:0][15:0] cfg_tx_pfc_refresh; +logic [15:0] cfg_tx_pfc_quanta[8]; +logic [15:0] cfg_tx_pfc_refresh[8]; logic [15:0] cfg_rx_lfc_opcode; logic cfg_rx_lfc_en; logic [15:0] cfg_rx_pfc_opcode; diff --git a/tb/eth/taxi_eth_mac_mii/test_taxi_eth_mac_mii.py b/tb/eth/taxi_eth_mac_mii/test_taxi_eth_mac_mii.py index fea2543..9c8e415 100644 --- a/tb/eth/taxi_eth_mac_mii/test_taxi_eth_mac_mii.py +++ b/tb/eth/taxi_eth_mac_mii/test_taxi_eth_mac_mii.py @@ -87,8 +87,8 @@ class TB: dut.cfg_tx_pfc_eth_type.setimmediatevalue(0) dut.cfg_tx_pfc_opcode.setimmediatevalue(0) dut.cfg_tx_pfc_en.setimmediatevalue(0) - dut.cfg_tx_pfc_quanta.setimmediatevalue(0) - dut.cfg_tx_pfc_refresh.setimmediatevalue(0) + dut.cfg_tx_pfc_quanta.setimmediatevalue([0]*8) + dut.cfg_tx_pfc_refresh.setimmediatevalue([0]*8) dut.cfg_rx_lfc_opcode.setimmediatevalue(0) dut.cfg_rx_lfc_en.setimmediatevalue(0) dut.cfg_rx_pfc_opcode.setimmediatevalue(0) @@ -456,8 +456,8 @@ async def run_test_pfc(dut, ifg=12, speed=1000e6): dut.cfg_tx_pfc_eth_type.value = 0x8808 dut.cfg_tx_pfc_opcode.value = 0x0101 dut.cfg_tx_pfc_en.value = 1 - dut.cfg_tx_pfc_quanta.value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - dut.cfg_tx_pfc_refresh.value = 0x7F007F007F007F007F007F007F007F00 + dut.cfg_tx_pfc_quanta.value = [0xFFFF]*8 + dut.cfg_tx_pfc_refresh.value = [0x7F00]*8 dut.cfg_rx_pfc_opcode.value = 0x0101 dut.cfg_rx_pfc_en.value = 1 diff --git a/tb/eth/taxi_eth_mac_mii/test_taxi_eth_mac_mii.sv b/tb/eth/taxi_eth_mac_mii/test_taxi_eth_mac_mii.sv index 6ca1964..17eb8a7 100644 --- a/tb/eth/taxi_eth_mac_mii/test_taxi_eth_mac_mii.sv +++ b/tb/eth/taxi_eth_mac_mii/test_taxi_eth_mac_mii.sv @@ -126,8 +126,8 @@ logic [47:0] cfg_tx_pfc_eth_src; logic [15:0] cfg_tx_pfc_eth_type; logic [15:0] cfg_tx_pfc_opcode; logic cfg_tx_pfc_en; -logic [7:0][15:0] cfg_tx_pfc_quanta; -logic [7:0][15:0] cfg_tx_pfc_refresh; +logic [15:0] cfg_tx_pfc_quanta[8]; +logic [15:0] cfg_tx_pfc_refresh[8]; logic [15:0] cfg_rx_lfc_opcode; logic cfg_rx_lfc_en; logic [15:0] cfg_rx_pfc_opcode; diff --git a/tb/eth/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.py b/tb/eth/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.py index b29bc6a..56e499e 100644 --- a/tb/eth/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.py +++ b/tb/eth/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.py @@ -95,8 +95,8 @@ class TB: dut.cfg_tx_pfc_eth_type.setimmediatevalue(0) dut.cfg_tx_pfc_opcode.setimmediatevalue(0) dut.cfg_tx_pfc_en.setimmediatevalue(0) - dut.cfg_tx_pfc_quanta.setimmediatevalue(0) - dut.cfg_tx_pfc_refresh.setimmediatevalue(0) + dut.cfg_tx_pfc_quanta.setimmediatevalue([0]*8) + dut.cfg_tx_pfc_refresh.setimmediatevalue([0]*8) dut.cfg_rx_lfc_opcode.setimmediatevalue(0) dut.cfg_rx_lfc_en.setimmediatevalue(0) dut.cfg_rx_pfc_opcode.setimmediatevalue(0) @@ -614,8 +614,8 @@ async def run_test_pfc(dut, ifg=12): dut.cfg_tx_pfc_eth_type.value = 0x8808 dut.cfg_tx_pfc_opcode.value = 0x0101 dut.cfg_tx_pfc_en.value = 1 - dut.cfg_tx_pfc_quanta.value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - dut.cfg_tx_pfc_refresh.value = 0x7F007F007F007F007F007F007F007F00 + dut.cfg_tx_pfc_quanta.value = [0xFFFF]*8 + dut.cfg_tx_pfc_refresh.value = [0x7F00]*8 dut.cfg_rx_pfc_opcode.value = 0x0101 dut.cfg_rx_pfc_en.value = 1 diff --git a/tb/eth/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.sv b/tb/eth/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.sv index 49a1fe7..7f12318 100644 --- a/tb/eth/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.sv +++ b/tb/eth/taxi_eth_mac_phy_10g/test_taxi_eth_mac_phy_10g.sv @@ -139,8 +139,8 @@ logic [47:0] cfg_tx_pfc_eth_src; logic [15:0] cfg_tx_pfc_eth_type; logic [15:0] cfg_tx_pfc_opcode; logic cfg_tx_pfc_en; -logic [7:0][15:0] cfg_tx_pfc_quanta; -logic [7:0][15:0] cfg_tx_pfc_refresh; +logic [15:0] cfg_tx_pfc_quanta[8]; +logic [15:0] cfg_tx_pfc_refresh[8]; logic [15:0] cfg_rx_lfc_opcode; logic cfg_rx_lfc_en; logic [15:0] cfg_rx_pfc_opcode; diff --git a/tb/eth/taxi_mac_pause_ctrl_tx/test_taxi_mac_pause_ctrl_tx.py b/tb/eth/taxi_mac_pause_ctrl_tx/test_taxi_mac_pause_ctrl_tx.py index f809939..a45a4f9 100644 --- a/tb/eth/taxi_mac_pause_ctrl_tx/test_taxi_mac_pause_ctrl_tx.py +++ b/tb/eth/taxi_mac_pause_ctrl_tx/test_taxi_mac_pause_ctrl_tx.py @@ -61,8 +61,8 @@ class TB: dut.cfg_tx_pfc_eth_type.setimmediatevalue(0) dut.cfg_tx_pfc_opcode.setimmediatevalue(0) dut.cfg_tx_pfc_en.setimmediatevalue(0) - dut.cfg_tx_pfc_quanta.setimmediatevalue(0) - dut.cfg_tx_pfc_refresh.setimmediatevalue(0) + dut.cfg_tx_pfc_quanta.setimmediatevalue([0]*8) + dut.cfg_tx_pfc_refresh.setimmediatevalue([0]*8) dut.cfg_quanta_step.setimmediatevalue(256) dut.cfg_quanta_clk_en.setimmediatevalue(1) @@ -113,9 +113,6 @@ async def run_test_lfc(dut): dut.tx_lfc_req.value = 0 dut.tx_lfc_resend.value = 0 - dut.tx_pfc_req.value = 0x00 - dut.tx_pfc_resend.value = 0 - dut.cfg_tx_lfc_eth_dst.value = 0x0180C2000001 dut.cfg_tx_lfc_eth_src.value = 0x5A5152535455 dut.cfg_tx_lfc_eth_type.value = 0x8808 @@ -123,13 +120,6 @@ async def run_test_lfc(dut): dut.cfg_tx_lfc_en.value = 1 dut.cfg_tx_lfc_quanta.value = 0xFFFF dut.cfg_tx_lfc_refresh.value = 0x7F00 - dut.cfg_tx_pfc_eth_dst.value = 0x0180C2000001 - dut.cfg_tx_pfc_eth_src.value = 0x5A5152535455 - dut.cfg_tx_pfc_eth_type.value = 0x8808 - dut.cfg_tx_pfc_opcode.value = 0x0101 - dut.cfg_tx_pfc_en.value = 0 - dut.cfg_tx_pfc_quanta.value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - dut.cfg_tx_pfc_refresh.value = 0x7F007F007F007F007F007F007F007F00 dut.cfg_quanta_step.value = int(10000*256 / (512*156.25)) dut.cfg_quanta_clk_en.value = 1 @@ -193,32 +183,22 @@ async def run_test_pfc(dut): await tb.reset() - dut.tx_lfc_req.value = 0 - dut.tx_lfc_resend.value = 0 - dut.tx_pfc_req.value = 0x00 dut.tx_pfc_resend.value = 0 - dut.cfg_tx_lfc_eth_dst.value = 0x0180C2000001 - dut.cfg_tx_lfc_eth_src.value = 0x5A5152535455 - dut.cfg_tx_lfc_eth_type.value = 0x8808 - dut.cfg_tx_lfc_opcode.value = 0x0001 - dut.cfg_tx_lfc_en.value = 0 - dut.cfg_tx_lfc_quanta.value = 0xFFFF - dut.cfg_tx_lfc_refresh.value = 0x7F00 dut.cfg_tx_pfc_eth_dst.value = 0x0180C2000001 dut.cfg_tx_pfc_eth_src.value = 0x5A5152535455 dut.cfg_tx_pfc_eth_type.value = 0x8808 dut.cfg_tx_pfc_opcode.value = 0x0101 dut.cfg_tx_pfc_en.value = 1 - dut.cfg_tx_pfc_quanta.value = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - dut.cfg_tx_pfc_refresh.value = 0x7F007F007F007F007F007F007F007F00 + dut.cfg_tx_pfc_quanta.value = [0xFFFF]*8 + dut.cfg_tx_pfc_refresh.value = [0x7F00]*8 dut.cfg_quanta_step.value = int(10000*256 / (512*156.25)) dut.cfg_quanta_clk_en.value = 1 tb.log.info("Test pause") - dut.cfg_tx_pfc_refresh.value = 0x00640064006400640064006400640064 + dut.cfg_tx_pfc_refresh.value = [0x0064]*8 dut.tx_pfc_req.value = 0x01 start_time = None @@ -248,7 +228,7 @@ async def run_test_pfc(dut): tb.log.info("Test all channels") - dut.cfg_tx_pfc_refresh.value = 0x00640064006400640064006400640064 + dut.cfg_tx_pfc_refresh.value = [0x0064]*8 for ch in range(8): @@ -280,7 +260,7 @@ async def run_test_pfc(dut): tb.log.info("Test isolation") - dut.cfg_tx_pfc_refresh.value = 0x00640064006400640064006400640064 + dut.cfg_tx_pfc_refresh.value = [0x0064]*8 dut.tx_pfc_req.value = 0x01 start_time = None