torc::bitstream::Virtex Class Reference

Virtex bitstream. More...

#include <Virtex.hpp>

Inheritance diagram for torc::bitstream::Virtex:

Inheritance graph
[legend]
Collaboration diagram for torc::bitstream::Virtex:

Collaboration graph
[legend]

List of all members.

Public Types

enum  ERegister {
  eRegisterCRC = 0, eRegisterFAR, eRegisterFDRI, eRegisterFDRO,
  eRegisterCMD, eRegisterCTL, eRegisterMASK, eRegisterSTAT,
  eRegisterLOUT, eRegisterCOR, eRegisterFLR = 11, eRegisterCount
}
 Configuration register enumeration. More...
enum  ECommand {
  eCommandWCFG = 1, eCommandLFRM = 3, eCommandRCFG, eCommandSTART,
  eCommandRCAP, eCommandRCRC, eCommandAGHIGH, eCommandSWITCH,
  eCommandCount
}
 Configuration command enumeration for eRegisterCMD. More...
enum  EFar {
  eFarMaskBlockType = 0x06000000, eFarShiftBlockType = 25, eFarMaskMajor = 0x01FE0000, eFarShiftMajor = 17,
  eFarMaskMinor = 0x0001FE00, eFarShiftMinor = 9
}
 Frame Address Register subfields. More...
enum  EFarBlockType {
  eFarBlockType0 = 0, eFarBlockType1, eFarBlockType2, eFarBlockType3,
  eFarBlockType4, eFarBlockType5, eFarBlockType6, eFarBlockType7,
  eFarBlockTypeCount
}
 Frame Address Register block type constants. More...
enum  EColumnType {
  eColumnTypeEmpty = 0, eColumnTypeBram, eColumnTypeClb, eColumnTypeClock,
  eColumnTypeDsp, eColumnTypeGtx, eColumnTypeIob, eColumnTypeCount
}
 Major column types. More...
typedef
torc::common::EncapsulatedInteger
< uint16_t
ColumnIndex
 Prepares the frames to load them at the correct frame indexes.

Public Member Functions

 Virtex (void)
 Basic constructor.
virtual void initializeDeviceInfo (const std::string &inDeviceName)
 Initialize the device information.
virtual void initializeFrameMaps (void)
 Initialize the maps between frame indexes and frame addresses. This is generally only useful for internal purposes.
void prepareFrames (ColumnIndex &inCol, int &inFrameCount, int &inFrameIndex, EFarBlockType &inBlockType, int &inFarMajor, int &inWidth)
void initializeFullFrameBlocks (void)
 Loads full bitstream frames into block data structure.
VirtexFrameBlocks getBitstreamFrames (uint32_t inBlockCount, uint32_t inBitCol)
 Returns frames for queried bitstream co-ordinates.
VirtexFrameBlocks getXdlFrames (uint32_t inBlockCount, uint32_t inXdlCol)
 Returns frames for queried xdl co-ordinates.
virtual uint32_t getFrameLength (void) const
 Return the frame length for the current device.

Static Public Member Functions

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.

Protected Types

typedef boost::uint32_t uint32_t
 Imported type name.
typedef std::map< uint32_t,
Virtex::FrameAddress > 
FrameIndexToAddress
 Map from frame index to frame address.
typedef std::map
< Virtex::FrameAddress,
uint32_t
FrameAddressToIndex
 Map from frame address to frame index.
typedef std::vector< uint32_tIndexVector
 Array of vectors to store frame indexes of each block type.

Protected Attributes

string mPrivateDeviceName
FrameIndexToAddress mFrameIndexToAddress
 Map of frame indexes to frame addresses.
FrameAddressToIndex mFrameAddressToIndex
 Map of frame addressee to frame indexes.
IndexVector mBitColumnIndexes [Virtex::eFarBlockTypeCount]
 Vector to store frame indexes of XDL columns.
IndexVector mXdlColumnIndexes [Virtex::eFarBlockTypeCount]
 Vector to store frame indexes of Bitstream columns.
uint32_t mBlockFrameIndexBounds [Virtex::eFarBlockTypeCount]
 Array to hold frame index boundaries for blocks.
uint32_t mFrameIndexBounds
 Frame index bounds count.
std::map< uint32_t, uint32_tmXdlIndexToBitIndex
 Map of xdl columns to bit columns.

Static Protected Attributes

static const char * sPacketTypeName [ePacketTypeCount]
 Packet type names.
static const char * sOpcodeName [eOpcodeCount]
 Packet opcode names.
static const char * sRegisterName [eRegisterCount]
 Configuration register names.
static const char * sCommandName [eCommandCount]
 Configuration command names.
static const Subfield sCOR []
 Configuration Options Register (COR) subfields.
static const Subfield sSTAT []
 Status Register (STAT) subfields.
