Name | hdltree JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Pure Python HDL parser, plus symbol generator and sphinx domain |
upload_time | 2025-01-22 03:33:41 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | Copyright © 2017 Kevin Thibedeau Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
rtl
hdl
vhdl
system
verilog
systemverilog
symbol
symbolator
sphinx
hdlparse
parse
format
validate
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
![Symbolator logo](https://zebreus.github.io/symbolator/_static/symbolator_icon.png)
# Symbolator
Symbolator is a component diagramming tool for VHDL and Verilog. It will parse HDL source files, extract components or modules and render them as an image.
This is a fork of [kevinpt/symbolator](https://github.com/kevinpt/symbolator).
```vhdl
library ieee;
use ieee.std_logic_1164.all;
package demo is
component demo_device is
generic (
SIZE : positive;
RESET_ACTIVE_LEVEL : std_ulogic := '1'
);
port (
--# {{clocks|}}
Clock : in std_ulogic;
Reset : in std_ulogic;
--# {{control|Named section}}
Enable : in std_ulogic;
Data_in : in std_ulogic_vector(SIZE-1 downto 0);
Data_out : out std_ulogic_vector(SIZE-1 downto 0)
);
end component;
end package;
```
```console
$ symbolator -i demo_device.vhdl
Scanning library: .
Creating symbol for demo_device.vhdl "demo_device"
-> demo_device-demo_device.svg
```
Produces the following:
![Demo device diagram](https://zebreus.github.io/symbolator/_images/demo_device-demo_device.svg)
Symbolator can render to PNG bitmap images or SVG, PDF, PS, and EPS vector images. SVG is the default.
## Getting symbolator
There are some ways to run symbolator that dont require installing local dependencies:
You can run a prebuilt docker container with symbolator using the following command:
```sh
docker run --rm -it -v $(pwd):/src madmanfred/symbolator
```
Another way to run symbolizer is through the nix package manager with the command:
```sh
nix run github:zebreus/symbolator
```
There also is a AppImage available on GitHub releases.
## Installing symbolator from source
Symbolator is a Python application. You must have Python installed first to use it. Most modern Linux distributions and OS/X have it available by default. There are a number of options available for Windows. If you don't already have a favorite, I recommend getting one of the ["full-stack" Python distros](https://www.scipy.org/install.html) that are geared toward scientific computing such as Anaconda or Python(x,y).
If your OS has a package manager, it may be preferable to install Python setuptools through that tool before attempting to install Symbolator. Otherwise, the installation script will install these packages directly without registering them with the OS package manager.
Symbolator requires Python 3.x, Pycairo, and Pango.
The Pango library is used compute the dimensions of a text layout. There is no standard package to get the Pango Python bindings installed. It is a part of the Gtk+ library which is accessed either through the PyGtk or PyGObject APIs, both of which are supported by Symbolator. You should make sure that one of these libraries is available before installing Symbolator. A [Windows installer](https://www.pygtk.org/downloads.html) is available. For Linux distributions you should install the relevant libraries with your package manager.
To build symbolator from source you need a setuptools with a version >= 61.0.0 and pip >= 23.0.0.
When these requirements are met you can install symbolator from github using:
```sh
pip install --upgrade git+https://github.com/zebreus/symbolator.git
```
If you manually downloaded a source package or created a clone with Git you can install Symbolator with the following command run from the base Symbolator directory:
```sh
pip install .
```
After a successful install the Symbolator command line application will be available. On Linux they should be immediately accessible from your current search path. On Windows you will need to make sure that the `<Python root>\Scripts` directory is in your %PATH% environment variable.
You may need to update to recent versions of setuptools (at least 61) and pip (at least 23) to install symbolator. You can upgrade them to the latest versions using the following command:
```sh
pip install --upgrade pip setuptools
```
On Linux systems you may need to install with root privileges using the *sudo* command.
## Licensing
Symbolator is licensed for free commercial and non-commercial use under the terms of the MIT license. The Symbolator Sphinx extension is derived from the Graphviz extension and is BSD licensed.
## Download
You can access the Symbolator Git repository from [Github](https://github.com/zebreus/symbolator). You can install direct from PyPI with the "pip" command if you have it available.
## Contributing
Thank you for considering contributing to this project!
To contribute, please follow these steps:
1. Fork the repository and create your branch from main.
2. Make the necessary changes and additions.
3. Ensure that you are happy with your changes.
4. Submit a pull request, describing the changes you've made and providing any relevant information.
I will review your pull request as soon as possible.
## Documentation
The full documentation is available online at the [main Symbolator site](https://zebreus.github.io/symbolator/).
Raw data
{
"_id": null,
"home_page": null,
"name": "hdltree",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "RTL, HDL, VHDL, System, Verilog, SystemVerilog, symbol, symbolator, sphinx, hdlparse, parse, format, validate",
"author": null,
"author_email": "Rajan Patel <rpatel3001@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/26/6c/e5ad5c29fe1ba4179c877f5494bf48b9b15023ec7d44bc5400f13dd7bdbf/hdltree-0.1.0.tar.gz",
"platform": null,
"description": "![Symbolator logo](https://zebreus.github.io/symbolator/_static/symbolator_icon.png)\r\n\r\n# Symbolator\r\n\r\nSymbolator is a component diagramming tool for VHDL and Verilog. It will parse HDL source files, extract components or modules and render them as an image.\r\n\r\nThis is a fork of [kevinpt/symbolator](https://github.com/kevinpt/symbolator).\r\n\r\n```vhdl\r\nlibrary ieee;\r\nuse ieee.std_logic_1164.all;\r\n\r\npackage demo is\r\n component demo_device is\r\n generic (\r\n SIZE : positive;\r\n RESET_ACTIVE_LEVEL : std_ulogic := '1'\r\n );\r\n port (\r\n --# {{clocks|}}\r\n Clock : in std_ulogic;\r\n Reset : in std_ulogic;\r\n\r\n --# {{control|Named section}}\r\n Enable : in std_ulogic;\r\n Data_in : in std_ulogic_vector(SIZE-1 downto 0);\r\n Data_out : out std_ulogic_vector(SIZE-1 downto 0)\r\n );\r\n end component;\r\nend package;\r\n```\r\n\r\n```console\r\n$ symbolator -i demo_device.vhdl\r\n Scanning library: .\r\n Creating symbol for demo_device.vhdl \"demo_device\"\r\n -> demo_device-demo_device.svg\r\n```\r\n\r\nProduces the following:\r\n\r\n![Demo device diagram](https://zebreus.github.io/symbolator/_images/demo_device-demo_device.svg)\r\n\r\nSymbolator can render to PNG bitmap images or SVG, PDF, PS, and EPS vector images. SVG is the default.\r\n\r\n## Getting symbolator\r\n\r\nThere are some ways to run symbolator that dont require installing local dependencies:\r\n\r\nYou can run a prebuilt docker container with symbolator using the following command:\r\n\r\n```sh\r\ndocker run --rm -it -v $(pwd):/src madmanfred/symbolator\r\n```\r\n\r\nAnother way to run symbolizer is through the nix package manager with the command:\r\n\r\n```sh\r\nnix run github:zebreus/symbolator\r\n```\r\n\r\nThere also is a AppImage available on GitHub releases.\r\n\r\n## Installing symbolator from source\r\n\r\nSymbolator is a Python application. You must have Python installed first to use it. Most modern Linux distributions and OS/X have it available by default. There are a number of options available for Windows. If you don't already have a favorite, I recommend getting one of the [\"full-stack\" Python distros](https://www.scipy.org/install.html) that are geared toward scientific computing such as Anaconda or Python(x,y).\r\n\r\nIf your OS has a package manager, it may be preferable to install Python setuptools through that tool before attempting to install Symbolator. Otherwise, the installation script will install these packages directly without registering them with the OS package manager.\r\n\r\nSymbolator requires Python 3.x, Pycairo, and Pango.\r\n\r\nThe Pango library is used compute the dimensions of a text layout. There is no standard package to get the Pango Python bindings installed. It is a part of the Gtk+ library which is accessed either through the PyGtk or PyGObject APIs, both of which are supported by Symbolator. You should make sure that one of these libraries is available before installing Symbolator. A [Windows installer](https://www.pygtk.org/downloads.html) is available. For Linux distributions you should install the relevant libraries with your package manager.\r\n\r\nTo build symbolator from source you need a setuptools with a version >= 61.0.0 and pip >= 23.0.0.\r\n\r\nWhen these requirements are met you can install symbolator from github using:\r\n\r\n```sh\r\npip install --upgrade git+https://github.com/zebreus/symbolator.git\r\n```\r\n\r\nIf you manually downloaded a source package or created a clone with Git you can install Symbolator with the following command run from the base Symbolator directory:\r\n\r\n```sh\r\npip install .\r\n```\r\n\r\nAfter a successful install the Symbolator command line application will be available. On Linux they should be immediately accessible from your current search path. On Windows you will need to make sure that the `<Python root>\\Scripts` directory is in your %PATH% environment variable.\r\n\r\nYou may need to update to recent versions of setuptools (at least 61) and pip (at least 23) to install symbolator. You can upgrade them to the latest versions using the following command:\r\n\r\n```sh\r\npip install --upgrade pip setuptools\r\n```\r\n\r\nOn Linux systems you may need to install with root privileges using the *sudo* command.\r\n\r\n## Licensing\r\n\r\nSymbolator is licensed for free commercial and non-commercial use under the terms of the MIT license. The Symbolator Sphinx extension is derived from the Graphviz extension and is BSD licensed.\r\n\r\n## Download\r\n\r\nYou can access the Symbolator Git repository from [Github](https://github.com/zebreus/symbolator). You can install direct from PyPI with the \"pip\" command if you have it available.\r\n\r\n## Contributing\r\n\r\nThank you for considering contributing to this project!\r\n\r\nTo contribute, please follow these steps:\r\n\r\n1. Fork the repository and create your branch from main.\r\n2. Make the necessary changes and additions.\r\n3. Ensure that you are happy with your changes.\r\n4. Submit a pull request, describing the changes you've made and providing any relevant information.\r\n\r\nI will review your pull request as soon as possible.\r\n\r\n## Documentation\r\n\r\nThe full documentation is available online at the [main Symbolator site](https://zebreus.github.io/symbolator/).\r\n",
"bugtrack_url": null,
"license": "Copyright \u00a9 2017 Kevin Thibedeau Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
"summary": "Pure Python HDL parser, plus symbol generator and sphinx domain",
"version": "0.1.0",
"project_urls": {
"source": "https://github.com/rpatel3001/hdltree"
},
"split_keywords": [
"rtl",
" hdl",
" vhdl",
" system",
" verilog",
" systemverilog",
" symbol",
" symbolator",
" sphinx",
" hdlparse",
" parse",
" format",
" validate"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5543de0f177c50b9051860741ddbbe0e1372a001ffbbd69949e3b28fbd5ae723",
"md5": "e2220c9dc3d7e892dbe0c84ccef3df62",
"sha256": "156763c220e2c355ee71ce170f35e34f400a5ffd5bb6a7d81f527d8e6d5beb96"
},
"downloads": -1,
"filename": "hdltree-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e2220c9dc3d7e892dbe0c84ccef3df62",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 69454,
"upload_time": "2025-01-22T03:33:39",
"upload_time_iso_8601": "2025-01-22T03:33:39.499294Z",
"url": "https://files.pythonhosted.org/packages/55/43/de0f177c50b9051860741ddbbe0e1372a001ffbbd69949e3b28fbd5ae723/hdltree-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "266ce5ad5c29fe1ba4179c877f5494bf48b9b15023ec7d44bc5400f13dd7bdbf",
"md5": "d809b16314765d3d1acbb7be810373d8",
"sha256": "748d763638f637e955569c70dc3bb1846b0697153661b3f8d2944fcd2a7a6d78"
},
"downloads": -1,
"filename": "hdltree-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "d809b16314765d3d1acbb7be810373d8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 66008,
"upload_time": "2025-01-22T03:33:41",
"upload_time_iso_8601": "2025-01-22T03:33:41.972158Z",
"url": "https://files.pythonhosted.org/packages/26/6c/e5ad5c29fe1ba4179c877f5494bf48b9b15023ec7d44bc5400f13dd7bdbf/hdltree-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-22 03:33:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rpatel3001",
"github_project": "hdltree",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "hdltree"
}