19 #ifndef TORC_BITSTREAM_VIRTEX4_HPP
20 #define TORC_BITSTREAM_VIRTEX4_HPP
22 #include <boost/cstdint.hpp>
23 #include <boost/filesystem.hpp>
27 namespace torc {
namespace architecture {
class DDB; } }
32 namespace bitstream {
class Virtex4UnitTest; }
33 namespace bitstream {
class Virtex4FarUnitTest; }
160 return deleteFramePackets4567<Virtex4>();
173 return generatePartialBitstreamPackets4567<Virtex4>(inFrameInclusion,
191 #define DEPRECATED __attribute__ ((deprecated))
236 if(diffBlockType)
return diffBlockType < 0;
238 if(diffTopBottom)
return diffTopBottom < 0;
240 if(diffRow)
return diffRow < 0;
242 if(diffMajor)
return diffMajor < 0;
289 #endif // TORC_BITSTREAM_VIRTEX4_HPP
ColumnDefVector mColumnDefs
Column type widths.
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names.
virtual VirtexPacketVector generatePartialBitstreamPrefix(EBitstreamType inBitstreamType)
Return a packet vector with the partial bitstream prefix.
void testVirtex4Device(const std::string &inDeviceName, const boost::filesystem::path &inWorkingPath)
EFarTopBottom
Frame Address Register top and bottom constants.
virtual uint32_t getFrameRowCount(void) const
Return the number of frame rows for the current device.
TileTypeNameToColumnType mTileTypeNameToColumnType
virtual void initializeDeviceInfo(const std::string &inDeviceName)
Initialize the device information.
std::map< uint32_t, uint32_t > mXdlColumnToBitColumn
Map of XDL column indexes to bitstream column indexes.
ERegister
Configuration register enumeration.
virtual VirtexPacketVector generateFullBitstreamPackets(void)
Return a packet vector with full frame data.
Header for the VirtexBitstream class.
friend class torc::bitstream::bitstream::Virtex4FarUnitTest
FrameIndexToAddress mFrameIndexToAddress
Map of frame indexes to frame addresses.
EColumnType
Major column types.
virtual bool operator<(const VirtexFrameAddress &vrhs) const
virtual uint32_t getRowPadFrames(void) const
Return the number of pad frames after each row.
virtual void initializeFrameMaps(void)
Initialize the maps between frame indexes and frame addresses. This is generally only useful for int...
virtual VirtexPacketVector generatePartialBitstreamSuffix(EBitstreamType inBitstreamType)
Return a packet vector with the partial bitstream suffix.
EFrameInclude
The frames to include in a partial bitstream. Use eFrameIncludeOnlyDirtyFrames to include only dirty...
ECommand
Configuration command enumeration for eRegisterCMD.
VirtexFrameBlocks getXdlFrames(uint32_t inBlockCount, uint32_t inXdlCol, uint32_t inFrameRow=0)
Returns frames for queried xdl coordinates.
std::vector< uint32_t > IndexVector
Array of vectors to store frame indexes of each block type.
boost::uint32_t uint32_t
Imported type name.
friend class torc::bitstream::bitstream::Virtex4UnitTest
virtual VirtexPacketVector generatePartialBitstreamPackets(EFrameInclude inFrameInclusion)
Return a packet vector with partial frame data.
virtual VirtexPacketVector generateFullBitstreamSuffix(void)
Return a packet vector with the full bitstream suffix.
virtual VirtexPacketVector::iterator deleteFramePackets(void)
Discard the existing frame packets and return an iterator to the start position.
EFar
Frame Address Register subfields.
friend std::ostream & operator<<(std::ostream &os, const Virtex4::FrameAddress &rhs)
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names.
Bitstream column definition for Xilinx bitstreams. For every block type 0 through 8...
VirtexFrameBlocks getBitstreamFrames(uint32_t inBlockCount, uint32_t inBitCol, uint32_t inFrameRow=0)
Returns frames for queried bitstream coordinates.
std::map< Virtex4::FrameAddress, uint32_t > FrameAddressToIndex
Map from frame address to frame index.
virtual void readFramePackets(void)
Read frame data into the frame blocks structure.
virtual bool operator==(const VirtexFrameAddress &vrhs) const
Virtex4(void)
Basic constructor.
static const char * sCommandName[eCommandCount]
Configuration command names.
void testVirtex4PartialMapping(const boost::filesystem::path &inWorkingPath)
static const Subfield sCTL[]
Control Register (CTL) subfields.
std::map< uint32_t, Virtex4::FrameAddress > FrameIndexToAddress
Map from frame index to frame address.
DEPRECATED void initializeFullFrameBlocks(void)
Loads full bitstream frames into block data structure.
uint32_t mFrameRowCount
Number of frame rows.
uint32_t mBlockFrameIndexBounds[Virtex4::eFarBlockTypeCount]
Array to hold frame index boundaries for blocks.
static const char * sRegisterName[eRegisterCount]
Configuration register names.
Virtex Frame Address base-class.
static const Subfield sSTAT[]
Status Register (STAT) subfields.
FrameAddressToIndex mFrameAddressToIndex
Map of frame addressee to frame indexes.
virtual uint32_t getFrameLength(void) const
Return the frame length for the current device.
EFarBlockType
Frame Address Register block type constants.
void testVirtex4FullMapping(const boost::filesystem::path &inWorkingPath)
FrameAddress(uint32_t inAddress)
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
IndexVector mBitColumnIndexes[Virtex4::eFarBlockTypeCount]
Vector to store frame indexes of XDL columns.
static const Subfield sMASK[]
Control Mask Register (MASK) subfields.
std::vector< VirtexPacket > VirtexPacketVector
Vector of Virtex packets.
IndexVector mXdlColumnIndexes[Virtex4::eFarBlockTypeCount]
Vector to store frame indexes of Bitstream columns.
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.
friend std::ostream & operator<<(std::ostream &os, const Virtex4 &rhs)
Insert the bitstream header into an output stream.
FrameAddress(EFarTopBottom inTopBottom, EFarBlockType inBlockType, uint32_t inRow, uint32_t inMajor, uint32_t inMinor)
static const Subfield sCOR[]
Configuration Options Register (COR) subfields.
boost::uint32_t uint32_t
Imported type name.
virtual void assign(uint32_t inAddress)
Header for the VirtexBitstream class.
virtual VirtexPacketVector generateFullBitstreamPrefix(void)
Return a packet vector with the full bitstream prefix.