svql
Query SystemVerilog modules with SQL.
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
Parses SystemVerilog modules and exposes their parameters, ports, and connections as SQL-queryable DataFrames for analysis and extraction.
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
pip
pip install svqluv
uv add svqlpoetry
poetry add svqlInstalling svql
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.
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)
Requires a valid SystemVerilog file path; pyslang (a SystemVerilog parser) must be able to parse the target file without syntax errors.
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 — pandas, pandasql, pyslang |
| 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) |
Evidence: svql-0.1.9-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
pyslangpyslang provides Python bindings to parse,…
permissive · top 15,000 on PyPI
peakrdl-regblockCompiles SystemRDL register descriptions into…
copyleft · top 15,000 on PyPI
tree-sitter-verilogProvides a SystemVerilog grammar parser for…
permissive · top 5,000 on PyPI
peakrdl-cliPeakRDL is a command-line tool that generates…
copyleft · top 15,000 on PyPI
opentelemetry-instrumentation-pymssqlAdds automatic tracing and monitoring of…
permissive · top 15,000 on PyPI
peakrdlPeakRDL is a control and status register (CSR)…
copyleft · top 15,000 on PyPI
opentelemetry-instrumentation-pymysqlAdds OpenTelemetry tracing instrumentation to…
permissive · top 5,000 on PyPI
pandasqlpandasql lets you query pandas DataFrames using…
unclear · top 5,000 on PyPI
vcdvcdParses Verilog value change dump (VCD) files…
unclear · top 15,000 on PyPI
pylspciParses the output of the lspci command to…
copyleft · top 15,000 on PyPI