Query SystemVerilog modules with SQL.
Project description
svql: SystemVerilog Module Analysis Tool
A Python tool for parsing and analyzing SystemVerilog modules using SQL queries.
Overview
svql provides a simple interface to extract and query information from SystemVerilog modules. It parses module parameters, ports, and their connections, storing them in SQL-queryable DataFrames.
Installation
Very easy! Just run:
pip install svql
Usage
Below are some examples demonstrating how to parse a SystemVerilog module, execute queries, and print the outputs.
Example 1: Query Parameters Not Changed from Default
Module parameters typically come with default values. When a parameter has not been explicitly overridden, it retains its default value. Use the following query to extract those parameters:
from svql import Module
# Parse a SystemVerilog module
module = Module("path/to/your/module.sv")
print(f"All parameters that have not been changed from default for {module.header}:")
print(module.query("SELECT * FROM params WHERE override_value IS NULL"), "\n")
# Expected Output:
# All parameters that have not been changed from default for pipeline_top:
# name dtype default_value override_value scope typed_param
# 0 DATA_WIDTH int 32 None parameter 0
# 1 FILTER_TAPS int 4 None parameter 0
# 2 BUFFER_DEPTH int 8 None parameter 0
Example 2: Query Input Ports
To retrieve all input ports of a module, filter the ports based on their direction:
from svql import Module
# Parse a SystemVerilog module
module = Module("path/to/your/module.sv")
print(f"Ports where direction = 'input' for {module.header}:")
print(module.query("SELECT * FROM ports WHERE direction = 'input'"), "\n")
# Expected Output:
# Ports where direction = 'input' for pipeline_top:
# name dtype direction width connected_to
# 0 clk logic input 1 None
# 1 rst_n logic input 1 None
# 2 data_in logic input [DATA_WIDTH-1:0] None
# 3 valid_in logic input 1 None
# 4 read_en logic input 1 None
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file svql-0.1.9.tar.gz.
File metadata
- Download URL: svql-0.1.9.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
722518836d61eb3e22b38d21729a0c492081d493b5963169a14c53c9660a9da6
|
|
| MD5 |
e2cffda9526b3ebb3280fb17892b685e
|
|
| BLAKE2b-256 |
8341f00cb7e5911f2dde5cae207939a18c45732f940005e806cb098d246c7b54
|
File details
Details for the file svql-0.1.9-py3-none-any.whl.
File metadata
- Download URL: svql-0.1.9-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a99a8fab2a942e6ad676f3a45e09b5ac41b10452b740cb943063a2b4910df23
|
|
| MD5 |
f3da6d603825f2d7ad23086eedbf6e4b
|
|
| BLAKE2b-256 |
c0b9437121b1d3e36fda5e583f373ac2ff2228d92d004a958ce81926b08016a0
|