11#include <boost/config.hpp>
14#include <boost/graph/graph_traits.hpp>
15#include <boost/graph/adjacency_list.hpp>
16#include <boost/graph/dijkstra_shortest_paths.hpp>
17#include <boost/property_map/property_map.hpp>
18#include <boost/graph/graphviz.hpp>
19#include <boost/graph/copy.hpp>
25#include <boost/algorithm/string.hpp>
41bool compatibilityCheck(
const std::string &gType,
const std::string &hOpcode);
55int findFuncCellFromOutputPin(
int signal, DirectedGraph *G);
69int findOutputPinFromFuncCell(
int signal, DirectedGraph *G);
82int findRoot(
int signal, std::map<int, NodeConfig> *gConfig);
90int getSignalCost(
int signal);
100bool hasOverlap(
int signal);
108int totalUsed(DirectedGraph *G);
116int totalOveruse(DirectedGraph *G);
123void adjustHistoryCosts(DirectedGraph *G);
132int cmpfunc(
const void *a,
const void *b);
140void sortList(
int *list,
int n);
152void ripup(
int signal, std::list<int> *nodes);
161void ripUpRouting(
int signal, DirectedGraph *G);
169void depositRoute(
int signal, std::list<int> *nodes);
182int route(DirectedGraph *G,
int signal,
int sink, std::list<int> *route, std::map<int, NodeConfig> *gConfig);
193int routeSignal(DirectedGraph *G, DirectedGraph *H,
int y, std::map<int, NodeConfig> *gConfig);