OpenFPGA/vpr7_x2p/vpr/SRC/pack/cluster_legality.h

37 lines
1.3 KiB
C

#ifndef CLUSTER_LEGALITY_H
#define CLUSTER_LEGALITY_H
/* Legalizes routing for a cluster
*/
void alloc_and_load_cluster_legality_checker(void);
void alloc_and_load_legalizer_for_cluster(INP t_block* clb, INP int clb_index, INP const t_arch *arch);
void free_legalizer_for_cluster(INP t_block* clb, boolean free_local_rr_graph);
void free_cluster_legality_checker(void);
void reset_legalizer_for_cluster(t_block *clb);
/* order of use: 1. save cluster 2. Add blocks. 3. route 4. save if successful, undo if not successful */
void save_and_reset_routing_cluster(void);
void setup_intracluster_routing_for_molecule(INP t_pack_molecule *molecule, INOUTP t_pb_graph_node **primitives_list);
boolean try_breadth_first_route_cluster(void);
void restore_routing_cluster(void);
void save_cluster_solution(void);
boolean is_pin_open(int i);
void set_pb_graph_mode(t_pb_graph_node *pb_graph_node, int mode, int isOn);
void alloc_and_load_rr_graph_for_pb_graph_node(INP t_pb_graph_node *pb_graph_node, INP const t_arch* arch, int mode);
/* Power user options */
void reload_ext_net_rr_terminal_cluster(void);
void force_post_place_route_cb_input_pins(int iblock);
void setup_intracluster_routing_for_logical_block(INP int iblock,
INP t_pb_graph_node *primitive);
#endif