31 "[UNKNOWN TYPE 0]",
"TYPE1",
"TYPE2",
"[UNKNOWN TYPE 3]",
"[UNKNOWN TYPE 4]",
32 "[UNKNOWN TYPE 5]",
"[UNKNOWN TYPE 6]",
"[UNKNOWN TYPE 7]"
36 "NOP",
"READ",
"WRITE",
"RESERVED"
40 "CRC",
"FAR",
"FDRI",
"FDRO",
"CMD",
"CTL0",
"MASK",
"STAT",
"LOUT",
"COR0",
"MFWR",
"CBC",
41 "IDCODE",
"AXSS",
"COR1",
"CSOB",
"WBSTAR",
"TIMER",
"[UNKNOWN REG 18]",
42 "[UNKNOWN REG 19]",
"[UNKNOWN REG 20]",
"[UNKNOWN REG 21]",
"BOOTSTS",
"[UNKNOWN REG 23]",
47 "NULL",
"WCFG",
"MFW",
"DGHIGH/LFRM",
"RCFG",
"START",
"RCAP",
"RCRC",
"AGHIGH",
"SWITCH",
48 "GRESTORE",
"SHUTDOWN",
"GCAPTURE",
"DESYNCH",
"Reserved",
"IPROG",
"[UNKNOWN CMD 16]",
52 #define VALUES (const char*[])
56 {0x00000001, 0,
"GTS_USER_B",
"GTS_USER_B", 0,
59 VALUES{
"IoDisabled",
"IoActive", 0}},
60 {0x00000008, 3,
"Persist",
"PERSIST", 0,
64 {0x00000030, 4,
"Security",
"SBITS", 0,
68 VALUES{
"None",
"Level1",
"Level2",
"Level2", 0}},
69 {0x00000040, 6,
"Encrypt",
"DEC", 0,
73 {0x00000100, 8,
"GLUTMASK",
"GLUTMASK", 0,
78 VALUES{
"Masked",
"Dynamic", 0}},
79 {0x00001000, 12,
"OverTempPowerDown",
"OverTempPowerDown", 0,
82 VALUES{
"Disable",
"Enable", 0}},
83 {0x40000000, 30,
"ICAP_sel",
"ICAP_SEL", 0,
86 VALUES{
"Top",
"Bottom", 0}},
92 {0x00000001, 0,
"GTS_USER_B",
"GTS_USER_B", 0,
VALUES{
"Protected",
"Writable", 0}},
93 {0x00000008, 3,
"Persist",
"PERSIST", 0,
VALUES{
"Protected",
"Writable", 0}},
94 {0x00000030, 4,
"Security",
"SBITS", 0,
95 VALUES{
"Protected",
"[UNKNOWN 1]",
"[UNKNOWN 2]",
"Writable", 0}},
96 {0x00000040, 6,
"Encrypt",
"DEC", 0,
VALUES{
"Protected",
"Writable", 0}},
97 {0x00000100, 8,
"GLUTMASK",
"GLUTMASK", 0,
VALUES{
"Protected",
"Writable", 0}},
98 {0x00001000, 12,
"OverTempPowerDown",
"OverTempPowerDown", 0,
VALUES{
"Protected",
100 {0x40000000, 30,
"ICAP_sel",
"ICAP_SEL", 0,
VALUES{
"Protected",
"Writable", 0}},
111 {0x00000007, 0,
"GWE_cycle",
"GWE_CYCLE", 5,
115 VALUES{
"1",
"2",
"3",
"4",
"5",
"6",
"Done",
"Keep", 0}},
116 {0x00000038, 3,
"GTS_cycle",
"GTS_CYCLE", 4,
120 VALUES{
"1",
"2",
"3",
"4",
"5",
"6",
"Done",
"Keep", 0}},
121 {0x000001c0, 6,
"LCK_cycle",
"LOCK_CYCLE", 0,
124 VALUES{
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"NoWait", 0}},
125 {0x00000E00, 9,
"Match_cycle",
"MATCH_CYCLE", 0,
128 VALUES{
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"NoWait", 0}},
129 {0x00007000, 12,
"DONE_cycle",
"DONE_CYCLE", 3,
132 VALUES{
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"KEEP", 0}},
133 {0x00018000, 15,
"StartupClk",
"SSCLKSRC", 0,
136 VALUES{
"Cclk",
"UserClk",
"JtagClk",
"JtagClk", 0}},
137 {0x007e0000, 17,
"ConfigRate",
"OSCFSEL", 0,
141 "[UNKNOWN 0]",
"[UNKNOWN 1]",
"[UNKNOWN 2]",
"[UNKNOWN 3]",
142 "[UNKNOWN 4]",
"[UNKNOWN 5]",
"[UNKNOWN 6]",
"[UNKNOWN 7]",
143 "[UNKNOWN 8]",
"[UNKNOWN 9]",
"[UNKNOWN 10]",
"[UNKNOWN 11]",
144 "[UNKNOWN 12]",
"[UNKNOWN 13]",
"[UNKNOWN 14]",
"[UNKNOWN 15]",
145 "[UNKNOWN 16]",
"[UNKNOWN 17]",
"[UNKNOWN 18]",
"[UNKNOWN 19]",
146 "[UNKNOWN 20]",
"[UNKNOWN 21]",
"[UNKNOWN 22]",
"[UNKNOWN 23]",
147 "[UNKNOWN 24]",
"[UNKNOWN 25]",
"[UNKNOWN 26]",
"[UNKNOWN 27]",
148 "[UNKNOWN 28]",
"[UNKNOWN 29]",
"[UNKNOWN 30]",
"[UNKNOWN 31]",
150 {0x00800000, 23,
"Capture",
"SINGLE", 0,
153 VALUES{
"Continuous",
"OneShot", 0}},
154 {0x01000000, 24,
"DriveDone",
"DRIVE_DONE", 0,
158 {0x02000000, 25,
"DonePipe",
"DONE_PIPE", 0,
162 {0x08000000, 27,
"DONE_status",
"PWRDWN_STAT", 0,
165 VALUES{
"DonePin",
"PowerdownPin", 0}},
166 {0x10000000, 28,
"CRC",
"CRC_BYPASS", 0,
169 VALUES{
"Enable",
"Disable", 0}},
175 {0x00000003, 0,
"BPI_page_size",
"BPI_PAGE_SIZE", 0,
178 VALUES{
"1",
"4",
"8",
"Reserved", 0}},
179 {0x0000000C, 2,
"BPI_1st_read_cycle",
"BPI_1ST_READ_CYCLES", 0,
182 VALUES{
"1",
"4",
"8",
"Reserved", 0}},
183 {0x00000100, 8,
"ContinuousReadbackCRC",
"RBCRC_EN", 0,
186 VALUES{
"Disabled",
"Enabled", 0}},
187 {0x00000200, 9,
"InitAsCRCErrorPin",
"RBCRC_NO_PIN", 0,
190 VALUES{
"Disabled",
"Enabled", 0}},
191 {0x00020000, 17,
"PersistDeassertAtDesynch",
"PERSIST_DEASSERT_AT_DESYNCH", 0,
194 VALUES{
"Disabled",
"Enabled", 0}},
200 {0x18000000, 27,
"NextRevisionSelect",
"RS[1:0]", 0,
202 VALUES{
"00",
"01",
"10",
"11", 0}},
203 {0x04000000, 26,
"RevisionSelectTristate",
"RS_TS_B", 0,
205 VALUES{
"Disabled",
"Enabled", 0}},
211 {0x01000000, 24,
"TimerForConfig",
"TIMER_CFG_MON", 0,
213 VALUES{
"Disabled",
"Enabled", 0}},
214 {0x02000000, 25,
"TimerForUser",
"TIMER_USR_MON", 0,
216 VALUES{
"Disabled",
"Enabled", 0}},
222 {0x00000001, 0,
"RegisterStatus0",
"VALID_0", 0,
224 VALUES{
"Valid",
"Invalid", 0}},
225 {0x00000002, 1,
"FallbackStatus0",
"FALLBACK_0", 0,
228 VALUES{
"Normal",
"Fallback", 0}},
229 {0x00000004, 2,
"InternalTrigger0",
"IPROG_0", 0,
231 VALUES{
"External",
"Internal", 0}},
232 {0x00000008, 3,
"WatchdogTimeout0",
"WTO_ERROR_0", 0,
234 VALUES{
"Valid",
"Invalid", 0}},
235 {0x00000010, 4,
"ID_error0",
"ID_ERROR_0", 0,
237 VALUES{
"NoError",
"Error", 0}},
238 {0x00000020, 5,
"CRC_error0",
"CRC_ERROR_0", 0,
240 VALUES{
"NoError",
"Error", 0}},
241 {0x00000040, 6,
"BPI_wraparound_error0",
"WRAP_ERROR_0", 0,
243 VALUES{
"NoError",
"Error", 0}},
244 {0x00000080, 7,
"ReadbackCRC_error0",
"RBCRC_ERROR_0", 0,
246 VALUES{
"NoError",
"Error", 0}},
247 {0x00000100, 8,
"RegisterStatus1",
"VALID_1", 0,
249 VALUES{
"Valid",
"Invalid", 0}},
250 {0x00000200, 9,
"FallbackStatus1",
"FALLBACK_1", 0,
253 VALUES{
"Normal",
"Fallback", 0}},
254 {0x00000400, 10,
"InternalTrigger1",
"IPROG_1", 0,
256 VALUES{
"External",
"Internal", 0}},
257 {0x00000800, 11,
"WatchdogTimeout1",
"WTO_ERROR_1", 0,
259 VALUES{
"Valid",
"Invalid", 0}},
260 {0x00001000, 12,
"ID_error1",
"ID_ERROR_1", 0,
262 VALUES{
"NoError",
"Error", 0}},
263 {0x00002000, 13,
"CRC_error1",
"CRC_ERROR_1", 0,
265 VALUES{
"NoError",
"Error", 0}},
266 {0x00004000, 14,
"BPI_wraparound_error1",
"WRAP_ERROR_1", 0,
268 VALUES{
"NoError",
"Error", 0}},
269 {0x00008000, 15,
"ReadbackCRC_error1",
"RBCRC_ERROR_1", 0,
271 VALUES{
"NoError",
"Error", 0}},
277 {0x00000001, 0,
"CRC_error",
"CRC_ERROR", 0,
281 {0x00000002, 1,
"DecryptorSecuritySet",
"PART_SECURED", 0,
285 {0x00000004, 2,
"DCM_locked",
"DCM_LOCK", 0,
289 {0x00000008, 3,
"DCI_matched",
"DCI_MATCH", 0,
293 {0x00000010, 4,
"StartupFinished",
"EOS", 0,
297 {0x00000020, 5,
"GTS_CFG_B",
"GTS_CFG_B", 0,
300 VALUES{
"IoDisabled",
"IoEnabled", 0}},
301 {0x00000040, 6,
"GWE",
"GWE", 0,
305 VALUES{
"WriteDisabled",
"WriteEnabled", 0}},
306 {0x00000080, 7,
"GHIGH_B",
"GHIGH_B", 0,
309 VALUES{
"InterconnectDisabled",
"InterconnectEnabled", 0}},
310 {0x00000700, 8,
"Mode",
"MODE", 0,
313 VALUES{
"MasterSerial",
"MasterSPI",
"MasterBPI-Up",
"MasterBPI-Down",
314 "MasterSelectMap",
"JTAG",
"SlaveSelectMap",
"SlaveSerial", 0}},
315 {0x00000800, 11,
"INIT_complete",
"INIT_COMPLETE", 0,
319 {0x00001000, 12,
"INIT_B",
"INIT_B", 0,
322 VALUES{
"Deasserted",
"Asserted", 0}},
323 {0x00002000, 13,
"DONE_released",
"RELEASE_DONE", 0,
326 VALUES{
"DrivenLow",
"Released", 0}},
327 {0x00004000, 14,
"DONE",
"DONE", 0,
330 VALUES{
"NotDone",
"Done", 0}},
331 {0x00008000, 15,
"ID_error",
"ID_ERROR", 0,
334 VALUES{
"NoError",
"Error", 0}},
335 {0x00010000, 16,
"Decrypt_error",
"DEC_ERROR", 0,
338 VALUES{
"NoError",
"Error", 0}},
339 {0x001c0000, 18,
"StartupState",
"STARTUP_STATE", 0,
342 VALUES{
"0",
"1",
"3",
"2",
"7",
"6",
"4",
"5", 0}},
343 {0x01c00000, 22,
"FlashTypeSelect",
"FS", 0,
347 {0x06000000, 25,
"BusWidth",
"BUS_WIDTH", 0,
350 VALUES{
"1",
"8",
"16",
"32", 0}},
357 const Subfield* subfields;
370 for(
uint32_t field = 0; subfields[field].mMask != 0; field++) {
371 const Subfield& subfield = subfields[field];
372 if(inSubfield != subfield.mBitgenName && inSubfield != subfield.mConfigGuideName)
374 const char** ptr = subfield.
mValues;
375 for(
uint32_t i = 0; *ptr != 0; i++, ptr++) {
376 if(inSetting == *ptr)
return (i << subfield.mShift) & subfield.mMask;
383 #ifndef GENERATE_STATIC_DEVICE_INFO
413 using namespace torc::common;
464 typedef std::map<TileTypeIndex, std::string> TileTypeIndexToName;
465 typedef std::map<std::string, TileTypeIndex> TileTypeNameToIndex;
466 TileTypeIndexToName tileTypeIndexToName;
467 TileTypeNameToIndex tileTypeNameToIndex;
469 for(TileTypeIndex tileTypeIndex(0); tileTypeIndex < tileTypeCount; tileTypeIndex++) {
471 tileTypeIndexToName[tileTypeIndex] = tileTypeName;
472 tileTypeNameToIndex[tileTypeName] = tileTypeIndex;
479 columnTypes.resize(colCount);
482 for(TileCol col; col < colCount; col++) {
485 TileTypeIndexToColumnType::iterator ttwp = ttwe;
486 for(TileRow row; row < rowCount; row++) {
495 frameRowCount += width;
498 columnTypes[col] =
static_cast<EColumnType>(ttwp->second);
509 std::fstream tilemapStream(generatedMap.string().c_str(), std::ios::out);
510 for(TileRow row; row < rowCount; row++) {
511 for(TileCol col; col < colCount; col++) {
516 if(col + 1 < colCount) tilemapStream <<
",";
518 tilemapStream << std::endl;
520 tilemapStream.close();
523 setDeviceInfo(DeviceInfo(tileCount, rowCount, colCount, columnTypes));
536 if(shortBottomHalf) farRowCount++;
539 uint32_t bottomRowCount = farRowCount - (shortBottomHalf ? 1 : 0);
544 for(
uint32_t frameRow = topRowCount - 1; ; frameRow--) {
545 for(
int i = 0; i < 22; i++, xdlRow++) {
551 if(frameRow == 0)
break;
554 for(
uint32_t frameRow = 0; frameRow < bottomRowCount; frameRow++) {
555 for(
int i = 0; i < 22; i++, xdlRow++) {
573 bool blockUsed =
false;
574 for(
uint32_t half = 0; half < 2; half++) {
575 for(
uint32_t farRow = 0; farRow < farRowCount; farRow++) {
577 if(shortBottomHalf && half == 0 && (farRow + 1 == farRowCount))
continue;
589 for(
uint32_t farMinor = 0; farMinor < width; farMinor++) {
591 farRow, farMajor, farMinor);
595 blockFrameIndexBounds++;
604 if(farRow == 0 && half == 0) {
612 if(col == finalColumn) {
622 if(col == finalColumn) {
633 if(debug) std::cout <<
"Last frame index: [" << i <<
", " << frameIndex
646 std::cout <<
"Bit Value at index: (" << i <<
", " << j <<
") : "
649 std::cout <<
"Xdl Value at index: (" << i <<
", " << k <<
") : "
703 packets.insert(packets.end(), 8, dummy);
707 packets.push_back(dummy);
708 packets.push_back(dummy);
711 packets.push_back(nop);
716 packets.push_back(nop);
719 packets.push_back(nop);
720 packets.push_back(nop);
751 packets.push_back(nop);
781 packets.insert(packets.end(), 8, nop);
815 packets.push_back(nop);
818 packets.insert(packets.end(), 100, nop);
821 packets.insert(packets.end(), 30, nop);
824 packets.push_back(nop);
854 packets.insert(packets.end(), 61, nop);
895 packets.insert(packets.end(), 8, dummy);
899 packets.push_back(dummy);
900 packets.push_back(dummy);
903 packets.push_back(nop);
906 packets.push_back(nop);
907 packets.push_back(nop);
929 packets.push_back(nop);
932 packets.insert(packets.end(), 4, nop);
935 packets.push_back(nop);
966 packets.push_back(nop);
978 packets.insert(packets.end(), 101, nop);
983 packets.push_back(nop);
986 packets.push_back(nop);
996 packets.insert(packets.end(), 4, nop);
998 packets.insert(packets.end(), 1, nop);
1005 boost::shared_array<uint32_t> frameWords;
1007 Virtex5::iterator p = begin();
1008 Virtex5::iterator e = end();
1029 typedef boost::shared_array<uint32_t> WordSharedArray;
1031 Virtex5::iterator p = begin();
1032 Virtex5::iterator e = end();
1036 WordSharedArray words = packet.
getWords();
1038 for(
uint32_t block = 0; block < 8; block++) {
1042 for(
uint32_t index = 0; index < frameLength; index++) *ptr++ = *words++;
1098 outBeginBit = outEndBit = 0;
1121 if(index == 0 || index == 11)
break;
1123 outBeginBit = index * 64;
1124 outEndBit = outBeginBit + 64;
1131 if(index != 5 && index != 10 && index != 16 && index != 21)
break;
1133 outBeginBit = index * 64;
1134 outEndBit = outBeginBit + 320;
1153 int32_t xdlColumnIndex[inBlockCount];
1154 int32_t xdlColumnBound[inBlockCount];
1155 for(
uint32_t i = 0; i < inBlockCount; i++) {
1168 for(
uint32_t i = 0; i < inBlockCount; i++) {
1169 int startIndex = xdlColumnIndex[i];
1170 for(
int j = 0; j < xdlColumnBound[i]; j++)
1184 ColumnTypeVector::const_iterator p = columns.begin() + col;
1185 ColumnTypeVector::const_iterator e = columns.end();
ColumnDefVector mColumnDefs
Column type widths.
static const Subfield sMASK0[]
Control Mask Register (MASK) subfields.
FrameAddressToIndex mFrameAddressToIndex
Map of frame addressee to frame indexes.
virtual void initializeFrameMaps(void)
Initialize the maps between frame indexes and frame addresses.
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.
Encapsulation of a tile row in an unsigned 16-bit integer.
uint32_t mFrameRow
Frame row.
TileTypeNameToColumnType mTileTypeNameToColumnType
IndexVector mBitColumnIndexes[Virtex5::eFarBlockTypeCount]
Vector to store frame indexes of XDL columns.
Encapsulation of a tile column in an unsigned 16-bit integer.
Device database, including complete wiring and logic support.
TileTypeCount getTileTypeCount(void) const
Returns the tile type count for this device.
TileRow getRowCount(void) const
Returns the row count for this device.
Header for the DirectoryTree class.
VirtexFrameBlocks mFrameBlocks
Input Frame blocks.
static const char * sRegisterName[eRegisterCount]
Configuration register names.
EFarTopBottom
Frame Address Register top and bottom constants.
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.
static const Subfield sCOR0[]
Configuration Options Register 0 (COR) subfields.
static const Subfield sTIMER[]
Watchdog Timer Register (TIMER) subfields.
TileTypeIndexToColumnType mTileTypeIndexToColumnType
Static device information class for Xilinx bitstreams. This class facilitates the creation of frame ...
Header for the Virtex5 class.
FrameIndexToAddress mFrameIndexToAddress
Map of frame indexes to frame addresses.
EFarBlockType
Frame Address Register block type constants.
static const Subfield sCOR1[]
Configuration Options Register 1 (COR) subfields.
uint16_t getColCount(void) const
Returns the column count.
IndexVector mXdlColumnIndexes[Virtex5::eFarBlockTypeCount]
Vector to store frame indexes of Bitstream columns.
static const Subfield sSTAT[]
Status Register (STAT) subfields.
ERegister
Configuration register enumeration.
TileCount getTileCount(void) const
Returns the tile count for this device.
EDevice mDevice
Bitstream device enumeration.
Frame row designator: top/bottom flag and row index.
virtual VirtexPacketVector generateFullBitstreamPrefix(void)
Return a packet vector with the full bitstream prefix.
static const Subfield sCTL1[]
Control Register 1 (CTL) subfields.
boost::uint32_t uint32_t
Imported type name.
virtual uint32_t getFrameRowCount(void) const
Return the number of frame rows for the current device.
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names.
std::map< uint32_t, FrameRowDesignator > mXdlRowToFrameRowDesignator
Map of XDL tile rows to frame designators.
VirtexFrame::word_t word_t
FrameSet word type.
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names.
DeviceInfo mDeviceInfo
Device information.
Tile map, tile type, and wire information for the family and device.
DEPRECATED void updateFullFrameBlocks(void)
Transfers frame block data into the full bitstream frame packet.
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.
static const char * sCommandName[eCommandCount]
Configuration command names.
Encapsulation of a tile within a device tile map.
static const Subfield sBOOTSTS[]
Boot History Status Register (BOOTSTS) subfields.
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.
uint32_t mBlockFrameIndexBounds[Virtex5::eFarBlockTypeCount]
Array to hold frame index boundaries for blocks.
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.
virtual VirtexPacketVector generatePartialBitstreamPrefix(EBitstreamType inBitstreamType)
Return a packet vector with the partial bitstream prefix.
VirtexFrameBlocks getXdlFrames(uint32_t inXdlRow, uint32_t inXdlCol, uint32_t &outBeginBit, uint32_t &outEndBit, uint32_t inBlockCount=eBlockTypeCount)
Returns frames for specified XDL tile coordinates. inXldRow The XDL row coordinate. inXdlCol The XDL column coordinate. outBeginBit The bit index of the beginning of the requested tile. outEndBit The bit index of the end of the requested tile. inBlockCount The highest block type requested (8 for Xilinx architectures).
boost::shared_ptr< VirtexFrame > FrameSharedPtr
Shared pointer encapsulation of a Frame.
std::vector< VirtexPacket > VirtexPacketVector
Vector of Virtex packets.
EFarTopBottom mTopBottom
Top/bottom flag.
uint32_t mFrameRowCount
Number of frame rows.
static VirtexPacket makeType1Write(uint32_t inAddress, uint32_t inWord)
Construct a type 1 write packet.
static const Subfield sWBSTAR[]
Warm Boot Start Address Register (WBSTAR) subfields.
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.
DEPRECATED void initializeFullFrameBlocks(void)
Loads full bitstream frames into block data structure.
const WordSharedArray getWords(void) const
brief Returns the raw packet words, including the header word.
TileCol getColCount(void) const
Returns the column count for this device.
boost::uint32_t uint32_t
Imported type name.
Encapsulation of a tile type index in an unsigned 16-bit integer.
EColumnType
Major column types.
VirtexFrameBlocks getBitstreamFrames(EFarTopBottom inTopBottom, uint32_t inFrameRow, uint32_t inBitCol, uint32_t inBlockCount=eBlockTypeCount)
Returns frames for specified bitstream tile column. inTopBottom The top or bottom half of the device...
boost::uint16_t uint16_t
Imported type name.
Header for the DDB class.
FrameBlocks< VirtexFrame > VirtexFrameBlocks
Virtex frame blocks type.
std::map< uint32_t, uint32_t > mBitColumnToXdlColumn
Map of bitstream column indexes to XDL column indexes.
virtual VirtexPacketVector generatePartialBitstreamSuffix(EBitstreamType inBitstreamType)
Return a packet vector with the partial bitstream suffix.
Template base for encapsulated integers, to enforce strong typing.
void setDeviceInfo(const DeviceInfo &rhs)
Assign static device information for the current bitstream.
Bitstream packet for Virtex class architectures.
static uint32_t makeHeader(EPacketType inType, EOpcode inOpcode, uint32_t inAddress, uint32_t inCount)
Construct a packet header.
uint32_t mXdlBaseRow
Base XDL row.
const char ** mValues
The allowable subfield values.
virtual VirtexPacketVector generateFullBitstreamSuffix(void)
Return a packet vector with the full bitstream suffix.
uint32_t getPrimaryXdlColumn(uint32_t inXdlCol)
Returns the primary column corresponding to the given column. If immediately to the left of a BRAM...
TileIndex getTileIndex(TileRow inRow, TileCol inCol) const
Returns the tile index for the given [row,column] pair.
virtual uint32_t getFrameLength(void) const
Return the frame length for the current device.
virtual uint32_t getRowPadFrames(void) const
Return the number of pad frames after each row.
WORD_TYPE word_t
Frame word type.
static const Subfield sCTL0[]
Control Register 0 (CTL) subfields.
virtual void initializeDeviceInfo(const std::string &inDeviceName)
Initialize the device information.
Device database types for Xilinx architectures.