pcisim.lib.register
index
../../src/pcisim/lib/register.py

Implements a RegistersBlock.

 
Classes
       
__builtin__.object
RegistersBlock
pcisim.lib.MyException(exceptions.Exception)
UnalignedAddress

 
class RegistersBlock(__builtin__.object)
    Implements a logical block of DataWords, here called registers.
 
  Methods defined here:
__getitem__(self, item)
Get a register content or a specific field value.
 
@PARAMS
    | (int) item : register position aligned to regsize
    | (str) item : DataField to find
    | (slice) item : create registers slice
 
@RETURN
    | (DataWord) register if (int) was passed.
    | (DataField) field if (str) was passed.
    | (RegistersBlock) register if a (slice) was passed.
 
@RAISES
    UnalignedAddress if offset is not alligned to register size.
    FieldNotFound if no field was found.
__init__(self, regsize, offset=0)
@PARAMS
    (int) regsize : size of each register
    (int) offset : initial size to skip
 
@RAISES
    UnalignedAddress if offset is not alligned to regsize.
__iter__(self)
Get an iterator over (DataWord) registers.
__setitem__(self, field, val)
Set a field by name.
 
@PARAMS
    (str) field : field name to be set
    (int) val : field value to set
 
@RETURN
    (DataField) modified field.
 
@RAISES
    FieldNotFound if no field was found.
    DataFieldOverflow on field value overflow.
 
@NOTES
    If multiple fields share the same name, only first one is
    returned.
__str__(self)
add_register(self, reg)
Adds a register to the block.
 
@PARAMS
    (DataWord) reg : register to add.
get_field(self, field)
Find a field in the block by name.
 
@PARAMS
    (str) field : name of the field to search
 
@RETURN
    (DataField) object
 
@RAISES
    FieldNotFound if no field was found.
 
@NOTES
    If multiple fields share the same name, only first one is
    returned.
get_register(self, offset)
Get a register by register offset.
 
@PARAMS
    (int) offset : register offset.
 
@RETURNS
    (DataWord) register.
 
@RAISES
    UnalignedAddress if offset is not alligned to register size.
new_register(self)
Creates and adds new register.
 
@RETURN
    (DataWord) created register.

Data descriptors defined here:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
class UnalignedAddress(pcisim.lib.MyException)
    Indicates that an address is not alligned.
 
@ATTRIBS
    (int) address : subject address
    (int) alignsize : aligned unit size
 
 
Method resolution order:
UnalignedAddress
pcisim.lib.MyException
exceptions.Exception
exceptions.BaseException
__builtin__.object

Methods defined here:
__init__(self, address, alignsize)
@PARAMS
    (int) address : subject address
    (int) alignsize : aligned unit size
__str__(self)

Data descriptors inherited from pcisim.lib.MyException:
__weakref__
list of weak references to the object (if defined)

Data and other attributes inherited from exceptions.Exception:
__new__ = <built-in method __new__ of type object>
T.__new__(S, ...) -> a new object with type S, a subtype of T

Methods inherited from exceptions.BaseException:
__delattr__(...)
x.__delattr__('name') <==> del x.name
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__getitem__(...)
x.__getitem__(y) <==> x[y]
__getslice__(...)
x.__getslice__(i, j) <==> x[i:j]
 
Use of negative indices is not supported.
__reduce__(...)
__repr__(...)
x.__repr__() <==> repr(x)
__setattr__(...)
x.__setattr__('name', value) <==> x.name = value
__setstate__(...)
__unicode__(...)

Data descriptors inherited from exceptions.BaseException:
__dict__
args
message

 
Data
        __all__ = ['RegistersBlock', 'UnalignedAddress']