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/architecture/InstancePin.hpp"
00021 #include "torc/architecture/XilinxDatabaseTypes.hpp"
00022 #include "torc/physical/InstancePin.hpp"
00023 #include "torc/physical/Factory.hpp"
00024 #include <boost/pointer_cast.hpp>
00025
00026 namespace torc {
00027 namespace architecture {
00028
00029 BOOST_AUTO_TEST_SUITE(architecture)
00030
00031
00032 BOOST_AUTO_TEST_CASE(InstancePinUnitTest) {
00033
00034 torc::physical::InstanceSharedPtr instancePtr
00035 = torc::physical::Factory::newInstancePtr("name", "type", "tile", "site");
00036 torc::physical::InstancePinSharedPtr physicalInstancePinPtr
00037 = torc::physical::Factory::newInstancePinPtr(instancePtr, "pin");
00038
00039
00040
00041 BOOST_REQUIRE_EQUAL(sizeof(InstancePin), sizeof(torc::physical::InstancePin));
00042
00043
00044
00045
00046 InstancePinSharedPtr& architectureInstancePinPtr
00047 = INSTANCE_PIN_PHYSICAL_TO_ARCHITECTURE(physicalInstancePinPtr);
00048 torc::physical::InstancePinSharedPtr& physicalInstancePin2Ptr
00049 = INSTANCE_PIN_ARCHITECTURE_TO_PHYSICAL(architectureInstancePinPtr);
00050 BOOST_CHECK_EQUAL(architectureInstancePinPtr->getTileIndex(), xilinx::TileIndex(0));
00051 BOOST_CHECK_EQUAL(architectureInstancePinPtr->getWireIndex(), xilinx::WireIndex(0));
00052
00053
00054
00055 Tilewire& tilewire = architectureInstancePinPtr->getTilewire();
00056 tilewire = Tilewire(xilinx::TileIndex(32), xilinx::WireIndex(16));
00057 BOOST_CHECK_EQUAL(tilewire.getTileIndex(), xilinx::TileIndex(32));
00058 BOOST_CHECK_EQUAL(tilewire.getWireIndex(), xilinx::WireIndex(16));
00059 BOOST_REQUIRE_EQUAL(sizeof(*physicalInstancePin2Ptr), sizeof(*architectureInstancePinPtr));
00060 }
00061
00062 BOOST_AUTO_TEST_SUITE_END()
00063
00064 }
00065 }