| /* |
| 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 |