diff --git a/top/e320/e320.v b/top/e320/e320.v index 7babeb0..95e3166 100644 --- a/top/e320/e320.v +++ b/top/e320/e320.v @@ -191,6 +191,9 @@ module e320 ( CHDR_W_must_be_64_for_this_USRP(); end + // Log base 2 of the maximum transmission unit (MTU) in bytes + localparam BYTE_MTU = $clog2(8192); + `ifdef SFP_1GBE parameter PROTOCOL = "1GbE"; parameter MDIO_EN = 1'b1; @@ -1082,6 +1085,7 @@ module e320 ( .PORTNUM(SFP_PORTNUM), .MDIO_EN(MDIO_EN), .MDIO_PHYADDR(MDIO_PHYADDR), + .BYTE_MTU(BYTE_MTU), .RFNOC_PROTOVER(RFNOC_PROTOVER), .NODE_INST(0) ) sfp_wrapper_i ( @@ -1322,6 +1326,7 @@ module e320 ( .DWIDTH (REG_DWIDTH), .AWIDTH (REG_AWIDTH), .PORTNUM (8'd1), + .BYTE_MTU (BYTE_MTU), .RFNOC_PROTOVER (RFNOC_PROTOVER), .NODE_INST (1) ) eth_internal_i ( @@ -1703,6 +1708,7 @@ module e320 ( .FP_GPIO_WIDTH(FP_GPIO_WIDTH), .DB_GPIO_WIDTH(DB_GPIO_WIDTH), .CHDR_W(CHDR_W), + .BYTE_MTU(BYTE_MTU), .RFNOC_PROTOVER(RFNOC_PROTOVER) ) e320_core_i ( diff --git a/top/e320/e320_core.v b/top/e320/e320_core.v index 3caf719..d9a3173 100644 --- a/top/e320/e320_core.v +++ b/top/e320/e320_core.v @@ -26,6 +26,7 @@ module e320_core #( parameter FP_GPIO_WIDTH = 8, // Front panel GPIO width parameter DB_GPIO_WIDTH = 16, // Daughterboard GPIO width parameter CHDR_W = 64, + parameter BYTE_MTU = $clog2(8192), parameter RFNOC_PROTOVER = {8'd1, 8'd0} )( // Clocks and resets @@ -1029,6 +1030,7 @@ module e320_core #( rfnoc_image_core #( .CHDR_W (CHDR_W), + .MTU (BYTE_MTU - $clog2(CHDR_W/8)), .PROTOVER (RFNOC_PROTOVER) ) rfnoc_sandbox_i ( .chdr_aclk (bus_clk ), diff --git a/top/e320/e320_sfp_wrapper.v b/top/e320/e320_sfp_wrapper.v index ccbf382..430184e 100644 --- a/top/e320/e320_sfp_wrapper.v +++ b/top/e320/e320_sfp_wrapper.v @@ -17,6 +17,7 @@ // PORTNUM : Port number // MDIO_EN : Enables internal MDIO master // MDIO_PHYADDR : Address to use for the MDIO +// BYTE_MTU : Log base 2 of the MTU in bytes // RFNOC_PROTOVER : RFNoC protocol version to be reported by transport // adapters. // NODE_INST : RFNoC transport adapter node instance for this port @@ -34,6 +35,7 @@ module e320_sfp_wrapper #( parameter [7:0] PORTNUM = 8'd0, parameter MDIO_EN = 0, parameter [4:0] MDIO_PHYADDR = 5'd0, + parameter BYTE_MTU = $clog2(8192), parameter [15:0] RFNOC_PROTOVER = {8'd1, 8'd0}, parameter NODE_INST = 0, parameter EN_RX_KV_MAP_CFG = 1, @@ -302,6 +304,8 @@ module e320_sfp_wrapper #( if (EN_RX_KV_MAP_CFG || EN_RX_RAW_PYLD) begin : gen_eth_ipv4_interface_wrapper eth_ipv4_interface_wrapper #( .PROTOVER (RFNOC_PROTOVER), + .CPU_FIFO_SIZE (BYTE_MTU), + .CHDR_FIFO_SIZE (BYTE_MTU), .NODE_INST (NODE_INST), .REG_AWIDTH (AWIDTH), .BASE (REG_BASE_ETH_SWITCH), @@ -361,7 +365,7 @@ module e320_sfp_wrapper #( else begin : gen_eth_interface eth_interface #( .PROTOVER (RFNOC_PROTOVER), - .MTU (10), + .MTU (BYTE_MTU-3), // Log base 2 of the MTU in 64-words .NODE_INST (NODE_INST), .REG_AWIDTH (AWIDTH), .BASE (REG_BASE_ETH_SWITCH)