torc::bitstream::Spartan3E Class Reference

Spartan3E bitstream. More...

#include <Spartan3E.hpp>

Inheritance diagram for torc::bitstream::Spartan3E:

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

Collaboration graph
[legend]

List of all members.

Public Types

enum  ERegister {
  eRegisterCRC = 0, eRegisterFAR, eRegisterFDRI, eRegisterFDRO,
  eRegisterCMD, eRegisterCTL, eRegisterMASK, eRegisterSTAT,
  eRegisterLOUT, eRegisterCOR, eRegisterMFWR, eRegisterFLR,
  eRegisterIDCODE = 14, eRegisterCount
}
 Configuration register enumeration. More...
enum  ECommand {
  eCommandNULL = 0, eCommandWCFG, eCommandMFWR, eCommandLFRM,
  eCommandRCFG, eCommandSTART, eCommandRCAP, eCommandRCRC,
  eCommandAGHIGH, eCommandSWITCH, eCommandGRESTORE, eCommandSHUTDOWN,
  eCommandGCAPTURE, eCommandDESYNCH, eCommandCount
}
 Configuration command enumeration for eRegisterCMD. More...
enum  EFar {
  eFarMaskColumn = 0x06000000, eFarShiftColumn = 25, eFarMaskMajor = 0x01fe0000, eFarShiftMajor = 17,
  eFarMaskMinor = 0x0001fe00, eFarShiftMinor = 9
}
 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  EColumnType {
  eColumnTypeEmpty = 0, eColumnTypeBram, eColumnTypeBramInt, eColumnTypeClb,
  eColumnTypeClock, eColumnTypeClockLL, eColumnTypeTerm, eColumnTypeIob,
  eColumnTypeCount
}
 Major column types. More...

