Skip to main content

A vcd wave file read library

Project description

pyvcdr

this is a python library for vcd wave file read.

install:

pip install pyvcdr

or just copy pyvcdr.py file to your project.

readfile:

    import pyvcdr
    a = pyvcdr.VcdR()
    a.read_file('./test1.vcd')

read from str:

    import pyvcdr
    a = pyvcdr.VcdR()
    a.parse_str('$var wire 1 ! D0 $end\n#0 0!\n')

use the data:

after read. their are two ways to access the data. first is access data by signal:

    print(a.signals[0])#Signal(wire, 1, !, D0)
    print(a.signals[1])#Signal(wire, 1, ", D1)
    print(a.signals[2])#Signal(wire, 1, #, D2)
    print(a.signals[1].module)#D1
    for i in a.signals[1].steps:
        print(i)
        #(0, '1') time, val
        #(1250, '0')
        #(6250, '1')
        #。。。

second is access data by time:

    for i in a.time_values:
        print('time:', i[0], '. sig:', i[1], '. val:', i[2])
        #(0, 'D0', '0')
        #(0, 'D1', '1')
        #(0, 'D2', '1')
        #(1250, 'D1', '0')
        #(6250, 'D1', '1')
        #(10000, 'D1', '0')
        #(15000, 'D1', '1')
        #...

why I write this code:

I need a python vcd file read program.

I used this library first: https://github.com/westerndigitalcorporation/pyvcd but it could not read file. just write is supported.

then this one: https://github.com/em-/python-vcd/tree/master/vcd it works, but is very very slow.

info and thanks:

  • the class Signal is from pyvcd library.
  • import error fix and pep8 sytle fix by @EtlamGit

any issues:

I just write it for my file read. so it may not fit some IEEE 1364-2005 protocol. if it do not work for you, add an issue on github: https://github.com/Jiangshan00001/pyvcdr

post the file that could not work. or you can also change the code yourself.

CHANGE:

  • V0.8 2021.10.9 add parse_str function.
  • V0.7 2021.5.9 BUG FIX: import error fix and pep8 sytle fix. thanks to @EtlamGit.
  • V0.6 2021.5.8. add suport for bBrR data support.

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

pyvcdr-0.0.9.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

pyvcdr-0.0.9-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file pyvcdr-0.0.9.tar.gz.

File metadata

  • Download URL: pyvcdr-0.0.9.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.9

File hashes

Hashes for pyvcdr-0.0.9.tar.gz
Algorithm Hash digest
SHA256 e9d2dbe667a84d29810b30b0f6ceb63ed0c99ffb6ea9f00e54fd0b4ceaadb9d8
MD5 d734d0337a3ef9de08e4f65ef57bd1cc
BLAKE2b-256 728bb1a1b401c7317e04c67cdfc588ac49589c747855876feadb0a9fb3a30273

See more details on using hashes here.

File details

Details for the file pyvcdr-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: pyvcdr-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.9

File hashes

Hashes for pyvcdr-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 7ecf75de69c77f7f13ccda16552eccb1cbf6e8be8bc9b1f34d551bcf89548912
MD5 a4534471978aad1c2432ba47f2a180cb
BLAKE2b-256 6bb44ae32cda9a183041f0229ce9b71debe29c8ccba14ad638e13dcd487fdf91

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