1
0
mirror of https://github.com/corundum/corundum.git synced 2025-01-16 08:12:53 +08:00

Update UDP modules and example designs to utilize UDP checksum modules

This commit is contained in:
Alex Forencich 2016-09-30 22:15:21 -07:00
parent 4e522e52af
commit 270641b7a3
30 changed files with 74 additions and 54 deletions

View File

@ -27,6 +27,7 @@ SYN_FILES += lib/eth/rtl/lfsr.v
SYN_FILES += lib/eth/rtl/eth_axis_rx.v
SYN_FILES += lib/eth/rtl/eth_axis_tx.v
SYN_FILES += lib/eth/rtl/udp_complete.v
SYN_FILES += lib/eth/rtl/udp_checksum_gen.v
SYN_FILES += lib/eth/rtl/udp.v
SYN_FILES += lib/eth/rtl/udp_ip_rx.v
SYN_FILES += lib/eth/rtl/udp_ip_tx.v

View File

@ -437,9 +437,7 @@ eth_axis_tx_inst (
.busy()
);
udp_complete #(
.UDP_CHECKSUM_ENABLE(0)
)
udp_complete
udp_complete_inst (
.clk(clk),
.rst(rst),

View File

@ -50,6 +50,7 @@ srcs.append("../lib/eth/rtl/lfsr.v")
srcs.append("../lib/eth/rtl/eth_axis_rx.v")
srcs.append("../lib/eth/rtl/eth_axis_tx.v")
srcs.append("../lib/eth/rtl/udp_complete.v")
srcs.append("../lib/eth/rtl/udp_checksum_gen.v")
srcs.append("../lib/eth/rtl/udp.v")
srcs.append("../lib/eth/rtl/udp_ip_rx.v")
srcs.append("../lib/eth/rtl/udp_ip_tx.v")

View File

@ -20,6 +20,7 @@ SYN_FILES += lib/eth/rtl/lfsr.v
SYN_FILES += lib/eth/rtl/eth_axis_rx_64.v
SYN_FILES += lib/eth/rtl/eth_axis_tx_64.v
SYN_FILES += lib/eth/rtl/udp_complete_64.v
SYN_FILES += lib/eth/rtl/udp_checksum_gen_64.v
SYN_FILES += lib/eth/rtl/udp_64.v
SYN_FILES += lib/eth/rtl/udp_ip_rx_64.v
SYN_FILES += lib/eth/rtl/udp_ip_tx_64.v

View File

@ -421,9 +421,7 @@ eth_axis_tx_inst (
.busy()
);
udp_complete_64 #(
.UDP_CHECKSUM_ENABLE(0)
)
udp_complete_64
udp_complete_inst (
.clk(clk),
.rst(rst),

View File

@ -45,6 +45,7 @@ srcs.append("../lib/eth/rtl/lfsr.v")
srcs.append("../lib/eth/rtl/eth_axis_rx_64.v")
srcs.append("../lib/eth/rtl/eth_axis_tx_64.v")
srcs.append("../lib/eth/rtl/udp_complete_64.v")
srcs.append("../lib/eth/rtl/udp_checksum_gen_64.v")
srcs.append("../lib/eth/rtl/udp_64.v")
srcs.append("../lib/eth/rtl/udp_ip_rx_64.v")
srcs.append("../lib/eth/rtl/udp_ip_tx_64.v")

View File

@ -25,6 +25,7 @@ SYN_FILES += lib/eth/rtl/lfsr.v
SYN_FILES += lib/eth/rtl/eth_axis_rx_64.v
SYN_FILES += lib/eth/rtl/eth_axis_tx_64.v
SYN_FILES += lib/eth/rtl/udp_complete_64.v
SYN_FILES += lib/eth/rtl/udp_checksum_gen_64.v
SYN_FILES += lib/eth/rtl/udp_64.v
SYN_FILES += lib/eth/rtl/udp_ip_rx_64.v
SYN_FILES += lib/eth/rtl/udp_ip_tx_64.v

View File

@ -565,9 +565,7 @@ eth_axis_tx_inst (
.busy()
);
udp_complete_64 #(
.UDP_CHECKSUM_ENABLE(0)
)
udp_complete_64
udp_complete_inst (
.clk(clk),
.rst(rst),

View File

@ -45,6 +45,7 @@ srcs.append("../lib/eth/rtl/lfsr.v")
srcs.append("../lib/eth/rtl/eth_axis_rx_64.v")
srcs.append("../lib/eth/rtl/eth_axis_tx_64.v")
srcs.append("../lib/eth/rtl/udp_complete_64.v")
srcs.append("../lib/eth/rtl/udp_checksum_gen_64.v")
srcs.append("../lib/eth/rtl/udp_64.v")
srcs.append("../lib/eth/rtl/udp_ip_rx_64.v")
srcs.append("../lib/eth/rtl/udp_ip_tx_64.v")

View File

@ -23,6 +23,7 @@ SYN_FILES += lib/eth/rtl/lfsr.v
SYN_FILES += lib/eth/rtl/eth_axis_rx.v
SYN_FILES += lib/eth/rtl/eth_axis_tx.v
SYN_FILES += lib/eth/rtl/udp_complete.v
SYN_FILES += lib/eth/rtl/udp_checksum_gen.v
SYN_FILES += lib/eth/rtl/udp.v
SYN_FILES += lib/eth/rtl/udp_ip_rx.v
SYN_FILES += lib/eth/rtl/udp_ip_tx.v

View File

@ -438,9 +438,7 @@ eth_axis_tx_inst (
.busy()
);
udp_complete #(
.UDP_CHECKSUM_ENABLE(0)
)
udp_complete
udp_complete_inst (
.clk(clk),
.rst(rst),

View File

@ -50,6 +50,7 @@ srcs.append("../lib/eth/rtl/lfsr.v")
srcs.append("../lib/eth/rtl/eth_axis_rx.v")
srcs.append("../lib/eth/rtl/eth_axis_tx.v")
srcs.append("../lib/eth/rtl/udp_complete.v")
srcs.append("../lib/eth/rtl/udp_checksum_gen.v")
srcs.append("../lib/eth/rtl/udp.v")
srcs.append("../lib/eth/rtl/udp_ip_rx.v")
srcs.append("../lib/eth/rtl/udp_ip_tx.v")

View File

@ -24,6 +24,7 @@ SYN_FILES += lib/eth/rtl/lfsr.v
SYN_FILES += lib/eth/rtl/eth_axis_rx_64.v
SYN_FILES += lib/eth/rtl/eth_axis_tx_64.v
SYN_FILES += lib/eth/rtl/udp_complete_64.v
SYN_FILES += lib/eth/rtl/udp_checksum_gen_64.v
SYN_FILES += lib/eth/rtl/udp_64.v
SYN_FILES += lib/eth/rtl/udp_ip_rx_64.v
SYN_FILES += lib/eth/rtl/udp_ip_tx_64.v

View File

@ -687,9 +687,7 @@ eth_axis_tx_inst (
.busy()
);
udp_complete_64 #(
.UDP_CHECKSUM_ENABLE(0)
)
udp_complete_64
udp_complete_inst (
.clk(clk),
.rst(rst),

View File

@ -52,6 +52,7 @@ srcs.append("../lib/eth/rtl/eth_axis_tx.v")
srcs.append("../lib/eth/rtl/eth_axis_rx_64.v")
srcs.append("../lib/eth/rtl/eth_axis_tx_64.v")
srcs.append("../lib/eth/rtl/udp_complete_64.v")
srcs.append("../lib/eth/rtl/udp_checksum_gen_64.v")
srcs.append("../lib/eth/rtl/udp_64.v")
srcs.append("../lib/eth/rtl/udp_ip_rx_64.v")
srcs.append("../lib/eth/rtl/udp_ip_tx_64.v")

View File

@ -18,6 +18,7 @@ SYN_FILES += lib/eth/rtl/lfsr.v
SYN_FILES += lib/eth/rtl/eth_axis_rx.v
SYN_FILES += lib/eth/rtl/eth_axis_tx.v
SYN_FILES += lib/eth/rtl/udp_complete.v
SYN_FILES += lib/eth/rtl/udp_checksum_gen.v
SYN_FILES += lib/eth/rtl/udp.v
SYN_FILES += lib/eth/rtl/udp_ip_rx.v
SYN_FILES += lib/eth/rtl/udp_ip_tx.v

View File

@ -395,9 +395,7 @@ eth_axis_tx_inst (
.busy()
);
udp_complete #(
.UDP_CHECKSUM_ENABLE(0)
)
udp_complete
udp_complete_inst (
.clk(clk),
.rst(rst),

View File

@ -45,6 +45,7 @@ srcs.append("../lib/eth/rtl/lfsr.v")
srcs.append("../lib/eth/rtl/eth_axis_rx.v")
srcs.append("../lib/eth/rtl/eth_axis_tx.v")
srcs.append("../lib/eth/rtl/udp_complete.v")
srcs.append("../lib/eth/rtl/udp_checksum_gen.v")
srcs.append("../lib/eth/rtl/udp.v")
srcs.append("../lib/eth/rtl/udp_ip_rx.v")
srcs.append("../lib/eth/rtl/udp_ip_tx.v")

View File

@ -31,7 +31,7 @@ THE SOFTWARE.
*/
module udp #
(
parameter CHECKSUM_ENABLE = 1,
parameter CHECKSUM_GEN_ENABLE = 1,
parameter CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH = 11,
parameter CHECKSUM_HEADER_FIFO_ADDR_WIDTH = 3
)
@ -253,13 +253,13 @@ udp_ip_rx_inst (
generate
if (CHECKSUM_ENABLE) begin
if (CHECKSUM_GEN_ENABLE) begin
udp_checksum #(
udp_checksum_gen #(
.PAYLOAD_FIFO_ADDR_WIDTH(CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH),
.HEADER_FIFO_ADDR_WIDTH(CHECKSUM_HEADER_FIFO_ADDR_WIDTH)
)
udp_checksum_inst (
udp_checksum_gen_inst (
.clk(clk),
.rst(rst),
// UDP frame input
@ -276,13 +276,11 @@ if (CHECKSUM_ENABLE) begin
.input_ip_flags(input_udp_ip_flags),
.input_ip_fragment_offset(input_udp_ip_fragment_offset),
.input_ip_ttl(input_udp_ip_ttl),
.input_ip_protocol(0),
.input_ip_header_checksum(input_udp_ip_header_checksum),
.input_ip_source_ip(input_udp_ip_source_ip),
.input_ip_dest_ip(input_udp_ip_dest_ip),
.input_udp_source_port(input_udp_source_port),
.input_udp_dest_port(input_udp_dest_port),
.input_udp_checksum(input_udp_checksum),
.input_udp_payload_tdata(input_udp_payload_tdata),
.input_udp_payload_tvalid(input_udp_payload_tvalid),
.input_udp_payload_tready(input_udp_payload_tready),

View File

@ -31,7 +31,7 @@ THE SOFTWARE.
*/
module udp_64 #
(
parameter CHECKSUM_ENABLE = 1,
parameter CHECKSUM_GEN_ENABLE = 1,
parameter CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH = 11,
parameter CHECKSUM_HEADER_FIFO_ADDR_WIDTH = 3
)
@ -260,13 +260,13 @@ udp_ip_rx_64_inst (
generate
if (CHECKSUM_ENABLE) begin
if (CHECKSUM_GEN_ENABLE) begin
udp_checksum_64 #(
udp_checksum_gen_64 #(
.PAYLOAD_FIFO_ADDR_WIDTH(CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH),
.HEADER_FIFO_ADDR_WIDTH(CHECKSUM_HEADER_FIFO_ADDR_WIDTH)
)
udp_checksum_64_inst (
udp_checksum_gen_64_inst (
.clk(clk),
.rst(rst),
// UDP frame input
@ -283,13 +283,11 @@ if (CHECKSUM_ENABLE) begin
.input_ip_flags(input_udp_ip_flags),
.input_ip_fragment_offset(input_udp_ip_fragment_offset),
.input_ip_ttl(input_udp_ip_ttl),
.input_ip_protocol(0),
.input_ip_header_checksum(input_udp_ip_header_checksum),
.input_ip_source_ip(input_udp_ip_source_ip),
.input_ip_dest_ip(input_udp_ip_dest_ip),
.input_udp_source_port(input_udp_source_port),
.input_udp_dest_port(input_udp_dest_port),
.input_udp_checksum(input_udp_checksum),
.input_udp_payload_tdata(input_udp_payload_tdata),
.input_udp_payload_tkeep(input_udp_payload_tkeep),
.input_udp_payload_tvalid(input_udp_payload_tvalid),

View File

@ -34,7 +34,7 @@ module udp_complete #(
parameter ARP_REQUEST_RETRY_COUNT = 4,
parameter ARP_REQUEST_RETRY_INTERVAL = 125000000*2,
parameter ARP_REQUEST_TIMEOUT = 125000000*30,
parameter UDP_CHECKSUM_ENABLE = 1,
parameter UDP_CHECKSUM_GEN_ENABLE = 1,
parameter UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH = 11,
parameter UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH = 3
)
@ -524,7 +524,7 @@ ip_complete_inst (
* UDP interface
*/
udp #(
.CHECKSUM_ENABLE(UDP_CHECKSUM_ENABLE),
.CHECKSUM_GEN_ENABLE(UDP_CHECKSUM_GEN_ENABLE),
.CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH(UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH),
.CHECKSUM_HEADER_FIFO_ADDR_WIDTH(UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH)
)

View File

@ -34,7 +34,7 @@ module udp_complete_64 #(
parameter ARP_REQUEST_RETRY_COUNT = 4,
parameter ARP_REQUEST_RETRY_INTERVAL = 125000000*2,
parameter ARP_REQUEST_TIMEOUT = 125000000*30,
parameter UDP_CHECKSUM_ENABLE = 1,
parameter UDP_CHECKSUM_GEN_ENABLE = 1,
parameter UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH = 11,
parameter UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH = 3
)
@ -543,7 +543,7 @@ ip_complete_64_inst (
* UDP interface
*/
udp_64 #(
.CHECKSUM_ENABLE(UDP_CHECKSUM_ENABLE),
.CHECKSUM_GEN_ENABLE(UDP_CHECKSUM_GEN_ENABLE),
.CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH(UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH),
.CHECKSUM_HEADER_FIFO_ADDR_WIDTH(UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH)
)

View File

@ -36,8 +36,10 @@ testbench = 'test_%s' % module
srcs = []
srcs.append("../rtl/%s.v" % module)
srcs.append("../rtl/udp_checksum_gen.v")
srcs.append("../rtl/udp_ip_rx.v")
srcs.append("../rtl/udp_ip_tx.v")
srcs.append("../lib/axis/rtl/axis_fifo.v")
srcs.append("%s.v" % testbench)
src = ' '.join(srcs)
@ -434,9 +436,13 @@ def bench():
tx_error_payload_early_termination_asserted.next = 1
def wait_normal():
while (input_ip_payload_tvalid or input_udp_payload_tvalid or
output_ip_payload_tvalid or output_udp_payload_tvalid or
input_ip_hdr_valid or input_udp_hdr_valid):
i = 8
while i > 0:
i = max(0, i-1)
if (input_ip_payload_tvalid or input_udp_payload_tvalid or
output_ip_payload_tvalid or output_udp_payload_tvalid or
input_ip_hdr_valid or input_udp_hdr_valid):
i = 8
yield clk.posedge
@instance

View File

@ -32,7 +32,7 @@ THE SOFTWARE.
module test_udp;
// Parameters
parameter CHECKSUM_ENABLE = 0;
parameter CHECKSUM_GEN_ENABLE = 1;
parameter CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH = 11;
parameter CHECKSUM_HEADER_FIFO_ADDR_WIDTH = 3;
@ -266,7 +266,7 @@ initial begin
end
udp #(
.CHECKSUM_ENABLE(CHECKSUM_ENABLE),
.CHECKSUM_GEN_ENABLE(CHECKSUM_GEN_ENABLE),
.CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH(CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH),
.CHECKSUM_HEADER_FIFO_ADDR_WIDTH(CHECKSUM_HEADER_FIFO_ADDR_WIDTH)
)

View File

@ -36,8 +36,10 @@ testbench = 'test_%s' % module
srcs = []
srcs.append("../rtl/%s.v" % module)
srcs.append("../rtl/udp_checksum_gen_64.v")
srcs.append("../rtl/udp_ip_rx_64.v")
srcs.append("../rtl/udp_ip_tx_64.v")
srcs.append("../lib/axis/rtl/axis_fifo_64.v")
srcs.append("%s.v" % testbench)
src = ' '.join(srcs)
@ -446,9 +448,13 @@ def bench():
tx_error_payload_early_termination_asserted.next = 1
def wait_normal():
while (input_ip_payload_tvalid or input_udp_payload_tvalid or
output_ip_payload_tvalid or output_udp_payload_tvalid or
input_ip_hdr_valid or input_udp_hdr_valid):
i = 8
while i > 0:
i = max(0, i-1)
if (input_ip_payload_tvalid or input_udp_payload_tvalid or
output_ip_payload_tvalid or output_udp_payload_tvalid or
input_ip_hdr_valid or input_udp_hdr_valid):
i = 8
yield clk.posedge
@instance

View File

@ -32,7 +32,7 @@ THE SOFTWARE.
module test_udp_64;
// Parameters
parameter CHECKSUM_ENABLE = 0;
parameter CHECKSUM_GEN_ENABLE = 1;
parameter CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH = 11;
parameter CHECKSUM_HEADER_FIFO_ADDR_WIDTH = 3;
@ -274,7 +274,7 @@ initial begin
end
udp_64 #(
.CHECKSUM_ENABLE(CHECKSUM_ENABLE),
.CHECKSUM_GEN_ENABLE(CHECKSUM_GEN_ENABLE),
.CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH(CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH),
.CHECKSUM_HEADER_FIFO_ADDR_WIDTH(CHECKSUM_HEADER_FIFO_ADDR_WIDTH)
)

View File

@ -38,6 +38,7 @@ srcs = []
srcs.append("../rtl/%s.v" % module)
srcs.append("../rtl/udp.v")
srcs.append("../rtl/udp_checksum_gen.v")
srcs.append("../rtl/udp_ip_rx.v")
srcs.append("../rtl/udp_ip_tx.v")
srcs.append("../rtl/ip_complete.v")
@ -54,6 +55,7 @@ srcs.append("../rtl/eth_arb_mux_2.v")
srcs.append("../rtl/eth_mux_2.v")
srcs.append("../lib/axis/rtl/arbiter.v")
srcs.append("../lib/axis/rtl/priority_encoder.v")
srcs.append("../lib/axis/rtl/axis_fifo.v")
srcs.append("%s.v" % testbench)
src = ' '.join(srcs)
@ -523,9 +525,13 @@ def bench():
udp_tx_error_payload_early_termination_asserted.next = 1
def wait_normal():
while (input_eth_payload_tvalid or input_ip_payload_tvalid or input_udp_payload_tvalid or
output_eth_payload_tvalid or output_ip_payload_tvalid or output_udp_payload_tvalid or
input_eth_hdr_valid or input_ip_hdr_valid or input_udp_hdr_valid):
i = 16
while i > 0:
i = max(0, i-1)
if (input_eth_payload_tvalid or input_ip_payload_tvalid or input_udp_payload_tvalid or
output_eth_payload_tvalid or output_ip_payload_tvalid or output_udp_payload_tvalid or
input_eth_hdr_valid or input_ip_hdr_valid or input_udp_hdr_valid):
i = 16
yield clk.posedge
@instance

View File

@ -36,7 +36,7 @@ parameter ARP_CACHE_ADDR_WIDTH = 2;
parameter ARP_REQUEST_RETRY_COUNT = 4;
parameter ARP_REQUEST_RETRY_INTERVAL = 150;
parameter ARP_REQUEST_TIMEOUT = 400;
parameter UDP_CHECKSUM_ENABLE = 0;
parameter UDP_CHECKSUM_GEN_ENABLE = 1;
parameter UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH = 11;
parameter UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH = 3;
@ -309,7 +309,7 @@ udp_complete #(
.ARP_REQUEST_RETRY_COUNT(ARP_REQUEST_RETRY_COUNT),
.ARP_REQUEST_RETRY_INTERVAL(ARP_REQUEST_RETRY_INTERVAL),
.ARP_REQUEST_TIMEOUT(ARP_REQUEST_TIMEOUT),
.UDP_CHECKSUM_ENABLE(UDP_CHECKSUM_ENABLE),
.UDP_CHECKSUM_GEN_ENABLE(UDP_CHECKSUM_GEN_ENABLE),
.UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH(UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH),
.UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH(UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH)
)

