original_docstring: 
          This function handles LUTs FASM features generation
          
docstring: This function handles LUTs FASM features generation
docstring_tokens: This function handles LUTs FASM features generation
code: def handle_luts(self):
          """
          This function handles LUTs FASM features generation
          """
  
          self.luts = dict()
  
          for cell_instance, cell_data in self.physical_cells_instances.items():
              if not cell_data.cell_type.startswith("LUT"):
                  continue
  
              site_name = cell_data.site_name
              site_type = cell_data.site_type
  
              tile_name = cell_data.tile_name
              tile_type = cell_data.tile_type
              slice_site = self.get_slice_prefix(site_name, tile_type)
  
              bel = cell_data.bel
              lut_loc, lut_type = parse_lut_bel(bel)
              lut_name = "{}LUT".format(lut_loc)
  
              init_param = self.device_resources.get_parameter_definition(
                  cell_data.cell_type, "INIT")
              init_value = init_param.decode_integer(
                  cell_data.attributes["INIT"])
  
              phys_lut_init = self.lut_mapper.get_phys_cell_lut_init(
                  init_value, cell_data)
  
              key = (site_name, lut_loc)
              if key not in self.luts:
                  self.luts[key] = {
                      "data": (tile_name, slice_site, lut_name),
                      LutsEnum.LUT5: None,
                      LutsEnum.LUT6: None,
                  }
  
              self.luts[key][LutsEnum.from_str(lut_type)] = phys_lut_init
code_tokens: def handle_luts ( self ) : self . luts = dict ( ) for cell_instance , cell_data in self . physical_cells_instances . items ( ) : if not cell_data . cell_type . startswith ( "LUT" ) : continue site_name = cell_data . site_name site_type = cell_data . site_type tile_name = cell_data . tile_name tile_type = cell_data . tile_type slice_site = self . get_slice_prefix ( site_name , tile_type ) bel = cell_data . bel lut_loc , lut_type = parse_lut_bel ( bel ) lut_name = "{}LUT" . format ( lut_loc ) init_param = self . device_resources . get_parameter_definition ( cell_data . cell_type , "INIT" ) init_value = init_param . decode_integer ( cell_data . attributes [ "INIT" ] ) phys_lut_init = self . lut_mapper . get_phys_cell_lut_init ( init_value , cell_data ) key = ( site_name , lut_loc ) if key not in self . luts : self . luts [ key ] = { "data" : ( tile_name , slice_site , lut_name ) , LutsEnum . LUT5 : None , LutsEnum . LUT6 : None , } self . luts [ key ] [ LutsEnum . from_str ( lut_type ) ] = phys_lut_init
short_docstring: This function handles LUTs FASM features generation
short_docstring_tokens: This function handles LUTs FASM features generation
comment: """
          This function handles LUTs FASM features generation
          """