data_specification.enums package¶
Module contents¶

class
data_specification.enums.
ArithmeticOperation
(value, operator, doc='')[source]¶ Bases:
enum.Enum
Arithmetic Operations

ADD
= 0¶ Addition operation

MULTIPLY
= 2¶ Multiplication operation

SUBTRACT
= 1¶ Subtraction operation


class
data_specification.enums.
Commands
(value, exec_function, doc='')[source]¶ Bases:
enum.Enum
Set of opcodes for the spec executor

ALIGN_WR_PTR
= 101¶

ARITH_OP
= 103¶

BLOCK_COPY
= 69¶

BREAK
= 0¶ Halts spec execution with an error.

BREAK_LOOP
= 82¶

CONSTRUCT
= 64¶

COPY_PARAM
= 113¶

COPY_STRUCT
= 112¶

DECLARE_RANDOM_DIST
= 6¶

DECLARE_RNG
= 5¶

ELSE
= 86¶

END_CONSTRUCTOR
= 37¶

END_IF
= 87¶

END_LOOP
= 83¶

END_SPEC
= 255¶

END_STRUCT
= 18¶

FREE
= 3¶

GET_RANDOM_NUMBER
= 7¶

GET_WR_PTR
= 99¶

IF
= 85¶

LOGIC_OP
= 104¶

LOOP
= 81¶

MV
= 96¶ Place a value in a register, from an immediate or another register.

NOP
= 1¶ No operation. Can be used as a filler.

PRINT_STRUCT
= 130¶

PRINT_TXT
= 129¶

PRINT_VAL
= 128¶

READ
= 65¶

READ_PARAM
= 115¶

REFORMAT
= 106¶

RESERVE
= 2¶ Reserves a block of memory ready for filling.

SET_WR_PTR
= 100¶ Move the write pointer to a new location, either relative to the start of this reserved memory area or relative to the current write pointer.

START_CONSTRUCTOR
= 32¶

START_STRUCT
= 16¶

STRUCT_ELEM
= 17¶

SWITCH_FOCUS
= 80¶ Swap between different reserved memory regions to work on several at the same time.

WRITE
= 66¶ Performs a simple write or block write operation.

WRITE_ARRAY
= 67¶ Performs a write from an array.

WRITE_PARAM
= 114¶

WRITE_PARAM_COMPONENT
= 116¶

WRITE_STRUCT
= 68¶


class
data_specification.enums.
Condition
(value, operator, doc='')[source]¶ Bases:
enum.Enum
Comparison Operations

EQUAL
= 0¶ Compare the operands for equality

GREATER_THAN
= 5¶ True if the first operand is > the second

GREATER_THAN_OR_EQUAL
= 4¶ True if the first operand is >= the second

LESS_THAN
= 3¶ True if the first operand is < the second

LESS_THAN_OR_EQUAL
= 2¶ True if the first operand is <= the second

NOT_EQUAL
= 1¶ Compare the operands for inequality


class
data_specification.enums.
DataType
[source]¶ Bases:
enum.Enum
Supported data types. Internally, these are actually tuples.
 an identifier for the enum class;
 the size in bytes of the type;
 the minimum possible value for the type;
 the maximum possible value for the type;
 the scale of the input value to convert it in integer;
 the pattern to use following the struct package encodings to convert the data in binary format;
 is whether to apply the scaling when converting to SpiNNaker’s binary format.
 the corresponding numpy type (or None to inhibit direct conversion via numpy, scaled conversion still supported);
 the text description of the type.
Note
Some types (notably 64bit fixedpoint and floatingpoint types) are not recommended for use on SpiNNaker due to complications with representability and lack of hardware/library support.

FLOAT_32
= 14¶ 32bit floating point number

FLOAT_64
= 15¶ 64bit floating point number (use not recommended: hardware/library support inadequate)

INT16
= 5¶ 16bit signed integer

INT32
= 6¶ 32bit signed integer

INT64
= 7¶ 64bit signed integer

INT8
= 4¶ 8bit signed integer

S015
= 21¶ 0.15 signed fixed point number

S031
= 22¶ 0.32 signed fixed point number

S063
= 23¶ 0.63 signed fixed point number (use not recommended: representability)

S07
= 20¶ 0.7 signed fixed point number

S1615
= 12¶ 16.15 signed fixed point number

S3231
= 13¶ 32.31 signed fixed point number (use not recommended: representability)

S87
= 11¶ 8.7 signed fixed point number

U016
= 17¶ 0.16 unsigned fixed point number

U032
= 18¶ 0.32 unsigned fixed point number

U064
= 19¶ 0.64 unsigned fixed point number (use not recommended: representability)

U08
= 16¶ 0.8 unsigned fixed point number

U1616
= 9¶ 16.16 unsigned fixed point number

U3232
= 10¶ 32.32 unsigned fixed point number (use not recommended: representability)

U88
= 8¶ 8.8 unsigned fixed point number

UINT16
= 1¶ 16bit unsigned integer

UINT32
= 2¶ 32bit unsigned integer

UINT64
= 3¶ 64bit unsigned integer

UINT8
= 0¶ 8bit unsigned integer

decode_array
(values)[source]¶ Decodes a byte array into iterable of this type.
Parameters: values – the bytes to decode into this given data type Return type: numpy array

decode_numpy_array
(array)[source]¶ Decode the numpy array of SpiNNaker values according to this type.
Parameters: array (ndarray(uint32)) – Return type: ndarray(uint32 or float64)

encode
(value)[source]¶ Encode the Python value for SpiNNaker according to this type.
Parameters: value (float or int) – Return type: bytes

encode_as_int
(value)[source]¶ Returns the value as an integer, according to this type.
Parameters: value (float or int) – Return type: int

encode_as_numpy_int
(value)[source]¶ Returns the value as a numpy integer, according to this type.
Parameters: value (float or int) – Return type: uint32

encode_as_numpy_int_array
(array)[source]¶ Returns the numpy array as an integer numpy array, according to this type.
Parameters: array (ndarray) – Return type: ndarray

numpy_typename
¶ The corresponding numpy type, if one exists.

class
data_specification.enums.
LogicOperation
(value, operator, doc='')[source]¶ Bases:
enum.Enum
Logic Operations

AND
= 3¶ Logical AND

LEFT_SHIFT
= 0¶ Shift left (with zero extension)

NOT
= 5¶ Logical NOT (single argument)

OR
= 2¶ Logical OR

RIGHT_SHIFT
= 1¶ Shift right (with zero extension)

XOR
= 4¶ Logical XOR
