Skip to content

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;
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information