32 "[UNKNOWN TYPE 0]",
"TYPE1",
"TYPE2",
"[UNKNOWN TYPE 3]",
"[UNKNOWN TYPE 4]",
33 "[UNKNOWN TYPE 5]",
"[UNKNOWN TYPE 6]",
"[UNKNOWN TYPE 7]"
37 "NOP",
"READ",
"WRITE",
"RESERVED"
41 "CRC",
"FAR",
"FDRI",
"FDRO",
"CMD",
"CTL0",
"MASK",
"STAT",
"LOUT",
"COR0",
"MFWR",
"CBC",
42 "IDCODE",
"AXSS",
"COR1",
"CSOB",
"WBSTAR",
"TIMER",
"[UNKNOWN REG 18]",
43 "[UNKNOWN REG 19]",
"[UNKNOWN REG 20]",
"[UNKNOWN REG 21]",
"BOOTSTS",
"[UNKNOWN REG 23]",
44 "CTL1",
"[UNKNOWN REG 25]",
"DWC"
48 "NULL",
"WCFG",
"MFW",
"DGHIGH/LFRM",
"RCFG",
"START",
"RCAP",
"RCRC",
"AGHIGH",
"SWITCH",
49 "GRESTORE",
"SHUTDOWN",
"GCAPTURE",
"DESYNCH",
"Reserved",
"IPROG",
"CRCC",
53 #define VALUES (const char*[])
57 {0x00000001, 0,
"GTS_USER_B",
"GTS_USER_B", 0,
60 VALUES{
"IoDisabled",
"IoActive", 0}},
61 {0x00000008, 3,
"Persist",
"PERSIST", 0,
65 {0x00000030, 4,
"Security",
"SBITS", 0,
69 VALUES{
"None",
"Level1",
"Level2",
"Level2", 0}},
70 {0x00000040, 6,
"Encrypt",
"DEC", 0,
74 {0x00000080, 7,
"FARSRC",
"FARSRC", 0,
78 {0x00000100, 8,
"GLUTMASK",
"GLUTMASK", 0,
83 VALUES{
"Masked",
"Dynamic", 0}},
84 {0x00001000, 12,
"OverTempPowerDown",
"OverTempPowerDown", 0,
87 VALUES{
"Disable",
"Enable", 0}},
88 {0x40000000, 30,
"ICAP_sel",
"ICAP_SEL", 0,
91 VALUES{
"Top",
"Bottom", 0}},
92 {0x80000000, 31,
"EFUSE_key",
"EFUSE_KEY", 0,
101 {0x00000001, 0,
"GTS_USER_B",
"GTS_USER_B", 0,
VALUES{
"Protected",
"Writable", 0}},
102 {0x00000008, 3,
"Persist",
"PERSIST", 0,
VALUES{
"Protected",
"Writable", 0}},
103 {0x00000030, 4,
"Security",
"SBITS", 0,
104 VALUES{
"Protected",
"[UNKNOWN 1]",
"[UNKNOWN 2]",
"Writable", 0}},
105 {0x00000040, 6,
"Encrypt",
"DEC", 0,
VALUES{
"Protected",
"Writable", 0}},
106 {0x00000080, 7,
"FARSRC",
"FARSRC", 0,
VALUES{
"Protected",
"Writable", 0}},
107 {0x00000100, 8,
"GLUTMASK",
"GLUTMASK", 0,
VALUES{
"Protected",
"Writable", 0}},
108 {0x00001000, 12,
"OverTempPowerDown",
"OverTempPowerDown", 0,
VALUES{
"Protected",
110 {0x40000000, 30,
"ICAP_sel",
"ICAP_SEL", 0,
VALUES{
"Protected",
"Writable", 0}},
111 {0x80000000, 31,
"EFUSE_key",
"EFUSE_KEY", 0,
VALUES{
"Protected",
"Writable", 0}},
122 {0x00000007, 0,
"GWE_cycle",
"GWE_CYCLE", 5,
126 VALUES{
"1",
"2",
"3",
"4",
"5",
"6",
"Done",
"Keep", 0}},
127 {0x00000038, 3,
"GTS_cycle",
"GTS_CYCLE", 4,
131 VALUES{
"1",
"2",
"3",
"4",
"5",
"6",
"Done",
"Keep", 0}},
132 {0x00000E00, 9,
"Match_cycle",
"MATCH_CYCLE", 0,
135 VALUES{
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"NoWait", 0}},
136 {0x00007000, 12,
"DONE_cycle",
"DONE_CYCLE", 3,
139 VALUES{
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"KEEP", 0}},
140 {0x00018000, 15,
"StartupClk",
"SSCLKSRC", 0,
143 VALUES{
"Cclk",
"UserClk",
"JtagClk",
"JtagClk", 0}},
144 {0x007e0000, 17,
"ConfigRate",
"OSCFSEL", 0,
148 "[UNKNOWN 0]",
"[UNKNOWN 1]",
"[UNKNOWN 2]",
"[UNKNOWN 3]",
149 "[UNKNOWN 4]",
"[UNKNOWN 5]",
"[UNKNOWN 6]",
"[UNKNOWN 7]",
150 "[UNKNOWN 8]",
"[UNKNOWN 9]",
"[UNKNOWN 10]",
"[UNKNOWN 11]",
151 "[UNKNOWN 12]",
"[UNKNOWN 13]",
"[UNKNOWN 14]",
"[UNKNOWN 15]",
152 "[UNKNOWN 16]",
"[UNKNOWN 17]",
"[UNKNOWN 18]",
"[UNKNOWN 19]",
153 "[UNKNOWN 20]",
"[UNKNOWN 21]",
"[UNKNOWN 22]",
"[UNKNOWN 23]",
154 "[UNKNOWN 24]",
"[UNKNOWN 25]",
"[UNKNOWN 26]",
"[UNKNOWN 27]",
155 "[UNKNOWN 28]",
"[UNKNOWN 29]",
"[UNKNOWN 30]",
"[UNKNOWN 31]",
157 {0x00800000, 23,
"Capture",
"SINGLE", 0,
160 VALUES{
"Continuous",
"OneShot", 0}},
161 {0x01000000, 24,
"DriveDone",
"DRIVE_DONE", 0,
165 {0x02000000, 25,
"DonePipe",
"DONE_PIPE", 0,
169 {0x08000000, 27,
"DONE_status",
"PWRDWN_STAT", 0,
172 VALUES{
"DonePin",
"PowerdownPin", 0}},
178 {0x00000003, 0,
"BPI_page_size",
"BPI_PAGE_SIZE", 0,
181 VALUES{
"1",
"4",
"8",
"Reserved", 0}},
182 {0x0000000C, 2,
"BPI_1st_read_cycle",
"BPI_1ST_READ_CYCLES", 0,
185 VALUES{
"1",
"4",
"8",
"Reserved", 0}},
186 {0x00000100, 8,
"ContinuousReadbackCRC",
"RBCRC_EN", 0,
189 VALUES{
"Disabled",
"Enabled", 0}},
190 {0x00000200, 9,
"InitAsCRCErrorPin",
"RBCRC_NO_PIN", 0,
193 VALUES{
"Disabled",
"Enabled", 0}},
194 {0x00018000, 15,
"ActionReadbackCRC",
"RBCRC_ACTION", 0,
197 VALUES{
"Continue",
"Halt",
"CorrectAndHalt",
"CorrectAndContinue", 0}},
198 {0x00020000, 17,
"PersistDeassertAtDesynch",
"PERSIST_DEASSERT_AT_DESYNCH", 0,
201 VALUES{
"Disabled",
"Enabled", 0}},
207 {0x18000000, 27,
"NextRevisionSelect",
"RS[1:0]", 0,
209 VALUES{
"00",
"01",
"10",
"11", 0}},
210 {0x04000000, 26,
"RevisionSelectTristate",
"RS_TS_B", 0,
212 VALUES{
"Disabled",
"Enabled", 0}},
218 {0x01000000, 24,
"TimerForConfig",
"TIMER_CFG_MON", 0,
220 VALUES{
"Disabled",
"Enabled", 0}},
221 {0x02000000, 25,
"TimerForUser",
"TIMER_USR_MON", 0,
223 VALUES{
"Disabled",
"Enabled", 0}},
229 {0x00000001, 0,
"RegisterStatus0",
"VALID_0", 0,
231 VALUES{
"Valid",
"Invalid", 0}},
232 {0x00000002, 1,
"FallbackStatus0",
"FALLBACK_0", 0,
235 VALUES{
"Normal",
"Fallback", 0}},
236 {0x00000004, 2,
"InternalTrigger0",
"IPROG_0", 0,
238 VALUES{
"External",
"Internal", 0}},
239 {0x00000008, 3,
"WatchdogTimeout0",
"WTO_ERROR_0", 0,
241 VALUES{
"Valid",
"Invalid", 0}},
242 {0x00000010, 4,
"ID_error0",
"ID_ERROR_0", 0,
244 VALUES{
"NoError",
"Error", 0}},
245 {0x00000020, 5,
"CRC_error0",
"CRC_ERROR_0", 0,
247 VALUES{
"NoError",
"Error", 0}},
248 {0x00000040, 6,
"BPI_wraparound_error0",
"WRAP_ERROR_0", 0,
250 VALUES{
"NoError",
"Error", 0}},
251 {0x00000100, 8,
"RegisterStatus1",
"VALID_1", 0,
253 VALUES{
"Valid",
"Invalid", 0}},
254 {0x00000200, 9,
"FallbackStatus1",
"FALLBACK_1", 0,
257 VALUES{
"Normal",
"Fallback", 0}},
258 {0x00000400, 10,
"InternalTrigger1",
"IPROG_1", 0,
260 VALUES{
"External",
"Internal", 0}},
261 {0x00000800, 11,
"WatchdogTimeout1",
"WTO_ERROR_1", 0,
263 VALUES{
"Valid",
"Invalid", 0}},
264 {0x00001000, 12,
"ID_error1",
"ID_ERROR_1", 0,
266 VALUES{
"NoError",
"Error", 0}},
267 {0x00002000, 13,
"CRC_error1",
"CRC_ERROR_1", 0,
269 VALUES{
"NoError",
"Error", 0}},
270 {0x00004000, 14,
"BPI_wraparound_error1",
"WRAP_ERROR_1", 0,
272 VALUES{
"NoError",
"Error", 0}},
278 {0x00000001, 0,
"CRC_error",
"CRC_ERROR", 0,
282 {0x00000002, 1,
"DecryptorSecuritySet",
"PART_SECURED", 0,
286 {0x00000004, 2,
"MMCM_locked",
"MMCM_LOCK", 0,
290 {0x00000008, 3,
"DCI_matched",
"DCI_MATCH", 0,
294 {0x00000010, 4,
"StartupFinished",
"EOS", 0,
298 {0x00000020, 5,
"GTS_CFG_B",
"GTS_CFG_B", 0,
301 VALUES{
"IoDisabled",
"IoEnabled", 0}},
302 {0x00000040, 6,
"GWE",
"GWE", 0,
306 VALUES{
"WriteDisabled",
"WriteEnabled", 0}},
307 {0x00000080, 7,
"GHIGH_B",
"GHIGH_B", 0,
310 VALUES{
"InterconnectDisabled",
"InterconnectEnabled", 0}},
311 {0x00000700, 8,
"Mode",
"MODE", 0,
314 VALUES{
"MasterSerial",
"MasterSPI",
"MasterBPI-Up",
"MasterBPI-Down",
315 "MasterSelectMap",
"JTAG",
"SlaveSelectMap",
"SlaveSerial", 0}},
316 {0x00000800, 11,
"INIT_complete",
"INIT_COMPLETE", 0,
320 {0x00001000, 12,
"INIT_B",
"INIT_B", 0,
323 VALUES{
"Deasserted",
"Asserted", 0}},
324 {0x00002000, 13,
"DONE_released",
"RELEASE_DONE", 0,
327 VALUES{
"DrivenLow",
"Released", 0}},
328 {0x00004000, 14,
"DONE",
"DONE", 0,
331 VALUES{
"NotDone",
"Done", 0}},
332 {0x00008000, 15,
"ID_error",
"ID_ERROR", 0,
335 VALUES{
"NoError",
"Error", 0}},
336 {0x00010000, 16,
"Decrypt_error",
"DEC_ERROR", 0,
339 VALUES{
"NoError",
"Error", 0}},
340 {0x00020000, 17,
"Decrypt_error",
"SYSMON_OVER_TEMP", 0,
343 VALUES{
"NoError",
"Error", 0}},
344 {0x001c0000, 18,
"StartupState",
"STARTUP_STATE", 0,
347 VALUES{
"0",
"1",
"3",
"2",
"7",
"6",
"4",
"5", 0}},
348 {0x01c00000, 22,
"FlashTypeSelect",
"FS", 0,
352 {0x06000000, 25,
"BusWidth",
"BUS_WIDTH", 0,
355 VALUES{
"1",
"8",
"16",
"32", 0}},
356 {0x06000000, 28,
"HswapenPin",
"HSWAPEN_B", 0,
359 VALUES{
"0",
"1",
"16",
"32", 0}},
379 for(
uint32_t field = 0; subfields[field].
mMask != 0; field++) {
380 const Subfield& subfield = subfields[field];
383 const char** ptr = subfield.
mValues;
384 for(
uint32_t i = 0; *ptr != 0; i++, ptr++) {
385 if(inSetting == *ptr)
return (i << subfield.
mShift) & subfield.
mMask;
392 #ifndef GENERATE_STATIC_DEVICE_INFO
413 using namespace torc::common;
459 typedef std::map<TileTypeIndex, std::string> TileTypeIndexToName;
460 typedef std::map<std::string, TileTypeIndex> TileTypeNameToIndex;
461 TileTypeIndexToName tileTypeIndexToName;
462 TileTypeNameToIndex tileTypeNameToIndex;
464 for(TileTypeIndex tileTypeIndex(0); tileTypeIndex < tileTypeCount; tileTypeIndex++) {
466 tileTypeIndexToName[tileTypeIndex] = tileTypeName;
467 tileTypeNameToIndex[tileTypeName] = tileTypeIndex;
472 std::cout <<
"Mapping: " << tileTypeName <<
"(" << tileTypeIndex <<
") = ColumnType " << ttwp->second << std::endl;
477 columnTypes.resize(colCount);
480 for(TileCol col; col < colCount; col++) {
484 TileTypeIndexToColumnType::iterator ttwp = ttwe;
485 for(TileRow row; row < rowCount; row++) {
498 columnTypes[col] =
static_cast<EColumnType>(ttwp->second);
505 if(blockType == 2)
break;
510 std::fstream tilemapStream(generatedMap.string().c_str(), std::ios::out);
511 for(TileRow row; row < rowCount; row++) {
512 for(TileCol col; col < colCount; col++) {
517 if(col + 1 < colCount) tilemapStream <<
",";
519 tilemapStream << std::endl;
521 tilemapStream.close();
524 setDeviceInfo(DeviceInfo(tileCount, rowCount, colCount, columnTypes));
536 using namespace torc::common;
579 bool blockUsed =
false;
580 for(
uint32_t half = 0; half < 2; half++) {
582 for(
uint32_t farRow = 0; farRow < rowCount; farRow++) {
593 for(
uint32_t farMinor = 0; farMinor < width; farMinor++) {
595 farRow, farMajor, farMinor);
599 blockFrameIndexBounds++;
607 if(farRow == 0 && half == 0) {
614 if(col == finalColumn) {
624 if(col == finalColumn)
636 if(debug) std::cout <<
"Last frame index: [" << i <<
", " << frameIndex
648 std::cout <<
"Bit Value at index: (" << i <<
", " << j <<
") : " <<
mBitColumnIndexes[i][j] << std::endl;
650 std::cout <<
"Xdl Value at index: (" << i <<
", " << k <<
") : " <<
mXdlColumnIndexes[i][k] << std::endl;
704 packets.insert(packets.end(), 8, dummy);
708 packets.push_back(dummy);
709 packets.push_back(dummy);
712 packets.push_back(nop);
717 packets.push_back(nop);
720 packets.push_back(nop);
721 packets.push_back(nop);
752 packets.push_back(nop);
782 packets.insert(packets.end(), 8, nop);
815 packets.push_back(nop);
816 packets.push_back(nop);
819 packets.push_back(nop);
822 packets.insert(packets.end(), 100, nop);
825 packets.push_back(nop);
855 packets.push_back(nop);
856 packets.push_back(nop);
859 packets.insert(packets.end(), 400, nop);
901 packets.insert(packets.end(), 8, dummy);
905 packets.push_back(dummy);
906 packets.push_back(dummy);
909 packets.push_back(nop);
912 packets.push_back(nop);
913 packets.push_back(nop);
933 packets.push_back(nop);
936 packets.insert(packets.end(), 4, nop);
939 packets.push_back(nop);
972 packets.push_back(nop);
984 packets.insert(packets.end(), 100, nop);
989 packets.push_back(nop);
992 packets.push_back(nop);
1001 packets.insert(packets.end(), 16, nop);
1007 boost::shared_array<uint32_t> frameWords;
1009 Virtex6::iterator p = begin();
1010 Virtex6::iterator e = end();
1058 int32_t bitColumnIndex[inBlockCount];
1059 int32_t bitColumnBound[inBlockCount];
1060 for(
uint32_t i = 0; i < inBlockCount; i++) {
1071 for(
uint32_t i = 0; i < inBlockCount; i++) {
1072 int startIndex = bitColumnIndex[i];
1073 for(
int j = 0; j < bitColumnBound[i]; j++)
1084 int32_t xdlColumnIndex[inBlockCount];
1085 int32_t xdlColumnBound[inBlockCount];
1086 for(
uint32_t i = 0; i < inBlockCount; i++) {
1100 for(
uint32_t i = 0; i < inBlockCount; i++) {
1101 int startIndex = xdlColumnIndex[i];
1102 for(
int j = 0; j < xdlColumnBound[i]; j++)
ColumnDefVector mColumnDefs
Column type widths.
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names.
virtual uint32_t getRowPadFrames(void) const
Return the number of pad frames after each row.
Encapsulation of a tile row in an unsigned 16-bit integer.
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names.
TileTypeNameToColumnType mTileTypeNameToColumnType
Encapsulation of a tile column in an unsigned 16-bit integer.
Device database, including complete wiring and logic support.
IndexVector mBitColumnIndexes[Virtex6::eFarBlockTypeCount]
Vector to store frame indexes of XDL columns.
TileTypeCount getTileTypeCount(void) const
Returns the tile type count for this device.
TileRow getRowCount(void) const
Returns the row count for this device.
static const char * sRegisterName[eRegisterCount]
Configuration register names.
virtual VirtexPacketVector generateFullBitstreamPrefix(void)
Return a packet vector with the full bitstream prefix.
uint32_t mFrameRowCount
Number of frame rows.
static const Subfield sBOOTSTS[]
Boot History Status Register (BOOTSTS) subfields.
Header for the DirectoryTree class.
VirtexFrameBlocks mFrameBlocks
Input Frame blocks.
virtual VirtexPacketVector generatePartialBitstreamSuffix(EBitstreamType inBitstreamType)
Return a packet vector with the partial bitstream suffix.
IndexVector mXdlColumnIndexes[Virtex6::eFarBlockTypeCount]
Vector to store frame indexes of Bitstream columns.
uint16_t getRowCount(void) const
Returns the row count.
Frame< uint32_t > VirtexFrame
Virtex frame type.
const TileInfo & getTileInfo(TileIndex inTileIndex) const
Returns the TileInfo object for the specified tile.
Header for the Virtex6 class.
FrameAddressToIndex mFrameAddressToIndex
Map of frame addressee to frame indexes.
TileTypeIndexToColumnType mTileTypeIndexToColumnType
Static device information class for Xilinx bitstreams. This class facilitates the creation of frame ...
VirtexFrameBlocks getBitstreamFrames(uint32_t inBlockCount, uint32_t inBitCol, uint32_t inFrameRow=0)
Returns frames for queried bitstream coordinates.
uint16_t getColCount(void) const
Returns the column count.
static const Subfield sCOR0[]
Configuration Options Register 0 (COR) subfields.
virtual uint32_t getFrameRowCount(void) const
Return the number of frame rows for the current device.
FrameIndexToAddress mFrameIndexToAddress
Map of frame indexes to frame addresses.
static const Subfield sMASK0[]
Control Mask Register (MASK) subfields.
TileCount getTileCount(void) const
Returns the tile count for this device.
EDevice mDevice
Bitstream device enumeration.
uint32_t mBlockFrameIndexBounds[Virtex6::eFarBlockTypeCount]
Array to hold frame index boundaries for blocks.
static const Subfield sCOR1[]
Configuration Options Register 1 (COR) subfields.
uint32_t mShift
The subfield LSB position.
static const char * sCommandName[eCommandCount]
Configuration command names.
const char * mConfigGuideName
The subfield name documented in the configuration guide.
boost::uint32_t uint32_t
Imported type name.
EColumnType
Major column types.
VirtexFrame::word_t word_t
FrameSet word type.
uint32_t mMask
The subfield bit mask.
static const Subfield sCTL1[]
Control Register 1 (CTL) subfields.
DeviceInfo mDeviceInfo
Device information.
Tile map, tile type, and wire information for the family and device.
uint32_t mTopRowCount
The number of top bitstream rows.
ERegister
Configuration register enumeration.
FrameSet< FRAME_TYPE > mBlock[Bitstream::eBlockTypeCount]
FrameSets for each of the eight block types.
Encapsulation of a tile count in an unsigned 32-bit integer.
uint32_t mBottomRowCount
The number of bottom bitstream rows.
Encapsulation of a tile within a device tile map.
EBitstreamType
The bitstream type to generate. Use eBitstreamFull to fully reconfigure a device, eBitstreamTypePartialActive to partially reconfigure it while it continues to run, or eBitstreamTypePartialShutdown to partially recongifure it after shutting it down.
const char * getTileTypeName(TileTypeIndex inTileTypeIndex) const
Returns the tile type name for the given tile type index.
const ColumnTypeVector & getColumnTypes(void) const
Returns the column type vector.
boost::filesystem::path path
const TileTypeIndex & getTypeIndex(void) const
Returns the tile type index for this tile.
void setRowCounts(void)
Set the number of top and bottom bitstream rows.
virtual VirtexPacketVector generatePartialBitstreamPrefix(EBitstreamType inBitstreamType)
Return a packet vector with the partial bitstream prefix.
static const Subfield sSTAT[]
Status Register (STAT) subfields.
boost::shared_ptr< VirtexFrame > FrameSharedPtr
Shared pointer encapsulation of a Frame.
std::vector< VirtexPacket > VirtexPacketVector
Vector of Virtex packets.
virtual uint32_t getFrameLength(void) const
Return the frame length for the current device.
EFarBlockType
Frame Address Register block type constants.
static VirtexPacket makeType1Write(uint32_t inAddress, uint32_t inWord)
Construct a type 1 write packet.
static uint32_t makeSubfield(ERegister inRegister, const std::string &inSubfield, const std::string &inSetting)
Return the masked value for a subfield of the specified register.
const char * mBitgenName
The subfield name documented in bitgen.
static const boost::filesystem::path & getWorkingPath(void)
Returns the absolute path to the working directory.
Encapsulation of a tile type count in an unsigned 16-bit integer.
const WordSharedArray getWords(void) const
brief Returns the raw packet words, including the header word.
EFarTopBottom
Frame Address Register top and bottom constants.
TileCol getColCount(void) const
Returns the column count for this device.
Encapsulation of a tile type index in an unsigned 16-bit integer.
boost::uint16_t uint16_t
Imported type name.
Header for the DDB class.
FrameBlocks< VirtexFrame > VirtexFrameBlocks
Virtex frame blocks type.
DEPRECATED void initializeFullFrameBlocks(void)
Loads full bitstream frames into block data structure.
virtual void initializeFrameMaps(void)
Initialize the maps between frame indexes and frame addresses. This is generally only useful for int...
Template base for encapsulated integers, to enforce strong typing.
boost::uint32_t uint32_t
Imported type name.
void setDeviceInfo(const DeviceInfo &rhs)
Assign static device information for the current bitstream.
virtual void initializeDeviceInfo(const std::string &inDeviceName)
Initialize the device information.
Bitstream packet for Virtex class architectures.
static const Subfield sCTL0[]
Control Register 0 (CTL) subfields.
static uint32_t makeHeader(EPacketType inType, EOpcode inOpcode, uint32_t inAddress, uint32_t inCount)
Construct a packet header.
const char ** mValues
The allowable subfield values.
static const Subfield sWBSTAR[]
Warm Boot Start Address Register (WBSTAR) subfields.
std::map< uint32_t, uint32_t > mXdlColumnToBitColumn
Map of XDL column indexes to bitstream column indexes.
VirtexFrameBlocks getXdlFrames(uint32_t inBlockCount, uint32_t inXdlCol, uint32_t inFrameRow=0)
Returns frames for queried xdl coordinates.
TileIndex getTileIndex(TileRow inRow, TileCol inCol) const
Returns the tile index for the given [row,column] pair.
static const Subfield sTIMER[]
Watchdog Timer Register (TIMER) subfields.
virtual VirtexPacketVector generateFullBitstreamSuffix(void)
Return a packet vector with the full bitstream suffix.
WORD_TYPE word_t
Frame word type.
Device database types for Xilinx architectures.