00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef TORC_BITSTREAM_VIRTEX2P_HPP
00020 #define TORC_BITSTREAM_VIRTEX2P_HPP
00021
00022 #include <boost/cstdint.hpp>
00023 #include "torc/bitstream/Virtex2.hpp"
00024
00025 namespace torc { namespace architecture { class DDB; } }
00026
00027 namespace torc {
00028 namespace bitstream {
00029
00030 namespace bitstream { class Virtex2PUnitTest; }
00031 namespace bitstream { class Virtex2PFarUnitTest; }
00032 namespace bitstream { void testVirtex2PDevice(const std::string& inDeviceName,
00033 const boost::filesystem::path& inWorkingPath); }
00034 namespace bitstream { void testVirtex2PFullMapping(const boost::filesystem::path& inWorkingPath); }
00035
00036
00037 class Virtex2P : public Virtex2 {
00038 friend class torc::bitstream::bitstream::Virtex2PUnitTest;
00039 friend class torc::bitstream::bitstream::Virtex2PFarUnitTest;
00040 friend void torc::bitstream::bitstream::testVirtex2PDevice(const std::string& inDeviceName,
00041 const boost::filesystem::path& inWorkingPath);
00042 friend void torc::bitstream::bitstream::testVirtex2PFullMapping(const boost::filesystem::path& inWorkingPath);
00043 public:
00044
00045
00046 virtual void initializeDeviceInfo(const std::string& inDeviceName);
00047
00048 virtual uint32_t getFrameLength(void) const {
00049 using namespace torc::common;
00050
00051 switch(mDevice) {
00052 case eXC2VP2: return 46;
00053 case eXC2VP4: return 106;
00054 case eXC2VP7: return 106;
00055 case eXC2VP20: return 146;
00056 case eXC2VPX20: return 146;
00057 case eXC2VP30: return 206;
00058 case eXC2VP40: return 226;
00059 case eXC2VP50: return 226;
00060 case eXC2VP70: return 266;
00061 case eXC2VPX70: return 266;
00062 case eXC2VP100: return 306;
00063 default: return 0;
00064 }
00065 }
00066 };
00067
00068 }
00069 }
00070
00071 #endif // TORC_BITSTREAM_VIRTEX2P_HPP