Skip to main content

Verilog Domain for Sphinx

Project description

Dependencies

  • lark-parser

Enabling

Add extension in conf.py:

extensions = [ 'sphinx_verilog_domain' ]

Usage

Module headers (non-ANSI-style only for now):

.. verilog::module:: module Top(a, b);

Port declarations:

.. verilog:port:: input wire [31:0] a, b;

Parameter declarations:

.. verilog:parameter:: parameter logic param_name_05 = 1, param_name_05_b = 2;

Custom name for use in references:

.. verilog:module:: module \35(4p3|) (z);
    :refname: module_escaped

References:

Reference to :verilog:ref:`Top`
Reference to :verilog:ref:`module_escaped` - links to ``\\35(4p3|)``

Nesting:

.. verilog:module:: module Top1(a, b, c);

    .. verilog:port:: input a;

        Description of port ``a``

    .. verilog:port:: input b;

        Description of port ``b``

    .. verilog:module:: module Nested(a);

        .. verilog:port:: output a;

            Description of port ``a`` in ``Nested``

        Reference to module ``Top1``'s port ``a``: :verilog:ref:`Top1.a`.

Namespaces

There are three directives for changing current Verilog scope:

  • .. verilog:namespace:: A::B - sets current scope to A::B. Using $root as an argument or using the directive without argument at all sets global namespace.

  • .. verilog:namespace-push:: C::D - sets current scope to C::D relatively to current scope

  • .. verilog:namespace-pop:: - restores scope which was active before previous namespace-push was called. If there is no matching namespace-push, scope is set to global scope.

Example:

.. verilog:namespace:: A::B
.. verilog:port:: input inside_a_b;
.. verilog:namespace-push:: C::D
.. verilog:port:: input inside_a_b_c_d;
.. verilog:namespace-pop::
.. verilog:port:: input inside_a_b_again;
.. verilog:namespace::
.. verilog:port:: input in_global_namespace;

Development

To create and open the development environment with all system and python packages use:

make env
source env/conda/bin/activate sphinx-verilog-domain

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

sphinx-verilog-domain-0.2.post21.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

sphinx_verilog_domain-0.2.post21-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file sphinx-verilog-domain-0.2.post21.tar.gz.

File metadata

  • Download URL: sphinx-verilog-domain-0.2.post21.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.5.2

File hashes

Hashes for sphinx-verilog-domain-0.2.post21.tar.gz
Algorithm Hash digest
SHA256 4d96be81de6e5c1523c5161daf2eec5618c271c80682de0418558d9f650977d9
MD5 acd9cb7c93dc6db785a681bbd228c6cb
BLAKE2b-256 6ff067eac66d37e202e2fdcdfbf6e73514379e4f1e6187c56ab1d0b3e38ff12f

See more details on using hashes here.

File details

Details for the file sphinx_verilog_domain-0.2.post21-py3-none-any.whl.

File metadata

  • Download URL: sphinx_verilog_domain-0.2.post21-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.5.2

File hashes

Hashes for sphinx_verilog_domain-0.2.post21-py3-none-any.whl
Algorithm Hash digest
SHA256 cfb6b63d55bc8e217e60cb4e9c2cf8b1ccd88c18ab98a4b09a84640c06d4e703
MD5 63c56ef9278f810d23597bbbfa7e51f1
BLAKE2b-256 92abfa7ea5e87a98e0eb07f3037da01d5f89643753402bbcae8e0b94d1d7e2c3

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