From ecf7cd5373120350041261627b065aa8455d89bf Mon Sep 17 00:00:00 2001 From: David Sidler <david.sidler@inf.ethz.ch> Date: Fri, 30 Aug 2019 11:56:06 +0200 Subject: [PATCH] fix icmp width --- hdl/common/network_stack.sv | 73 +++++++++++++++++++++++++++++++++---- projects/network_stack.tcl | 10 +++++ 2 files changed, 76 insertions(+), 7 deletions(-) diff --git a/hdl/common/network_stack.sv b/hdl/common/network_stack.sv index d056e15..ad233ac 100755 --- a/hdl/common/network_stack.sv +++ b/hdl/common/network_stack.sv @@ -1599,13 +1599,6 @@ register_slice_wrapper #(.WIDTH(WIDTH)) axis_register_arp_in_slice( .aresetn(net_aresetn), .s_axis(axis_iph_to_arp_slice), .m_axis(axis_arp_slice_to_arp) -); - // ICMP Input Slice -register_slice_wrapper #(.WIDTH(WIDTH)) axis_register_icmp_in_slice( - .aclk(net_clk), - .aresetn(net_aresetn), - .s_axis(axis_iph_to_icmp_slice), - .m_axis(axis_icmp_slice_to_icmp) ); // UDP Input Slice register_slice_wrapper #(.WIDTH(WIDTH)) axis_register_upd_in_slice( @@ -1642,6 +1635,72 @@ register_slice_wrapper #(.WIDTH(WIDTH)) axis_register_roce_out_slice( .s_axis(axis_roce_to_roce_slice), .m_axis(axis_roce_slice_to_merge) ); +generate +if (WIDTH==64) begin +// ICMP Input Slice +register_slice_wrapper #(.WIDTH(WIDTH)) axis_register_icmp_in_slice( + .aclk(net_clk), + .aresetn(net_aresetn), + .s_axis(axis_iph_to_icmp_slice), + .m_axis(axis_icmp_slice_to_icmp) +); +end +if (WIDTH==128) begin +// ICMP Input Slice +//axis_register_slice_512 axis_register_icmp_in_slice( +axis_128_to_64_converter icmp_in_data_converter ( + .aclk(net_clk), + .aresetn(net_aresetn), + .s_axis_tvalid(axis_iph_to_icmp_slice.valid), + .s_axis_tready(axis_iph_to_icmp_slice.ready), + .s_axis_tdata(axis_iph_to_icmp_slice.data), + .s_axis_tkeep(axis_iph_to_icmp_slice.keep), + .s_axis_tlast(axis_iph_to_icmp_slice.last), + .m_axis_tvalid(axis_icmp_slice_to_icmp.valid), + .m_axis_tready(axis_icmp_slice_to_icmp.ready), + .m_axis_tdata(axis_icmp_slice_to_icmp.data), + .m_axis_tkeep(axis_icmp_slice_to_icmp.keep), + .m_axis_tlast(axis_icmp_slice_to_icmp.last) +); +end +if (WIDTH==256) begin +// ICMP Input Slice +//axis_register_slice_512 axis_register_icmp_in_slice( +axis_256_to_64_converter icmp_in_data_converter ( + .aclk(net_clk), + .aresetn(net_aresetn), + .s_axis_tvalid(axis_iph_to_icmp_slice.valid), + .s_axis_tready(axis_iph_to_icmp_slice.ready), + .s_axis_tdata(axis_iph_to_icmp_slice.data), + .s_axis_tkeep(axis_iph_to_icmp_slice.keep), + .s_axis_tlast(axis_iph_to_icmp_slice.last), + .m_axis_tvalid(axis_icmp_slice_to_icmp.valid), + .m_axis_tready(axis_icmp_slice_to_icmp.ready), + .m_axis_tdata(axis_icmp_slice_to_icmp.data), + .m_axis_tkeep(axis_icmp_slice_to_icmp.keep), + .m_axis_tlast(axis_icmp_slice_to_icmp.last) +); +end +if (WIDTH==512) begin +// ICMP Input Slice +//axis_register_slice_512 axis_register_icmp_in_slice( +axis_512_to_64_converter icmp_in_data_converter ( + .aclk(net_clk), + .aresetn(net_aresetn), + .s_axis_tvalid(axis_iph_to_icmp_slice.valid), + .s_axis_tready(axis_iph_to_icmp_slice.ready), + .s_axis_tdata(axis_iph_to_icmp_slice.data), + .s_axis_tkeep(axis_iph_to_icmp_slice.keep), + .s_axis_tlast(axis_iph_to_icmp_slice.last), + .m_axis_tvalid(axis_icmp_slice_to_icmp.valid), + .m_axis_tready(axis_icmp_slice_to_icmp.ready), + .m_axis_tdata(axis_icmp_slice_to_icmp.data), + .m_axis_tkeep(axis_icmp_slice_to_icmp.keep), + .m_axis_tlast(axis_icmp_slice_to_icmp.last) +); +end +endgenerate + /* * Network Controller diff --git a/projects/network_stack.tcl b/projects/network_stack.tcl index fb7fd4b..ad7b57d 100755 --- a/projects/network_stack.tcl +++ b/projects/network_stack.tcl @@ -118,11 +118,21 @@ set_property -dict [list CONFIG.S_TDATA_NUM_BYTES {8} CONFIG.M_TDATA_NUM_BYTES { generate_target {instantiation_template} [get_files $device_ip_dir/axis_64_to_128_converter/axis_64_to_128_converter.xci] update_compile_order -fileset sources_1 +create_ip -name axis_dwidth_converter -vendor xilinx.com -library ip -version 1.1 -module_name axis_128_to_64_converter -dir $device_ip_dir +set_property -dict [list CONFIG.S_TDATA_NUM_BYTES {16} CONFIG.M_TDATA_NUM_BYTES {8} CONFIG.HAS_TLAST {1} CONFIG.HAS_TKEEP {1} CONFIG.HAS_MI_TKEEP {1} CONFIG.Component_Name {axis_128_to_64_converter}] [get_ips axis_128_to_64_converter] +generate_target {instantiation_template} [get_files $device_ip_dir/axis_128_to_64_converter/axis_128_to_64_converter.xci] +update_compile_order -fileset sources_1 + create_ip -name axis_dwidth_converter -vendor xilinx.com -library ip -version 1.1 -module_name axis_64_to_256_converter -dir $device_ip_dir set_property -dict [list CONFIG.S_TDATA_NUM_BYTES {8} CONFIG.M_TDATA_NUM_BYTES {32} CONFIG.HAS_TLAST {1} CONFIG.HAS_TKEEP {1} CONFIG.HAS_MI_TKEEP {1} CONFIG.TDEST_WIDTH {1} CONFIG.Component_Name {axis_64_to_256_converter}] [get_ips axis_64_to_256_converter] generate_target {instantiation_template} [get_files $device_ip_dir/axis_64_to_256_converter/axis_64_to_256_converter.xci] update_compile_order -fileset sources_1 +create_ip -name axis_dwidth_converter -vendor xilinx.com -library ip -version 1.1 -module_name axis_256_to_64_converter -dir $device_ip_dir +set_property -dict [list CONFIG.S_TDATA_NUM_BYTES {32} CONFIG.M_TDATA_NUM_BYTES {8} CONFIG.HAS_TLAST {1} CONFIG.HAS_TKEEP {1} CONFIG.HAS_MI_TKEEP {1} CONFIG.Component_Name {axis_256to_64_converter}] [get_ips axis_256_to_64_converter] +generate_target {instantiation_template} [get_files $device_ip_dir/axis_256_to_64_converter/axis_256_to_64_converter.xci] +update_compile_order -fileset sources_1 + #HLS IP cores create_ip -name toe -vendor ethz.systems -library hls -version 1.6 -module_name toe_ip -dir $device_ip_dir -- GitLab