torc::bitstream::Virtex6 Class Reference

Virtex6 bitstream. More...

#include <Virtex6.hpp>

Inheritance diagram for torc::bitstream::Virtex6:

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

Collaboration graph
[legend]

List of all members.

Public Types

enum  ERegister {
  eRegisterCRC = 0, eRegisterFAR, eRegisterFDRI, eRegisterFDRO,
  eRegisterCMD, eRegisterCTL0, eRegisterMASK, eRegisterSTAT,
  eRegisterLOUT, eRegisterCOR0, eRegisterMFWR, eRegisterCBC,
  eRegisterIDCODE, eRegisterAXSS, eRegisterCOR1, eRegisterCSOB,
  eRegisterWBSTAR, eRegisterTIMER, eRegisterBOOTSTS = 22, eRegisterCTL1 = 24,
  eRegisterDWC = 26, eRegisterCount
}
 Configuration register enumeration. More...
enum  ECommand {
  eCommandNULL = 0, eCommandWCFG, eCommandMFW, eCommandDGHIGH,
  eCommandLFRM = eCommandDGHIGH, eCommandRCFG, eCommandSTART, eCommandRCAP,
  eCommandRCRC, eCommandAGHIGH, eCommandSWITCH, eCommandGRESTORE,
  eCommandSHUTDOWN, eCommandGCAPTURE, eCommandDESYNCH, eCommandReserved,
  eCommandIPROG, eCommandCRCC, eCommandLTIMER, eCommandCount
}
 Configuration command enumeration for eRegisterCMD. More...
enum  EFar {
  eFarMaskBlockType = 0x00e00000, eFarShiftBlockType = 21, eFarMaskTopBottom = 0x00100000, eFarShiftTopBottom = 20,
  eFarMaskRow = 0x000f8000, eFarShiftRow = 15, eFarMaskMajor = 0x00007f80, eFarShiftMajor = 7,
  eFarMaskMinor = 0x0000007f, eFarShiftMinor = 0
}
 Frame Address Register subfields. More...
enum  EFarTopBottom { eFarTop = 0, eFarBottom = 1 }
 Frame Address Register top and bottom constants. More...
enum  EFarBlockType {
  eFarBlockType0 = 0, eFarBlockType1, eFarBlockType2, eFarBlockType3,
  eFarBlockType4, eFarBlockType5, eFarBlockType6, eFarBlockType7,
  eFarBlockTypeCount
}
 Frame Address Register block type constants. More...
enum  { eStartAddr = 0x03ffffff, eTimerValue = 0x00ffffff }
 Assorted constants. More...
enum  EColumnType {
  eColumnTypeEmpty = 0, eColumnTypeBram, eColumnTypeClb, eColumnTypeClock,
  eColumnTypeDsp, eColumnTypeGtx, eColumnTypeIob, eColumnTypeCount
}
 Major column types. More...
enum  { eFrameLength = 81 }
 Frame length. More...

