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