26 int num_packing_patterns;
28 int num_pack_molecules;
30 vpr_printf(TIO_MESSAGE_INFO,
"Begin packing '%s'.\n", packer_opts->blif_file_name);
34 cur_model = user_models;
37 cur_model = cur_model->
next;
39 cur_model = library_models;
42 cur_model = cur_model->
next;
49 vpr_printf(TIO_MESSAGE_INFO,
"After removing unused inputs...\n");
50 vpr_printf(TIO_MESSAGE_INFO,
"\ttotal blocks: %d, total nets: %d, total inputs: %d, total outputs: %d\n",
53 vpr_printf(TIO_MESSAGE_INFO,
"Begin prepacking.\n");
55 &num_packing_patterns);
57 list_of_packing_patterns, num_packing_patterns,
59 vpr_printf(TIO_MESSAGE_INFO,
"Finish prepacking.\n");
61 if(packer_opts->auto_compute_inter_cluster_net_delay) {
62 packer_opts->inter_cluster_net_delay = interc_delay;
63 vpr_printf(TIO_MESSAGE_INFO,
"Using inter-cluster delay: %g\n", packer_opts->inter_cluster_net_delay);
71 if (packer_opts->skip_clustering ==
FALSE) {
73 packer_opts->global_clocks, is_clock,
74 packer_opts->hill_climbing_flag, packer_opts->output_file,
75 packer_opts->timing_driven, packer_opts->cluster_seed_type,
76 packer_opts->alpha, packer_opts->beta,
77 packer_opts->recompute_timing_after, packer_opts->block_delay,
78 packer_opts->intra_cluster_net_delay,
79 packer_opts->inter_cluster_net_delay, packer_opts->aspect,
80 packer_opts->allow_unrelated_clustering,
81 packer_opts->allow_early_exit, packer_opts->connection_driven,
82 packer_opts->packer_algorithm, timing_inf);
84 vpr_printf(TIO_MESSAGE_ERROR,
"Skip clustering no longer supported.\n");
93 cur_pack_molecule = list_of_pack_molecules;
94 while (cur_pack_molecule != NULL){
97 cur_pack_molecule = list_of_pack_molecules->
next;
98 free(list_of_pack_molecules);
99 list_of_pack_molecules = cur_pack_molecule;
103 vpr_printf(TIO_MESSAGE_INFO,
"Netlist conversion complete.\n");
void free_list_of_pack_patterns(INP t_pack_patterns *list_of_pack_patterns, INP int num_packing_patterns)
void do_clustering(const t_arch *arch, t_pack_molecule *molecule_head, int num_models, boolean global_clocks, boolean *is_clock, boolean hill_climbing_flag, char *out_fname, boolean timing_driven, enum e_cluster_seed cluster_seed_type, float alpha, float beta, int recompute_timing_after, float block_delay, float intra_cluster_net_delay, float inter_cluster_net_delay, float aspect, boolean allow_unrelated_clustering, boolean allow_early_exit, boolean connection_driven, enum e_packer_algorithm packer_algorithm, t_timing_inf timing_inf)
t_pack_patterns * alloc_and_load_pack_patterns(OUTP int *num_packing_patterns)
struct s_pack_molecule * next
t_pack_molecule * alloc_and_load_pack_molecules(INP t_pack_patterns *list_of_pack_patterns, INP int num_packing_patterns, OUTP int *num_pack_molecule)
static boolean * alloc_and_load_is_clock(boolean global_clocks)
t_logical_block ** logical_block_ptrs