4.1.2. undulate.bricks.digital module

digital.py declare the basic building block to generate a digital waveform

class undulate.bricks.digital.Nclk(**kwargs)

Bases: undulate.bricks.generic.Brick

Falling edge clock without arrow

Parameters
  • slewing (float) – limit the slope

  • duty_cycle (float > 0) – between 0 and 1

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.digital.NclkArrow(**kwargs)

Bases: undulate.bricks.digital.Nclk

Falling edge clock with arrow

Parameters
  • slewing (float) – limit the slope

  • duty_cycle (float > 0) – between 0 and 1

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.digital.Pclk(**kwargs)

Bases: undulate.bricks.generic.Brick

Rising edge clock without arrow

Parameters
  • slewing (float) – limit the slope

  • duty_cycle (float > 0) – between 0 and 1

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.digital.PclkArrow(**kwargs)

Bases: undulate.bricks.digital.Pclk

Rising edge clock with arrow

Parameters
  • slewing (float) – limit the slope

  • duty_cycle (float > 0) – between 0 and 1

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.digital.Low(**kwargs)

Bases: undulate.bricks.generic.Brick

Falling edge clock and rest at zero

Parameters

slewing (float) – limit the slope

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.digital.LowArrow(**kwargs)

Bases: undulate.bricks.digital.Low

Falling edge clock with arrow and rest at zero

Parameters

slewing (float) – limit the slope

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.digital.High(**kwargs)

Bases: undulate.bricks.generic.Brick

Rising edge clock and rest at one

Parameters

slewing (float) – limit the slope

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.digital.HighArrow(**kwargs)

Bases: undulate.bricks.digital.High

Rising edge clock with arrow and rest at one

Parameters

slewing (float) – limit the slope

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.digital.HighZ(**kwargs)

Bases: undulate.bricks.generic.Brick

High impedance mode with a reset close to VDD/2

Parameters

slewing (float) – limit the slope

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.digital.Zero(**kwargs)

Bases: undulate.bricks.generic.Brick

Zero level

Parameters

slewing (float) – limit the slope

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.digital.One(**kwargs)

Bases: undulate.bricks.generic.Brick

One level

Parameters

slewing (float) – limit the slope

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.digital.Garbage(**kwargs)

Bases: undulate.bricks.generic.Brick

Unknown state for data

Parameters
  • slewing (float) – limit the slope

  • follow_data (bool) – data ‘=’ occurs before this brick

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.digital.Data(style: str = 's2-polygon', **kwargs)

Bases: undulate.bricks.generic.Brick

Multibits value such as a Bus

Parameters
  • slewing (float) – limit the slope

  • style (str) – from s2 to s9-polygon or hatch, by default s2-polygon

  • hide_data (bool) – prevent the display of the associated data

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.digital.Two(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.s2-polygon’

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.digital.Three(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.s3-polygon’

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.digital.Four(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.s4-polygon’

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.digital.Five(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.s5-polygon’

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.digital.Six(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.s6-polygon’

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.digital.Seven(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.s7-polygon’

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.digital.Eight(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.s8-polygon’

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.digital.Nine(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.s9-polygon’

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.digital.Unknown(**kwargs)

Bases: undulate.bricks.digital.Data

Variant of Data with a css rule ‘.hatch’

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.digital.Gap(**kwargs)

Bases: undulate.bricks.generic.Brick

single line time compression

Its position inside a brick, similarly to a duty cycle for a clock, can be adjusted globally with the property ‘gap_offset’ in the ‘config’ section. The a value is a float in the ]0-1[ 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.digital.Up(**kwargs)

Bases: undulate.bricks.generic.Brick

RC charging to VDD

Parameters

slewing (float) – limit the slope

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.digital.Down(**kwargs)

Bases: undulate.bricks.generic.Brick

RC discharge to GND

Parameters

slewing (float) – limit the slope

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.digital.ImpulseUp(**kwargs)

Bases: undulate.bricks.generic.Brick

pulse from GND to VDD

Parameters

duty_cycle (float) – adjust the x position of the impulse from 0 to 1, by default 0.5

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.digital.ImpulseDown(**kwargs)

Bases: undulate.bricks.generic.Brick

pulse from VDD to GND

Parameters

duty_cycle (float) – adjust the x position of the impulse from 0 to 1, by default 0.5

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.digital.Space(**kwargs)

Bases: undulate.bricks.generic.Brick

blank (area without any drawing) This block can be used in coordination of the overlay possibility to create even more complex signal or apply a specific color for a portion of the signal.

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.digital.Empty(**kwargs)

Bases: undulate.bricks.generic.Brick

empty brick with zero width

get_first_y() float

Get first y-coordinate of the brick

get_last_y() float

Get last y-coordinate of the brick

undulate.bricks.digital.filter_width(waveform: List[undulate.bricks.generic.Brick]) List[undulate.bricks.generic.Brick]

Compute the width/height of each brick considering the following properties:

  • brick_width

  • brick_height

  • hscale

  • vscale

  • period

undulate.bricks.digital.filter_repeat(waveform: List[undulate.bricks.generic.Brick]) List[undulate.bricks.generic.Brick]

Compute the number of size expension for a given brick (using ‘.’ symbol) at the exception of clock signals where the brick ‘.’ means duplication.

undulate.bricks.digital.filter_phase_pos(waveform: List[undulate.bricks.generic.Brick]) List[undulate.bricks.generic.Brick]

Adjust the size of the first and last brick of signal based on the following properties:

  • phase

  • repeat

  • slewing

  • brick_width

  • width

A signal should always have a width equal to ‘width’

undulate.bricks.digital.filter_transition(waveform: List[undulate.bricks.generic.Brick]) List[undulate.bricks.generic.Brick]

Smooth abutment of different brick to prevent glitches and fusion data brick of the same symbol with the same ‘data’ value

undulate.bricks.digital.initialize() None

register defined digital blocks in the rendering system