Public Member Functions

 Virtex6 (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 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,
Virtex6::FrameAddress > 
FrameIndexToAddress
 Map from frame index to frame address.
typedef std::map
< Virtex6::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 Member Functions

void setRowCounts (void)
 Set the number of top and bottom bitstream rows.

Protected Attributes

uint32_t mTopRowCount
 The number of top bitstream rows.
uint32_t mBottomRowCount
 The number of bottom bitstream rows.
FrameIndexToAddress mFrameIndexToAddress
 Map of frame indexes to frame addresses.
FrameAddressToIndex mFrameAddressToIndex
 Map of frame addressee to frame indexes.
IndexVector mBitColumnIndexes [Virtex6::eFarBlockTypeCount]
 Vector to store frame indexes of XDL columns.
IndexVector mXdlColumnIndexes [Virtex6::eFarBlockTypeCount]
 Vector to store frame indexes of Bitstream columns.
uint32_t mBlockFrameIndexBounds [Virtex6::eFarBlockTypeCount]
 Array to hold frame index boundaries for blocks.
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 sCOR0 []
 Configuration Options Register 0 (COR) subfields.
static const Subfield sCOR1 []
 Configuration Options Register 1 (COR) subfields.
static const Subfield sSTAT []
 Status Register (STAT) subfields.
static const Subfield sCTL0 []
 Control Register 0 (CTL) subfields.
static const Subfield sCTL1 []
 Control Register 1 (CTL) subfields.
static const Subfield sMASK0 []
 Control Mask Register (MASK) subfields.
static const Subfield sWBSTAR []
 Warm Boot Start Address Register (WBSTAR) subfields.
static const Subfield sTIMER []
 Watchdog Timer Register (TIMER) subfields.
static const Subfield sBOOTSTS []
 Boot History Status Register (BOOTSTS) subfields.

Friends

class torc::bitstream::bitstream::Virtex6UnitTest
class torc::bitstream::bitstream::Virtex6FarUnitTest
void testVirtex6Device (const std::string &inDeviceName, const boost::filesystem::path &inWorkingPath)
void testVirtex6FullMapping (const boost::filesystem::path &inWorkingPath)
void testVirtex6PartialMapping (const boost::filesystem::path &inWorkingPath)
std::ostream & operator<< (std::ostream &os, const Virtex6 &rhs)
 Insert the bitstream header into an output stream.

Classes

class  FrameAddress


Detailed Description

Virtex6 bitstream.

Definition at line 41 of file Virtex6.hpp.


Member Typedef Documentation

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

Imported type name.

Reimplemented from torc::bitstream::VirtexBitstream.

Definition at line 51 of file Virtex6.hpp.

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

Map from frame index to frame address.

Definition at line 243 of file Virtex6.hpp.

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

Map from frame address to frame index.

Definition at line 245 of file Virtex6.hpp.

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

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

Definition at line 247 of file Virtex6.hpp.


Member Enumeration Documentation

Configuration register enumeration.

See also:
Type 1 Packet Registers: UG360, v3.2, November 1, 2010, Table 6-26.

Definition at line 56 of file Virtex6.hpp.

Configuration command enumeration for eRegisterCMD.

See also:
Command Register Codes: UG360, v3.2, November 1, 2010, Table 6-27.

Definition at line 64 of file Virtex6.hpp.

Frame Address Register subfields.

See also:
Frame Address Register Description: UG360, v3.2, November 1, 2010, Table 6-31.

Definition at line 72 of file Virtex6.hpp.

Frame Address Register top and bottom constants.

See also:
Frame Address Register Description: UG360, v3.2, November 1, 2010, Table 6-31.

Definition at line 82 of file Virtex6.hpp.

Frame Address Register block type constants.

Definition at line 85 of file Virtex6.hpp.

anonymous enum

Assorted constants.

See also:
WBSTAR Register Description: UG360, v3.2, November 1, 2010, Table 6-39.

Definition at line 90 of file Virtex6.hpp.

Major column types.

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

Definition at line 97 of file Virtex6.hpp.

anonymous enum

Frame length.

Constant frame length of 81 32-bit words for the entire Virtex6 family.

See also:
Virtex-6 FPGA Frame Count, Frame Length, and Bitstream Size: UG360, v.3.2, November 1, 2010, Table 6-22.

Definition at line 103 of file Virtex6.hpp.


Constructor & Destructor Documentation

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

Basic constructor.

Definition at line 144 of file Virtex6.hpp.


Member Function Documentation

void torc::bitstream::Virtex6::setRowCounts ( void   )  [protected]

Set the number of top and bottom bitstream rows.

Definition at line 548 of file Virtex6.cpp.

uint32_t torc::bitstream::Virtex6::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 364 of file Virtex6.cpp.

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

Initialize the device information.

Reimplemented from torc::bitstream::Bitstream.

Definition at line 421 of file Virtex6.cpp.

void torc::bitstream::Virtex6::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.

Definition at line 586 of file Virtex6.cpp.

void torc::bitstream::Virtex6::initializeFullFrameBlocks ( void   ) 

Loads full bitstream frames into block data structure.

Definition at line 674 of file Virtex6.cpp.

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

Returns frames for queried bitstream co-ordinates.

Definition at line 720 of file Virtex6.cpp.

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

Returns frames for queried xdl co-ordinates.

Definition at line 743 of file Virtex6.cpp.

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

Return the frame length for the current device.

Reimplemented from torc::bitstream::Bitstream.

Definition at line 187 of file Virtex6.hpp.


Friends And Related Function Documentation

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

Insert the bitstream header into an output stream.

Definition at line 948 of file OutputStreamHelpers.cpp.


Member Data Documentation

const char * torc::bitstream::Virtex6::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 109 of file Virtex6.hpp.

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

Initial value:

 {
        "NOP", "READ", "WRITE", "RESERVED"
    }
Packet opcode names.

Definition at line 111 of file Virtex6.hpp.

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

Initial value:

 {
        "CRC", "FAR", "FDRI", "FDRO", "CMD", "CTL0", "MASK", "STAT", "LOUT", "COR0", "MFWR", "CBC", 
        "IDCODE", "AXSS", "COR1", "CSOB", "WBSTAR", "TIMER", "[UNKNOWN REG 18]", 
        "[UNKNOWN REG 19]", "[UNKNOWN REG 20]", "[UNKNOWN REG 21]", "BOOTSTS", "[UNKNOWN REG 23]", 
        "CTL1", "[UNKNOWN REG 25]", "DWC"
    }
Configuration register names.

Definition at line 113 of file Virtex6.hpp.

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

Initial value:

 {
        "NULL", "WCFG", "MFW", "DGHIGH/LFRM", "RCFG", "START", "RCAP", "RCRC", "AGHIGH", "SWITCH", 
        "GRESTORE", "SHUTDOWN", "GCAPTURE", "DESYNCH", "Reserved", "IPROG", "CRCC", 
        "LTIMER"
    }
Configuration command names.

Definition at line 115 of file Virtex6.hpp.

const Bitstream::Subfield torc::bitstream::Virtex6::sCOR0 [static, protected]

Configuration Options Register 0 (COR) subfields.

See also:
Control Register 0 (CTL0): UG360, v3.2, November 1, 2010, Table 6-35.

Definition at line 117 of file Virtex6.hpp.

const Bitstream::Subfield torc::bitstream::Virtex6::sCOR1 [static, protected]

Initial value:

 {
        {0x00000003,  0, "BPI_page_size", "BPI_PAGE_SIZE", 0,
            
            
            VALUES{"1", "4", "8", "Reserved", 0}},
        {0x0000000C,  2, "BPI_1st_read_cycle", "BPI_1ST_READ_CYCLES", 0,
            
            
            VALUES{"1", "4", "8", "Reserved", 0}},
        {0x00000100,  8, "ContinuousReadbackCRC", "RBCRC_EN", 0, 
            
            
            VALUES{"Disabled", "Enabled", 0}},
        {0x00000200,  9, "InitAsCRCErrorPin", "RBCRC_NO_PIN", 0, 
            
            
            VALUES{"Disabled", "Enabled", 0}},
        {0x00018000, 15, "ActionReadbackCRC", "RBCRC_ACTION", 0,
            
            
            VALUES{"Continue", "Halt", "CorrectAndHalt", "CorrectAndContinue", 0}},
        {0x00020000, 17, "PersistDeassertAtDesynch", "PERSIST_DEASSERT_AT_DESYNCH", 0,
            
            
            VALUES{"Disabled", "Enabled", 0}},
        {0, 0, 0, 0, 0, 0}
    }
Configuration Options Register 1 (COR) subfields.

See also:
Configuration Options Register 1 (COR1): UG360, v3.2, November 1, 2010, Table 6-37.

Definition at line 119 of file Virtex6.hpp.

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

Status Register (STAT) subfields.

See also:
Status Register Description: UG360, v3.2, November 1, 2010, Table 6-33.

Definition at line 121 of file Virtex6.hpp.

const Bitstream::Subfield torc::bitstream::Virtex6::sCTL0 [static, protected]

Control Register 0 (CTL) subfields.

See also:
Control Register 0 (CTL0): UG360, v3.2, November 1, 2010, Table 6-28.

Definition at line 123 of file Virtex6.hpp.

const Bitstream::Subfield torc::bitstream::Virtex6::sCTL1 [static, protected]

Initial value:

 {
        {0, 0, 0, 0, 0, 0}
    }
Control Register 1 (CTL) subfields.

See also:
Control Register 0 (CTL0): UG360, v3.2, November 1, 2010, Table 6-30.

Definition at line 125 of file Virtex6.hpp.

const Bitstream::Subfield torc::bitstream::Virtex6::sMASK0 [static, protected]

Initial value:

 {
        {0x00000001,  0, "GTS_USER_B", "GTS_USER_B", 0, VALUES{"Protected", "Writable", 0}},
        {0x00000008,  3, "Persist", "PERSIST", 0,  VALUES{"Protected", "Writable", 0}},
        {0x00000030,  4, "Security", "SBITS", 0, 
            VALUES{"Protected", "[UNKNOWN 1]", "[UNKNOWN 2]", "Writable", 0}},
        {0x00000040,  6, "Encrypt", "DEC", 0,  VALUES{"Protected", "Writable", 0}},
        {0x00000080,  7, "FARSRC", "FARSRC", 0,  VALUES{"Protected", "Writable", 0}},
        {0x00000100,  8, "GLUTMASK", "GLUTMASK", 0,  VALUES{"Protected", "Writable", 0}},
        {0x00001000, 12, "OverTempPowerDown", "OverTempPowerDown", 0, VALUES{"Protected", 
            "Writable", 0}},
        {0x40000000, 30, "ICAP_sel", "ICAP_SEL", 0, VALUES{"Protected", "Writable", 0}},
        {0x80000000, 31, "EFUSE_key", "EFUSE_KEY", 0, VALUES{"Protected", "Writable", 0}},
        {0, 0, 0, 0, 0, 0}
    }
Control Mask Register (MASK) subfields.

See also:
Control Register 0 (CTL0): UG360, v3.2, November 1, 2010, Table 6-28.

Definition at line 127 of file Virtex6.hpp.

const Bitstream::Subfield torc::bitstream::Virtex6::sWBSTAR [static, protected]

Initial value:

 {
        {0x18000000, 27, "NextRevisionSelect", "RS[1:0]", 0,
            
            VALUES{"00", "01", "10", "11", 0}},
        {0x04000000, 26, "RevisionSelectTristate", "RS_TS_B", 0, 
            
            VALUES{"Disabled", "Enabled", 0}},
        {0, 0, 0, 0, 0, 0}
    }
Warm Boot Start Address Register (WBSTAR) subfields.

See also:
WBSTAR Register Description: UG360, v3.2, November 1, 2010, Table 6-39.

Definition at line 129 of file Virtex6.hpp.

const Bitstream::Subfield torc::bitstream::Virtex6::sTIMER [static, protected]

Initial value:

 {
        {0x01000000, 24, "TimerForConfig", "TIMER_CFG_MON", 0, 
            
            VALUES{"Disabled", "Enabled", 0}},
        {0x02000000, 25, "TimerForUser", "TIMER_USR_MON", 0, 
            
            VALUES{"Disabled", "Enabled", 0}},
        {0, 0, 0, 0, 0, 0}
    }
Watchdog Timer Register (TIMER) subfields.

See also:
TIMER Register Description: UG360, v3.2, November 1, 2010, Table 6-41.

Definition at line 131 of file Virtex6.hpp.

const Bitstream::Subfield torc::bitstream::Virtex6::sBOOTSTS [static, protected]

Boot History Status Register (BOOTSTS) subfields.

See also:
BOOTSTS Register Description: UG360, v3.2, November 1, 2010, Table 6-43.

Definition at line 133 of file Virtex6.hpp.

The number of top bitstream rows.

Definition at line 135 of file Virtex6.hpp.

The number of bottom bitstream rows.

Definition at line 137 of file Virtex6.hpp.

Map of frame indexes to frame addresses.

Definition at line 251 of file Virtex6.hpp.

Map of frame addressee to frame indexes.

Definition at line 253 of file Virtex6.hpp.

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

Vector to store frame indexes of XDL columns.

Definition at line 255 of file Virtex6.hpp.

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

Vector to store frame indexes of Bitstream columns.

Definition at line 257 of file Virtex6.hpp.

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

Array to hold frame index boundaries for blocks.

Definition at line 259 of file Virtex6.hpp.

Map of xdl columns to bit columns.

Definition at line 261 of file Virtex6.hpp.


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

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