Skip to content

Expressions

Expression Engine.

Expr

Bases: Object

Base Class for all Expressions.

Attributes:

Name Type Description
type_ BaseType

Type.

Op

Bases: Expr, Light

Dual Operator Expression.

Parameters:

Name Type Description Default
left Expr

left argument.

required
sign str

sign.

required
right Expr

right argument.

required

Attributes:

Name Type Description
oper Callable

Operator.

type_ Callable

Type.

Todo
  • fix inherited_members / Attributes Types

BoolOp

Bases: Op

Boolean Dual Operator Expression.

Parameters:

Name Type Description Default
left Expr

left argument.

required
sign str

sign.

required
right Expr

right argument.

required

Attributes:

Name Type Description
oper

Operator.

type_

Type.

Todo
  • fix inherited_members / Attributes Types

SOp

Bases: Expr, Light

Single Operator Expression.

Parameters:

Name Type Description Default
sign str

sign.

required
one Expr

Expression.

required

Attributes:

Name Type Description
oper Callable

Operator.

postsign str

postsign.

type_ str

Type.

Todo
  • fix inherited_members / Attributes Types

SliceOp

Bases: Expr, Light

Slice Expression.

Parameters:

Name Type Description Default
one Expr

Expression.

required
slice_ Slice

Slice

required

Attributes:

Name Type Description
type_

Type.

Todo
  • fix inherited_members / Attributes Types

ConstExpr

Bases: Expr, Light

Constant.

Parameters:

Name Type Description Default
type_ BaseType

Type.

required
ConstExpr Examples

Example.

>>> import ucdp as u
>>> const = u.ConstExpr(u.UintType(5, default=5))
>>> const
ConstExpr(UintType(5, default=5))
>>> int(const)
5
>>> bool(const)
True

ConcatExpr

Bases: Expr, Light

Concatenation.

Parameters:

Name Type Description Default
items tuple[Expr, ...]

Expressions.

required

Attributes:

Name Type Description
type_

Type.

Todo
  • fix inherited_members / Attributes Types
ConcatExpr Examples

Example.

>>> import ucdp as u
>>> expr = u.ConcatExpr((
...     u.ConstExpr(u.UintType(5, default=5)),
...     u.ConstExpr(u.UintType(7, default=1)),
...     u.ConstExpr(u.UintType(16, default=3)),
... ))
>>> expr
ConcatExpr((ConstExpr(UintType(5, default=5)), ... ConstExpr(UintType(16, default=3))))
>>> int(expr)
12325

TernaryExpr

Bases: Expr, Light

TernaryExpr Expression.

Parameters:

Name Type Description Default
cond BoolOp

BoolOp

required
one Expr

Expression

required
other Expr

Expression

required

Attributes:

Name Type Description
type_ BaseScalarTypes

Type.

TernaryExpr Examples

Example.

>>> import ucdp as u
>>> cond = u.Signal(u.UintType(2), 'if_s') == u.ConstExpr(UintType(2, default=1))
>>> one = u.Signal(u.UintType(16, default=10), 'one_s')
>>> other = u.Signal(u.UintType(16, default=20), 'other_s')
>>> expr = TernaryExpr(cond=cond, one=one, other=other)
>>> expr
TernaryExpr(BoolOp(Signal(UintType(2), 'if_s'), ... Signal(UintType(16, default=20), 'other_s'))
>>> int(expr)
20
>>> expr.type_
UintType(16, default=10)

Log2Expr

Bases: Expr, Light

Ceiling Logarithm to base of 2.

Parameters:

Name Type Description Default
expr Expr

Expression

required

Attributes:

Name Type Description
type_ BaseScalarTypes

Type.

Log2Expr Examples

Example.

>>> import ucdp as u
>>> expr = u.Log2Expr(u.ConstExpr(u.UintType(5, default=5)))
>>> expr
Log2Expr(ConstExpr(UintType(5, default=5)))
>>> int(expr)
2
>>> expr.type_
UintType(5, default=5)

MinimumExpr

Bases: Expr, Light

Smallest Value.

Parameters:

Name Type Description Default
items tuple[Expr, ...]

Items

required

Attributes:

Name Type Description
type_ BaseScalarTypes

Type.

MinimumExpr Examples

Example.

>>> import ucdp as u
>>> expr = u.MinimumExpr((
...     u.ConstExpr(u.UintType(5, default=5)),
...     u.ConstExpr(u.UintType(7, default=1)),
...     u.ConstExpr(u.UintType(16, default=3)),
... ))
>>> expr
MinimumExpr((ConstExpr(UintType(5, default=5)), ... ConstExpr(UintType(16, default=3))))
>>> int(expr)
1
>>> expr.type_
UintType(5, default=5)

MaximumExpr

Bases: Expr, Light

Largest Value.

Parameters:

Name Type Description Default
items tuple[Expr, ...]

Items

required

Attributes:

Name Type Description
type_ BaseScalarTypes

Type.

MaximumExpr Examples

Example.

>>> import ucdp as u
>>> expr = u.MaximumExpr((
...     u.ConstExpr(u.UintType(5, default=5)),
...     u.ConstExpr(u.UintType(7, default=1)),
...     u.ConstExpr(u.UintType(16, default=3)),
... ))
>>> expr
MaximumExpr((ConstExpr(UintType(5, default=5)), ... ConstExpr(UintType(16, default=3))))
>>> int(expr)
5
>>> expr.type_
UintType(5, default=5)

RangeExpr

Bases: Expr, Light

Value Range.

Attributes:

Name Type Description
type_ UintType | SintType

Type.

range_ range

Range.

RangeExpr Examples

Example.

>>> import ucdp as u
>>> range_ = u.RangeExpr(type_=u.UintType(4), range_=range(2, 9))
>>> range_.type_
UintType(4)
>>> range_.range_
range(2, 9)