42         return os << std::hex << std::setfill(
'0') << std::setw(8) << inWord.
mWord << std::dec;
 
   46         return os << std::hex << std::setfill(
'0') << std::setw(8) << inWord.
mWord << std::dec;
 
   51         if(
typeid(rhs) == 
typeid(
Virtex)) {
 
   52             os << dynamic_cast<const Virtex&>(rhs);
 
   53         } 
else if(
typeid(rhs) == 
typeid(
VirtexE)) {
 
   54             os << dynamic_cast<const VirtexE&>(rhs);
 
   55         } 
else if(
typeid(rhs) == 
typeid(
Virtex2)) {
 
   56             os << dynamic_cast<const Virtex2&>(rhs);
 
   57         } 
else if(
typeid(rhs) == 
typeid(
Virtex2P)) {
 
   58             os << dynamic_cast<const Virtex2P&>(rhs);
 
   59         } 
else if(
typeid(rhs) == 
typeid(
Virtex4)) {
 
   60             os << dynamic_cast<const Virtex4&>(rhs);
 
   61         } 
else if(
typeid(rhs) == 
typeid(
Virtex5)) {
 
   62             os << dynamic_cast<const Virtex5&>(rhs);
 
   63         } 
else if(
typeid(rhs) == 
typeid(
Virtex6)) {
 
   64             os << dynamic_cast<const Virtex6&>(rhs);
 
   65         } 
else if(
typeid(rhs) == 
typeid(
Virtex7)) {
 
   66             os << dynamic_cast<const Virtex7&>(rhs);
 
   67         } 
else if(
typeid(rhs) == 
typeid(
Spartan3E)) {
 
   68             os << dynamic_cast<const Spartan3E&>(rhs);
 
   69         } 
else if(
typeid(rhs) == 
typeid(
Spartan6)) {
 
   70             os << dynamic_cast<const Spartan6&>(rhs);
 
   90         os << static_cast<const Bitstream>(rhs) << std::endl;
 
   91         uint32_t cumulativeWordLength = 0;
 
   92         bool newColumn = 
false;
 
   93         bool newBlock = 
false;
 
   94         uint32_t oldColumnValue = 0;
 
   95         uint32_t oldBlockValue = 0;
 
   96         uint32_t currentColumnValue = 0;
 
   97         uint32_t currentBlockValue = 0;
 
  102         std::vector<SpartanPacket>::const_iterator p = rhs.begin();
 
  104         std::vector<SpartanPacket>::const_iterator e = rhs.end();
 
  115                 os << 
"DUMMY" << std::endl;
 
  119                 os << 
"SYNC" << std::endl;
 
  126             } 
