{"id":46633275,"url":"https://github.com/machitgarha/parvaj","last_synced_at":"2026-03-08T00:33:16.634Z","repository":{"id":138817371,"uuid":"375433710","full_name":"machitgarha/parvaj","owner":"machitgarha","description":"Easy and fast VHDL simulation tool, integrating GHDL and GTKWave","archived":false,"fork":false,"pushed_at":"2024-02-17T15:46:03.000Z","size":247,"stargazers_count":11,"open_issues_count":3,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-29T02:30:47.725Z","etag":null,"topics":["automated","build","console-application","ghdl","gtkwave","simulation","test","vhdl"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/machitgarha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-06-09T17:14:50.000Z","updated_at":"2024-04-20T11:06:17.000Z","dependencies_parsed_at":"2024-02-17T14:48:07.657Z","dependency_job_id":null,"html_url":"https://github.com/machitgarha/parvaj","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/machitgarha/parvaj","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machitgarha%2Fparvaj","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machitgarha%2Fparvaj/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machitgarha%2Fparvaj/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machitgarha%2Fparvaj/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/machitgarha","download_url":"https://codeload.github.com/machitgarha/parvaj/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/machitgarha%2Fparvaj/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30238906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:30:53.000Z","status":"ssl_error","status_checked_at":"2026-03-08T00:30:44.061Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automated","build","console-application","ghdl","gtkwave","simulation","test","vhdl"],"created_at":"2026-03-08T00:33:16.094Z","updated_at":"2026-03-08T00:33:16.616Z","avatar_url":"https://github.com/machitgarha.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parvaj\n\n[![Version](https://img.shields.io/github/v/release/machitgarha/parvaj?color=darkgreen\u0026label=Version\u0026style=flat-square)](https://github.com/machitgarha/parvaj/releases) [![Available As AppImage](https://img.shields.io/badge/Available%20As-AppImage-lawngreen?style=flat-square)](https://github.com/machitgarha/parvaj/releases/latest/download/parvaj-x86_64.AppImage) [![Available As Phar](https://img.shields.io/badge/Available%20As-Phar-lawngreen?style=flat-square)](https://github.com/machitgarha/parvaj/releases/latest/download/parvaj.phar) [![Available At AUR package](https://img.shields.io/badge/Available%20At-AUR-lawngreen?style=flat-square)](https://aur.archlinux.org/packages/parvaj-bin)\n\nEasy and fast (both in the sense of performance and development speed) VHDL simulation tool, integrating GHDL and GTKWave.\n\n## Features\n\n-   **Easy:**\n\n    -   💡 Zero-configuration by default. Go ahead and simulate your design!\n\n    -   ☕ Easy to use. You don't need to remember or look for dependencies everytime, Parvaj does it for you. You wouldn't even need to know most of the GHDL command-line options.\n\n    -   ☔ Simple installation process, by providing AppImage and Phar files.\n\n-   **Fast:**\n\n    -   ⛽ Speed up your development. Don't get your hands dirty by invoking GHDL and GTKWave manually; use the simple `simulate` command instead to do all the steps for you.\n\n    -   ⚡ The tool itself is designed to have good performance. It uses a proper cache mechanism for this. Although it uses regex patterns for major tasks, thanks to fast PHP regex engine, you wouldn't notice slowdowns.\n\n-   **Semi-intelligent:**\n\n    -   🔥 Automatic detection of dependencies. Forget about what depends on what.\n\n    -   🧠 After finding where a unit (e.g. entity) lives, Parvaj remembers it. Don't worry, it is smart enough to check if it was moved around or was renamed. Just use it!\n\n## Let's Install!\n\n**Note:** Currently, we only cover and support Linux distributions (feel free to add support for other platforms as well).\n\nThere are four methods to install Parvaj:\n\n-   [Use the AppImage bundle (recommended)](#use-the-appimage-bundle)\n-   [Use the Phar file](docs/en/installation.md#use-the-phar-file)\n-   [Via package manager](docs/en/installation.md#via-package-manager) (Currently Arch-based only)\n-   [As Git submodule (deprecated)](docs/en/installation.md#as-git-submodule)\n\nIn doubt? See [Which one to use?](docs/en/installations.md#which-one-to-use).\n\n## Use the AppImage Bundle\n\n### Requirements\n\n-   GHDL\n-   GTKWave\n\nHaving a Linux distribution, installing these should be easy:\n\n\u003cdetails\u003e\n\n\u003csummary\u003eFedora-based\u003c/summary\u003e\n\n```bash\nsudo dnf install ghdl gtkwave\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eArch-based\u003c/summary\u003e\n\n\u003cbr/\u003e\n\nGTKWave can be installed through Pacman and GHDL through [AUR](https://aur.archlinux.org/packages/ghdl-gcc-git):\n\n```bash\nsudo pacman -S gtkwave\nyay -S ghdl-gcc-git\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\n\u003csummary\u003eDebian-based (e.g. Ubuntu)\u003c/summary\u003e\n\n```bash\nsudo apt install ghdl gtkwave\n```\n\n\u003c/details\u003e\n\n### Getting It\n\n1.  Download [latest Parvaj AppImage](https://github.com/machitgarha/parvaj/releases/latest/download/parvaj-x86_64.AppImage).\n\n    ```bash\n    wget https://github.com/machitgarha/parvaj/releases/latest/download/parvaj-x86_64.AppImage\n    ```\n\n    **Note:** The AppImage does not provide a GUI, so double-clicking it does nothing.\n\n1.  Make it executable.\n\n    ```bash\n    chmod +x parvaj-x86_64.AppImage\n    ```\n\n1.  Put it somewhere in your `$PATH`.\n\n    ```bash\n    # Supposing ~/.local/bin is in your $PATH\n    mv parvaj-x86_64.AppImage ~/.local/bin/parvaj\n    ```\n\n1.  Done! Make sure the installation was successful:\n\n    ```bash\n    parvaj\n    ```\n\nThroughout this document, it is supposed you installed Parvaj using this method.\n\n## How to Use?\n\nThe primary Parvaj command is `simulate`. It simulates a test-bench for you, given its name. Yes, it is really that simple!\n\nFor example, to simulate a test-bench named `test_multiplexer_2_to_1` (note that it's the name of the test-bench, not its file path), run:\n\n```bash\n# Or even shorter:\nparvaj s test_multiplexer_2_to_1\n```\n\n\nNote that, for the `simulate` command to work, you must be in the project root, not one of its sub-paths. It might be annoying for some, but not implemented yet ([#2](https://github.com/machitgarha/parvaj/issues/2)).\n\n### Options\n\nYou may also want to use some of the [GHDL's simulation options](https://ghdl.github.io/ghdl/using/Simulation.html#simulation-options), or the options provided by Parvaj. You can use the command `help` to see the list of available options:\n\n```bash\nparvaj help simulate\n# Or:\nparvaj simulate --help\n```\n\n#### Examples\n\n-   With `--workdir`, you can change the working directory (which is `build/` by default):\n\n    ```bash\n    parvaj simulate test_multiplexer_2_to_1 --workdir=obj/\n    # The order does not matter:\n    parvaj simulate --workdir=obj/ test_multiplexer_2_to_1\n    ```\n\n-   With `--option` or `-o`, you may pass arbitrary simulation options to GHDL:\n\n    ```bash\n    parvaj simulate test_clock_generator -o stop-time=3ns -o vcd-nodate\n    ```\n\n    **Hint:** `stop-time` option is useful when your test-bench doesn't end in a finite period of time and could be run infinitely. In this case, you must inform GHDL to limit the simulation time to a specific period, e.g. 3ns; otherwise, the simulation (i.e. elab-running phase) will never stop.\n\n### Other Commands\n\nAlthough Parvaj is designed to work mostly config-free, you can configure a few things using the `config` command:\n\n-   `gtkwave.cmdline`: If set, this command is used to run GTKWave. This is useful if you want to use a different application for viewing waveforms, or having problems with the default invocation command.\n\n    For instance, on MacOS, you can set it to `open`.\n\n-   `ghdl.version`: GHDL version should be auto-detected, but this sets its major version.\n\n#### Example\n\nSome MacOS users cannot invoke GTKWave directly from the command-line using `gtkwave` command. In this case, the fix is to use `open` command.\n\nYou can set it like the following:\n\n```bash\nparvaj config gtkwave.cmdline open\n```\n\nWant to make sure it was set?\n\n```bash\nparvaj config gtkwave.cmdline\n# Output: open\n```\n\nWant to unset it (i.e. reset it to the default value)?\n\n```bash\nparvaj config gtkwave.cmdline \"\"\n```\n\n## Platform Support\n\nTested platforms include:\n\n-   Fedora 28+\n-   Ubuntu 18.04+\n\nParvaj should work on Linux-based platforms, and also generally Unix-like ones (e.g. OS X, Windows WSL).\n\nIt should run on Windows as well, but not properly tested. By the way, it might be harder to install GHDL on Windows than WSL.\n\n## Contributions? Of Course!\n\nFeel free to open an issue or create a pull request. You can also consider the to-do list below.\n\nBut hey, contribution can be simpler than that: Recommend Parvaj to your friends, if you liked it!\n\n### Donations\n\nIf you live in Iran, you can make donations [here](https://coffeebede.ir/buycoffee/machitgarha). Otherwise, open an issue telling why you cannot donate from the outside. :)\n\n## License\n\n[![AGPL 3.0](https://www.gnu.org/graphics/agplv3-155x51.png)](./LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmachitgarha%2Fparvaj","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmachitgarha%2Fparvaj","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmachitgarha%2Fparvaj/lists"}