blob: 466838240fe097e493b4e6fc4e6e9a06f7ebd468 [file] [log] [blame]
/*
* Prepacking: Group together technology-mapped netlist blocks before packing. This gives hints to the packer on what groups of blocks to keep together during packing.
* Primary use 1) "Forced" packs (eg LUT+FF pair)
* 2) Carry-chains
*/
#ifndef PREPACK_H
#define PREPACK_H
#include <unordered_map>
#include "atom_netlist_fwd.h"
#include "arch_types.h"
#include "vpr_types.h"
t_pack_patterns* alloc_and_load_pack_patterns(int* num_packing_patterns);
void free_list_of_pack_patterns(t_pack_patterns* list_of_pack_patterns, const int num_packing_patterns);
t_pack_molecule* alloc_and_load_pack_molecules(t_pack_patterns* list_of_pack_patterns,
std::multimap<AtomBlockId, t_pack_molecule*>& atom_molecules,
std::unordered_map<AtomBlockId, t_pb_graph_node*>& expected_lowest_cost_pb_gnode,
const int num_packing_patterns);
#endif