static const Subfield sCTL []
 Control Register (CTL) subfields.
static const Subfield sMASK []
 Control Mask Register (MASK) subfields.

Friends

class torc::bitstream::bitstream::VirtexUnitTest
class torc::bitstream::bitstream::VirtexFarUnitTest
void testVirtexDevice (const std::string &inDeviceName, const boost::filesystem::path &inWorkingPath)
void testVirtexFullMapping (const boost::filesystem::path &inWorkingPath)
std::ostream & operator<< (std::ostream &os, const Virtex &rhs)
 Insert the bitstream header into an output stream.

Classes

class  FrameAddress


Detailed Description

Virtex bitstream.

Definition at line 40 of file Virtex.hpp.


Member Typedef Documentation

typedef boost::uint32_t torc::bitstream::Virtex::uint32_t [protected]

Imported type name.

Reimplemented from torc::bitstream::VirtexBitstream.

Definition at line 49 of file Virtex.hpp.

Prepares the frames to load them at the correct frame indexes.

Definition at line 133 of file Virtex.hpp.

typedef std::map<uint32_t, Virtex::FrameAddress> torc::bitstream::Virtex::FrameIndexToAddress [protected]

Map from frame index to frame address.

Definition at line 196 of file Virtex.hpp.

typedef std::map<Virtex::FrameAddress, uint32_t> torc::bitstream::Virtex::FrameAddressToIndex [protected]

Map from frame address to frame index.

Definition at line 198 of file Virtex.hpp.

typedef std::vector<uint32_t> torc::bitstream::Virtex::IndexVector [protected]

Array of vectors to store frame indexes of each block type.

Definition at line 200 of file Virtex.hpp.


Member Enumeration Documentation

Configuration register enumeration.

See also:
configuration registers: XAPP151, v1.7, October 20, 2004, Table 18.

Definition at line 55 of file Virtex.hpp.

Configuration command enumeration for eRegisterCMD.

See also:
CMD register commands: XAPP151, v1.7, October 20, 2004, Table 19.

Definition at line 61 of file Virtex.hpp.

Frame Address Register subfields.

See also:
Frame Address Register Description: XAPP151, v1.7, October 20, 2004, Figure 19.

Definition at line 66 of file Virtex.hpp.

Frame Address Register block type constants.

Definition at line 73 of file Virtex.hpp.

Major column types.

These are defined and used for internal purposes only, and are not derived from any Xilinx documentation.

Definition at line 78 of file Virtex.hpp.


Constructor & Destructor Documentation

torc::bitstream::Virtex::Virtex ( void   )  [inline]

Basic constructor.

Definition at line 104 of file Virtex.hpp.


Member Function Documentation

uint32_t torc::bitstream::Virtex::makeSubfield ( ERegister  inRegister,
const std::string &  inSubfield,
const std::string &  inSetting 
) [static]

Return the masked value for a subfield of the specified register.

Definition at line 203 of file Virtex.cpp.

void torc::bitstream::Virtex::initializeDeviceInfo ( const std::string &  inDeviceName  )  [virtual]

Initialize the device information.

Reimplemented from torc::bitstream::Bitstream.

Reimplemented in torc::bitstream::VirtexE.

Definition at line 239 of file Virtex.cpp.

void torc::bitstream::Virtex::initializeFrameMaps ( void   )  [virtual]

Initialize the maps between frame indexes and frame addresses. This is generally only useful for internal purposes.

Reimplemented from torc::bitstream::Bitstream.

Reimplemented in torc::bitstream::VirtexE.

Definition at line 343 of file Virtex.cpp.

void torc::bitstream::Virtex::initializeFullFrameBlocks ( void   ) 

Loads full bitstream frames into block data structure.

Definition at line 488 of file Virtex.cpp.

VirtexFrameBlocks torc::bitstream::Virtex::getBitstreamFrames ( uint32_t  inBlockCount,
uint32_t  inBitCol 
)

Returns frames for queried bitstream co-ordinates.

Definition at line 510 of file Virtex.cpp.

VirtexFrameBlocks torc::bitstream::Virtex::getXdlFrames ( uint32_t  inBlockCount,
uint32_t  inXdlCol 
)

Returns frames for queried xdl co-ordinates.

Definition at line 533 of file Virtex.cpp.

virtual uint32_t torc::bitstream::Virtex::getFrameLength ( void   )  const [inline, virtual]

Return the frame length for the current device.

Reimplemented from torc::bitstream::Bitstream.

Reimplemented in torc::bitstream::VirtexE.

Definition at line 177 of file Virtex.hpp.


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Virtex rhs 
) [friend]

Insert the bitstream header into an output stream.

Definition at line 382 of file OutputStreamHelpers.cpp.


Member Data Documentation

const char * torc::bitstream::Virtex::sPacketTypeName [static, protected]

