00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <boost/test/unit_test.hpp>
00020 #include <queue>
00021 #include <iostream>
00022 #include <vector>
00023 #include <string>
00024 #include <algorithm>
00025 #include <functional>
00026 #include "torc/router/RouteNode.hpp"
00027 #include "torc/architecture/DDB.hpp"
00028 #include "torc/router/NetRouterHeuristic.hpp"
00029 #include "torc/router/NetRouter.hpp"
00030 #include "torc/router/RouteNet.hpp"
00031 #include "torc/architecture/ExtendedWireInfo.hpp"
00032
00033 namespace torc {
00034 namespace router {
00035
00036 BOOST_AUTO_TEST_SUITE(router)
00037
00038
00039 BOOST_AUTO_TEST_CASE(NetRouterT) {
00040 architecture::DDB ddb("xc5vlx30");
00041 NetRouterHeuristicBase* h = new NetRouterHeuristic(ddb);
00042 NetRouterBase* r = new NetRouter(ddb, h);
00043
00044 architecture::Tilewire twSource = ddb.lookupTilewire("CLBLL_X16Y42", "L_A");
00045 architecture::Tilewire twSink1 = ddb.lookupTilewire("CLBLL_X16Y42", "L_C3");
00046 architecture::Tilewire twSink2 = ddb.lookupTilewire("CLBLL_X23Y16", "L_B2");
00047 std::string netname = "TEST_NET";
00048 RouteNet net(netname);
00049 net.addSource(twSource);
00050 net.addSink(twSink1);
00051 net.addSink(twSink2);
00052
00053 BOOST_MESSAGE("ROUTE CALL");
00054 std::cout << net.routeNodes().size() << std::endl;
00055 r->route(net);
00056 double t = boost::any_cast<double>(net.mProperties[eRouteTime]);
00057 std::cout << t << std::endl;
00058 BOOST_MESSAGE("ROUTE FINISHED");
00059 std::cout << net.routeNodes().size() << std::endl;
00060
00061 RouteNodePtrVector& v = net.routeNodes();
00062 std::cout << ddb;
00063 architecture::ExtendedWireInfo ewi(ddb);
00064 for (unsigned int i = 0; i < v.size(); i++) {
00065
00066
00067 std::cout << "pip ";
00068 ewi = v[i]->getSourceTilewire();
00069 std::cout << ewi.mTileName << " " << ewi.mWireName << " -> ";
00070 ewi = v[i]->getSinkTilewire();
00071 std::cout << ewi.mWireName << "," << std::endl;
00072 }
00073
00074 }
00075
00076 BOOST_AUTO_TEST_SUITE_END()
00077
00078 }
00079 }