else if(packet.
isNop()) {
 
  128                 while(p < e && p->isNop()) { nops++; p++; }
 
  129                 cumulativeWordLength += nops - 1;
 
  130                 os << 
"NOP x " << nops << std::endl;
 
  139                 const uint32_t word = packet[1];
 
  155                 if(opcode == packet.
isRead()) {
 
  164                         os << 
": " << 
Hex32(wordCount) << 
" words";
 
  165                         if(wordCount == 0) 
break;
 
  167                         os << std::endl << 
"    ";
 
  169                             << 
": Auto CRC: " << 
Hex16(p->getHeader());
 
  170                         cumulativeWordLength += 1;
 
  177                         os << 
": " << 
Hex32(word);
 
  181                         os << 
": " << Hex32(word);
 
  185                         os << 
": " << Hex32(word);
 
  189                         os << 
": " << Hex32(word);
 
  194                         oldColumnValue = currentColumnValue;
 
  195                         oldBlockValue = currentBlockValue;
 
  198                         newColumn = (currentColumnValue != oldColumnValue);
 
  199                         newBlock = (currentBlockValue != oldBlockValue);
 
  200                         os << 
": " << Hex32(word);
 
  201                         if(newColumn) std::cout << 
"\t\t\t!!!New Column!!!";
 
  202                         if(newBlock) std::cout << 
"\t\t\t\t\t***New Block***" << Hex32(currentBlockValue);
 
  206                         os << 
": " << Hex32(word);
 
  225         os << static_cast<const Spartan6Bitstream>(rhs) << std::endl;
 
  226         uint32_t cumulativeWordLength = 0;
 
  231         std::vector<Spartan6Packet>::const_iterator p = rhs.begin();
 
  233         std::vector<Spartan6Packet>::const_iterator e = rhs.end();
 
  244                 os << 
"DUMMY" << std::endl;
 
  248                 os << 
"SYNC0" << std::endl;
 
  252                 os << 
"SYNC1" << std::endl;
 
  259             } 
else if(packet.
isNop()) {
 
  261                 while(p < e && p->isNop()) { nops++; p++; }
 
  262                 cumulativeWordLength += nops - 1;
 
  263                 os << 
"NOP x " << nops << std::endl;
 
  272                 const uint16_t word = packet[1];
 
  273                 const uint32_t word32 = (packet[1] << 16) | packet[2];
 
  288                 if(opcode == packet.
isRead()) {
 
  300                         os << 
": " << 
Hex16(word);
 
  304                         os << 
": " << Hex16(word);
 
  308                         os << 
": " << Hex16(word);
 
  312                         os << 
": " << Hex16(word);
 
  316                         os << 
": " << Hex16(word);
 
  320                         os << 
": " << Hex16(word);
 
  324                         os << 
": " << Hex16(word);
 
  328                         os << 
": " << Hex16(word);
 
  332                         os << 
": " << Hex16(word);
 
  336                         os << 
": " << Hex16(word);
 
  340                         os << 
": " << 
Hex32(word32);
 
  343                         os << 
": " << Hex32(word32);
 
  346                         os << 
": " << Hex32(word32);
 
  349                         os << 
": " << Hex32(wordCount) << 
" words";
 
  350                         if(wordCount == 0) 
break;
 
  352                         os << std::endl << 
"    ";
 
  354                             << 
": Auto CRC: " << Hex32((uint32_t((*p)[0]) << 16) | (*p)[1]);
 
  355                         cumulativeWordLength += 2;
 
  361                             os << 
": " << Hex16(packet[1]);
 
  365                         else if(wordCount == 2) 
 
  366                             os << 
": " << Hex32((uint32_t(packet[1]) << 16) | packet[2]);
 
  370                         os << 
": " << Hex16(word);
 
  388         os << static_cast<const Bitstream>(rhs) << std::endl;
 
  389         uint32_t cumulativeWordLength = 0;
 
  390         bool newColumn = 
false;
 
  391         bool newBlock = 
false;
 
  392         uint32_t oldColumnValue = 0;
 
  393         uint32_t oldBlockValue = 0;
 
  394         uint32_t currentColumnValue = 0;
 
  395         uint32_t currentBlockValue = 0;
 
  399         VirtexPacketVector::const_iterator p = rhs.begin();
 
  400         VirtexPacketVector::const_iterator e = rhs.end();
 
  411                 os << 
"DUMMY" << std::endl;
 
  415                 os << 
"SYNC" << std::endl;
 
  419                 os << 
"ZERO" << std::endl;
 
  441                 const uint32_t word = packet[1];
 
  457                 if(opcode == packet.
isRead()) {
 
  466                         os << 
": " << 
Hex32(wordCount) << 
" words";
 
  472                         os << 
": " << 
Hex32(word);
 
  476                         os << 
": " << Hex32(word);
 
  480                         os << 
": " << Hex32(word);
 
  484                         os << 
": " << Hex32(word);
 
  489                         oldColumnValue = currentColumnValue;
 
  490                         oldBlockValue = currentBlockValue;
 
  493                         newColumn = (currentColumnValue != oldColumnValue);
 
  494                         newBlock = (currentBlockValue != oldBlockValue);
 
  495                         os << 
": " << Hex32(word);
 
  496                         if(newColumn) std::cout << 
"\t\t\t!!!New Column!!!";
 
  497                         if(newBlock) std::cout << 
"\t\t\t\t\t***New Block***" << Hex32(currentBlockValue);
 
  501                         os << 
": " << Hex32(word);
 
  519         os << static_cast<const Bitstream>(rhs) << std::endl;
 
  520         uint32_t cumulativeWordLength = 0;
 
  524         VirtexPacketVector::const_iterator p = rhs.begin();
 
  525         VirtexPacketVector::const_iterator e = rhs.end();
 
  526         bool newColumn = 
false;
 
  527         bool newBlock = 
false;
 
  528         uint32_t oldColumnValue = 0;
 
  529         uint32_t oldBlockValue = 0;
 
  530         uint32_t currentColumnValue = 0;
 
  531         uint32_t currentBlockValue = 0;
 
  542                 os << 
"DUMMY" << std::endl;
 
  546                 os << 
"SYNC" << std::endl;
 
  553             } 
else if(packet.
isNop()) {
 
  555                 while(p < e && p->isNop()) { nops++; p++; }
 
  556                 cumulativeWordLength += nops - 1;
 
  557                 os << 
"NOP x " << nops << std::endl;
 
  566                 const uint32_t word = packet[1];
 
  582                 if(opcode == packet.
isRead()) {
 
  591                         os << 
": " << 
Hex32(wordCount) << 
" words";
 
  592                         if(wordCount == 0) 
break;
 
  594                         os << std::endl << 
"    ";
 
  596                             << 
": Auto CRC: " << 
Hex16(p->getHeader());
 
  597                         cumulativeWordLength += 1;
 
  604                         os << 
": " << 
Hex32(word);
 
  608                         os << 
": " << Hex32(word);
 
  612                         os << 
": " << Hex32(word);
 
  616                         os << 
": " << Hex32(word);
 
  621                         oldColumnValue = currentColumnValue;
 
  622                         oldBlockValue = currentBlockValue;
 
  625                         newColumn = (currentColumnValue != oldColumnValue);
 
  626                         newBlock = (currentBlockValue != oldBlockValue);
 
  627                         os << 
": " << Hex32(word);
 
  628                         if(newColumn) std::cout << 
"\t\t\t!!!New Column!!!";
 
  629                         if(newBlock) std::cout << 
"\t\t\t\t\t***New Block***" << Hex32(currentBlockValue);
 
  633                         os << 
": " << Hex32(word);
 
  651         os << static_cast<const Bitstream>(rhs) << std::endl;
 
  652         uint32_t cumulativeWordLength = 0;
 
  656         VirtexPacketVector::const_iterator p = rhs.begin();
 
  657         VirtexPacketVector::const_iterator e = rhs.end();
 
  658         bool newColumn = 
false;
 
  661         bool newBlock = 
false;
 
  662         uint32_t oldColumnValue = 0;
 
  663         uint32_t oldRowValue = 0;
 
  664         uint32_t oldTopValue = 0;
 
  665         uint32_t oldBlockValue = 0;
 
  666         uint32_t currentColumnValue = 0;
 
  667         uint32_t currentRowValue = 0;
 
  668         uint32_t currentTopValue = 0;
 
  669         uint32_t currentBlockValue = 0;
 
  680                 os << 
"DUMMY" << std::endl;
 
  684                 os << 
"SYNC" << std::endl;
 
  691             } 
else if(packet.
isNop()) {
 
  693                 while(p < e && p->isNop()) { nops++; p++; }
 
  694                 cumulativeWordLength += nops - 1;
 
  695                 os << 
"NOP x " << nops << std::endl;
 
  704                 const uint32_t word = packet[1];
 
  720                 if(opcode == packet.
isRead()) {
 
  729                         os << 
": " << 
Hex32(wordCount) << 
" words";
 
  735                         os << 
": " << 
Hex32(word);
 
  739                         os << 
": " << Hex32(word);
 
  743                         os << 
": " << Hex32(word);
 
  747                         os << 
": " << Hex32(word);
 
  752                         oldColumnValue = currentColumnValue;
 
  753                         oldRowValue = currentRowValue;
 
  754                         oldTopValue = currentTopValue;
 
  755                         oldBlockValue = currentBlockValue;
 
  760                         newColumn = (currentColumnValue != oldColumnValue);
 
  761                         newRow = (currentRowValue != oldRowValue);
 
  762                         newTop = (currentTopValue != oldTopValue);
 
  763                         newBlock = (currentBlockValue != oldBlockValue);
 
  764                         os << 
": " << Hex32(word);
 
  765                         if(newColumn) std::cout << 
"\t\t\t!!!New Column!!!";
 
  766                         if(newRow) std::cout << 
"\t\t\t$$$New Row$$$";
 
  767                         if(newTop) std::cout << 
"\t\t\t&&&New Top&&&";
 
  768                         if(newBlock) std::cout << 
"\t\t\t\t\t***New Block***" << Hex32(currentBlockValue);
 
  772                         os << 
": " << Hex32(word);
 
  789         os << static_cast<const Bitstream>(rhs) << std::endl;
 
  790         uint32_t cumulativeWordLength = 0;
 
  794         VirtexPacketVector::const_iterator p = rhs.begin();
 
  795         VirtexPacketVector::const_iterator e = rhs.end();
 
  796         bool synchronized = 
false;
 
  797         bool newColumn = 
false;
 
  800         bool newBlock = 
false;
 
  801         uint32_t oldColumnValue = 0;
 
  802         uint32_t oldRowValue = 0;
 
  803         uint32_t oldTopValue = 0;
 
  804         uint32_t oldBlockValue = 0;
 
  805         uint32_t currentColumnValue = 0;
 
  806         uint32_t currentRowValue = 0;
 
  807         uint32_t currentTopValue = 0;
 
  808         uint32_t currentBlockValue = 0;
 
  820                     os << 
"BUS WIDTH SYNC" << std::endl;
 
  823                     os << 
"BUS WIDTH DETECT" << std::endl;
 
  830                 os << 
"DUMMY" << std::endl;
 
  834                 os << 
"SYNC" << std::endl;
 
  841             } 
else if(packet.
isNop()) {
 
  843                 while(p < e && p->isNop()) { nops++; p++; }
 
  844                 cumulativeWordLength += nops - 1;
 
  845                 os << 
"NOP x " << nops << std::endl;
 
  854                 const uint32_t word = packet[1];
 
  869                 if(opcode == packet.
isRead()) {
 
  878                         os << 
": " << 
Hex32(wordCount) << 
" words";
 
  884                         os << 
": " << 
Hex32(word);
 
  888                         os << 
": " << Hex32(word);
 
  892                         os << 
": " << Hex32(word);
 
  896                         os << 
": " << Hex32(word);
 
  900                         os << 
": " << Hex32(word);
 
  904                         os << 
": " << Hex32(word);
 
  918                         os << 
": " << Hex32(word);
 
  922                         os << 
": " << Hex32(word);
 
  927                         oldColumnValue = currentColumnValue;
 
  928                         oldRowValue = currentRowValue;
 
  929                         oldTopValue = currentTopValue;
 
  930                         oldBlockValue = currentBlockValue;
 
  935                         newColumn = (currentColumnValue != oldColumnValue);
 
  936                         newRow = (currentRowValue != oldRowValue);
 
  937                         newTop = (currentTopValue != oldTopValue);
 
  938                         newBlock = (currentBlockValue != oldBlockValue);
 
  939                         os << 
": " << Hex32(word);
 
  940                         if(newColumn) std::cout << 
"\t\t\t!!!New Column!!!";
 
  941                         if(newRow) std::cout << 
"\t\t\t$$$New Row$$$";
 
  942                         if(newTop) std::cout << 
"\t\t\t&&&New Top&&&";
 
  943                         if(newBlock) std::cout << 
"\t\t\t\t\t***New Block***" << Hex32(currentBlockValue);
 
  947                         os << 
": " << Hex32(word);
 
  965         os << static_cast<const Bitstream>(rhs) << std::endl;
 
  966         uint32_t cumulativeWordLength = 0;
 
  970         VirtexPacketVector::const_iterator p = rhs.begin();
 
  971         VirtexPacketVector::const_iterator e = rhs.end();
 
  972         bool newColumn = 
false;
 
  975         bool newBlock = 
false;
 
  976         uint32_t oldColumnValue = 0;
 
  977         uint32_t oldRowValue = 0;
 
  978         uint32_t oldTopValue = 0;
 
  979         uint32_t oldBlockValue = 0;
 
  980         uint32_t currentColumnValue = 0;
 
  981         uint32_t currentRowValue = 0;
 
  982         uint32_t currentTopValue = 0;
 
  983         uint32_t currentBlockValue = 0;
 
  984         bool synchronized = 
false;
 
  996                     os << 
"BUS WIDTH SYNC" << std::endl;
 
  999                     os << 
"BUS WIDTH DETECT" << std::endl;
 
 1006                 os << 
"DUMMY" << std::endl;
 
 1010                 os << 
"SYNC" << std::endl;
 
 1017             } 
else if(packet.
isNop()) {
 
 1019                 while(p < e && p->isNop()) { nops++; p++; }
 
 1020                 cumulativeWordLength += nops - 1;
 
 1021                 os << 
"NOP x " << nops << std::endl;
 
 1030                 const uint32_t word = packet[1];
 
 1045                 if(opcode == packet.
isRead()) {
 
 1054                         os << 
": " << 
Hex32(wordCount) << 
" words";
 
 1060                         os << 
": " << 
Hex32(word);
 
 1064                         os << 
": " << Hex32(word);
 
 1068                         os << 
": " << Hex32(word);
 
 1072                         os << 
": " << Hex32(word);
 
 1076                         os << 
": " << Hex32(word);
 
 1080                         os << 
": " << Hex32(word);
 
 1094                         os << 
": " << Hex32(word);
 
 1098                         os << 
": " << Hex32(word);
 
 1103                         oldColumnValue = currentColumnValue;
 
 1104                         oldRowValue = currentRowValue;
 
 1105                         oldTopValue = currentTopValue;
 
 1106                         oldBlockValue = currentBlockValue;
 
 1111                         newColumn = (currentColumnValue != oldColumnValue);
 
 1112                         newRow = (currentRowValue != oldRowValue);
 
 1113                         newTop = (currentTopValue != oldTopValue);
 
 1114                         newBlock = (currentBlockValue != oldBlockValue);
 
 1115                         os << 
": " << Hex32(word);
 
 1116                         if(newColumn) std::cout << 
"\t\t\t!!!New Column!!!";
 
 1117                         if(newRow) std::cout << 
"\t\t\t$$$New Row$$$";
 
 1118                         if(newTop) std::cout << 
"\t\t\t&&&New Top&&&";
 
 1119                         if(newBlock) std::cout << 
"\t\t\t\t\t***New Block***" << Hex32(currentBlockValue);
 
 1123                         os << 
": " << Hex32(word);
 
 1141         os << static_cast<const Bitstream>(rhs) << std::endl;
 
 1142         uint32_t cumulativeWordLength = 0;
 
 1146         VirtexPacketVector::const_iterator p = rhs.begin();
 
 1147         VirtexPacketVector::const_iterator e = rhs.end();
 
 1148         bool synchronized = 
false;
 
 1149         bool newColumn = 
false;
 
 1150         bool newRow = 
false;
 
 1151         bool newTop = 
false;
 
 1152         bool newBlock = 
false;
 
 1153         uint32_t oldColumnValue = 0;
 
 1154         uint32_t oldRowValue = 0;
 
 1155         uint32_t oldTopValue = 0;
 
 1156         uint32_t oldBlockValue = 0;
 
 1157         uint32_t currentColumnValue = 0;
 
 1158         uint32_t currentRowValue = 0;
 
 1159         uint32_t currentTopValue = 0;
 
 1160         uint32_t currentBlockValue = 0;
 
 1172                     os << 
"BUS WIDTH SYNC" << std::endl;
 
 1175                     os << 
"BUS WIDTH DETECT" << std::endl;
 
 1182                 os << 
"DUMMY" << std::endl;
 
 1186                 os << 
"SYNC" << std::endl;
 
 1193             } 
else if(packet.
isNop()) {
 
 1195                 while(p < e && p->isNop()) { nops++; p++; }
 
 1196                 cumulativeWordLength += nops - 1;
 
 1197                 os << 
"NOP x " << nops << std::endl;
 
 1206                 const uint32_t word = packet[1];
 
 1221                 if(opcode == packet.
isRead()) {
 
 1230                         os << 
": " << 
Hex32(wordCount) << 
" words";
 
 1236                         os << 
": " << 
Hex32(word);
 
 1240                         os << 
": " << Hex32(word);
 
 1244                         os << 
": " << Hex32(word);
 
 1248                         os << 
": " << Hex32(word);
 
 1252                         os << 
": " << Hex32(word);
 
 1256                         os << 
": " << Hex32(word);
 
 1270                         os << 
": " << Hex32(word);
 
 1274                         os << 
": " << Hex32(word);
 
 1278                         os << 
": " << Hex32(word);
 
 1283                         oldColumnValue = currentColumnValue;
 
 1284                         oldRowValue = currentRowValue;
 
 1285                         oldTopValue = currentTopValue;
 
 1286                         oldBlockValue = currentBlockValue;
 
 1291                         newColumn = (currentColumnValue != oldColumnValue);
 
 1292                         newRow = (currentRowValue != oldRowValue);
 
 1293                         newTop = (currentTopValue != oldTopValue);
 
 1294                         newBlock = (currentBlockValue != oldBlockValue);
 
 1295                         os << 
": " << Hex32(word);
 
 1296                         if(newColumn) std::cout << 
"\t\t\t!!!New Column!!!";
 
 1297                         if(newRow) std::cout << 
"\t\t\t$$$New Row$$$";
 
 1298                         if(newTop) std::cout << 
"\t\t\t&&&New Top&&&";
 
 1299                         if(newBlock) std::cout << 
"\t\t\t\t\t***New Block***" << Hex32(currentBlockValue);
 
 1303                         os << 
": " << Hex32(word);
 
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names. 
 
static const Subfield sMASK0[]
Control Mask Register (MASK) subfields. 
 
Header for torc::bitstream output stream helpers. 
 
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names. 
 
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names. 
 
static const Subfield sMASK[]
Control Mask Register (MASK) subfields. 
 
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names. 
 
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names. 
 
Header for the SpartanPacket class. 
 
Header for the VirtexE class. 
 
ERegister
Configuration register enumeration. 
 
static const char * sRegisterName[eRegisterCount]
Configuration register names. 
 
static const char * sCommandName[eCommandCount]
Configuration command names. 
 
Header for the Spartan6Bitstream class. 
 
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names. 
 
ERegister
Configuration register enumeration. 
 
EOpcode getOpcode(void) const 
 
uint32_t getWordCount(void) const 
Returns the number of payload words in the packet, excluding the header word. 
 
EOpcode getOpcode(void) const 
 
Header for the Virtex4 class. 
 
EPacketType getType(void) const 
 
static const char * sRegisterName[eRegisterCount]
Configuration register names. 
 
std::ostream & operator<<(std::ostream &os, const Hex16 &inWord)
16-bit word hex inserter. 
 
string mDesignDate
Header design date. 
 
Header for the Virtex2P class. 
 
string mDesignTime
Header design time. 
 
static const char * sCommandName[eCommandCount]
Configuration command names. 
 
bool isSyncWord0(void) const 
 
static const Subfield sMASK[]
Control Mask Register (MASK) subfields. 
 
static const Subfield sCTL[]
Control Register (CTL) subfields. 
 
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names. 
 
static const char * sRegisterName[eRegisterCount]
Configuration register names. 
 
EOpcode
Packet opcode enumeration. 
 
static const Subfield sCOR2[]
Configuration Options Register 2 (COR2) subfields. 
 
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names. 
 
Header for the Virtex6 class. 
 
static const Subfield sCOR0[]
Configuration Options Register 0 (COR) subfields. 
 
static const Subfield sTIMER[]
Watchdog Timer Register (TIMER) subfields. 
 
string mDesignName
Header design name. 
 
Bitstream packet for Spartan 16 bit class architectures. 
 
Header for the Virtex5 class. 
 
static const Subfield sCOR1[]
Configuration Options Register 1 (COR) subfields. 
 
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names. 
 
uint32_t getWordSize(void) const 
Returns the total number of words in the packet, including the header word. 
 
EPacketType getType(void) const 
 
static const char * sRegisterName[eRegisterCount]
Configuration register names. 
 
static const Subfield sSTAT[]
Status Register (STAT) subfields. 
 
static const Subfield sCOR0[]
Configuration Options Register 0 (COR) subfields. 
 
static const Subfield sCTL[]
Control Register 0 (CTL0) subfields. 
 
static const Subfield sMASK0[]
Control Mask Register (MASK) subfields. 
 
bool isReserved(void) const 
 
static const Subfield sMODE_REG[]
Mode Register (Mode) subfields. 
 
bool isSyncWord1(void) const 
 
static const Subfield sMASK0[]
Control Mask Register (MASK) subfields. 
 
ERegister
Configuration register enumeration. 
 
EPacketType
Packet type enumeration. 
 
static const char * sCommandName[eCommandCount]
Configuration command names. 
 
static const Subfield sCTL[]
Control Register (CTL) subfields. 
 
static const Subfield sSTAT[]
Status Register (STAT) subfields. 
 
static const Subfield sBOOTSTS[]
Boot History Status Register (BOOTSTS) subfields. 
 
uint32_t getWordCount(void) const 
Returns the number of payload words in the packet, excluding the header word. 
 
ERegister
Configuration register enumeration. 
 
static const Subfield sTIMER[]
Watchdog Timer Register (TIMER) subfields. 
 
static const Subfield sCOR1[]
Configuration Options Register 1 (COR) subfields. 
 
ERegister
Configuration register enumeration. 
 
static const char * sCommandName[eCommandCount]
Configuration command names. 
 
static const char * sRegisterName[eRegisterCount]
Configuration register names. 
 
Header for the Spartan6 class. 
 
static const Subfield sCTL1[]
Control Register 1 (CTL) subfields. 
 
static const Subfield sSTAT[]
Status Register (STAT) subfields. 
 
uint32_t getWordSize(void) const 
Returns the total number of words in the packet, including the header word.  In the case of Type 2 pa...
 
static const Subfield sCOR[]
Configuration Options Register (COR) subfields. 
 
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names. 
 
int getAddress(void) const 
 
Xilinx bitstream base class. 
 
static const Subfield sSTAT[]
Status Register (STAT) subfields. 
 
EPacketType
Packet type enumeration. 
 
bool isDummyWord(void) const 
 
EOpcode
Packet opcode enumeration. 
 
static const Subfield sWBSTAR[]
Warm Boot Start Address Register (WBSTAR) subfields. 
 
static const Subfield sCTL1[]
Control Register 1 (CTL) subfields. 
 
string mDeviceName
Header device name. 
 
static const char * sRegisterName[eRegisterCount]
Configuration register names. 
 
static const Subfield sCOR1[]
Configurations Options Register 1 (COR) subfields. 
 
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names. 
 
ERegister
Configuration register enumeration. 
 
Header for the Bitstream class. 
 
static void writeSubfieldSettings(std::ostream &inStream, uint32_t inWord, const Subfield *inSubfields)
Insert 32 bit subfield settings into an output stream. 
 
static const Subfield sCOR[]
Configuration Options Register (COR) subfields. 
 
bool isBusWidthSyncWord(void) const 
 
static const char * sCommandName[eCommandCount]
Configuration command names. 
 
bool isReserved(void) const 
 
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names. 
 
static const char * sPacketTypeName[ePacketTypeCount]
Configuration controller registers. 
 
static const char * sCommandName[eCommandCount]
Configuration Command names. 
 
bool isDummyWord(void) const 
 
static const Subfield sMASK[]
Control Mask Register (MASK) subfields. 
 
static const Subfield sHC_OPT_REG[]
HC_OPT_REG Register (PWRDN_REG) subfields. 
 
uint32_t mBitstreamByteLength
Bitstream packet length in bytes. 
 
static const Subfield sSEU_OPT[]
SEU_OPT Register (SEU_OPT) subfields. 
 
Header for the Spartan6Packet class. 
 
static const Subfield sSTAT[]
Status Register (STAT) subfields. 
 
static const Subfield sCOR1[]
Configuration Options Register 1 (COR1) subfields. 
 
static const Subfield sMASK[]
Control Mask Register (MASK) subfields. 
 
static const Subfield sCTL1[]
Control Register 1 (CTL) subfields. 
 
bool isSyncWord(void) const 
 
ERegister
Configuration register enumeration. 
 
static const Subfield sBOOSTS[]
BOOSTS Register (BOOSTS) subfields. 
 
static const Subfield sSTAT[]
Status Register (STAT) subfields. 
 
Header for the Virtex class. 
 
static const Subfield sWBSTAR[]
Warm Boot Start Address Register (WBSTAR) subfields. 
 
static const Subfield sSTAT[]
Status Register (STAT) subfields. 
 
bool isDummyWord(void) const 
 
Header for the VirtexPacket class. 
 
EOpcode
Packet opcode enumeration. 
 
static const Subfield sSTAT[]
Status Register (STAT) subfields. 
 
static const char * sCommandName[eCommandCount]
Configuration command names. 
 
static const Subfield sCOR[]
Configuration Options Register (COR) subfields. 
 
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names. 
 
static const char * sRegisterName[eRegisterCount]
Configuration Register names. 
 
VirtexE bitstream inherited from Virtex bitstream. 
 
EOpcode getOpcode(void) const 
 
static const Subfield sCTL0[]
Control Register 0 (CTL) subfields. 
 
static const char * sOpcodeName[eOpcodeCount]
Packet Opcode names. 
 
Header for the Virtex2 class. 
 
EPacketType
Packet type enumeration. 
 
EPacketType getType(void) const 
 
bool isBusWidthDetectWord(void) const 
 
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names. 
 
Header for the Spartan3E class. 
 
static const Subfield sCTL[]
Control Register (CTL) subfields. 
 
Bitstream packet for Spartan class architectures. 
 
Bitstream packet for Virtex class architectures. 
 
static const Subfield sCTL0[]
Control Register 0 (CTL) subfields. 
 
int getAddress(void) const 
 
int getAddress(void) const 
 
uint32_t getWordSize(void) const 
Returns the total number of words in the packet, including the header word. 
 
static const Subfield sPWRDN_REG[]
Suspend Register (PWRDN_REG) subfields. 
 
static const Subfield sWBSTAR[]
Warm Boot Start Address Register (WBSTAR) subfields. 
 
static const char * sRegisterName[eRegisterCount]
Configuration register names. 
 
ERegister
Configuration register enumeration. 
 
static const char * sCommandName[eCommandCount]
Configuration command names. 
 
Virtex2P bitstream inherited from Virtex2 bitstream. 
 
uint32_t getWordCount(void) const 
Returns the number of payload words in the packet, excluding the header word. 
 
static const Subfield sCTL[]
Control Register (CTL) subfields. 
 
uint32_t getHeader(void) const 
 
bool isReserved(void) const 
 
static const Subfield sCOR0[]
Configurations Options Register 0 (COR) subfields. 
 
static const Subfield sCOR[]
Configuration Options Register (COR) subfields. 
 
static const Subfield sMASK[]
Control Mask Register (MASK) subfields. 
 
static const Subfield sTIMER[]
Watchdog Timer Register (TIMER) subfields. 
 
Header for the Virtex7 class. 
 
static const Subfield sCTL0[]
Control Register 0 (CTL) subfields. 
 
uint32_t getHeaderByteLength(void) const 
Return the bitstream header length in bytes. 
 
bool isSyncWord(void) const