{"id":25884698,"url":"https://github.com/bakxy/vhdl-qqs","last_synced_at":"2026-05-10T08:53:57.665Z","repository":{"id":278975504,"uuid":"937087393","full_name":"BakxY/VHDL-QQS","owner":"BakxY","description":"This project aims to automate the creation of test benches and support files for FPGA designs created using Quartus from Intel. By integrating a custom extension into VS Code, users can efficiently set up simulation environments with minimal manual effort.","archived":false,"fork":false,"pushed_at":"2025-03-02T10:19:31.000Z","size":349,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T10:29:26.273Z","etag":null,"topics":["fpga","intel-fpga","open-source","quartus","questasim","simulation","testbench-generation","typescript","vhdl","visual-studio-code","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=BakxY.vhdl-qqs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BakxY.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2025-02-22T09:56:57.000Z","updated_at":"2025-03-02T10:22:42.000Z","dependencies_parsed_at":"2025-02-22T23:33:00.624Z","dependency_job_id":null,"html_url":"https://github.com/BakxY/VHDL-QQS","commit_stats":null,"previous_names":["bakxy/vhdl-qqs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BakxY%2FVHDL-QQS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BakxY%2FVHDL-QQS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BakxY%2FVHDL-QQS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BakxY%2FVHDL-QQS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BakxY","download_url":"https://codeload.github.com/BakxY/VHDL-QQS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241541454,"owners_count":19979122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["fpga","intel-fpga","open-source","quartus","questasim","simulation","testbench-generation","typescript","vhdl","visual-studio-code","vscode","vscode-extension"],"created_at":"2025-03-02T17:17:58.692Z","updated_at":"2026-05-10T08:53:57.659Z","avatar_url":"https://github.com/BakxY.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VHDL-QQS (VHDL-Quartus Questa Simulate)\n\n[![License: GPL v3](https://badges.sespra.ch/badge/License-GPLv3-blue)](LICENSE) [![Visual Studio Marketplace Version](https://badges.sespra.ch/vscode-marketplace/v/BakxY.vhdl-qqs)](https://marketplace.visualstudio.com/items?itemName=BakxY.vhdl-qqs) [![GitHub Issues](https://img.shields.io/github/issues/BakxY/VHDL-QQS)](https://img.shields.io/github/issues/BakxY/VHDL-QQS)\n\nThis project enhances FPGA design workflows within VS Code by providing a suite of tools for Intel Quartus projects. Features include seamless project compilation, direct access to the Quartus programmer and RTL viewer, automated testbench generation for QuestaSim, integrated QuestaSim simulation capabilities, streamlined project configuration, direct file management, top-level entity changes, and on-demand source file formatting. This extension minimizes manual effort and accelerates the development and verification process.\n\n![Project Banner](./docs/banner.png#center)\n\n## Table of Contents\n\n- [Introduction](#Introduction)\n- [Features](#Features)\n- [Installation](#Installation)\n- [Initial setup](#Initial-setup)\n- [Project setup](#Project-setup)\n- [Usage](USAGE.md)\n- [Contributing](CONTRIBUTING.md)\n- [License](LICENSE)\n\n## Introduction\n\nWorking with Intel FPGAs using the Quartus development environment can be a real hassle.  Quartus lacks several key features that modern developers expect, making the development process more tedious than it needs to be.  It doesn't offer any code completion, which slows down coding and increases the risk of errors.  The absence of a code formatter makes it difficult to maintain a consistent and readable codebase, especially in larger projects. And perhaps most importantly, for those late-night debugging sessions, Quartus lacks a dark mode—a feature many consider essential for comfortable work.\n\nDuring my studies, I took a course on FPGAs that heavily relied on Intel Quartus.  After struggling with the software suite for a semester, I reached my breaking point.  I realized there had to be a better way, so I began developing this extension.  My goal was to create a tool that would allow students (and anyone working with Intel FPGAs) to compile, program, and generate testbenches for use in QuestaSim, all without having to use Quartus as their primary text editor.  This extension aims to streamline the FPGA development workflow and provide a more modern and user-friendly experience.  It addresses the shortcomings of Quartus by offering a more feature-rich environment.  Take a look at the features section later in this documentation to see how this extension can improve your FPGA development process.\n\n## Features\n\n* **Seamless Quartus Project Compilation:** Compile your Quartus projects directly within VS Code, eliminating the need to switch between applications.\n* **Project Configuration within VS Code:** Manage essential project settings, such as top-level entities and include files, directly from VS Code, streamlining the configuration process.\n* **Direct Access to Quartus Programmer:** Easily open the Quartus programmer for compiled projects directly from VS Code, simplifying the programming workflow.\n* **Automated Testbench Generation:** Generate entity testbenches for use with QuestaSim, automating a crucial step in the verification process and saving valuable development time.\n* **QuestaSim Integration (Optional):** Enable QuestaSim features to run simulations directly from VS Code. This includes running your QuestaSim test scripts and viewing the results. *(Requires configuration - see \"Initial Setup\")*\n* **Direct Access to Quartus RTL Viewer:** Open the RTL Viewer for the active project directly from VS Code to easily view your design's RTL representation.\n* **Manage Project Files:** Add and remove files from your project through VS Code, keeping your project files organized.\n* **Change Top Level Entity:** Easily change the top-level entity for your Quartus project directly from VS Code.\n* **Formatting Source Files:** Effortlessly format your VHDL code, maintaining a clean and consistent codebase.\n\n## Installation\n\n\u003e [!IMPORTANT]\n\u003e Check the [version docs](QUARTUS_VERSIONS.md) if your quartus version is supported. Functionality is not guaranteed for other versions.\n\nThis extension requires VS Code, Quartus Prime and Questa Prime. It can be installed directly from the VS Code Marketplace or build the extension from source. It is also recommended that you use the [VHDL LS](https://github.com/VHDL-LS/rust_hdl_vscode) extension for code completion and language support.\n\n### Installation via VS Code Marketplace (Recommended):\n1. Open VS Code.\n2. Go to the Extensions view.\n3. Search for \"VHDL-QQS\".\n4. Click the Install button.\n\n### Build the extension from source:\n1. Prerequisites: Ensure you have Node.js and npm.\n2. Clone the repository: `git clone https://github.com/BakxY/VHDL-QQS.git`\n3. Open the project in VS Code.\n4. Open the terminal in VS Code (View \u003e Terminal).\n5. Run `npm install` to install the project dependencies.\n6. Press F5 to compile and run the extension in debug mode. This will open a new VS Code window with your extension running.\n\n## Initial setup\n\nBefore you can start using the VHDL-QQS extension, you'll need to perform a few initial setup steps. This ensures that the extension can correctly interact with your Quartus and, optionally, your QuestaSim installations.\n\n### 1. Configuring VHDL-QQS Settings\n\nThe VHDL-QQS extension's behavior can be customized through VS Code settings.\n\n* Open VS Code settings:\n    * File \u003e Preferences \u003e Settings (or Code \u003e Preferences \u003e Settings on macOS)\n    * Alternatively, use the keyboard shortcut: Ctrl + , (or Cmd + , on macOS)\n\n* Search for \"VHDL-QQS\" in the settings search bar. This will filter the settings to show only those related to the extension.\n\n* Configure the following settings as needed:\n\n#### 1.1 Quartus Settings\n\n* `vhdl-qqs.quartusBinPath`: (Required) Enter the *full path* to your Quartus installation's `bin` (or `bin64` on Windows) directory. This is usually the directory where `quartus` and `quartus_sh` is located.  [Example: `/path/to/intelFPGA_lite/23.1/quartus/bin` or `C:\\intelFPGA_lite\\23.1\\quartus\\bin64`]\n\n#### 1.2 QuestaSim Settings\n\n* `vhdl-qqs.questaFeatureFlag`: (Optional, but recommended if using QuestaSim) Set this to `true` to enable QuestaSim features within the extension.\n\n* `vhdl-qqs.questaBinPath`: (Required if `vhdl-qqs.questaFeatureFlag` is true) Enter the *full path* to your QuestaSim installation's `win64` (or equivalent for your OS) directory. This is where `vsim` is located. [Example: `C:\\Program Files\\intelFPGA_pro\\24.2\\questa_fse\\win64`]\n\n#### 1.3 Important Notes about Paths\n\n* Make sure to enter the *full paths* to the directories or executables for Quartus and QuestaSim (if applicable). Relative paths are not supported for these settings.\n* If you are not using QuestaSim, you can leave the `vhdl-qqs.questaFeatureFlag` and `vhdl-qqs.questaBinPath` settings at their default values.\n\n## Project Setup\n\nThe VHDL-QQS extension relies on a `vhdl_ls.toml` file to correctly identify and manage your VHDL/Verilog project files. This file defines the project structure, including source files, include paths, and other relevant settings. **Without a properly configured `vhdl_ls.toml` file, the extension may not function correctly.**\n\nHere's how to set up your project:\n\n1.  **Create `vhdl_ls.toml`:** In the root directory of your VHDL/Verilog project, create a file named `vhdl_ls.toml`.  This file *must* be in the root of your project, not in a subdirectory.\n\n2.  **Configure the File:** Edit the `vhdl_ls.toml` file to reflect your project's structure. A basic example is shown below, but you'll need to adapt it to your specific project:\n\n    ```toml\n    [library]\n    name = \"MyProject\"  # Replace with your project name\n\n    lib.files = [\n        \"source\\\\this_one_file.vhd\", # You can specify one or multiple files.\n        \"source\\\\*.vhd\" # Or you can use wildcard paths to include all files.\n    ]\n    ```\n\n3.  **Save the File:** Save the `vhdl_ls.toml` file.\n\n**Example Project Structure:**\n\n```\nMyProject/\n├── vhdl_ls.toml\n├── quartus/\n│   ├── MyProject.qpf\n│   └── MyProject.qsf\n└── source/\n    ├── top_level.vhd\n    └── submodule.vhd\n```\n\n**Troubleshooting:**\n\n*   If the extension is not recognizing your files, double-check the paths in your `vhdl_ls.toml` file.  Make sure they are relative to the directory where the `vhdl_ls.toml` file is located.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakxy%2Fvhdl-qqs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbakxy%2Fvhdl-qqs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbakxy%2Fvhdl-qqs/lists"}