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