19 #ifndef TORC_BITSTREAM_VIRTEX_HPP
20 #define TORC_BITSTREAM_VIRTEX_HPP
22 #include <boost/cstdint.hpp>
23 #include <boost/filesystem.hpp>
28 namespace torc {
namespace architecture {
class DDB; } }
33 namespace bitstream {
class VirtexUnitTest; }
34 namespace bitstream {
class VirtexFarUnitTest; }
168 if(diffBlockType)
return diffBlockType < 0;
170 if(diffMajor)
return diffMajor < 0;
182 using namespace torc::common;
228 #endif // TORC_BITSTREAM_VIRTEX_HPP
ColumnDefVector mColumnDefs
Column type widths.
TileTypeNameToColumnType mTileTypeNameToColumnType
uint32_t mFrameIndexBounds
Frame index bounds count.
ERegister
Configuration register enumeration.
Header for the VirtexBitstream class.
std::map< Virtex::FrameAddress, uint32_t > FrameAddressToIndex
Map from frame address to frame index.
IndexVector mXdlColumnIndexes[Virtex::eFarBlockTypeCount]
Vector to store frame indexes of Bitstream columns.
static const char * sOpcodeName[eOpcodeCount]
Packet opcode names.
boost::uint32_t uint32_t
Imported type name.
FrameAddress(EFarBlockType inBlockType, uint32_t inMajor, uint32_t inMinor)
virtual void initializeDeviceInfo(const std::string &inDeviceName)
Initialize the device information.
Bitstream column definition for Xilinx bitstreams. For every block type 0 through 8...
static const char * sRegisterName[eRegisterCount]
Configuration register names.
friend class torc::bitstream::bitstream::VirtexUnitTest
void testVirtexDevice(const std::string &inDeviceName, const boost::filesystem::path &inWorkingPath)
virtual void initializeFrameMaps(void)
Initialize the maps between frame indexes and frame addresses. This is generally only useful for int...
torc::common::EncapsulatedInteger< uint16_t > ColumnIndex
Prepares the frames to load them at the correct frame indexes.
void prepareFrames(ColumnIndex &inCol, int &inFrameCount, int &inFrameIndex, EFarBlockType &inBlockType, int &inFarMajor, int &inWidth)
EDevice mDevice
Bitstream device enumeration.
virtual uint32_t getFrameRowCount(void) const
Return the number of frame rows for the current device.
std::map< uint32_t, Virtex::FrameAddress > FrameIndexToAddress
Map from frame index to frame address.
Virtex(void)
Basic constructor.
friend std::ostream & operator<<(std::ostream &os, const Virtex::FrameAddress &rhs)
boost::uint32_t uint32_t
Imported type name.
virtual void assign(uint32_t inAddress)
Virtex Frame Address base-class.
FrameAddressToIndex mFrameAddressToIndex
Map of frame addressee to frame indexes.
uint32_t mBlockFrameIndexBounds[Virtex::eFarBlockTypeCount]
Array to hold frame index boundaries for blocks.
IndexVector mBitColumnIndexes[Virtex::eFarBlockTypeCount]
Vector to store frame indexes of XDL columns.
std::map< uint32_t, uint32_t > mXdlColumnToBitColumn
Map of XDL column indexes to bitstream column indexes.
friend class torc::bitstream::bitstream::VirtexFarUnitTest
static const Subfield sCOR[]
Configuration Options Register (COR) subfields.
static const Subfield sMASK[]
Control Mask Register (MASK) subfields.
VirtexFrameBlocks getBitstreamFrames(uint32_t inBlockCount, uint32_t inBitCol)
Returns frames for queried bitstream coordinates.
boost::filesystem::path path
EFarBlockType
Frame Address Register block type constants.
friend std::ostream & operator<<(std::ostream &os, const Virtex &rhs)
Insert the bitstream header into an output stream.
void testVirtexFullMapping(const boost::filesystem::path &inWorkingPath)
ECommand
Configuration command enumeration for eRegisterCMD.
FrameAddress(uint32_t inAddress)
static const Subfield sSTAT[]
Status Register (STAT) subfields.
boost::uint32_t uint32_t
Imported type name.
static const char * sPacketTypeName[ePacketTypeCount]
Packet type names.
std::vector< uint32_t > IndexVector
Array of vectors to store frame indexes of each block type.
virtual uint32_t getFrameLength(void) const
Return the frame length for the current device.
Template base for encapsulated integers, to enforce strong typing.
EFar
Frame Address Register subfields.
virtual bool operator<(const VirtexFrameAddress &vrhs) const
static const Subfield sCTL[]
Control Register (CTL) subfields.
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.
void initializeFullFrameBlocks(void)
Loads full bitstream frames into block data structure.
string mPrivateDeviceName
static const char * sCommandName[eCommandCount]
Configuration command names.
Header for the VirtexBitstream class.
VirtexFrameBlocks getXdlFrames(uint32_t inBlockCount, uint32_t inXdlCol)
Returns frames for queried xdl coordinates.
EColumnType
Major column types.
FrameIndexToAddress mFrameIndexToAddress
Map of frame indexes to frame addresses.
virtual bool operator==(const VirtexFrameAddress &vrhs) const