{ "info": { "author": "Andre Souto", "author_email": "andre820@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", "Topic :: Software Development", "Topic :: Text Editors :: Integrated Development Environments (IDE)" ], "description": "# HDL Checker\n\n[![PyPI version](https://img.shields.io/pypi/v/hdl_checker.svg)](https://pypi.org/project/hdl_checker/)\n[![Build Status](https://travis-ci.org/suoto/hdl_checker.svg?branch=master)](https://travis-ci.org/suoto/hdl_checker)\n[![Build status](https://ci.appveyor.com/api/projects/status/kbvor84i6xlnw79f/branch/master?svg=true)](https://ci.appveyor.com/project/suoto/hdl_checker/branch/master)\n[![codecov](https://codecov.io/gh/suoto/hdl_checker/branch/master/graph/badge.svg)](https://codecov.io/gh/suoto/hdl_checker)\n[![Code Climate](https://codeclimate.com/github/suoto/hdl_checker/badges/gpa.svg)](https://codeclimate.com/github/suoto/hdl_checker)\n[![Join the chat at https://gitter.im/suoto/hdl_checker](https://badges.gitter.im/suoto/hdl_checker.svg)](https://gitter.im/suoto/hdl_checker?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)\n[![Analytics](https://ga-beacon.appspot.com/UA-68153177-4/hdlcc/README.md?pixel)](https://github.com/suoto/hdl_checker)\n\nHDL Checker is a language server that wraps VHDL/Verilg/SystemVerilog tools that\naims to reduce the boilerplate code needed to set things up. It supports\n[Language Server Protocol][LSP] or a custom HTTP interface; can infer library\nVHDL files likely belong to, besides working out mixed language dependencies,\ncompilation order, interpreting some compilers messages and providing some\n(limited) static checks.\n\n---\n\n* [Installation](#installation)\n* [Editor support](#editor-support)\n* [Usage](#usage)\n * [Third-party tools](#third-party-tools)\n * [Configuring HDL Checker](#configuring-HDL-Checker)\n * [LSP server](#lsp-server)\n * [HTTP server](#http-server)\n* [Testing](#testing)\n* [Supported systems](#supported-systems)\n* [Style checking](#style-checking)\n* [Issues](#issues)\n* [License](#license)\n\n## Installation\n\n```sh\npip install hdl-checker --upgrade\n```\n\nor\n\n```sh\npip install hdl-checker --user --upgrade\n```\n\n(Need to add `$HOME/.local/bin` to your `PATH` environment variable)\n\n## Editor support\n\n| Editor | Info |\n| :--- | :--- |\n| Vim - [dense-analysis/ale][ALE] | Soon, see (PR [#2804][ALE_PR]) |\n| Vim - [coc.vim][coc_vim] | Will add instructions to the [Wiki][hdl_checker_wiki] soon |\n| VSCode | [HDL Checker HDL Checker VSCode client][hdl_checker_vscode] |\n\n## Usage\n\nHDL Checker server can be started via `hdl_checker` command. Use `hdl_checker --help`\nfor more info on how to use it.\n\n```bash\n$ hdl_checker -h\nusage: hdl_checker [-h] [--host HOST] [--port PORT] [--lsp]\n [--attach-to-pid ATTACH_TO_PID] [--log-level LOG_LEVEL]\n [--log-stream LOG_STREAM] [--stdout STDOUT]\n [--stderr STDERR] [--version]\n\noptional arguments:\n -h, --help show this help message and exit\n --host HOST [HTTP] Host to serve\n --port PORT [HTTP] Port to serve\n --lsp Starts the server in LSP mode. Defaults to false\n --attach-to-pid ATTACH_TO_PID\n [HTTP, LSP] Stops the server if given PID is not\n active\n --log-level LOG_LEVEL\n [HTTP, LSP] Logging level\n --log-stream LOG_STREAM\n [HTTP, LSP] Log file, defaults to stdout when in HTTP\n or a temporary file named hdl_checker_log_pid.log when\n in LSP mode\n --stdout STDOUT [HTTP] File to redirect stdout to. Defaults to a\n temporary file named hdl_checker_stdout_pid.log\n --stderr STDERR [HTTP] File to redirect stdout to. Defaults to a\n temporary file named hdl_checker_stderr_pid.log\n --version, -V Prints hdl_checker version and exit\n```\n\n### Third-party tools\n\nHDL Checker supports\n\n* [Mentor ModelSim][Mentor_msim]\n* [ModelSim Intel FPGA Edition][Intel_msim]\n* [GHDL][GHDL]\n* [Vivado Simulator][Vivado_Simulator] (bundled with [Xilinx Vivado][Xilinx_Vivado])\n\n### Configuring HDL Checker\n\nSee the [Setting up a new project][hdl_checker_wiki_setup] section on the wiki.\n\n### LSP server\n\nHDL Checker has beta support for [Language Server Protocol][LSP]. To start\nin LSP mode:\n\n```bash\nhdl_checker --lsp\n```\n\nOn a Linux system, log file will be at `/tmp/hdl_checker_log_pid.log` and\n`/tmp/hdl_checker_stderr_pid.log`.\n\nAs a language server, HDL Checker will provide\n\n* Diagnostics\n* Hover information\n * Dependencies: will report which path and library have been assigned\n * Design units: will report the compilation sequence and libraries\n* Go to definition of dependencies\n\n### HTTP server\n\nHDL Checker can be used in HTTP server mode also:\n\n```bash\nhdl_checker\n```\n\n*Please note that this mode **does not use LSP to communicate**. Request/response\nAPI is not yet available, but a reference implementation can be found in\n[vim-hdl][vim-hdl]*\n\n## Testing\n\nHDL Checker uses a [docker][docker] container to run tests. If you wish to\nrun them, clone this repository and on the root folder run\n\n```bash\n./run_tests.sh\n```\n\nThe container used for testing is [suoto/hdl_checker_test][hdl_checker_container]\n\n## Supported systems\n\n| System | CI | CI status |\n| :--: | :--: | :--: |\n| Linux | Yes | [![Build Status](https://travis-ci.org/suoto/hdl_checker.svg?branch=master)](https://travis-ci.org/suoto/hdl_checker) |\n| Windows | Yes | [![Build status](https://ci.appveyor.com/api/projects/status/kbvor84i6xlnw79f/branch/master?svg=true)](https://ci.appveyor.com/project/suoto/hdl_checker/branch/master) |\n\n---\n\n## Style checking\n\nStyle checks are independent of a third-party compiler. Checking includes:\n\n* Unused signals, constants, generics, shared variables, libraries, types and\n attributes\n* Comment tags (`FIXME`, `TODO`, `XXX`)\n\nNotice that currently the unused reports has caveats, namely declarations with\nthe same name inherited from a component, function, procedure, etc. In the\nfollowing example, the signal `rdy` won't be reported as unused in spite of the\nfact it is not used.\n\n```vhdl\nsignal rdy, refclk, rst : std_logic;\n...\n\nidelay_ctrl_u : idelay_ctrl\n port map (rdy => open,\n refclk => refclk,\n rst => rst);\n```\n\n---\n\n## Issues\n\nYou can use the [issue tracker][issue_tracker] for bugs, feature request and so on.\n\n## License\n\nThis software is licensed under the [GPL v3 license][gpl].\n\n## Notice\n\nMentor Graphics\u00ae, ModelSim\u00ae and their respective logos are trademarks or registered\ntrademarks of Mentor Graphics, Inc.\n\nIntel\u00ae and its logo is a trademark or registered trademark of Intel Corporation.\n\nXilinx\u00ae and its logo is a trademark or registered trademark of Xilinx, Inc.\n\nHDL Checker's author has no connection or affiliation to any of the\ntrademarks mentioned or used by this software.\n\n[ALE]: https://github.com/dense-analysis/ale\n[ALE_PR]: https://github.com/dense-analysis/ale/pull/2804\n[coc_vim]: https://github.com/neoclide/coc.nvim\n[docker]: https://www.docker.com/\n[GHDL]: https://github.com/ghdl/ghdl\n[gpl]: http://www.gnu.org/copyleft/gpl.html\n[hdl_checker_container]: https://cloud.docker.com/u/suoto/repository/docker/suoto/hdl_checker_test\n[hdl_checker_vscode]: https://marketplace.visualstudio.com/items?itemName=suoto.hdl-checker-client\n[hdl_checker_wiki]: https://github.com/suoto/hdl_checker/wiki\n[hdl_checker_wiki_setup]: https://github.com/suoto/hdl_checker/wiki/Setting-up-a-project\n[Intel_msim]: https://www.intel.com/content/www/us/en/software/programmable/quartus-prime/model-sim.html\n[issue_tracker]: https://github.com/suoto/hdl_checker/issues\n[LSP]: https://en.wikipedia.org/wiki/Language_Server_Protocol\n[Mentor_msim]: http://www.mentor.com/products/fv/modelsim/\n[vim-hdl]: https://github.com/suoto/vim-hdl/\n[Vivado_Simulator]: https://www.xilinx.com/products/design-tools/vivado/simulator.html\n[Xilinx_Vivado]: http://www.xilinx.com/products/design-tools/vivado/vivado-webpack.html", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/suoto/hdl_checker", "keywords": "VHDL Verilog SystemVerilog linter LSP language server protocol vimhdl vim-hdl", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "hdl-checker", "package_url": "https://pypi.org/project/hdl-checker/", "platform": "any", "project_url": "https://pypi.org/project/hdl-checker/", "project_urls": { "Homepage": "https://github.com/suoto/hdl_checker" }, "release_url": "https://pypi.org/project/hdl-checker/0.6.4/", "requires_dist": null, "requires_python": "", "summary": "HDL code checker", "version": "0.6.4" }, "last_serial": 5986732, "releases": { "0.6": [ { "comment_text": "", "digests": { "md5": "c8a2926f41950cd62f7938bbe03ccb99", "sha256": "7028fd44d5497e3d1eb3c23d75ecf6171914c9c0895d9ec2d45a1e1b8926b995" }, "downloads": -1, "filename": "hdl_checker-0.6.tar.gz", "has_sig": false, "md5_digest": "c8a2926f41950cd62f7938bbe03ccb99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113124, "upload_time": "2019-10-01T20:46:30", "url": "https://files.pythonhosted.org/packages/9a/d5/1de78c0dc417b38f4d07d0edd8c981465d3fe486c4372ee42fb62048ef0f/hdl_checker-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "a350b1de1c31479c0eb11bd916eea9b1", "sha256": "1157b5e66a599392b0947903c292ace0e294114512df1e5f027047e19141bdb1" }, "downloads": -1, "filename": "hdl_checker-0.6.1.tar.gz", "has_sig": false, "md5_digest": "a350b1de1c31479c0eb11bd916eea9b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 110891, "upload_time": "2019-10-07T17:06:49", "url": "https://files.pythonhosted.org/packages/0e/43/9c9553f05136c1e385ebb34f4978c970370aea7cfedbcea756507903dd56/hdl_checker-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "bb7f21c00e1f2e2617eda73b129c7282", "sha256": "d48cb97ae0140eabc96f97998d86a5474b8cb799e3f524e791ef0e1cfafa86f9" }, "downloads": -1, "filename": "hdl_checker-0.6.2.tar.gz", "has_sig": false, "md5_digest": "bb7f21c00e1f2e2617eda73b129c7282", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109090, "upload_time": "2019-10-10T23:40:13", "url": "https://files.pythonhosted.org/packages/ed/fb/a893a0a9d5be0060e72b599917725a958b8c4a215c7c782b7d847f632b89/hdl_checker-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "6280d14e776b12a073b6827c413d7748", "sha256": "6bd35ebac61501c8f0fc45346a52ca3fa6d234baeacb053144fc9a1bb804eb4e" }, "downloads": -1, "filename": "hdl_checker-0.6.3.tar.gz", "has_sig": false, "md5_digest": "6280d14e776b12a073b6827c413d7748", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 112629, "upload_time": "2019-10-14T17:35:11", "url": "https://files.pythonhosted.org/packages/06/36/fbc5fd53a18a8b4f2220d235665ed22a45f5b999720e890a5c20eff40dce/hdl_checker-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "e0cfadb65fa41d41d7cefe0791e150b1", "sha256": "15955e9ab6ff68a0c1d7154aeb3f40392b6314c59744f6a9d41a80bd7d95686c" }, "downloads": -1, "filename": "hdl_checker-0.6.4.tar.gz", "has_sig": false, "md5_digest": "e0cfadb65fa41d41d7cefe0791e150b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113713, "upload_time": "2019-10-16T22:46:26", "url": "https://files.pythonhosted.org/packages/16/a8/1accca317be6761d4a1c8130491baf249ada2fd124fe7407221a4faae32a/hdl_checker-0.6.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e0cfadb65fa41d41d7cefe0791e150b1", "sha256": "15955e9ab6ff68a0c1d7154aeb3f40392b6314c59744f6a9d41a80bd7d95686c" }, "downloads": -1, "filename": "hdl_checker-0.6.4.tar.gz", "has_sig": false, "md5_digest": "e0cfadb65fa41d41d7cefe0791e150b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113713, "upload_time": "2019-10-16T22:46:26", "url": "https://files.pythonhosted.org/packages/16/a8/1accca317be6761d4a1c8130491baf249ada2fd124fe7407221a4faae32a/hdl_checker-0.6.4.tar.gz" } ] }