Skip to main content

CocotbExt Wavedrom diagram generator

Project description

Lint > Tests > Publish

Cocotb Waves

Table of Contents

Introduction

This repository contains wavedrom svg generator for cocotb sims.

Installation

Installation from pip (release version, stable):

$ pip install cocotbext-waves

Usage

Example sampling AHB signals using cocotbext-ahb.

from cocotbext.waves import waveform

...

waves = waveform(
    clk=dut.hclk, name="ahb_test", hscale=3, debug=True
)
waves.add_signal(
    [
        dut.hsel,
        dut.haddr,
        dut.hburst,
        dut.hsize,
        dut.htrans,
        dut.hwdata,
        dut.hwrite,
        dut.hready_in,
    ],
    group="MOSI",
)
waves.add_signal(
    [
        dut.hrdata,
        dut.hready,
        dut.hresp,
    ],
    group="MISO",
)
waves.start()
...
<Running sim, issuing txns>
...
waves.save_svg()
waves.save_txt()

Output:

ahb

Classes & Methods

Class waveform

class waveform:
    def __init__(
        self,
        clk,
        name,
        hscale: int = 2,
        is_posedge: bool = True,
        debug: bool = False,
        start: bool = True
    ) -> None:
  • clk: Synchronous clock used as the sample the signals
  • name: Defines the object / filename, also part of the diagram header
  • hscale: Horizontal scale for the SVG
  • is_posedge: Defines clock model
  • debug: Enable some debug messages
  • start: Starts the signal monitoring

.start()/.stop()

Optional start/stop the sampling to create the diagram.y

.add_trigger(handle, val)

Adds a trigger to start sampling the signal, starts when handle.value == val.

.add_signal(color, is_clock, is_posedge_clock, clock_period, group)

Adds a signal to be monitored in the diagram. If it is a clock, other arguments can be populated, please note that signals from the same group have to be declared in a single method call.

.set_head/foot(text, tick, every)

Set header/foot propertries of the diagram, more info on wavedrom website.

.save_svg()

Stops the sampling and convert into SVG the final diagram.

.save_txt()

Stops the sampling and convert into .txt fmt the json.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cocotbext-waves-0.1.9.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

cocotbext_waves-0.1.9-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file cocotbext-waves-0.1.9.tar.gz.

File metadata

  • Download URL: cocotbext-waves-0.1.9.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.7

File hashes

Hashes for cocotbext-waves-0.1.9.tar.gz
Algorithm Hash digest
SHA256 93e19b13072b40d4ec77204f946d5bd34708a19734a485cea4fcd1a6b01db7f5
MD5 81ff6c38204b6ea2a451410549712317
BLAKE2b-256 e69991240031facf974721bf843426f6c77aebf68d250456bb1c6b24ed17e5c5

See more details on using hashes here.

File details

Details for the file cocotbext_waves-0.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for cocotbext_waves-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 dac9bfbe9a89529e5261751bf2fc095079ad1d382c480892e94bc95f64ceaceb
MD5 743fca3e375cf814feb896b0fb2be56e
BLAKE2b-256 944db6ce89bff53214a2fa7580281e07d397d44db212401b16d5da6f5782381c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page