View File

@ -38,6 +38,7 @@ srcs = []
srcs.append("../rtl/%s.v" % module)
srcs.append("../rtl/udp_64.v")
srcs.append("../rtl/udp_checksum_gen_64.v")
srcs.append("../rtl/udp_ip_rx_64.v")
srcs.append("../rtl/udp_ip_tx_64.v")
srcs.append("../rtl/ip_complete_64.v")
@ -54,6 +55,7 @@ srcs.append("../rtl/eth_arb_mux_64_2.v")
srcs.append("../rtl/eth_mux_64_2.v")
srcs.append("../lib/axis/rtl/arbiter.v")
srcs.append("../lib/axis/rtl/priority_encoder.v")
srcs.append("../lib/axis/rtl/axis_fifo_64.v")
srcs.append("%s.v" % testbench)
src = ' '.join(srcs)
@ -541,9 +543,13 @@ def bench():
udp_tx_error_payload_early_termination_asserted.next = 1
def wait_normal():
while (input_eth_payload_tvalid or input_ip_payload_tvalid or input_udp_payload_tvalid or
output_eth_payload_tvalid or output_ip_payload_tvalid or output_udp_payload_tvalid or
input_eth_hdr_valid or input_ip_hdr_valid or input_udp_hdr_valid):
i = 16
while i > 0:
i = max(0, i-1)
if (input_eth_payload_tvalid or input_ip_payload_tvalid or input_udp_payload_tvalid or
output_eth_payload_tvalid or output_ip_payload_tvalid or output_udp_payload_tvalid or
input_eth_hdr_valid or input_ip_hdr_valid or input_udp_hdr_valid):
i = 16
yield clk.posedge
@instance

