From 6584ebb6cd837e9d4152c9fd82e1b8398b296ac9 Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Thu, 17 Apr 2025 00:34:53 -0700 Subject: [PATCH] example: Enable statistics strings in example designs Signed-off-by: Alex Forencich --- example/Alveo/fpga/rtl/fpga_core.sv | 7 ++++++- example/Arty/fpga/rtl/fpga_core.sv | 2 ++ example/HTG940/fpga/rtl/fpga_core.sv | 2 ++ example/KC705/fpga/rtl/fpga_core.sv | 8 ++++++++ example/KCU105/fpga/rtl/fpga_core.sv | 11 ++++++++++- example/VCU108/fpga/rtl/fpga_core.sv | 6 +++++- example/VCU118/fpga/rtl/fpga_core.sv | 9 ++++++++- example/ZCU102/fpga/rtl/fpga_core.sv | 12 +++++++++++- example/ZCU106/fpga/rtl/fpga_core.sv | 9 ++++++++- example/ZCU111/fpga/rtl/fpga_core.sv | 4 +++- 10 files changed, 63 insertions(+), 7 deletions(-) diff --git a/example/Alveo/fpga/rtl/fpga_core.sv b/example/Alveo/fpga/rtl/fpga_core.sv index 773d46b..949cb72 100644 --- a/example/Alveo/fpga/rtl/fpga_core.sv +++ b/example/Alveo/fpga/rtl/fpga_core.sv @@ -284,6 +284,9 @@ for (genvar n = 0; n < GTY_CLK_CNT; n = n + 1) begin : gty_clk end +localparam logic [8*8-1:0] STAT_PREFIX_STR_QSFP1[4] = '{"QSFP1.1", "QSFP1.2", "QSFP1.3", "QSFP1.4"}; +localparam logic [8*8-1:0] STAT_PREFIX_STR_QSFP2[4] = '{"QSFP2.1", "QSFP2.2", "QSFP2.3", "QSFP2.4"}; + for (genvar n = 0; n < GTY_QUAD_CNT; n = n + 1) begin : gty_quad localparam CLK = n; @@ -314,7 +317,9 @@ for (genvar n = 0; n < GTY_QUAD_CNT; n = n + 1) begin : gty_quad .STAT_TX_LEVEL(1), .STAT_RX_LEVEL(1), .STAT_ID_BASE(n*CNT*(16+16)), - .STAT_UPDATE_PERIOD(1024) + .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR(n == 0 ? STAT_PREFIX_STR_QSFP1 : STAT_PREFIX_STR_QSFP2) ) mac_inst ( .xcvr_ctrl_clk(clk_125mhz), diff --git a/example/Arty/fpga/rtl/fpga_core.sv b/example/Arty/fpga/rtl/fpga_core.sv index 81d07b4..c135e55 100644 --- a/example/Arty/fpga/rtl/fpga_core.sv +++ b/example/Arty/fpga/rtl/fpga_core.sv @@ -171,6 +171,8 @@ taxi_eth_mac_mii_fifo #( .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("MII0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), diff --git a/example/HTG940/fpga/rtl/fpga_core.sv b/example/HTG940/fpga/rtl/fpga_core.sv index 024f2f2..999ff12 100644 --- a/example/HTG940/fpga/rtl/fpga_core.sv +++ b/example/HTG940/fpga/rtl/fpga_core.sv @@ -162,6 +162,8 @@ taxi_eth_mac_1g_rgmii_fifo #( .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("RGMII0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), diff --git a/example/KC705/fpga/rtl/fpga_core.sv b/example/KC705/fpga/rtl/fpga_core.sv index aa04773..7446327 100644 --- a/example/KC705/fpga/rtl/fpga_core.sv +++ b/example/KC705/fpga/rtl/fpga_core.sv @@ -228,6 +228,8 @@ if (BASET_PHY_TYPE == "GMII") begin : baset_mac_gmii .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("GMII0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -316,6 +318,8 @@ end else if (BASET_PHY_TYPE == "RGMII") begin : baset_mac_rgmii .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("RGMII0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -399,6 +403,8 @@ end else if (BASET_PHY_TYPE == "SGMII") begin : baset_mac_sgmii .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SGMII0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -496,6 +502,8 @@ taxi_eth_mac_1g_fifo #( .STAT_RX_LEVEL(1), .STAT_ID_BASE(16+16), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), diff --git a/example/KCU105/fpga/rtl/fpga_core.sv b/example/KCU105/fpga/rtl/fpga_core.sv index 83805a2..4cbced9 100644 --- a/example/KCU105/fpga/rtl/fpga_core.sv +++ b/example/KCU105/fpga/rtl/fpga_core.sv @@ -221,6 +221,8 @@ taxi_eth_mac_1g_fifo #( .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SGMII0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -312,6 +314,8 @@ if (SFP_RATE == 0) begin : sfp_mac .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)+(16+16)*0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -392,6 +396,8 @@ if (SFP_RATE == 0) begin : sfp_mac .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)+(16+16)*1), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP1"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -547,7 +553,10 @@ end else begin : sfp_mac .STAT_TX_LEVEL(1), .STAT_RX_LEVEL(1), .STAT_ID_BASE(16+16), - .STAT_UPDATE_PERIOD(1024) + .STAT_UPDATE_PERIOD(1024)//, + // disabled due to verilator bug + // .STAT_STR_EN(1), + // .STAT_PREFIX_STR('{"SFP0", "SFP1"}) ) sfp_mac_inst ( .xcvr_ctrl_clk(clk), diff --git a/example/VCU108/fpga/rtl/fpga_core.sv b/example/VCU108/fpga/rtl/fpga_core.sv index cce5017..34a8794 100644 --- a/example/VCU108/fpga/rtl/fpga_core.sv +++ b/example/VCU108/fpga/rtl/fpga_core.sv @@ -203,6 +203,8 @@ taxi_eth_mac_1g_fifo #( .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SGMII0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -364,7 +366,9 @@ taxi_eth_mac_25g_us #( .STAT_TX_LEVEL(1), .STAT_RX_LEVEL(1), .STAT_ID_BASE(16+16), - .STAT_UPDATE_PERIOD(1024) + .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR('{"QSFP.1", "QSFP.2", "QSFP.3", "QSFP.4"}) ) qsfp_mac_inst ( .xcvr_ctrl_clk(clk), diff --git a/example/VCU118/fpga/rtl/fpga_core.sv b/example/VCU118/fpga/rtl/fpga_core.sv index 5e4cac4..09f4e06 100644 --- a/example/VCU118/fpga/rtl/fpga_core.sv +++ b/example/VCU118/fpga/rtl/fpga_core.sv @@ -221,6 +221,8 @@ taxi_eth_mac_1g_fifo #( .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SGMII0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -528,6 +530,9 @@ assign qsfp1_tx_n = qsfp_tx_n[3:0]; assign qsfp2_tx_p = qsfp_tx_p[7:4]; assign qsfp2_tx_n = qsfp_tx_n[7:4]; +localparam logic [8*8-1:0] STAT_PREFIX_STR_QSFP1[4] = '{"QSFP1.1", "QSFP1.2", "QSFP1.3", "QSFP1.4"}; +localparam logic [8*8-1:0] STAT_PREFIX_STR_QSFP2[4] = '{"QSFP2.1", "QSFP2.2", "QSFP2.3", "QSFP2.4"}; + for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad localparam CNT = 4; @@ -557,7 +562,9 @@ for (genvar n = 0; n < 2; n = n + 1) begin : gty_quad .STAT_TX_LEVEL(1), .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)+n*CNT*(16+16)), - .STAT_UPDATE_PERIOD(1024) + .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR(n == 0 ? STAT_PREFIX_STR_QSFP1 : STAT_PREFIX_STR_QSFP2) ) mac_inst ( .xcvr_ctrl_clk(clk_125mhz), diff --git a/example/ZCU102/fpga/rtl/fpga_core.sv b/example/ZCU102/fpga/rtl/fpga_core.sv index e03eb23..3ce4ee2 100644 --- a/example/ZCU102/fpga/rtl/fpga_core.sv +++ b/example/ZCU102/fpga/rtl/fpga_core.sv @@ -237,6 +237,8 @@ if (SFP_RATE == 0) begin : sfp_mac .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)*0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -317,6 +319,8 @@ if (SFP_RATE == 0) begin : sfp_mac .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)*1), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP1"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -397,6 +401,8 @@ if (SFP_RATE == 0) begin : sfp_mac .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)*2), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP2"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -477,6 +483,8 @@ if (SFP_RATE == 0) begin : sfp_mac .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)*3), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP3"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -632,7 +640,9 @@ end else begin : sfp_mac .STAT_TX_LEVEL(1), .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), - .STAT_UPDATE_PERIOD(1024) + .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR('{"SFP0", "SFP1", "SFP2", "SFP3"}) ) sfp_mac_inst ( .xcvr_ctrl_clk(clk_125mhz), diff --git a/example/ZCU106/fpga/rtl/fpga_core.sv b/example/ZCU106/fpga/rtl/fpga_core.sv index 754e33c..dadd8d0 100644 --- a/example/ZCU106/fpga/rtl/fpga_core.sv +++ b/example/ZCU106/fpga/rtl/fpga_core.sv @@ -211,6 +211,8 @@ if (SFP_RATE == 0) begin : sfp_mac .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)*0), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP0"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -291,6 +293,8 @@ if (SFP_RATE == 0) begin : sfp_mac .STAT_RX_LEVEL(1), .STAT_ID_BASE((16+16)*1), .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR("SFP1"), .TX_FIFO_DEPTH(16384), .TX_FRAME_FIFO(1), .RX_FIFO_DEPTH(16384), @@ -446,7 +450,10 @@ end else begin : sfp_mac .STAT_TX_LEVEL(1), .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), - .STAT_UPDATE_PERIOD(1024) + .STAT_UPDATE_PERIOD(1024)//, + // disabled due to verilator bug + // .STAT_STR_EN(1), + // .STAT_PREFIX_STR('{"SFP0", "SFP1"}) ) sfp_mac_inst ( .xcvr_ctrl_clk(clk_125mhz), diff --git a/example/ZCU111/fpga/rtl/fpga_core.sv b/example/ZCU111/fpga/rtl/fpga_core.sv index 5857413..273e782 100644 --- a/example/ZCU111/fpga/rtl/fpga_core.sv +++ b/example/ZCU111/fpga/rtl/fpga_core.sv @@ -254,7 +254,9 @@ taxi_eth_mac_25g_us #( .STAT_TX_LEVEL(1), .STAT_RX_LEVEL(1), .STAT_ID_BASE(0), - .STAT_UPDATE_PERIOD(1024) + .STAT_UPDATE_PERIOD(1024), + .STAT_STR_EN(1), + .STAT_PREFIX_STR('{"SFP0", "SFP1", "SFP2", "SFP3"}) ) sfp_mac_inst ( .xcvr_ctrl_clk(clk_125mhz),