Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Vivado CompletionNew to Visual Studio Code? Get it now.
Vivado Completion

Vivado Completion

Gladtbam

|
122 installs
| (0) | Free
Smart autocomplete for Vivado TCL and XDC files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info
Vivado Autocomplete Icon

Vivado Autocomplete for VS Code

Visual Studio Code Vivado TypeScript

English | 简体中文

A Vivado TCL & XDC Smart Autocomplete Extension built for FPGA and ASIC hardware engineers. Say goodbye to painful plain-text official editors and enjoy a smooth constraint-writing experience in VS Code.

Core Features

  • Full Command Support: Built-in support for over 650+ official Vivado TCL commands, covering all operations from Floorplanning to Timing Analysis.
  • Smart Cascading Autocomplete:
    • Type the first letters to see suggestions for top-level commands.
    • Type Command + Space or - (e.g., create_clock -) to precisely pop up specific option arguments for that command (like -name, -period, -add, etc.).
  • Multi-language & Localization Support:
    • Full commands currently feature support for Simplified Chinese (zh-cn) translations.
    • Automatically loads the corresponding localization dictionary based on VS Code's display language by default, or you can explicitly specify your preferred language in settings.
    • Seamless Toggle: A 🌐 translation toggle button is provided in the top-right corner of the Help Panel, allowing you to instantly switch between the official original text and the translated version on the fly.
  • Native Hover and Autocomplete Documentation: Renders beautifully formatted Markdown official documentation (including Description, Syntax, Usage) directly in the sidebar during autocomplete.
  • Dedicated Command Help Panel:
    • Introduces a dedicated Help Panel view in the VS Code bottom panel (same level as Terminal).
    • Smart Cursor Tracking: When writing Tcl scripts, without any extra actions, the Help Panel will automatically trace back and lock onto the valid Vivado command being written on the current line. It renders a beautiful, full-page webpage-level document in real-time in the bottom panel (with Tcl code block syntax highlighting).
  • Native XDC Integration: Supports Xilinx Design Constraints language identification. Works seamlessly with mainstream FPGA/TCL syntax highlighting extensions in the community.
  • Extreme Performance: Employs a modernized pre-compiled in-memory bilingual dictionary, ensuring millisecond-level response times even when loading thousands of commands and hundreds of thousands of words of context.

Compatibility

  • Vivado Versions:

  • 2024.2 (Current Default Baseline)

Note: Vivado TCL commands have strong backward and forward compatibility. The extension works perfectly with both older and newer versions (newer versions may lack autocomplete for recently introduced commands, while older versions may show autocomplete for commands that were not yet available).

  • IDE / OS Support: Optimized for enterprise industrial environments. The required engine version has been lowered to VS Code / VSCodium 1.75.0, ensuring perfect installation and fluent operation on legacy Linux distributions like RHEL 7.4 / CentOS 7 (which are limited to older glibc versions).

Usage

  1. Open any .tcl or .xdc file in VS Code.
  2. Try typing any Vivado command like create_clock.
  3. Press Space or type the - symbol to enjoy smart argument suggestions.
  4. Open the bottom panel (usually via the Ctrl+` shortcut), switch to the Vivado Help tab, and view the dynamically updating official manual that follows your cursor!

Configurations

You can customize the extension behavior in VS Code's settings.json:

  • vivado-completion.language: Sets the dictionary language. Supported values are auto (follows editor), en (English only), and zh-cn (Simplified Chinese).
  • vivado-completion.vivadoVersion: Select the underlying Vivado API data baseline (e.g., 2024.2). This dictates which commands and arguments are available for autocomplete.
  • vivado-completion.helpViewer.autoOpen: Controls the auto-open strategy for the dedicated bottom Help Panel.
    • always (Default): Automatically opens the help panel when opening any tcl/xdc file.
    • onCompletion: Hidden by default, only automatically opens when a code completion suggestion is confirmed.
    • never: Never opens automatically (you can always open it manually in the bottom panel).
  • vivado-completion.helpViewer.languageState: Controls the memory mode for the language translation toggle in the Help panel.
    • autoRestore (Default): The panel automatically restores to your globally configured default language when you view a new command.
    • independent: The panel independently remembers your manual toggle choice across command changes.

For Developers: Data-Driven Architecture

The core of the extension is powered by an advanced Markdown-driven engine. Command data is not coupled within the source code, but exists independently in the data/commands/ directory.

  • Documentation Structure: Every command has its own folder (e.g., data/commands/create_clock/), containing en.md and zh-cn.md. Metadata (like argument lists, supported versions) is defined via YAML Frontmatter, while detailed help text is written in the Markdown body.

Core Build Scripts (NPM Scripts)

Developers can run the following core scripts to complete the automated workflow from data cleansing to compilation and packaging:

  1. npm run split-dict: Data Cleansing & Generation. It slices the extracted massive raw Vivado dataset (JSON) into a command-categorized directory structure, generates standard en.md markdown files, and automatically computes _source_hash to establish a baseline for tracking future updates.
  2. npm run translate: Translation Template Generator. It automatically scans all untranslated en.md files and generates the corresponding blank <lang>.md templates (Stubs) with correct _source_hash and metadata, making it easy for developers (or AI assistants) to fill in the translations.
  3. npm run build-dict: Packaging Preprocessing. This critical script formats thousands of scattered Markdown documents (wrapping Syntax/Usage into Markdown code blocks) and ultimately compresses them into lightweight strings.<lang>.json and vivadoSchema.ts for blazing-fast extension loading.
  4. npm run package: One-Click Release. Sequentially runs dictionary building, TypeScript type checking, code style linting (Lint), and uses esbuild to swiftly package a ready-to-install .vsix file.

How to Contribute?

Pull Requests are welcome to improve the command suggestion experience!

  • Improve Translations or Examples: If you want to modify a command's translation, simply edit data/commands/<command>/<lang>.md. After modifying, run node scripts/fix_hash.js to synchronize the file hash.
  • Submit other versions of Vivado API Data: As Vivado updates (or to support older versions), you can extract the vivado_api_<version>.txt data file from your local Vivado installation and submit an Issue on GitHub. We have provided a dedicated Issue template with extraction instructions. Simply compress and upload the extracted .txt file, and we will periodically merge it to expand the extension's underlying dataset!

⚠️ Disclaimer & Known Issues

  • Pure AI Automated Translation: The localized documents in this project (e.g. zh-cn.md) are generally batch-translated automatically via AI (Large Language Models) scripts and may not have undergone strict manual, word-by-word review.
  • Raw Data Source: The base data is also automatically parsed from the raw extracted API content (JSON) via scripts. Limited by parsing strategies and AI understanding capabilities, the following situations may occur:
    1. Translations of complex syntax explanations or long sentences may be stiff or inaccurate.
    2. A very small number of argument options may fail to accurately convey their meaning in specific hardware contexts.
  • Usage Recommendations: If you spot obvious translation errors or semantic doubts during use, please switch back to the English original (set language to en) or refer to the official Vivado manual (UG835) or reference data/vivado_api_<version>.json for double confirmation, and submit an Issue or PR to this repository to correct it!

License

MIT License

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft