19 #ifndef TORC_BITSTREAM_VIRTEX6_HPP
20 #define TORC_BITSTREAM_VIRTEX6_HPP
22 #include <boost/cstdint.hpp>
23 #include <boost/filesystem.hpp>
28 namespace torc {
namespace architecture {
class DDB; } }
33 namespace bitstream {
class Virtex6UnitTest; }
34 namespace bitstream {
class Virtex6FarUnitTest; }
191 return deleteFramePackets4567<Virtex6>();
204 return generatePartialBitstreamPackets4567<Virtex6>(inFrameInclusion,
222 #define DEPRECATED __attribute__ ((deprecated))
267 if(diffBlockType)
return diffBlockType < 0;
269 if(diffTopBottom)
return diffTopBottom < 0;
271 if(diffRow)
return diffRow < 0;
273 if(diffMajor)
return diffMajor < 0;
328 #endif // TORC_BITSTREAM_VIRTEX6_HPP
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.
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names.
friend std::ostream & operator<<(std::ostream &os, const Virtex6::FrameAddress &rhs)
TileTypeNameToColumnType mTileTypeNameToColumnType
FrameAddress(EFarTopBottom inTopBottom, EFarBlockType inBlockType, uint32_t inRow, uint32_t inMajor, uint32_t inMinor)
Header for the VirtexBitstream class.
IndexVector mBitColumnIndexes[Virtex6::eFarBlockTypeCount]
Vector to store frame indexes of XDL columns.
static const char * sRegisterName[eRegisterCount]
Configuration register names.
void testVirtex6FullMapping(const boost::filesystem::path &inWorkingPath)
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.
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.
std::map< Virtex6::FrameAddress, uint32_t > FrameAddressToIndex
Map from frame address to frame index.
EFrameInclude
The frames to include in a partial bitstream. Use eFrameIncludeOnlyDirtyFrames to include only dirty...
boost::uint32_t uint32_t
Imported type name.
FrameAddressToIndex mFrameAddressToIndex
Map of frame addressee to frame indexes.
VirtexFrameBlocks getBitstreamFrames(uint32_t inBlockCount, uint32_t inBitCol, uint32_t inFrameRow=0)
Returns frames for queried bitstream coordinates.
Bitstream column definition for Xilinx bitstreams. For every block type 0 through 8...
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.
uint32_t mBlockFrameIndexBounds[Virtex6::eFarBlockTypeCount]
Array to hold frame index boundaries for blocks.
std::map< uint32_t, Virtex6::FrameAddress > FrameIndexToAddress
Map from frame index to frame address.
static const Subfield sCOR1[]
Configuration Options Register 1 (COR) subfields.
static const char * sCommandName[eCommandCount]
Configuration command names.
EColumnType
Major column types.
Virtex Frame Address base-class.
EFar
Frame Address Register subfields.
friend class torc::bitstream::bitstream::Virtex6FarUnitTest
static const Subfield sCTL1[]
Control Register 1 (CTL) subfields.
ECommand
Configuration command enumeration for eRegisterCMD.
uint32_t mTopRowCount
The number of top bitstream rows.
ERegister
Configuration register enumeration.
FrameAddress(uint32_t inAddress)
uint32_t mBottomRowCount
The number of bottom bitstream rows.
std::vector< uint32_t > IndexVector
Array of vectors to store frame indexes of each block type.
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.
boost::filesystem::path path
friend class torc::bitstream::bitstream::Virtex6UnitTest
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.
std::vector< VirtexPacket > VirtexPacketVector
Vector of Virtex packets.
void testVirtex6PartialMapping(const boost::filesystem::path &inWorkingPath)
virtual uint32_t getFrameLength(void) const
Return the frame length for the current device.
Virtex6(void)
Basic constructor.
EFarBlockType
Frame Address Register block type constants.
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.
virtual bool operator==(const VirtexFrameAddress &vrhs) const
void testVirtex6Device(const std::string &inDeviceName, const boost::filesystem::path &inWorkingPath)
EFarTopBottom
Frame Address Register top and bottom constants.
virtual void readFramePackets(void)
Read frame data into the frame blocks structure.
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...
boost::uint32_t uint32_t
Imported type name.
virtual void initializeDeviceInfo(const std::string &inDeviceName)
Initialize the device information.
static const Subfield sCTL0[]
Control Register 0 (CTL) subfields.
virtual void assign(uint32_t inAddress)
virtual bool operator<(const VirtexFrameAddress &vrhs) const
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.
Header for the VirtexBitstream class.
VirtexFrameBlocks getXdlFrames(uint32_t inBlockCount, uint32_t inXdlCol, uint32_t inFrameRow=0)
Returns frames for queried xdl coordinates.
virtual VirtexPacketVector generatePartialBitstreamPackets(EFrameInclude inFrameInclusion)
Return a packet vector with partial frame data.
static const Subfield sTIMER[]
Watchdog Timer Register (TIMER) subfields.
virtual VirtexPacketVector generateFullBitstreamSuffix(void)
Return a packet vector with the full bitstream suffix.
friend std::ostream & operator<<(std::ostream &os, const Virtex6 &rhs)
Insert the bitstream header into an output stream.
virtual VirtexPacketVector generateFullBitstreamPackets(void)
Return a packet vector with full frame data.
virtual VirtexPacketVector::iterator deleteFramePackets(void)
Discard the existing frame packets and return an iterator to the start position.