4.1.1. undulate.bricks.analogue module

analogue.py declare the basic building block to generate an analogue waveform and define common functions in the analogue context

undulate.bricks.analogue.transform_y(y: float, brick_height: float = 20)

Transform values in the [VSSA;VDDA] range to the internal [0;brick_height] range. If need to model a current still use ‘VSSA’ and ‘VDDA’ a dropin replacement for ‘ISSA’ and ‘IDDA’

Parameters
  • y – y-coordinate between VSSA and VDDA

  • height – height of a brick in the given signal

Returns

the new y-coordinate between 0 and brick_height

class undulate.bricks.analogue.MetaToZero(**kwargs)

Bases: undulate.bricks.generic.Brick

Metastable state representation resolving to GND

This brick is used to depict when a transition as difficulties to settled correctly. Therefore the signal is wavering between 0 and 1 before a settled state to 0.

__init__(**kwargs)

Create the brick as a sum of path, polygon, spline, …

Parameters

slewing (float > 0) – only for the connection with adjacent bricks

get_first_y() float

Get first y-coordinate of the brick

get_last_y() float

Get last y-coordinate of the brick

class undulate.bricks.analogue.MetaToOne(**kwargs)

Bases: undulate.bricks.generic.Brick

Metastable state representation resolving to VDD

This brick is used to depict when a transition as difficulties to settled correctly. Therefore the signal is wavering between 0 and 1 before a settled state to 1

__init__(**kwargs)

Create the brick as a sum of path, polygon, spline, …

Parameters

slewing (float > 0) – only for the connection with adjacent bricks

get_first_y() float

Get first y-coordinate of the brick

get_last_y() float

Get last y-coordinate of the brick

class undulate.bricks.analogue.Cap(**kwargs)

Bases: undulate.bricks.generic.Brick

RC charge/discharge

This brick is used to depict a RC charge or discharge to the new level.

__init__(**kwargs)
Parameters
  • slewing (float > 0) – maximum slope of the signal

  • analogue (float) – final value of the settling in the [VSSA;VDDA] range

get_first_y() float

Get first y-coordinate of the brick

get_last_y() float

Get last y-coordinate of the brick

class undulate.bricks.analogue.Step(**kwargs)

Bases: undulate.bricks.generic.Brick

Ramping signal from one value to another

This brick represents a slewing transitions until the desired level is reached. Then the value is locked.

This behaviour corresponds to a charge-pump or a comparator-based integrator

__init__(**kwargs)
Parameters
  • slewing (float > 0) – maximum slope of the signal

  • analogue (float) – final value of the settling in the [VSSA;VDDA] range

get_first_y() float

Get first y-coordinate of the brick

get_last_y() float

Get last y-coordinate of the brick

class undulate.bricks.analogue.Analogue(**kwargs)

Bases: undulate.bricks.generic.Brick

Arbitrary analogue signal

This brick is intended to depict any time changing signal

__init__(**kwargs)
Parameters

analogue (List[Tuple[float, float]]) – list of points (relative time, voltage in [VSSA;VDDA] range)

get_first_y() float

Get first y-coordinate of the brick

get_last_y() float

Get last y-coordinate of the brick

undulate.bricks.analogue.initialize() None

register defined digital blocks in the rendering system