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 "torc/router/NetRouterHeuristic.hpp"
00021 #include "torc/architecture/DDB.hpp"
00022 #include "torc/architecture/OutputStreamHelpers.hpp"
00023 #include <iostream>
00024 #include <vector>
00025
00026 namespace torc {
00027 namespace router {
00028
00029 BOOST_AUTO_TEST_SUITE(router)
00030
00031
00032 BOOST_AUTO_TEST_CASE(NetRouterHeuristicT) {
00033
00034 typedef architecture::Tilewire Tilewire;
00035 typedef architecture::ExtendedWireInfo ExtendedWireInfo;
00036
00037 architecture::DDB db("xc5vlx30");
00038
00039 NetRouterHeuristic h(db);
00040
00041 Tilewire tw1(architecture::xilinx::TileIndex(3000), architecture::xilinx::WireIndex(100));
00042 Tilewire tw2(architecture::xilinx::TileIndex(4004), architecture::xilinx::WireIndex(225));
00043
00044 RouteNode* node1 = new RouteNode(tw1, tw1, 50, 50, 0, 0);
00045 RouteNode* node2 = new RouteNode(tw1, tw1, 0, 0, 1, node1);
00046
00047
00048
00049
00050
00051
00052
00053 h.setSink(tw2);
00054 h.nodeCostInitial(*node1);
00055 h.nodeCost(*node2);
00056
00057 BOOST_CHECK_EQUAL(node1->getCost() == 74, true);
00058 BOOST_CHECK_EQUAL(node2->getCost() == 148, true);
00059
00060 delete node1;
00061 delete node2;
00062 }
00063
00064 BOOST_AUTO_TEST_SUITE_END()
00065
00066 }
00067 }