Public Member Functions

 Spartan3E (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.
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,
Spartan3E::FrameAddress > 
FrameIndexToAddress
 Map from frame index to frame address.
typedef std::map
< Spartan3E::FrameAddress,
uint32_t
FrameAddressToIndex
 Map from frame address to frame index.
typedef std::vector< uint32_tColumnIndexVector
 Array of vectors to store frame indexes of each block type.

Protected Attributes

FrameIndexToAddress mFrameIndexToAddress
 Map of frame indexes to frame addresses.
FrameAddressToIndex mFrameAddressToIndex
 Map of frame addressee to frame indexes.
ColumnIndexVector mBitColumnIndexes [Spartan3E::eFarBlockTypeCount]
 Vector to store frame indexes of XDL columns.
ColumnIndexVector mXdlColumnIndexes [Spartan3E::eFarBlockTypeCount]
 Vector to store frame indexes of Bitstream 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::Spartan3EUnitTest
class torc::bitstream::bitstream::Spartan3EFarUnitTest
void testSpartan3EDevice (const std::string &inDeviceName, const boost::filesystem::path &inWorkingPath)
std::ostream & operator<< (std::ostream &os, const Spartan3E &rhs)
 Insert the bitstream header into an output stream.

Classes

class  FrameAddress


Detailed Description

Spartan3E bitstream.

Definition at line 38 of file Spartan3E.hpp.


Member Typedef Documentation

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

Imported type name.

Reimplemented from torc::bitstream::SpartanBitstream.

Definition at line 46 of file Spartan3E.hpp.

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

Map from frame index to frame address.

Definition at line 182 of file Spartan3E.hpp.

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

Map from frame address to frame index.

Definition at line 184 of file Spartan3E.hpp.

typedef std::vector<uint32_t> torc::bitstream::Spartan3E::ColumnIndexVector [protected]

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

Definition at line 186 of file Spartan3E.hpp.


Member Enumeration Documentation

Configuration register enumeration.

See also:
configuration registers: XAPP452, v1.1, June 25, 2008, Table 1.

Definition at line 52 of file Spartan3E.hpp.

Configuration command enumeration for eRegisterCMD.

See also:
CMD register commands: XAPP452, v1.1, June 25, 2008, Table 2.

Definition at line 58 of file Spartan3E.hpp.

Frame Address Register subfields.

See also:
Frame Address Register Description: XAPP452, v1.1, June 25, 2008, Figure 2.

Definition at line 64 of file Spartan3E.hpp.

Frame Address Register top and bottom constants.

Definition at line 71 of file Spartan3E.hpp.

Frame Address Register block type constants.

Definition at line 73 of file Spartan3E.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 Spartan3E.hpp.


Constructor & Destructor Documentation

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

Basic constructor.

Definition at line 103 of file Spartan3E.hpp.


Member Function Documentation

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

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

Initialize the device information.

Reimplemented from torc::bitstream::Bitstream.

Definition at line 218 of file Spartan3E.cpp.

void torc::bitstream::Spartan3E::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 313 of file Spartan3E.cpp.

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

Return the frame length for the current device.

Reimplemented from torc::bitstream::Bitstream.

Definition at line 167 of file Spartan3E.hpp.


Friends And Related Function Documentation

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

Insert the bitstream header into an output stream.

Definition at line 88 of file OutputStreamHelpers.cpp.


Member Data Documentation

const char * torc::bitstream::Spartan3E::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 Spartan3E.hpp.

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

Initial value:

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

Definition at line 87 of file Spartan3E.hpp.

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

Initial value:

 {
        "CRC", "FAR", "FDRI", "FDRO", "CMD", "CTL", "MASK", "STAT", "LOUT", "COR", "MFWR", "FLR",
        "[UNKNOWN_REGISTER 12]", "[UNKNOWN_REGISTER 13]", "IDCODE"
    }
Configuration register names.

Definition at line 89 of file Spartan3E.hpp.

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

Initial value:

 {
        "NULL", "WCFG", "MFWR", "LFRM", "RCFG", "START", "RCAP", "RCRC", "AGHIGH", "SWITCH", 
        "GRESTORE", "SHUTDOWN", "GCAPTURE", "DESYNCH"
    }
Configuration command names.

Definition at line 91 of file Spartan3E.hpp.

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

Configuration Options Register (COR) subfields.

See also:
Configuration Options Register Description: XAPP452, v1.1, June 25, 2008, Table 5.

Definition at line 93 of file Spartan3E.hpp.

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

Status Register (STAT) subfields.

See also:
Status Register Description: XAPP452, v1.1, June 25, 2008, Table 4.
Note:
The "bitgen" names attempt to mimic the general bitgen convention.

Definition at line 95 of file Spartan3E.hpp.

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

Initial value:

 { 
        {0x00000001,  0, "GTS_USER_B", "GTS_USER_B", 0, 
            
            
            VALUES{"IoDisabled", "IoActive", 0}},
        {0x00000008,  3, "Persist", "PERSIST", 0, 
            
            
            VALUES{"No", "Yes", 0}},
        {0x00000030,  4, "Security", "SBITS", 0, 
            
            
            
            VALUES{"None", "Level1", "Level2", "Level2", 0}},
        {0, 0, 0, 0, 0, 0}
    }
Control Register (CTL) subfields.

See also:
Control Register Description: XAPP452, v1.1, June 25, 2008, Table 3.

Definition at line 97 of file Spartan3E.hpp.

const Bitstream::Subfield torc::bitstream::Spartan3E::sMASK [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}},
        {0x00000080,  4, "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 3.

Definition at line 99 of file Spartan3E.hpp.

Map of frame indexes to frame addresses.

Definition at line 190 of file Spartan3E.hpp.

Map of frame addressee to frame indexes.

Definition at line 192 of file Spartan3E.hpp.

ColumnIndexVector torc::bitstream::Spartan3E::mBitColumnIndexes[Spartan3E::eFarBlockTypeCount] [protected]

Vector to store frame indexes of XDL columns.

Definition at line 194 of file Spartan3E.hpp.

ColumnIndexVector torc::bitstream::Spartan3E::mXdlColumnIndexes[Spartan3E::eFarBlockTypeCount] [protected]

Vector to store frame indexes of Bitstream columns.

Definition at line 196 of file Spartan3E.hpp.


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

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