Fix deinterleaver issue (FEC5 / 10G mode)
In the dataPath/uplink_deinterleaverFec5.vhd file, the data(138) bit is forced to GND:
fec5_5g12: if DATARATE = DATARATE_5G12 or DATARATE = DYNAMIC generate
-- Code 0
data_5g12_s(117) <= '0';
data_5g12_s(115 downto 0) <= data_i(125 downto 10);
fec_5g12_s(9 downto 0) <= data_i(9 downto 0);
-- Code 1 (Not used @5.12Gbps - then uses 2nd phase of data)
data_5g12_s(233) <= '0';
data_5g12_s(232 downto 117) <= data_i(253 downto 138);
fec_5g12_s(19 downto 10) <= data_i(137 downto 128);
end generate;
Bit 117 of the data_5g12_s signal was connected to both '0' and data_i(138). During the synthetizing stage, Vivado was simply connecting the data_i(138) bit to '0', impacting all of the other configurations as well. Therefore, this part of the code shall be changed to:
fec5_5g12: if DATARATE = DATARATE_5G12 or DATARATE = DYNAMIC generate
-- Code 0
data_5g12_s(116) <= '0';
data_5g12_s(115 downto 0) <= data_i(125 downto 10);
fec_5g12_s(9 downto 0) <= data_i(9 downto 0);
-- Code 1 (Not used @5.12Gbps - then uses 2nd phase of data)
data_5g12_s(233) <= '0';
data_5g12_s(232 downto 117) <= data_i(253 downto 138);
fec_5g12_s(19 downto 10) <= data_i(137 downto 128);
end generate;