UGRAMM
Loading...
Searching...
No Matches
routing.h
1//===================================================================//
2// Universal GRAaph Minor Mapping (UGRAMM) method for CGRA //
3// file : routing.h //
4// description: contains variables and function declaration related //
5// to routing. //
6//===================================================================//
7
8#ifndef ROUTING_H
9#define ROUTING_H
10
11#include <boost/config.hpp>
12#include <iostream>
13#include <fstream>
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>
20#include <queue>
21#include <map>
22#include <list>
23#include <bitset>
24#include <algorithm>
25#include <boost/algorithm/string.hpp>
26
27//-------------------------------------------------------------------//
28//------------------- [Routing] Helper function ---------------------//
29//-------------------------------------------------------------------//
30
41bool compatibilityCheck(const std::string &gType, const std::string &hOpcode);
42
55int findFuncCellFromOutputPin(int signal, DirectedGraph *G);
56
69int findOutputPinFromFuncCell(int signal, DirectedGraph *G);
70
82int findRoot(int signal, std::map<int, NodeConfig> *gConfig);
83
90int getSignalCost(int signal);
91
100bool hasOverlap(int signal);
101
108int totalUsed(DirectedGraph *G);
109
116int totalOveruse(DirectedGraph *G);
117
123void adjustHistoryCosts(DirectedGraph *G);
124
132int cmpfunc(const void *a, const void *b);
133
140void sortList(int *list, int n);
141
142//-------------------------------------------------------------------//
143//-------------------- [Routing] Main function ----------------------//
144//-------------------------------------------------------------------//
145
152void ripup(int signal, std::list<int> *nodes);
153
161void ripUpRouting(int signal, DirectedGraph *G);
162
169void depositRoute(int signal, std::list<int> *nodes);
170
182int route(DirectedGraph *G, int signal, int sink, std::list<int> *route, std::map<int, NodeConfig> *gConfig);
183
193int routeSignal(DirectedGraph *G, DirectedGraph *H, int y, std::map<int, NodeConfig> *gConfig);
194
195#endif