From a051c62b9fd99a100eb98756b60df54b68160888 Mon Sep 17 00:00:00 2001 From: Reinier van der Walle <walle@astron.nl> Date: Thu, 1 Jun 2023 13:18:57 +0200 Subject: [PATCH] added byte order inversion --- .../src/vhdl/rdma_demo_eth_tester_wrapper.vhd | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/applications/rdma_demo/src/vhdl/rdma_demo_eth_tester_wrapper.vhd b/applications/rdma_demo/src/vhdl/rdma_demo_eth_tester_wrapper.vhd index a870885c29..4f50982eae 100644 --- a/applications/rdma_demo/src/vhdl/rdma_demo_eth_tester_wrapper.vhd +++ b/applications/rdma_demo/src/vhdl/rdma_demo_eth_tester_wrapper.vhd @@ -152,6 +152,8 @@ END rdma_demo_eth_tester_wrapper; ARCHITECTURE str OF rdma_demo_eth_tester_wrapper IS + CONSTANT c_nof_byte : NATURAL := c_rdma_demo_nof_octet_output_100gbe; + SIGNAL rx_udp_sosi_arr : t_dp_sosi_arr(0 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); SIGNAL rx_udp_siso_arr : t_dp_siso_arr(0 DOWNTO 0) := (OTHERS => c_dp_siso_rdy); SIGNAL tx_udp_sosi_arr : t_dp_sosi_arr(0 DOWNTO 0) := (OTHERS => c_dp_sosi_rst); @@ -274,25 +276,31 @@ BEGIN tx_udp_axi4_siso.tready <= tx_udp_tready; tx_udp_tvalid <= tx_udp_axi4_sosi.tvalid; - tx_udp_tdata <= tx_udp_axi4_sosi.tdata; tx_udp_tstrb <= tx_udp_axi4_sosi.tstrb; - tx_udp_tkeep <= tx_udp_axi4_sosi.tkeep; tx_udp_tlast <= tx_udp_axi4_sosi.tlast; tx_udp_tid <= tx_udp_axi4_sosi.tid; tx_udp_tdest <= tx_udp_axi4_sosi.tdest; tx_udp_tuser <= tx_udp_axi4_sosi.tuser; + -- reverse order of bytes + gen_tx_data : FOR I IN 0 TO c_nof_byte - 1 GENERATE + tx_udp_tdata( (I+1) * c_octet_w - 1 DOWNTO I * c_octet_w) <= tx_udp_axi4_sosi.tdata((c_nof_byte - I) * c_octet_w - 1 DOWNTO (c_nof_byte - 1 - I) * c_octet_w); + tx_udp_tkeep(I) <= tx_udp_axi4_sosi.tkeep(c_nof_byte - 1 - I); + END GENERATE; -- rx_udp rx_udp_tready <= rx_udp_axi4_siso.tready; rx_udp_axi4_sosi.tvalid <= rx_udp_tvalid; - rx_udp_axi4_sosi.tdata <= rx_udp_tdata; rx_udp_axi4_sosi.tstrb <= rx_udp_tstrb; - rx_udp_axi4_sosi.tkeep <= rx_udp_tkeep; rx_udp_axi4_sosi.tlast <= rx_udp_tlast; rx_udp_axi4_sosi.tid <= rx_udp_tid; rx_udp_axi4_sosi.tdest <= rx_udp_tdest; rx_udp_axi4_sosi.tuser <= rx_udp_tuser; + -- reverse order of bytes + gen_rx_data : FOR I IN 0 TO c_nof_byte - 1 GENERATE + rx_udp_axi4_sosi.tdata( (I+1) * c_octet_w - 1 DOWNTO I * c_octet_w) <= rx_udp_tdata((c_nof_byte - I) * c_octet_w - 1 DOWNTO (c_nof_byte - 1 - I) * c_octet_w); + rx_udp_axi4_sosi.tkeep(I) <= rx_udp_tkeep(c_nof_byte - 1 - I); + END GENERATE; -- reg_bg_ctrl -- copi -- GitLab