#include <Virtex5.hpp>
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, 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, eCommandLTIMER = 17, 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 = 41 } |
Frame length. More... | |
Public Member Functions | |
Virtex5 (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) |
Loads partial bitstream frames into block data structure. | |
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, Virtex5::FrameAddress > | FrameIndexToAddress |
Map from frame index to frame address. | |
typedef std::map < Virtex5::FrameAddress, uint32_t > | FrameAddressToIndex |
Map from frame address to frame index. | |
typedef std::vector< uint32_t > | IndexVector |
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. | |
IndexVector | mBitColumnIndexes [Virtex5::eFarBlockTypeCount] |
Vector to store frame indexes of XDL columns. | |
IndexVector | mXdlColumnIndexes [Virtex5::eFarBlockTypeCount] |
Vector to store frame indexes of Bitstream columns. | |
uint32_t | mBlockFrameIndexBounds [Virtex5::eFarBlockTypeCount] |
Array to hold frame index boundaries for blocks. | |
std::map< uint32_t, uint32_t > | mXdlIndexToBitIndex |
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::Virtex5UnitTest |
class | torc::bitstream::bitstream::Virtex5FarUnitTest |
void | testVirtex5Device (const std::string &inDeviceName, const boost::filesystem::path &inWorkingPath) |
void | testVirtex5FullMapping (const boost::filesystem::path &inWorkingPath) |
void | testVirtex5PartialMapping (const boost::filesystem::path &inWorkingPath) |
std::ostream & | operator<< (std::ostream &os, const Virtex5 &rhs) |
Insert the bitstream header into an output stream. | |
Classes | |
class | FrameAddress |
Definition at line 41 of file Virtex5.hpp.
typedef boost::uint32_t torc::bitstream::Virtex5::uint32_t [protected] |
Imported type name.
Reimplemented from torc::bitstream::VirtexBitstream.
Definition at line 51 of file Virtex5.hpp.
typedef std::map<uint32_t, Virtex5::FrameAddress> torc::bitstream::Virtex5::FrameIndexToAddress [protected] |
typedef std::map<Virtex5::FrameAddress, uint32_t> torc::bitstream::Virtex5::FrameAddressToIndex [protected] |
typedef std::vector<uint32_t> torc::bitstream::Virtex5::IndexVector [protected] |
Array of vectors to store frame indexes of each block type.
Definition at line 251 of file Virtex5.hpp.
Configuration register enumeration.
Definition at line 56 of file Virtex5.hpp.
Configuration command enumeration for eRegisterCMD.
Definition at line 64 of file Virtex5.hpp.
Frame Address Register subfields.
Definition at line 72 of file Virtex5.hpp.
Frame Address Register top and bottom constants.
Definition at line 82 of file Virtex5.hpp.
anonymous enum |
Assorted constants.
Definition at line 90 of file Virtex5.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 Virtex5.hpp.
anonymous enum |
torc::bitstream::Virtex5::Virtex5 | ( | void | ) | [inline] |
uint32_t torc::bitstream::Virtex5::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 355 of file Virtex5.cpp.
void torc::bitstream::Virtex5::initializeDeviceInfo | ( | const std::string & | inDeviceName | ) | [virtual] |
Initialize the device information.
Reimplemented from torc::bitstream::Bitstream.
Definition at line 412 of file Virtex5.cpp.
void torc::bitstream::Virtex5::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 528 of file Virtex5.cpp.
void torc::bitstream::Virtex5::initializeFullFrameBlocks | ( | void | ) |
VirtexFrameBlocks torc::bitstream::Virtex5::getBitstreamFrames | ( | uint32_t | inBlockCount, | |
uint32_t | inBitCol | |||
) |
Loads partial bitstream frames into block data structure.
Returns frames for queried bitstream co-ordinates
Definition at line 661 of file Virtex5.cpp.
VirtexFrameBlocks torc::bitstream::Virtex5::getXdlFrames | ( | uint32_t | inBlockCount, | |
uint32_t | inXdlCol | |||
) |
virtual uint32_t torc::bitstream::Virtex5::getFrameLength | ( | void | ) | const [inline, virtual] |
Return the frame length for the current device.
Reimplemented from torc::bitstream::Bitstream.
Definition at line 185 of file Virtex5.hpp.
std::ostream& operator<< | ( | std::ostream & | os, | |
const Virtex5 & | rhs | |||
) | [friend] |
Insert the bitstream header into an output stream.
Definition at line 772 of file OutputStreamHelpers.cpp.
const char * torc::bitstream::Virtex5::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]" }
Definition at line 113 of file Virtex5.hpp.
const char * torc::bitstream::Virtex5::sOpcodeName [static, protected] |
Initial value:
{ "NOP", "READ", "WRITE", "RESERVED" }
Definition at line 115 of file Virtex5.hpp.
const char * torc::bitstream::Virtex5::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" }
Definition at line 117 of file Virtex5.hpp.
const char * torc::bitstream::Virtex5::sCommandName [static, protected] |
Initial value:
{ "NULL", "WCFG", "MFW", "DGHIGH/LFRM", "RCFG", "START", "RCAP", "RCRC", "AGHIGH", "SWITCH", "GRESTORE", "SHUTDOWN", "GCAPTURE", "DESYNCH", "Reserved", "IPROG", "[UNKNOWN CMD 16]", "LTIMER" }
Definition at line 119 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::sCOR0 [static, protected] |
Configuration Options Register 0 (COR) subfields.
Definition at line 121 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::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}}, {0x00020000, 17, "PersistDeassertAtDesynch", "PERSIST_DEASSERT_AT_DESYNCH", 0, VALUES{"Disabled", "Enabled", 0}}, {0, 0, 0, 0, 0, 0} }
Definition at line 123 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::sSTAT [static, protected] |
Status Register (STAT) subfields.
Definition at line 125 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::sCTL0 [static, protected] |
Control Register 0 (CTL) subfields.
Definition at line 127 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::sCTL1 [static, protected] |
Initial value:
{ {0, 0, 0, 0, 0, 0} }
Definition at line 129 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::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}}, {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}}, {0, 0, 0, 0, 0, 0} }
Definition at line 131 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::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} }
Definition at line 133 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::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} }
Definition at line 135 of file Virtex5.hpp.
const Bitstream::Subfield torc::bitstream::Virtex5::sBOOTSTS [static, protected] |
Boot History Status Register (BOOTSTS) subfields.
Definition at line 137 of file Virtex5.hpp.
IndexVector torc::bitstream::Virtex5::mBitColumnIndexes[Virtex5::eFarBlockTypeCount] [protected] |
IndexVector torc::bitstream::Virtex5::mXdlColumnIndexes[Virtex5::eFarBlockTypeCount] [protected] |
uint32_t torc::bitstream::Virtex5::mBlockFrameIndexBounds[Virtex5::eFarBlockTypeCount] [protected] |
std::map<uint32_t, uint32_t> torc::bitstream::Virtex5::mXdlIndexToBitIndex [protected] |