Initial value:

 {
        "[UNKNOWN TYPE 0]", "TYPE1", "TYPE2", "[UNKNOWN TYPE 3]", "[UNKNOWN TYPE 4]", 
        "[UNKNOWN TYPE 5]", "[UNKNOWN TYPE 6]", "[UNKNOWN TYPE 7]"
    }
Packet type names.

Definition at line 85 of file Virtex.hpp.

const char * torc::bitstream::Virtex::sOpcodeName [static, protected]

Initial value:

 {
        "[UNKNOWN OP 0]", "READ", "WRITE", "[UNKNOWN OP 3]"
    }
Packet opcode names.

See also:
configuration data: XAPP151, v1.7, October 20, 2004, Figure 12.

Definition at line 87 of file Virtex.hpp.

const char * torc::bitstream::Virtex::sRegisterName [static, protected]

Initial value:

 {
        "CRC", "FAR", "FDRI", "FDRO", "CMD", "CTL", "MASK", "STAT", "LOUT", "COR", "[UNKNOWN REG 0]", "FLR"
    }
Configuration register names.

Definition at line 89 of file Virtex.hpp.

const char * torc::bitstream::Virtex::sCommandName [static, protected]

Initial value:

 {
        "[UNKNOWN CMD 0]", "WCFG", "", "LFRM", "RCFG", "START", "RCAP", "RCRC", "AGHIGH", "SWITCH"
    }
Configuration command names.

Definition at line 91 of file Virtex.hpp.

const Bitstream::Subfield torc::bitstream::Virtex::sCOR [static, protected]

Configuration Options Register (COR) subfields.

See also:
Configuration Options Register Description: XAPP151, v1.7, October 20, 2004, Table 20.

Definition at line 93 of file Virtex.hpp.

const Bitstream::Subfield torc::bitstream::Virtex::sSTAT [static, protected]

Status Register (STAT) subfields.

See also:
Status Register Description: XAPP151, v1.7, October 20, 2004, Table 25.
Note:
The "bitgen" names attempt to mimic the general bitgen convention.

Definition at line 95 of file Virtex.hpp.

const Bitstream::Subfield torc::bitstream::Virtex::sCTL [static, protected]

Initial value:

 { 
        {0x00000001,  0, "GTS_USER_B", "GTS_USER_B", 0, 
            
            
            VALUES{"IoDisabled", "IoActive", 0}},
        {0x00000040,  6, "Persist", "PERSIST", 0, 
            
            
            VALUES{"No", "Yes", 0}},
        {0x00000180,  7, "Security", "SBITS", 0, 
            
            
            
            VALUES{"None", "Level1", "Level2", "Level2", 0}},
        {0, 0, 0, 0, 0, 0}
    }
Control Register (CTL) subfields.

See also:
Status Register Description: XAPP151, v1.7, October 20, 2004, Table 23.

Definition at line 97 of file Virtex.hpp.

const Bitstream::Subfield torc::bitstream::Virtex::sMASK [static, protected]

Initial value:

 { 
        {0x00000001,  0, "GTS_USER_B", "GTS_USER_B", 0, VALUES{"Protected", "Writable", 0}},
        {0x00000040,  6, "Persist", "PERSIST", 0, VALUES{"Protected", "Writable", 0}},
        {0x00000180,  7, "Security", "SBITS", 0, 
            VALUES{"Protected", "[UNKNOWN 1]", "[UNKNOWN 2]", "Writable", 0}},
        {0, 0, 0, 0, 0, 0}
    }
Control Mask Register (MASK) subfields.

See also:
Control Mask Register Description: Inferred from Table 23.

Definition at line 99 of file Virtex.hpp.

Map of frame indexes to frame addresses.

Definition at line 204 of file Virtex.hpp.

Map of frame addressee to frame indexes.

Definition at line 206 of file Virtex.hpp.

IndexVector torc::bitstream::Virtex::mBitColumnIndexes[Virtex::eFarBlockTypeCount] [protected]

Vector to store frame indexes of XDL columns.

Definition at line 208 of file Virtex.hpp.

IndexVector torc::bitstream::Virtex::mXdlColumnIndexes[Virtex::eFarBlockTypeCount] [protected]

Vector to store frame indexes of Bitstream columns.

Definition at line 210 of file Virtex.hpp.

uint32_t torc::bitstream::Virtex::mBlockFrameIndexBounds[Virtex::eFarBlockTypeCount] [protected]

Array to hold frame index boundaries for blocks.

Definition at line 212 of file Virtex.hpp.

Frame index bounds count.

Definition at line 214 of file Virtex.hpp.

Map of xdl columns to bit columns.

Definition at line 216 of file Virtex.hpp.


The documentation for this class was generated from the following files:

Generated on Thu Oct 13 16:49:49 2011 for TORC by  doxygen 1.5.6