View File

@ -36,7 +36,7 @@ parameter ARP_CACHE_ADDR_WIDTH = 2;
parameter ARP_REQUEST_RETRY_COUNT = 4;
parameter ARP_REQUEST_RETRY_INTERVAL = 150;
parameter ARP_REQUEST_TIMEOUT = 400;
parameter UDP_CHECKSUM_ENABLE = 0;
parameter UDP_CHECKSUM_GEN_ENABLE = 1;
parameter UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH = 11;
parameter UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH = 3;
@ -321,7 +321,7 @@ udp_complete_64 #(
.ARP_REQUEST_RETRY_COUNT(ARP_REQUEST_RETRY_COUNT),
.ARP_REQUEST_RETRY_INTERVAL(ARP_REQUEST_RETRY_INTERVAL),
.ARP_REQUEST_TIMEOUT(ARP_REQUEST_TIMEOUT),
.UDP_CHECKSUM_ENABLE(UDP_CHECKSUM_ENABLE),
.UDP_CHECKSUM_GEN_ENABLE(UDP_CHECKSUM_GEN_ENABLE),
.UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH(UDP_CHECKSUM_PAYLOAD_FIFO_ADDR_WIDTH),
.UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH(UDP_CHECKSUM_HEADER_FIFO_ADDR_WIDTH)
)