00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef TORC_BITSTREAM_VIRTEXE_HPP
00020 #define TORC_BITSTREAM_VIRTEXE_HPP
00021
00022 #include <boost/cstdint.hpp>
00023 #include "torc/bitstream/Virtex.hpp"
00024
00025 namespace torc { namespace architecture { class DDB; } }
00026
00027 namespace torc {
00028 namespace bitstream {
00029
00030 namespace bitstream { class VirtexEUnitTest; }
00031 namespace bitstream { class VirtexEFarUnitTest; }
00032 namespace bitstream { void testVirtexEDevice(const std::string& inDeviceName,
00033 const boost::filesystem::path& inWorkingPath); }
00034 namespace bitstream { void testVirtexEFullMapping(const boost::filesystem::path& inWorkingPath); }
00035
00036
00037 class VirtexE : public Virtex {
00038 friend class torc::bitstream::bitstream::VirtexEUnitTest;
00039 friend class torc::bitstream::bitstream::VirtexEFarUnitTest;
00040 friend void torc::bitstream::bitstream::testVirtexEDevice(const std::string& inDeviceName,
00041 const boost::filesystem::path& inWorkingPath);
00042 friend void torc::bitstream::bitstream::testVirtexEFullMapping(const boost::filesystem::path& inWorkingPath);
00043 public:
00044
00045
00046 virtual void initializeDeviceInfo(const std::string& inDeviceName);
00047
00048
00049 virtual void initializeFrameMaps(void);
00050
00051 virtual uint32_t getFrameLength(void) const {
00052 using namespace torc::common;
00053
00054 switch(mDevice) {
00055 case eXCV50E: return 12;
00056 case eXCV100E: return 14;
00057 case eXCV200E: return 18;
00058 case eXCV300E: return 21;
00059 case eXCV400E: return 25;
00060 case eXCV405E: return 25;
00061 case eXCV600E: return 30;
00062 case eXCV812E: return 34;
00063 case eXCV1000E: return 39;
00064 case eXCV1600E: return 43;
00065 case eXCV2000E: return 48;
00066 case eXCV2600E: return 54;
00067 case eXCV3200E: return 61;
00068 default: return 0;
00069 }
00070 }
00071 };
00072
00073 }
00074 }
00075
00076 #endif // TORC_BITSTREAM_VIRTEXE_HPP