svql
Query SystemVerilog modules with SQL.
Decision gist · record as of 2026-08-14
Yes, if you work with SystemVerilog and need to query module structure programmatically. Install friction is low and the license is permissive. However, the aging maintenance status means you should verify that pyslang handles your specific SystemVerilog dialect and features before committing to it in a critical workflow; no vulnerabilities are known, but don't expect rapid fixes if issues arise.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a valid SystemVerilog file path; pyslang (a SystemVerilog parser) must be able to parse the target file without syntax errors.
- Low friction: pure Python wheel with only three runtime dependencies (pandas, pandasql, pyslang).
- Maintenance status is aging—last release was in early March 2025 with no recent commits visible—so expect limited active support for bug fixes or new features.
License · maintenance · safety
MIT (permissive) — MIT license is permissive, allowing commercial and private use with minimal restrictions; you may use, modify, and distribute this package freely as long as you include the original license notice.
last release 2025-03-06 (526 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 76,905 downloads/mo, #14,580 on PyPI
Alternatives
Verify before relying
from svql import Module
module = Module("path/to/module.sv")
result = module.query("SELECT * FROM params WHERE override_value IS NULL")
print(result)- Whether pyslang's parsing covers all SystemVerilog constructs or has known limitations that would affect real-world modules.
- Performance characteristics when querying large or complex modules with many parameters and ports.
- Whether the package handles SystemVerilog 2017/2023 features or is limited to earlier standards.
What it is and what it does
svql is a Python tool that parses SystemVerilog module files and makes their structural information—parameters, ports, and connections—queryable via SQL. It wraps the pyslang parser to extract module metadata and stores it in pandas DataFrames, then uses pandasql to let you write SQL SELECT queries against those tables. The typical workflow is to load a .sv file, call module.query() with a SQL statement, and get back a DataFrame of results.
This is useful for hardware engineers and design automation workflows where you need to inspect or extract specific details from RTL modules without manually reading the source. The aging maintenance status and lack of recent activity suggest the project is stable but not actively developed; it works well for its narrow purpose but may not receive updates for new SystemVerilog standards or edge cases.
Use it for
- Extract all parameters with default values from a module to understand its configuration points.
- Query input or output ports by direction to document or validate a module's interface.
- Identify which parameters have been overridden in a specific instantiation versus left at defaults.
- Automate RTL documentation by querying port widths, types, and connectivity across modules.
- Build design verification scripts that programmatically inspect module structure without parsing SystemVerilog by hand.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you work with SystemVerilog and need to query module structure programmatically.
Install friction is low and the license is permissive. However, the aging maintenance status means you should verify that pyslang handles your specific SystemVerilog dialect and features before committing to it in a critical workflow; no vulnerabilities are known, but don't expect rapid fixes if issues arise.
Install
svql on PyPI
Before you install
Low friction: pure Python wheel with only three runtime dependencies (pandas, pandasql, pyslang). Maintenance status is aging—last release was in early March 2025 with no recent commits visible—so expect limited active support for bug fixes or new features.
Requires a valid SystemVerilog file path; pyslang (a SystemVerilog parser) must be able to parse the target file without syntax errors.
License in practice
MIT license is permissive, allowing commercial and private use with minimal restrictions; you may use, modify, and distribute this package freely as long as you include the original license notice.
Quickstart
from svql import Module
module = Module("path/to/module.sv")
result = module.query("SELECT * FROM params WHERE override_value IS NULL")
print(result)
Verify before relying
- Whether pyslang's parsing covers all SystemVerilog constructs or has known limitations that would affect real-world modules.
- Performance characteristics when querying large or complex modules with many parameters and ports.
- Whether the package handles SystemVerilog 2017/2023 features or is limited to earlier standards.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagespandaspandasqlpyslang |
| Maintenance | Aging 526 days since the last release |
| First released | |
| Downloads | 76,905 / month, #14,580 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3 |
Evidence: svql-0.1.9-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “systemverilog parsing sql”
- svqlParses SystemVerilog modules and exposes their parameters, ports, and…
- pyslangpyslang provides Python bindings to parse, analyze, and elaborate…
- tree-sitter-verilogProvides a SystemVerilog grammar parser for tree-sitter, enabling…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also pyslang · peakrdl-regblock · tree-sitter-verilog · peakrdl-cli · opentelemetry-instrumentation-pymssql · peakrdl · opentelemetry-instrumentation-pymysql · pandasql · vcdvcd · pylspci